summaryrefslogtreecommitdiff
path: root/static/netbsd/man3/sqlite3_progress_handler.3
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man3/sqlite3_progress_handler.3')
-rw-r--r--static/netbsd/man3/sqlite3_progress_handler.370
1 files changed, 70 insertions, 0 deletions
diff --git a/static/netbsd/man3/sqlite3_progress_handler.3 b/static/netbsd/man3/sqlite3_progress_handler.3
new file mode 100644
index 00000000..20af7b30
--- /dev/null
+++ b/static/netbsd/man3/sqlite3_progress_handler.3
@@ -0,0 +1,70 @@
+.Dd January 24, 2024
+.Dt SQLITE3_PROGRESS_HANDLER 3
+.Os
+.Sh NAME
+.Nm sqlite3_progress_handler
+.Nd query progress callbacks
+.Sh SYNOPSIS
+.In sqlite3.h
+.Ft void
+.Fo sqlite3_progress_handler
+.Fa "sqlite3*"
+.Fa "int"
+.Fa "int(*)(void*)"
+.Fa "void*"
+.Fc
+.Sh DESCRIPTION
+The sqlite3_progress_handler(D,N,X,P) interface causes the callback
+function X to be invoked periodically during long running calls to
+.Fn sqlite3_step
+and
+.Fn sqlite3_prepare
+and similar for database connection D.
+An example use for this interface is to keep a GUI updated during a
+large query.
+.Pp
+The parameter P is passed through as the only parameter to the callback
+function X.
+The parameter N is the approximate number of virtual machine instructions
+that are evaluated between successive invocations of the callback X.
+If N is less than one then the progress handler is disabled.
+.Pp
+Only a single progress handler may be defined at one time per database connection;
+setting a new progress handler cancels the old one.
+Setting parameter X to NULL disables the progress handler.
+The progress handler is also disabled by setting N to a value less
+than 1.
+.Pp
+If the progress callback returns non-zero, the operation is interrupted.
+This feature can be used to implement a "Cancel" button on a GUI progress
+dialog box.
+.Pp
+The progress handler callback must not do anything that will modify
+the database connection that invoked the progress handler.
+Note that
+.Fn sqlite3_prepare_v2
+and
+.Fn sqlite3_step
+both modify their database connections for the meaning of "modify"
+in this paragraph.
+.Pp
+The progress handler callback would originally only be invoked from
+the bytecode engine.
+It still might be invoked during
+.Fn sqlite3_prepare
+and similar because those routines might force a reparse of the schema
+which involves running the bytecode engine.
+However, beginning with SQLite version 3.41.0, the progress handler
+callback might also be invoked directly from
+.Fn sqlite3_prepare
+while analyzing and generating code for complex queries.
+.Sh IMPLEMENTATION NOTES
+These declarations were extracted from the
+interface documentation at line 3421.
+.Bd -literal
+SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
+.Ed
+.Sh SEE ALSO
+.Xr sqlite3 3 ,
+.Xr sqlite3_prepare 3 ,
+.Xr sqlite3_step 3