xref: /netbsd-src/external/public-domain/sqlite/man/SQLITE_PREPARE_PERSISTENT.3 (revision 51db93b1e55befe059298d8824a0c056de72eba2)
1.Dd December 19, 2018
2.Dt SQLITE_PREPARE_PERSISTENT 3
3.Os
4.Sh NAME
5.Nm SQLITE_PREPARE_PERSISTENT ,
6.Nm SQLITE_PREPARE_NORMALIZE
7.Nd Prepare Flags
8.Sh SYNOPSIS
9.Fd #define SQLITE_PREPARE_PERSISTENT
10.Fd #define SQLITE_PREPARE_NORMALIZE
11.Sh DESCRIPTION
12These constants define various flags that can be passed into "prepFlags"
13parameter of the sqlite3_prepare_v3() and sqlite3_prepare16_v3()
14interfaces.
15.Pp
16New flags may be added in future releases of SQLite.
17.Bl -tag -width Ds
18.It SQLITE_PREPARE_PERSISTENT
19The SQLITE_PREPARE_PERSISTENT flag is a hint to the query planner that
20the prepared statement will be retained for a long time and probably
21reused many times.
22Without this flag, sqlite3_prepare_v3() and sqlite3_prepare16_v3()
23assume that the prepared statement will be used just once or at most
24a few times and then destroyed using sqlite3_finalize()
25relatively soon.
26The current implementation acts on this hint by avoiding the use of
27lookaside memory so as not to deplete the limited store
28of lookaside memory.
29Future versions of SQLite may act on this hint differently.
30.It SQLITE_PREPARE_NORMALIZE
31The SQLITE_PREPARE_NORMALIZE flag indicates that a normalized representation
32of the SQL statement should be calculated and then associated with
33the prepared statement, which can be obtained via the sqlite3_normalized_sql()
34interface.
35The semantics used to normalize a SQL statement are unspecified and
36subject to change.
37At a minimum, literal values will be replaced with suitable placeholders.
38.El
39.Pp
40.Sh SEE ALSO
41.Xr sqlite3_finalize 3 ,
42.Xr sqlite3_sql 3 ,
43.Xr sqlite3_prepare 3
44