Requirements consist of excerpts from the documentation. A requirement is usually a one-sentence excerpt but might be a sentence fragment, multiple sentences, a table, or a GIF image of a bubble syntax diagram.
Requirements are written in conversational English and without the modal auxiliary verb "shall". This grows out of the fact that requirements are taken from the documentation. The intended audience for the documentation is application programmers. "Shall" language is appropriate when the audience consist of contract specialists, QA auditors, and lawyers, but it interferes with comprehension when the audience is application programmers. Hence, in order to best serve the intended audience, the "shall" language is omitted.
Requirements are sufficiently detailed and precise to permit a 100% compatible clean-room reimplementation of SQLite.
The word "requirement" in common English usage implies an ordering: that the requirement comes before the implementation. But there is no such ordering with SQLite requirements. What are called "requirements" in SQLite are better described as "testable statements of truth about the behavior of the system".
Every testable statement of truth about SQLite in the documentation becomes a requirement.
Requirement numbers are the MD5 hash of the requirement itself.
Requirements are inherently immutable, since any change to the requirement results in a completely different requirement number.
For text requirements, the text is normalized prior to computing the MD5 hash:
For GIF syntax diagram requirements, the MD5 hash is computed over the entire content of the GIF image file.
The MD5 hash is expressed in human-readable form as follows:
R-N-N-N-N-N-N-N-NWhere each N is a 5-digit number between 00000 and 65536 that represents 16 bits of the 128-bit MD5 hash.
Requirements may be referenced by any unique prefix of their complete requirement number.
Text requirements are automatically extracted from the documentation by scripts that run as part of the documentation build process.
After requirements have been extracted from the documentation, the requirement markers "^", "^(", and ")^" are removed from the documentation text. This is done automatically by the documentation build scripts.
To avoid collisions with these requirements delimiters, "^" characters that are part of the text of a requirement or that are otherwise found in the documentation, should be coded as "^".
<img alt="syntax diagram NAME" src="FILE">Where NAME is the name of the syntax diagram and FILE is the name of the GIF file containing the syntax diagram.
Syntax diagram requirements are automatically extracted from the documentation by scripts that run as part of the documentation build process.
The GIF file is the requirement, not the HTML markup that references the GIF file nor the diagram name.
The documentation that contains the requirement text is generated by scripts that use as input files from both files in the documentation fossil repository and comments in the source code.
The key comes first and is separated from the value by a single "=" character. (source: uri.html, matrix: context, detail)
The virtual table implementation is free to omit rows that are identical in all aOrderBy columns, if it wants to, but it is not required to omit any rows. (source: c3ref/vtab_distinct.html, matrix: context, detail)
sqlite> EXPLAIN QUERY PLAN SELECT c, d FROM t2 ORDER BY c; QUERY PLAN |--SCAN t2 `--USE TEMP B-TREE FOR ORDER BY (source: eqp.html, matrix: context, detail)
The third argument, aCoord[], is an array of nCoord coordinates that defines a bounding box to be tested. (source: rtree.html, checked-by: tcl/test_rtreedoc.c, th3/cov1/rtree03.test, matrix: context, detail)
Simply setting the locking-mode to NORMAL is not enough - locks are not released until the next time the database file is accessed. (source: pragma.html, checked-by: th3/req1/pragma04.test, matrix: context, detail)
A virtual table module is created by filling in a persistent instance of this structure and passing a pointer to that instance to sqlite3_create_module() or sqlite3_create_module_v2(). (source: c3ref/module.html, matrix: context, detail)
SQLITE_TOOBIG might be returned if the size of a string or BLOB exceeds limits imposed by sqlite3_limit(SQLITE_LIMIT_LENGTH) or SQLITE_MAX_LENGTH. (source: c3ref/bind_blob.html, checked-by: th3/cov1/vdbeapi03.test, matrix: context, detail)
SQLite automatically serializes calls to the xInit method, so the xInit method need not be threadsafe. (source: c3ref/pcache_methods2.html, checked-by: src/main.c, matrix: context, detail)
The usual case is that the entire database file is checked. (source: pragma.html, matrix: context, detail)
The callback is passed a copy of the generic data pointer (P), the schema-name of the attached database that is being autovacuumed, the size of the database file in pages, the number of free pages, and the number of bytes per page, respectively. (source: c3ref/autovacuum_pages.html, checked-by: th3/cov1/autovac01.test, matrix: context, detail)
In such cases, duplicate elements are filtered before being passed into the aggregate function. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
The rank of the column within the index. (0 means left-most. Key columns come before auxiliary columns.) (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma15x.test, matrix: context, detail)
Contrary to the intuition of many, sqlite3_reset() does not reset the bindings on a prepared statement. (source: c3ref/clear_bindings.html, checked-by: th3/req1/clearbind01.test, matrix: context, detail)
To create a WITHOUT ROWID table, simply add the keywords "WITHOUT ROWID" to the end of the CREATE TABLE statement. For example: CREATE TABLE IF NOT EXISTS wordcount( word TEXT PRIMARY KEY, cnt INTEGER ) WITHOUT ROWID; (source: withoutrowid.html, checked-by: tcl/without_rowid5.test, th3/cov1/withoutrowid01.test, matrix: context, detail)
Otherwise, an expression has no affinity. (source: datatype3.html, checked-by: th3/req1/datatype3_05.test, matrix: context, detail)
A UNIQUE constraint is similar to a PRIMARY KEY constraint, except that a single table may have any number of UNIQUE constraints. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
If the declared type of the column contains any of the strings "CHAR", "CLOB", or "TEXT" then that column has TEXT affinity. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
If an attempt is made to insert any other non-integer value into this column, the r-tree module silently converts it to an integer before writing it into the database. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq01.test, matrix: context, detail)
The initial "INSERT" keyword can be replaced by "REPLACE" or "INSERT OR action" to specify an alternative constraint conflict resolution algorithm to use during that one INSERT command. (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
Returning to the example in section 1, each time an application deletes a row from the artist table (the parent table), it performs the equivalent of the following SELECT statement to search for referencing rows in the track table (the child table). SELECT rowid FROM track WHERE trackartist = ? where ? in the above is replaced with the value of the artistid column of the record being deleted from the artist table (recall that the trackartist column is the child key and the artistid column is the parent key). (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys10.test, matrix: context, detail)
Indexes work the same. (source: stricttables.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
This SQL function is implemented using the sqlite3_result_zeroblob() routine from the C/C++ interface. (source: lang_corefunc.html, checked-by: src/func.c, matrix: context, detail)
The T argument is one of the integer type codes above. (source: c3ref/c_trace.html, checked-by: th3/cov1/trace01.test, matrix: context, detail)
aConstraint[].usable is TRUE if the expr on the right-hand side can be evaluated (and thus the constraint is usable) and false if it cannot. (source: c3ref/index_info.html, matrix: context, detail)
PRAGMA temp_store; PRAGMA temp_store = 0 | DEFAULT | 1 | FILE | 2 | MEMORY; Query or change the setting of the "temp_store" parameter. (source: pragma.html, matrix: context, detail)
The name of the table (as it appears in sqlite_schema.name) is in the sqlite_sequence.name field and the largest INTEGER PRIMARY KEY ever inserted into that table is in the sqlite_sequence.seq field. (source: fileformat2.html, matrix: context, detail)
The subquery and outer query do not both use LIMIT. (source: optoverview.html, matrix: context, detail)
The view definition is removed from the database schema, but no actual data in the underlying base tables is modified. (source: lang_dropview.html, checked-by: slt/slt_lang_dropview.test, tcl/e_dropview.test, matrix: context, detail)
PRAGMA schema.default_cache_size; PRAGMA schema.default_cache_size = Number-of-pages; This pragma queries or sets the suggested maximum number of pages of disk cache that will be allocated per open database file. (source: pragma.html, checked-by: th3/req1/pragma09.test, matrix: context, detail)
If the parent key columns have a UNIQUE index, then that index must use the collation sequences that are specified in the CREATE TABLE statement for the parent table. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys07.test, matrix: context, detail)
The return value might be some other value, such as SQLITE_NOMEM, in the event of a malfunction. (source: c3ref/vtab_in_first.html, matrix: context, detail)
The filename argument can be a URI filename if URI filename processing is enable on the database connection. (source: lang_attach.html, checked-by: th3/cov1/sharedcache03.test, matrix: context, detail)
For the purposes of UNIQUE constraints, NULL values are considered distinct from all other values, including other NULLs. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The sqlite3_get_table() function evaluates one or more semicolon-separated SQL statements in the zero-terminated UTF-8 string of its 2nd parameter and returns a result table to the pointer given in its 3rd parameter. (source: c3ref/free_table.html, checked-by: th3/req1/gettable01.test, matrix: context, detail)
The number of extra bytes needed by the page header can be determined using SQLITE_CONFIG_PCACHE_HDRSZ. (source: c3ref/c_config_covering_index_scan.html, checked-by: th3/cov1/main42.test, matrix: context, detail)
This feature allows WAL databases to be created, read, and written by legacy VFSes that lack the "version 2" shared-memory methods xShmMap, xShmLock, xShmBarrier, and xShmUnmap on the sqlite3_io_methods object. (source: wal.html, checked-by: tcl/e_wal.test, th3/req1/pragma05.test, matrix: context, detail)
In any aggregate function that takes a single argument, that argument can be preceded by the keyword DISTINCT. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
The second column is the rowid of the row that contains the invalid REFERENCES clause, or NULL if the child table is a WITHOUT ROWID table. (source: pragma.html, checked-by: tcl/fkey5.test, th3/cov1/fkey23.test, matrix: context, detail)
Statistics gathered by ANALYZE are not automatically updated as the content of the database changes. (source: lang_analyze.html, checked-by: th3/req1/analyze01.test, matrix: context, detail)
The sqlite3_str_finish(X) interface may return a NULL pointer if any errors were encountered during construction of the string. (source: c3ref/str_finish.html, matrix: context, detail)
A negative LIMIT value is interpreted as "no limit". (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
Note that column must be the same column in every OR-connected subterm, although the column can occur on either the left or the right side of the = operator. (source: optoverview.html, matrix: context, detail)
If a schema name is specified as part of an object reference, it must be either "main", or "temp" or the schema-name of an attached database. (source: lang_naming.html, checked-by: tcl/e_resolve.test, matrix: context, detail)
The expression "x BETWEEN y and z" is logically equivalent to two comparisons "x >= y AND x <= z" and works with respect to collating functions as if it were two separate comparisons. (source: datatype3.html, checked-by: th3/req1/datatype3_10.test, matrix: context, detail)
If parameter zDb is NULL or points to a zero length string, then the specified operation is attempted on all WAL databases attached to database connection db. (source: c3ref/wal_checkpoint_v2.html, checked-by: tcl/e_walckpt.test, matrix: context, detail)
For this reason, it is not generally possible to modify the R-Tree in the middle of a query of the R-Tree. Attempts to do so will fail with a SQLITE_LOCKED "database table is locked" error. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree22.test, matrix: context, detail)
The legacy xGeom callback is invoked with four arguments. (source: rtree.html, checked-by: tcl/test_rtreedoc.c, th3/cov1/rtree03.test, matrix: context, detail)
The COMMIT command may be used to release all savepoints and commit the transaction even if the transaction was originally started by a SAVEPOINT command instead of a BEGIN command. (source: lang_savepoint.html, matrix: context, detail)
Ptrmap pages must exist in any database file which has a non-zero largest root b-tree page value at offset 52 in the database header. (source: fileformat2.html, matrix: context, detail)
The sqlite3_wal_hook() function is used to register a callback that is invoked each time data is committed to a database in wal mode. (source: c3ref/wal_hook.html, checked-by: tcl/e_walhook.test, matrix: context, detail)
Compute the number of days since the signing of the US Declaration of Independence. SELECT julianday('now') - julianday('1776-07-04'); (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
Assuming there are no other indexes, the query above would result in a full table scan. (source: optoverview.html, matrix: context, detail)
If the xCompare argument is NULL then the collating function is deleted. (source: c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test, matrix: context, detail)
The prefix option must be set to a comma separated list of positive non-zero integers. (source: fts3.html, matrix: context, detail)
The SQLITE_CONFIG_PAGECACHE option specifies a memory pool that SQLite can use for the database page cache with the default page cache implementation. (source: c3ref/c_config_covering_index_scan.html, checked-by: th3/cov1/main42.test, matrix: context, detail)
For each value N in the list, prefixes of length N bytes (when encoded using UTF-8) are indexed. (source: fts3.html, matrix: context, detail)
If there are multiple options, they can be specified in any order. (source: stricttables.html, checked-by: th3/req1/strictreq01.test, matrix: context, detail)
These routines return 1 if the input string appears to be a complete SQL statement. (source: c3ref/complete.html, checked-by: th3/cov1/complete01.test, matrix: context, detail)
The foreign key for table child5 is an error because even though the parent key column has a unique index, the index uses a different collating sequence. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys07.test, matrix: context, detail)
With the legacy interface, a more specific error code (for example, SQLITE_INTERRUPT, SQLITE_SCHEMA, SQLITE_CORRUPT, and so forth) can be obtained by calling sqlite3_reset() on the prepared statement. (source: c3ref/step.html, matrix: context, detail)
The values returned by sqlite3_memory_used() and sqlite3_memory_highwater() include any overhead added by SQLite in its implementation of sqlite3_malloc(), but not overhead added by the any underlying system library routines that sqlite3_malloc() may call. (source: c3ref/memory_highwater.html, matrix: context, detail)
Each component query of a compound query (UNION, UNION ALL, EXCEPT or INTERSECT) is assigned computed separately and is given its own line in the EXPLAIN QUERY PLAN output. (source: eqp.html, matrix: context, detail)
The sqlite3_result_zeroblob(C,N) and sqlite3_result_zeroblob64(C,N) interfaces set the result of the application-defined function to be a BLOB containing all zero bytes and N bytes in size. (source: c3ref/result_blob.html, checked-by: th3/req1/result01.test, matrix: context, detail)
It is usually an error to attempt to create a new table in a database that already contains a table, index or view of the same name. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
If X is a NULL pointer then sqlite3_msize(X) returns zero. (source: c3ref/free.html, checked-by: th3/req1/malloc02.test, matrix: context, detail)
The second form (with a numeric argument) sets the limit for the specified database, or for all databases if the optional database name is omitted. (source: pragma.html, matrix: context, detail)
If neither ALL or DISTINCT are present, then the behavior is as if ALL were specified. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The result of load_extension() is always a NULL. (source: lang_corefunc.html, checked-by: th3/cov1/func03.test, matrix: context, detail)
This function sets the database handle error code and message. (source: c3ref/blob_reopen.html, checked-by: th3/req1/blob01.test, matrix: context, detail)
An RTREE table can have no more than 100 columns total. In other words, the count of columns including the integer primary key column, the coordinate boundary columns, and all auxiliary columns must be 100 or less. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree18.test, matrix: context, detail)
The unlikely(X) function is short-hand for likelihood(X,0.0625). (source: lang_corefunc.html, checked-by: src/resolve.c, matrix: context, detail)
The sqlite_source_id() function returns a string that identifies the specific version of the source code that was used to build the SQLite library. (source: lang_corefunc.html, checked-by: th3/req1/func04.test, matrix: context, detail)
The RETURNING clause is not available on DELETE and UPDATE statements against virtual tables. (source: lang_returning.html, checked-by: th3/cov1/returning06.test, matrix: context, detail)
When a new database is created, SQLite assigns a page size to the database based on platform and filesystem. (source: pragma.html, matrix: context, detail)
Before any information-bearing page of the database is modified, the original unmodified content of that page is written into the rollback journal. (source: fileformat2.html, matrix: context, detail)
The first argument to the trace callback is one of the following constants. (source: c3ref/c_trace.html, checked-by: th3/cov1/trace01.test, matrix: context, detail)
The "sz=NNN" argument (where NNN represents a sequence of 1 or more digits) means that the average row size over all records of the table or index is NNN bytes per row. (source: fileformat2.html, matrix: context, detail)
If the statement that caused the trigger program to execute is itself part of a trigger program, then that trigger program resumes execution at the beginning of the next step. (source: lang_createtrigger.html, matrix: context, detail)
However, only "rowid" works as the keyword in the CREATE TABLE statement. (source: withoutrowid.html, checked-by: tcl/without_rowid5.test, th3/cov1/withoutrowid01.test, matrix: context, detail)
If the constraint is not an IN operator or cannot be processed all-at-once, then the interface returns false. (source: c3ref/vtab_in.html, matrix: context, detail)
When xSavepoint(X,N) is invoked, that is a signal to the virtual table X that it should save its current state as savepoint N. (source: vtab.html, matrix: context, detail)
As the components of a compound SELECT must be simple SELECT statements, they may not contain ORDER BY or LIMIT clauses. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The length returned by sqlite3_str_length(X) does not include the zero-termination byte. (source: c3ref/str_errcode.html, matrix: context, detail)
The sqlite_stat4.sample BLOB for the WITHOUT ROWID table itself contains just the columns of the primary key. (source: fileformat2.html, matrix: context, detail)
The DROP TABLE statement removes a table added with the CREATE TABLE statement. (source: lang_droptable.html, checked-by: slt/slt_lang_droptable.test, matrix: context, detail)
The sqlite3_value_type(V) interface returns the datatype code for the initial datatype of the sqlite3_value object V. The returned value is one of SQLITE_INTEGER, SQLITE_FLOAT, SQLITE_TEXT, SQLITE_BLOB, or SQLITE_NULL. (source: c3ref/value_blob.html, checked-by: src/func.c, matrix: context, detail)
name: the name of the table or view. (source: pragma.html, checked-by: th3/cov1/pragma30.test, matrix: context, detail)
The first integer on a freelist trunk page is the page number of the next freelist trunk page in the list or zero if this is the last freelist trunk page. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
The column appears in a trigger or view. (source: lang_altertable.html, checked-by: tcl/alterdropcol2.test, th3/cov1/altertable25.test, matrix: context, detail)
If certain kinds of errors occur within a transaction, the transaction may or may not be rolled back automatically. The errors that can cause an automatic rollback include: SQLITE_FULL: database or disk full SQLITE_IOERR: disk I/O error SQLITE_BUSY: database in use by another process SQLITE_NOMEM: out of memory (source: lang_transaction.html, matrix: context, detail)
Note that max() is a simple function when it has 2 or more arguments but operates as an aggregate function if given only a single argument. (source: lang_corefunc.html, checked-by: th3/req1/func05.test, matrix: context, detail)
sqlite> EXPLAIN QUERY PLAN SELECT t1.*, t2.* FROM t2, t1 WHERE t1.a=1 AND t1.b>2; QUERY PLAN |--SEARCH t1 USING INDEX i2 (a=? AND b>?) `--SCAN t2 (source: eqp.html, matrix: context, detail)
xUnpin() is called by SQLite with a pointer to a currently pinned page as its second argument. (source: c3ref/pcache_methods2.html, matrix: context, detail)
When the EXPLAIN QUERY PLAN phrase appears, the statement returns high-level information regarding the query plan that would have been used. (source: lang_explain.html, checked-by: th3/cov1/vdbeaux01.test, matrix: context, detail)
The "vfs" parameter may be used to specify the name of a VFS object that provides the operating system interface that should be used to access the database file on disk. (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
The schema of the sqlite_stat3 table is as follows: CREATE TABLE sqlite_stat3(tbl,idx,nEq,nLt,nDLt,sample); (source: fileformat2.html, matrix: context, detail)
The sqlite_stat4.nDLt column holds a list of N integers where the K-th integer is the approximate number of entries in the index that are distinct in the first K columns and where the left-most K columns are collectively less than the left-most K columns of the sample. (source: fileformat2.html, matrix: context, detail)
When enabled, this PRAGMA causes many SELECT statements without an ORDER BY clause to emit their results in the reverse order from what they normally would. (source: pragma.html, checked-by: th3/req1/pragma27.test, matrix: context, detail)
It is safe to call this routine from a thread different from the thread that is currently running the database operation. (source: c3ref/interrupt.html, matrix: context, detail)
BEFORE and AFTER triggers work only on ordinary tables. (source: lang_createtrigger.html, matrix: context, detail)
The time() function returns the time as text in this format: HH:MM:SS. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
If the sub-query is a compound select, then it must not use an ORDER BY clause. (source: optoverview.html, matrix: context, detail)
SQLite always opens immutable database files read-only and it skips all file locking and change detection on immutable database files. (source: uri.html, matrix: context, detail)
The third argument is the value to bind to the parameter. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
These functions return information about the Nth result column returned by the statement, where N is the second function argument. (source: c3ref/column_database_name.html, matrix: context, detail)
On success, the sqlite3_vtab_in_first(X,P) and sqlite3_vtab_in_next(X,P) routines return SQLITE_OK and set *P to point to the first or next value on the RHS of the IN constraint. (source: c3ref/vtab_in_first.html, matrix: context, detail)
Value is a big-endian 32-bit twos-complement integer. (source: fileformat2.html, checked-by: src/vdbeaux.c, th3/req1/fileformat02.test, matrix: context, detail)
SQLite automatically frees the memory allocated by sqlite3_aggregate_context() when the aggregate query concludes. (source: c3ref/aggregate_context.html, checked-by: th3/req1/aggcntx01.test, matrix: context, detail)
Columns with datatype ANY can accept any kind of data (except they will reject NULL values if they have a NOT NULL constraint, of course). No type coercion occurs for a column of type ANY in a STRICT table. (source: stricttables.html, checked-by: th3/req1/strictreq01.test, matrix: context, detail)
When the right operand of an IN or NOT IN operator is a subquery, the subquery must have the same number of columns as there are columns in the row value of the left operand. (source: lang_expr.html, checked-by: th3/cov1/rowvalue06.test, matrix: context, detail)
The on-disk format for the table data is the same. (source: stricttables.html, checked-by: th3/req1/strictreq03.test, matrix: context, detail)
Abs(X) returns 0.0 if X is a string or blob that cannot be converted to a numeric value. (source: lang_corefunc.html, checked-by: src/func.c, th3/cov1/func01.test, matrix: context, detail)
UNIQUE constraints work the same. (source: stricttables.html, checked-by: th3/req1/conflict04.test, matrix: context, detail)
This option is used to enable or disable triggers. (source: c3ref/c_dbconfig_defensive.html, checked-by: th3/cov1/main34.test, matrix: context, detail)
An application can force the query planner to reread the statistics tables by running ANALYZE sqlite_schema. (source: lang_analyze.html, checked-by: th3/req1/analyze01.test, matrix: context, detail)
This character may be used in the LIKE pattern to include literal percent or underscore characters. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
For the purposes of detecting duplicate rows, two NULL values are considered to be equal. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
A NOT NULL constraint may only be attached to a column definition, not specified as a table constraint. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The 2nd argument to the sqlite3_exec() callback function is the number of columns in the result. (source: c3ref/exec.html, checked-by: th3/req1/exec01.test, matrix: context, detail)
CREATE TABLE t0( a INTEGER PRIMARY KEY, b DATE DEFAULT CURRENT_TIMESTAMP, c INTEGER ); INSERT INTO t0(c) VALUES(random()) RETURNING *; In the INSERT statement above, SQLite computes the values for all three columns. (source: lang_returning.html, checked-by: th3/cov1/returning01.test, matrix: context, detail)
The SQLITE_CONFIG_PMASZ option takes a single parameter which is an unsigned integer and sets the "Minimum PMA Size" for the multithreaded sorter to that integer. (source: c3ref/c_config_covering_index_scan.html, matrix: context, detail)
The net effect is that putting the ON or USING clause expressions for a LEFT JOIN in the WHERE clause effectively converts the query to an ordinary INNER JOIN - albeit an inner join that runs more slowly. (source: optoverview.html, matrix: context, detail)
The argument X in sqlite3_file_control(db,SQLITE_FCNTL_VFS_POINTER,X) must be of type "sqlite3_vfs **". This opcodes will set *X to a pointer to the top-level VFS. (source: c3ref/c_fcntl_begin_atomic_write.html, matrix: context, detail)
Subject to filtering associated with the DISTINCT keyword, the number of rows returned by an aggregate query with a GROUP BY clause is the same as the number of groups of rows produced by applying the GROUP BY and HAVING clauses to the filtered input dataset. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The heap limits are not enforced in the current implementation if one or more of following conditions are true: The limit value is set to zero. Memory accounting is disabled using a combination of the sqlite3_config(SQLITE_CONFIG_MEMSTATUS,...) start-time option and the SQLITE_DEFAULT_MEMSTATUS compile-time option. An alternative page cache implementation is specified using sqlite3_config(SQLITE_CONFIG_PCACHE2,...). The page cache allocates from its own memory pool supplied by sqlite3_config(SQLITE_CONFIG_PAGECACHE,...) rather than from the heap. (source: c3ref/hard_heap_limit64.html, checked-by: th3/req1/softheaplimit02.test, matrix: context, detail)
The shadow tables are ordinary SQLite data tables. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq02.test, matrix: context, detail)
Thus for the example index above, if there is no WHERE clause term that constrains column c, then terms that constrain columns a and b can be used with the index but not terms that constrain columns d through z. (source: optoverview.html, matrix: context, detail)
The value returned is one of SQLITE_ROLLBACK, SQLITE_IGNORE, SQLITE_FAIL, SQLITE_ABORT, or SQLITE_REPLACE, according to the ON CONFLICT mode of the SQL statement that triggered the call to the xUpdate method of the virtual table. (source: c3ref/vtab_on_conflict.html, matrix: context, detail)
The %n format is silently ignored and does not consume an argument. (source: lang_corefunc.html, checked-by: tcl/printf2.test, th3/cov1/printf08.test, matrix: context, detail)
If the most recent sqlite3_* API call associated with database connection D failed, then the sqlite3_errcode(D) interface returns the numeric result code or extended result code for that API call. (source: c3ref/errcode.html, matrix: context, detail)
The sqlite3_initialize() routine initializes the SQLite library. (source: c3ref/initialize.html, matrix: context, detail)
The %_rowid shadow table maps entry rowids to the node that contains that entry. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq04.test, matrix: context, detail)
SQLite has three built-in collating functions: BINARY, NOCASE, and RTRIM. (source: datatype3.html, checked-by: th3/req1/datatype3_09.test, matrix: context, detail)
The second argument is the number of coordinates in each r-tree entry, and is always the same for any given R*Tree. (source: rtree.html, checked-by: tcl/rtreedoc2.test, tcl/test_rtreedoc.c, matrix: context, detail)
The first two constants (SQLITE_MUTEX_FAST and SQLITE_MUTEX_RECURSIVE) cause sqlite3_mutex_alloc() to create a new mutex. (source: c3ref/mutex_alloc.html, matrix: context, detail)
This in-memory database will vanish when the database connection is closed. (source: c3ref/open.html, checked-by: th3/cov1/sharedcache03.test, matrix: context, detail)
for leaf nodes, that there is an entry in the %_rowid table corresponding to the cell's rowid value that points to the correct node. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree25.test, matrix: context, detail)
The sqlite3_value_encoding(X) interface returns one of SQLITE_UTF8, SQLITE_UTF16BE, or SQLITE_UTF16LE according to the current encoding of the value X, assuming that X has type TEXT. (source: c3ref/value_blob.html, matrix: context, detail)
Formats 8 through 10 that specify only a time assume a date of 2000-01-01. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
The added rows contain NULL values in the columns that would normally contain values copied from the left-hand input dataset. (source: lang_select.html, matrix: context, detail)
One can explicitly change out of WAL mode using a pragma such as this: PRAGMA journal_mode=DELETE; (source: wal.html, checked-by: tcl/e_wal.test, matrix: context, detail)
PRAGMA stats; (source: pragma.html, checked-by: th3/cov1/index02.test, matrix: context, detail)
If the filename is an empty string, then a private, temporary on-disk database will be created. (source: c3ref/open.html, matrix: context, detail)
for each dimension, (coord1 <= coord2). (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree25.test, matrix: context, detail)
The built-in functions used to implement LIKE and GLOB must not have been overloaded using the sqlite3_create_function() API. (source: optoverview.html, matrix: context, detail)
This pragma only changes the behavior of the SQL LIKE operator. It does not change the behavior of the sqlite3_strlike() C-language interface, which is always case insensitive. (source: pragma.html, matrix: context, detail)
The SQLITE_TRACE_SIZE_LIMIT compile-time option limits the size of bound parameter expansions. (source: c3ref/expanded_sql.html, checked-by: th3/cov1/main16.test, matrix: context, detail)
The filename for the database to be attached is the value of the expression that occurs before the AS keyword. (source: lang_attach.html, checked-by: th3/req1/attach01.test, matrix: context, detail)
In a compound SELECT statement, only the last or right-most simple SELECT may have an ORDER BY clause. (source: lang_select.html, checked-by: tcl/select4.test, th3/req1/select02.test, matrix: context, detail)
Any new SQL statements that are started after the sqlite3_interrupt() call and before the running statement count reaches zero are interrupted as if they had been running prior to the sqlite3_interrupt() call. (source: c3ref/interrupt.html, matrix: context, detail)
If the result of the evaluating the LIMIT clause cannot be losslessly converted to an integer value, it is an error. (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
zProc may be 0, in which case SQLite will try to come up with an entry point name on its own. It first tries "sqlite3_extension_init". If that does not work, it constructs a name "sqlite3_X_init" where the X is consists of the lower-case equivalent of all ASCII alphabetic characters in the filename from the last "/" to the first following "." and omitting any initial "lib". (source: c3ref/load_extension.html, matrix: context, detail)
Note that it is not necessary for all coordinates in an R*Tree index to be constrained in order for the index search to be efficient. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq03.test, matrix: context, detail)
This option sets the threading mode to Single-thread. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, matrix: context, detail)
A cast of a REAL value into an INTEGER results in the integer between the REAL value and zero that is closest to the REAL value. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
A sequence number assigned to each index for internal tracking purposes. (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma15.test, matrix: context, detail)
The VACUUM INTO command works the same way except that it uses the file named on the INTO clause in place of the temporary database and omits the step of copying the vacuumed database back over top of the original database. (source: lang_vacuum.html, matrix: context, detail)
The cell pointer array consists of K 2-byte integer offsets to the cell contents. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
The name of the database or table or column can be returned as either a UTF-8 or UTF-16 string. (source: c3ref/column_database_name.html, matrix: context, detail)
The multi-argument min() function returns the argument with the minimum value. (source: lang_corefunc.html, checked-by: th3/cov1/func02.test, th3/req1/func03.test, matrix: context, detail)
All journal headers within the same journal must contain the same database page size and sector size. (source: fileformat2.html, matrix: context, detail)
Compute the date and time given a unix timestamp 1092941466, and compensate for your local timezone. SELECT datetime(1092941466, 'unixepoch', 'localtime'); (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
Transactions created using BEGIN...COMMIT do not nest. (source: lang_transaction.html, matrix: context, detail)
The sqlite3_str object is created using sqlite3_str_new(). (source: c3ref/str.html, matrix: context, detail)
The sqlite3_drop_modules(D,L) interface removes all virtual table modules from database connection D except those named on list L. (source: c3ref/drop_modules.html, matrix: context, detail)
Each expression may be optionally followed by an AS clause that determines the name of the result column. (source: lang_returning.html, checked-by: th3/cov1/returning01.test, matrix: context, detail)
Common table expression are not supported for statements inside of triggers. (source: lang_createtrigger.html, matrix: context, detail)
A power failure or program crash or OS crash will cause the outer-most transaction to rollback, undoing all changes that have occurred within that outer transaction, even changes that have supposedly been "committed" by the RELEASE command. (source: lang_savepoint.html, matrix: context, detail)
In order to maintain full backwards compatibility for legacy applications, the URI filename capability is disabled by default. (source: uri.html, checked-by: src/global.c, matrix: context, detail)
If the LIMIT expression evaluates to a negative value, then there is no upper bound on the number of rows returned. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The DBSTAT virtual table is available on all database connections when SQLite is built using the SQLITE_ENABLE_DBSTAT_VTAB compile-time option. (source: dbstat.html, matrix: context, detail)
To change auto-vacuum modes, first use the auto_vacuum pragma to set the new desired mode, then invoke the VACUUM command to reorganize the entire database file. (source: pragma.html, checked-by: th3/req1/pragma07.test, matrix: context, detail)
In SQLite version 3. (source: lang_transaction.html, matrix: context, detail)
If sqlite3_backup_step() cannot obtain a required file-system lock, then the busy-handler function is invoked (if one is specified). (source: c3ref/backup_finish.html, matrix: context, detail)
The memory space used to hold strings and BLOBs is freed automatically. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, th3/req1/column02.test, th3/req1/column03.test, matrix: context, detail)
The English language error message for foreign key DML errors is usually "foreign key mismatch" but can also be "no such table" if the parent table does not exist. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys07.test, matrix: context, detail)
The output is the same as for PRAGMA table_info except that generated and hidden columns are shown rather than being omitted. (source: pragma.html, matrix: context, detail)
This function closes an open BLOB handle. (source: c3ref/blob_close.html, checked-by: tcl/e_blobclose.test, matrix: context, detail)
The fifth argument to the BLOB and string binding interfaces controls or indicates the lifetime of the object referenced by the third parameter. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
Applications can invoke the SQLITE_FCNTL_TEMPFILENAME file-control to have SQLite generate a temporary filename using the same algorithm that is followed to generate temporary filenames for TEMP tables and other internal uses. (source: c3ref/c_fcntl_begin_atomic_write.html, matrix: context, detail)
The iif(X,Y,Z) function returns the value Y if X is true, and Z otherwise. (source: lang_corefunc.html, matrix: context, detail)
The strings returned by sqlite3_sql(P) and sqlite3_normalized_sql(P) are managed by SQLite and are automatically freed when the prepared statement is finalized. (source: c3ref/expanded_sql.html, checked-by: th3/req1/sql01.test, matrix: context, detail)
As each SQL statement runs, the schema version is checked to ensure that the schema has not changed since the SQL statement was prepared. (source: pragma.html, checked-by: src/vdbe.c, th3/req1/pragma28.test, matrix: context, detail)
The callback function registered by sqlite3_profile() is invoked as each SQL statement finishes. (source: c3ref/profile.html, checked-by: th3/cov1/main16.test, matrix: context, detail)
In formats 4, 7, and 10, the fractional seconds value SS.SSS can have one or more digits following the decimal point. Exactly three digits are shown in the examples because only the first three digits are significant to the result, but the input string can have fewer or more than three digits and the date/time functions will still operate correctly. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
If the configured action is "SET NULL", then when a parent key is deleted (for ON DELETE SET NULL) or modified (for ON UPDATE SET NULL), the child key columns of all rows in the child table that mapped to the parent key are set to contain SQL NULL values. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys16.test, matrix: context, detail)
This saves disk I/O but at the expense of database safety and integrity. (source: pragma.html, checked-by: th3/req1/pragma25.test, matrix: context, detail)
A column with affinity BLOB does not prefer one storage class over another and no attempt is made to coerce data from one storage class into another. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
A value of 2 means UTF-16le. (source: fileformat2.html, checked-by: th3/req1/fileformat03.test, matrix: context, detail)
If the 4th parameter to the sqlite3_result_text* interfaces or sqlite3_result_blob is a non-NULL pointer, then SQLite calls that function as the destructor on the text or BLOB result when it has finished using that result. (source: c3ref/result_blob.html, checked-by: th3/req1/result02.test, matrix: context, detail)
For a trigger, the tbl_name column stores the name of the table or view that causes the trigger to fire. (source: fileformat2.html, matrix: context, detail)
(3) The constant, SQLITE_TRANSIENT, may be passed to indicate that the object is to be copied prior to the return from sqlite3_bind_*(). (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
Each term of the ORDER BY clause is processed separately and may be matched against result columns from different SELECT statements in the compound. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
If P<=X then all P bytes of payload are stored directly on the btree page without overflow. (source: fileformat2.html, matrix: context, detail)
This routine returns SQLITE_OK if shared cache was enabled or disabled successfully. An error code is returned otherwise. (source: c3ref/enable_shared_cache.html, matrix: context, detail)
The REPLACE command is an alias for the "INSERT OR REPLACE" variant of the INSERT command. (source: lang_replace.html, checked-by: slt/slt_lang_replace.test, tcl/e_insert.test, th3/req1/replace01.test, matrix: context, detail)
If the SELECT statement is a simple SELECT, then an ORDER BY may contain any arbitrary expressions. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
In an ordinary rowid table, the index entry always ends with the rowid even if the INTEGER PRIMARY KEY column is one of the columns being indexed. (source: fileformat2.html, checked-by: th3/req1/fileformat04.test, matrix: context, detail)
Application code can delete all entries from the sqlite_sequence table, but application code cannot drop the sqlite_sequence table. (source: fileformat2.html, matrix: context, detail)
If the Y argument is omitted or negative, it is taken to be 0. (source: lang_corefunc.html, checked-by: th3/cov1/func02.test, matrix: context, detail)
If this function needs to obtain extra database locks before dirty pages can be flushed to disk, it does so. (source: c3ref/db_cacheflush.html, matrix: context, detail)
Each new VFS becomes the default VFS if the makeDflt flag is set. (source: c3ref/vfs_find.html, checked-by: th3/req1/vfs01.test, matrix: context, detail)
The sqlite3.h header file defines C-preprocessor macros SQLITE_UTF8 as 1, SQLITE_UTF16LE as 2, and SQLITE_UTF16BE as 3, to use in place of the numeric codes for the text encoding. (source: fileformat2.html, checked-by: th3/cov1/main01.test, matrix: context, detail)
The sign(X) function returns -1, 0, or +1 if the argument X is a numeric value that is negative, zero, or positive, respectively. (source: lang_corefunc.html, matrix: context, detail)
For the index above and WHERE clause like this: ... WHERE a=5 AND b IN (1,2,3) AND c IS NULL AND d='hello' The first four columns a, b, c, and d of the index would be usable since those four columns form a prefix of the index and are all bound by equality constraints. (source: optoverview.html, matrix: context, detail)
The languageid option causes the FTS4 table to have an additional hidden integer column that identifies the language of the text contained in each row. (source: fts3.html, matrix: context, detail)
SQLITE_DBSTATUS_CACHE_USED_SHARED This parameter is similar to DBSTATUS_CACHE_USED, except that if a pager cache is shared between two or more connections the bytes of heap memory used by that pager cache is divided evenly between the attached connections. (source: c3ref/c_dbstatus_options.html, matrix: context, detail)
The SQLITE_CONFIG_LOOKASIDE option takes two arguments that determine the default size of lookaside memory on each database connection. The first argument is the size of each lookaside buffer slot and the second is the number of slots allocated to each database connection. (source: c3ref/c_config_covering_index_scan.html, checked-by: th3/th3main.c, matrix: context, detail)
Equals can be either = or ==. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The database name is "main" for the main database, "temp" for the temporary database, or the name specified after the AS keyword in an ATTACH statement for an attached database. (source: c3ref/backup_finish.html, checked-by: th3/req1/backup02.test, matrix: context, detail)
Rowid values may be modified using an UPDATE statement in the same way as any other column value can, either using one of the built-in aliases ("rowid", "oid" or "_rowid_") or by using an alias created by an integer primary key. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
In the legacy interface, the return value will be either SQLITE_BUSY, SQLITE_DONE, SQLITE_ROW, SQLITE_ERROR, or SQLITE_MISUSE. (source: c3ref/step.html, matrix: context, detail)
If an element of a result row is NULL then the corresponding string pointer for the sqlite3_exec() callback is a NULL pointer. (source: c3ref/exec.html, checked-by: th3/req1/exec01.test, matrix: context, detail)
For CURRENT_DATE, "YYYY-MM-DD". (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
In a compound SELECT, the LIMIT clause applies to the entire compound, not just the final SELECT. (source: lang_select.html, checked-by: tcl/limit.test, th3/req1/select02.test, matrix: context, detail)
If you ever delete rows or if you ever create a row with the maximum possible ROWID, then ROWIDs from previously deleted rows might be reused when creating new rows and newly created ROWIDs might not be in strictly ascending order. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
Compute the current date. SELECT date(); (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
This private database will be automatically deleted as soon as the database connection is closed. (source: c3ref/open.html, matrix: context, detail)
When running in shared-cache mode, a database operation may fail with an SQLITE_LOCKED error if the required locks on the shared-cache or individual tables within the shared-cache cannot be obtained. (source: c3ref/unlock_notify.html, matrix: context, detail)
The sqlite3_bind_pointer(S,I,P,T,D) routine causes the I-th parameter in prepared statement S to have an SQL value of NULL, but to also be associated with the pointer P of type T. (source: c3ref/bind_blob.html, checked-by: th3/cov1/carray01.test, matrix: context, detail)
If the input text contains no SQL (if the input is an empty string or a comment) then *ppStmt is set to NULL. (source: c3ref/prepare.html, checked-by: th3/req1/prepare01.test, matrix: context, detail)
If the PRIMARY KEY of a WITHOUT ROWID tables uses the same columns with the same collating sequence more than once, then the second and subsequent occurrences of that column in the PRIMARY KEY definition are ignored. (source: fileformat2.html, matrix: context, detail)
For example, if a table column has a type of "INTEGER", then SQLite tries to convert anything inserted into that column into an integer. (source: stricttables.html, checked-by: th3/req1/strictreq01.test, matrix: context, detail)
If the flags parameter is zero, the BLOB is opened for read-only access. (source: c3ref/blob_open.html, checked-by: tcl/e_blobopen.test, th3/cov1/vdbeblob01.test, matrix: context, detail)
When temp_store is MEMORY (2) temporary tables and indices are kept as if they were in pure in-memory databases. (source: pragma.html, matrix: context, detail)
However, changing from "none" to "full" or "incremental" can only occur when the database is new (no tables have yet been created) or by running the VACUUM command. (source: pragma.html, checked-by: th3/req1/pragma07.test, matrix: context, detail)
Only a single authorizer can be in place on a database connection at a time. Each call to sqlite3_set_authorizer overrides the previous call. (source: c3ref/set_authorizer.html, checked-by: tcl/auth.test, th3/cov1/auth01.test, matrix: context, detail)
The M parameter must be a valid checkpoint mode: (source: c3ref/wal_checkpoint_v2.html, checked-by: src/main.c, tcl/e_walckpt.test, matrix: context, detail)
SAVEPOINTs are a method of creating transactions, similar to BEGIN and COMMIT, except that the SAVEPOINT and RELEASE commands are named and may be nested. (source: lang_savepoint.html, matrix: context, detail)
To do so, a foreign key definition may be added by modifying the declaration of the track table to the following: CREATE TABLE track( trackid INTEGER, trackname TEXT, trackartist INTEGER, FOREIGN KEY(trackartist) REFERENCES artist(artistid) ); (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys01.test, matrix: context, detail)
If the HAVING clause is an aggregate expression, it is evaluated across all rows in the group. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
If no collating function is explicitly defined, then the collating function defaults to BINARY. (source: datatype3.html, checked-by: th3/req1/datatype3_09.test, matrix: context, detail)
A call to sqlite3_interrupt(D) that occurs when there are no running SQL statements is a no-op and has no effect on SQL statements that are started after the sqlite3_interrupt() call returns. (source: c3ref/interrupt.html, matrix: context, detail)
One can add a VIRTUAL column, however. (source: gencol.html, matrix: context, detail)
To cast a BLOB value to TEXT, the sequence of bytes that make up the BLOB is interpreted as text encoded using the database encoding. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
This statement detaches an additional database connection previously attached using the ATTACH statement. (source: lang_detach.html, matrix: context, detail)
Collation names that compare equal according to sqlite3_strnicmp() are considered to be the same name. (source: c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test, matrix: context, detail)
The sqlite3_close() and sqlite3_close_v2() routines are destructors for the sqlite3 object. (source: c3ref/close.html, checked-by: th3/th3util.c, matrix: context, detail)
A single zero-byte separates the xOpen filename argument from the key of the first query parameters, each key and value, and each subsequent key from the prior value. (source: uri.html, matrix: context, detail)
When comparing values, if the parent key column has an affinity, then that affinity is applied to the child key value before the comparison is performed. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys03.test, matrix: context, detail)
SQLite strives to be flexible regarding the datatype of the content that it stores. (source: stricttables.html, checked-by: th3/req1/strictreq01.test, matrix: context, detail)
The "RESTRICT" action means that the application is prohibited from deleting (for ON DELETE RESTRICT) or modifying (for ON UPDATE RESTRICT) a parent key when there exists one or more child keys mapped to it. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys16.test, matrix: context, detail)
If the X parameter to sqlite3_realloc(X,N) is a NULL pointer then its behavior is identical to calling sqlite3_malloc(N). (source: c3ref/free.html, checked-by: src/malloc.c, th3/req1/malloc02.test, matrix: context, detail)
The first parameter "n" is the total size of the buffer, including space for the zero terminator. (source: c3ref/mprintf.html, checked-by: th3/req1/malloc01.test, matrix: context, detail)
NOT (source: lang_expr.html, matrix: context, detail)
The text in the sqlite_schema.sql column is a copy of the original CREATE statement text that created the object, except normalized as described above and as modified by subsequent ALTER TABLE statements. (source: fileformat2.html, matrix: context, detail)
strict: 1 if the table is a STRICT table or 0 if it is not. (source: pragma.html, checked-by: th3/cov1/pragma30.test, matrix: context, detail)
When the callback returns SQLITE_DENY, the sqlite3_prepare_v2() or equivalent call that triggered the authorizer will fail with an error message explaining that access is denied. (source: c3ref/set_authorizer.html, checked-by: tcl/auth.test, th3/cov1/auth01.test, matrix: context, detail)
If the subquery is the right operand of a LEFT JOIN then the subquery may not be a join, and the FROM clause of the subquery may not contain a virtual table, and the outer query may not be an aggregate. (source: optoverview.html, matrix: context, detail)
The third argument is the number of slots. (source: c3ref/c_dbconfig_defensive.html, checked-by: src/main.c, th3/req1/dbconfig01.test, matrix: context, detail)
The built-in iif(x,y,z) SQL function is logically equivalent to "CASE WHEN x THEN y ELSE z END". (source: lang_expr.html, matrix: context, detail)
Or, if the dataset contains zero rows, then each non-aggregate expression is evaluated against a row consisting entirely of NULL values. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The LIKE operator is case sensitive by default for unicode characters that are beyond the ASCII range. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
Tables in an attached database can be referred to using the syntax schema-name.table-name. (source: lang_attach.html, checked-by: th3/req1/attach01.test, matrix: context, detail)
In this case all scalar expressions are evaluated before any assignments are made. (source: lang_update.html, checked-by: slt/slt_lang_update.test, tcl/e_update.test, matrix: context, detail)
If V is a NULL pointer then sqlite3_value_free(V) is a harmless no-op. (source: c3ref/value_dup.html, matrix: context, detail)
The schema of the sqlite_stat4 table is as follows: CREATE TABLE sqlite_stat4(tbl,idx,nEq,nLt,nDLt,sample); (source: fileformat2.html, matrix: context, detail)
The two syntaxes yield identical results. (source: pragma.html, checked-by: th3/req1/pragma01.test, matrix: context, detail)
The SQLITE_CONFIG_WIN32_HEAPSIZE option is only available if SQLite is compiled for Windows with the SQLITE_WIN32_MALLOC pre-processor macro defined. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, matrix: context, detail)
Any number of levels of indirection are allowed. (source: c3ref/unlock_notify.html, matrix: context, detail)
If a ROLLBACK operation occurs on the same database connection as a pending read or write, then the pending read or write may fail with an SQLITE_ABORT or SQLITE_ABORT_ROLLBACK error. (source: rescode.html, checked-by: th3/cov1/vdbe14.test, matrix: context, detail)
An attempt to change the journal_mode of an in-memory database to any setting other than MEMORY or OFF is ignored. (source: pragma.html, checked-by: th3/req1/pragma23.test, matrix: context, detail)
Information about the ORDER BY clause is stored in aOrderBy[]. (source: c3ref/index_info.html, matrix: context, detail)
SQLite uses dynamic run-time typing. (source: c3ref/column_decltype.html, matrix: context, detail)
The sqlite_compileoption_get() SQL function is a wrapper around the sqlite3_compileoption_get() C/C++ function. (source: lang_corefunc.html, checked-by: src/func.c, th3/cov1/ctime02.test, matrix: context, detail)
This routine returns false if there is any possibility that the statement might change the database file. (source: c3ref/stmt_readonly.html, checked-by: tcl/capi3d.test, th3/cov1/vdbeapi14.test, matrix: context, detail)
If the NATURAL keyword is in the join-operator then an implicit USING clause is added to the join-constraints. The implicit USING clause contains each of the column names that appear in both the left and right-hand input datasets. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
For example, if a prepared statement is created using the SQL text "SELECT $abc,:xyz" and if parameter $abc is bound to integer 2345 and parameter :xyz is unbound, then sqlite3_sql() will return the original string, "SELECT $abc,:xyz" but sqlite3_expanded_sql() will return "SELECT 2345,NULL". (source: c3ref/expanded_sql.html, checked-by: th3/req1/sql01.test, matrix: context, detail)
Once removed, the trigger definition is no longer present in the sqlite_schema (or sqlite_temp_schema) table and is not fired by any subsequent INSERT, UPDATE or DELETE statements. (source: lang_droptrigger.html, checked-by: tcl/e_droptrigger.test, matrix: context, detail)
If two or more COLLATE operator subexpressions appear anywhere in a comparison, the left most explicit collating function is used regardless of how deeply the COLLATE operators are nested in the expression and regardless of how the expression is parenthesized. (source: datatype3.html, checked-by: th3/req1/datatype3_09.test, matrix: context, detail)
The returned string pointer is valid until either the prepared statement is destroyed by sqlite3_finalize() or until the statement is automatically reprepared by the first call to sqlite3_step() for a particular run or until the next call to sqlite3_column_name() or sqlite3_column_name16() on the same column. (source: c3ref/column_name.html, matrix: context, detail)
The schema_version pragma will get or set the value of the schema-version integer at offset 40 in the database header. (source: pragma.html, checked-by: th3/req1/pragma28.test, matrix: context, detail)
SQLITE_STATUS_MEMORY_USED This parameter is the current amount of memory checked out using sqlite3_malloc(), either directly or indirectly. The figure includes calls made to sqlite3_malloc() by the application and internal memory usage by the SQLite library. Auxiliary page-cache memory controlled by SQLITE_CONFIG_PAGECACHE is not included in this parameter. The amount returned is the sum of the allocation sizes as reported by the xSize method in sqlite3_mem_methods. (source: c3ref/c_status_malloc_count.html, matrix: context, detail)
You can then access the ROWID using any of four different names, the original three names described above or the name given to the INTEGER PRIMARY KEY column. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
The SQLITE_CONFIG_MUTEX option takes a single argument which is a pointer to an instance of the sqlite3_mutex_methods structure. The argument specifies alternative low-level mutex routines to be used in place the mutex routines built into SQLite. (source: c3ref/c_config_covering_index_scan.html, checked-by: th3/th3main.c, matrix: context, detail)
The sqlite_sequence. (source: fileformat2.html, matrix: context, detail)
In shared cache mode, attempting to attach the same database file more than once results in an error. (source: lang_detach.html, checked-by: tcl/shared7.test, th3/cov1/attach07.test, matrix: context, detail)
Hence, the string '3.0e+5' is stored in a column with NUMERIC affinity as the integer 300000, not as the floating point value 300000.0. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
The "temp" database (in which TEMP tables and indices are stored) and in-memory databases always uses exclusive locking mode. (source: pragma.html, checked-by: th3/req1/pragma04.test, matrix: context, detail)
If an error occurs, that fact is recorded in the sqlite3_str object and can be recovered by a subsequent call to sqlite3_str_errcode(X). (source: c3ref/str_append.html, matrix: context, detail)
If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the database file will very likely go corrupt. (source: pragma.html, checked-by: th3/req1/pragma25.test, matrix: context, detail)
If no algorithm is specified anywhere, the ABORT algorithm is used. (source: lang_conflict.html, checked-by: th3/req1/conflict03.test, matrix: context, detail)
So the following query could use the partial index: SELECT * FROM tab2 WHERE b=456 AND c<>0; -- uses partial index (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
The index for named parameters can be looked up using the sqlite3_bind_parameter_index() API if desired. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
Then, under the usual mode of handling IN operators, SQLite generates bytecode that invokes the xFilter() method once for each value on the right-hand side of the IN operator. (source: c3ref/vtab_in.html, matrix: context, detail)
If the query optimizer is unable to use the index specified by the INDEXED BY clause, then the query will fail with an error. (source: lang_indexedby.html, checked-by: tcl/indexedby.test, matrix: context, detail)
Views are read-only in SQLite. (source: lang_createview.html, checked-by: th3/req1/view01.test, matrix: context, detail)
The first argument to the sqlite3_bind_*() routines is always a pointer to the sqlite3_stmt object returned from sqlite3_prepare_v2() or its variants. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
(2) The special constant, SQLITE_STATIC, may be passsed to indicate that the application remains responsible for disposing of the object. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
If the time-value is numeric (the DDDDDDDDDD format) then the 'auto' modifier causes the time-value to interpreted as either a julian day number or a unix timestamp, depending on its magnitude. (source: lang_datefunc.html, checked-by: tcl/date3.test, matrix: context, detail)
Any callback set by a previous call to sqlite3_commit_hook() for the same database connection is overridden. (source: c3ref/commit_hook.html, matrix: context, detail)
The sqlite3_create_collation_v2() works like sqlite3_create_collation() with the addition that the xDestroy callback is invoked on pArg when the collating function is deleted. (source: c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test, matrix: context, detail)
The object returned by sqlite3_column_value() is an unprotected sqlite3_value object. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
If SQLite is compiled with the SQLITE_ENABLE_STAT4 option, then additional histogram data is collected and stored in sqlite_stat4. (source: lang_analyze.html, checked-by: th3/req1/analyze01.test, matrix: context, detail)
The sqlite3_backup_remaining() routine returns the number of pages still to be backed up at the conclusion of the most recent sqlite3_backup_step(). (source: c3ref/backup_finish.html, matrix: context, detail)
It is not an error to create a table that has the same name as an existing trigger. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
If the integrity_check pragma finds problems, strings are returned (as multiple rows with a single column per row) which describe the problems. (source: pragma.html, checked-by: th3/req1/integrityck01.test, matrix: context, detail)
CREATE VIRTUAL TABLE demo_index2 USING rtree( id, -- Integer primary key minX, maxX, -- Minimum and maximum X coordinate minY, maxY, -- Minimum and maximum Y coordinate +objname TEXT, -- name of the object +objtype TEXT, -- object type +boundary BLOB -- detailed boundary of object ); (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree18.test, matrix: context, detail)
In the DELETE mode, the rollback journal is deleted at the conclusion of each transaction. (source: pragma.html, checked-by: th3/req1/pragma24.test, matrix: context, detail)
A WAL always grows from beginning toward the end. (source: fileformat2.html, matrix: context, detail)
When synchronous is NORMAL (1), the SQLite database engine will still sync at the most critical moments, but less often than in FULL mode. (source: pragma.html, matrix: context, detail)
And you can UPDATE, DELETE, INSERT or even DROP the shadow tables, though doing so will corrupt your R*Tree index. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq02.test, matrix: context, detail)
SQLite only understands the hexadecimal integer notation when it appears in the SQL statement text, not when it appears as part of the content of the database. (source: lang_expr.html, checked-by: th3/req1/expr01.test, matrix: context, detail)
If the ANALYZE command is run in order to gather statistics, a different choice might be made if the statistics indicate that the alternative is likely to run faster. (source: optoverview.html, matrix: context, detail)
PRAGMA encoding; PRAGMA encoding = 'UTF-8'; PRAGMA encoding = 'UTF-16'; PRAGMA encoding = 'UTF-16le'; PRAGMA encoding = 'UTF-16be'; (source: pragma.html, checked-by: th3/req1/pragma16.test, matrix: context, detail)
For the index above and WHERE clause like this: ... WHERE a=5 OR b IN (1,2,3) OR c NOT NULL OR d='hello' The index is not usable because the WHERE clause terms are connected by OR instead of AND. (source: optoverview.html, matrix: context, detail)
The key to an index b-tree is a record composed of the columns that are being indexed followed by the key of the corresponding table row. (source: fileformat2.html, matrix: context, detail)
The sqlite_stat3.sample column holds the value of the left-most field of an index identified by sqlite_stat3.idx and sqlite_stat3.tbl. (source: fileformat2.html, matrix: context, detail)
The table name must be unqualified for INSERT statements that occur within CREATE TRIGGER statements. (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
If an INSERT statement attempts to insert a blob value, or a string or real value that cannot be losslessly converted to an integer into an integer primary key or rowid column, a "datatype mismatch" error occurs and the statement is aborted. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
Running VACUUM ensures that each table and index is largely stored contiguously within the database file. (source: lang_vacuum.html, checked-by: tcl/e_vacuum.test, matrix: context, detail)
Otherwise, if the expression sorted by an ORDER BY clause is a column, then the collating sequence of the column is used to determine sort order. (source: datatype3.html, checked-by: th3/req1/datatype3_10.test, matrix: context, detail)
If a deferred foreign key constraint is violated, then an error is reported when the user attempts to commit the transaction if the foreign key constraint violations still exist at that point. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys22.test, matrix: context, detail)
In particular, if one wants to know all "children" of a particular purchase order "?1", the query would be: SELECT po_num FROM purchaseorder WHERE parent_po=?1; (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
The journal_size_limit pragma may be used to limit the size of rollback-journal and WAL files left in the file-system after transactions or checkpoints. (source: pragma.html, checked-by: th3/req1/pragma26.test, matrix: context, detail)
All of the examples create a WITHOUT ROWID table with two PRIMARY KEY columns, "a" and "c", in that order, followed by two data columns "b" and "d", also in that order. (source: fileformat2.html, matrix: context, detail)
If the right operand of an IN or NOT IN operator is a list of values, each of those values must be scalars and the left expression must also be a scalar. (source: lang_expr.html, checked-by: th3/cov1/rowvalue06.test, matrix: context, detail)
But extensions can override the match() function with more helpful logic. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
Two or more MATCH operators are allowed in the same WHERE clause, as long as they are connected by AND operators. (source: rtree.html, checked-by: th3/cov1/rtree04.test, matrix: context, detail)
Similarly, if the prefix integer is less than -9223372036854775808 then the result of the cast is exactly -9223372036854775808. (source: lang_expr.html, checked-by: tcl/cast.test, th3/cov1/cast01.test, matrix: context, detail)
This pragma invokes the sqlite3_hard_heap_limit64() interface with the argument N, if N is specified and N is a positive integer that is less than the current hard heap limit. (source: pragma.html, matrix: context, detail)
Each page record stores a copy of the content of a page from the database file before it was changed. (source: fileformat2.html, matrix: context, detail)
Unless the table to which the trigger is attached is in the TEMP database, the table being updated by the trigger program must reside in the same database as it. (source: lang_update.html, checked-by: tcl/e_update.test, matrix: context, detail)
Unbound parameters are interpreted as NULL. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
If X is NULL then length(X) is NULL. (source: lang_corefunc.html, checked-by: th3/cov1/func01.test, matrix: context, detail)
As well as SQLITE_OK and SQLITE_DONE, a call to sqlite3_backup_step() may return SQLITE_READONLY, SQLITE_NOMEM, SQLITE_BUSY, SQLITE_LOCKED, or an SQLITE_IOERR_XXX extended error code. (source: c3ref/backup_finish.html, matrix: context, detail)
The fifth argument, xCompare, is a pointer to the collating function. (source: c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test, matrix: context, detail)
And R-Tree can appear to read and write at the same time in some circumstances, if it can figure out how to reliably run the query to completion before starting the update. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree22.test, matrix: context, detail)
The second pointer map page will be on page J+3 and that ptrmap page will provide back pointer information for pages J+4 through 2*J+3 inclusive. (source: fileformat2.html, matrix: context, detail)
For the right-most column of an index that is used, there can be up to two inequalities that must sandwich the allowed values of the column between two extremes. (source: optoverview.html, matrix: context, detail)
A single WAL file can be reused multiple times. (source: fileformat2.html, matrix: context, detail)
In an RTREE_I32 virtual table, all columns have type affinity of INTEGER. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree17.test, matrix: context, detail)
Datatype conversions in comparisons of the form "x IN (SELECT y ...)" are handled as if the comparison were really "x=y". (source: datatype3.html, checked-by: th3/req1/datatype3_05.test, matrix: context, detail)
type: the type of object - one of "table", "view", "shadow" (for shadow tables), or "virtual" for virtual tables. (source: pragma.html, checked-by: th3/cov1/pragma30.test, matrix: context, detail)
If the busy-handler returns non-zero before the lock is available, then SQLITE_BUSY is returned to the caller. (source: c3ref/backup_finish.html, matrix: context, detail)
The cache query parameter determines if the new database is opened using shared cache mode or with a private cache. (source: uri.html, matrix: context, detail)
If the case_sensitive_like pragma is enabled as follows: PRAGMA case_sensitive_like=ON; Then the LIKE operator pays attention to case and the example above would evaluate to false. (source: optoverview.html, matrix: context, detail)
In this case, if both operands are NULL, then the IS operator evaluates to 1 (true) and the IS NOT operator evaluates to 0 (false). (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
There is a limit, set using sqlite3_limit() and SQLITE_LIMIT_ATTACHED, to the number of databases that can be simultaneously attached to a single database connection. (source: lang_attach.html, checked-by: th3/req1/attach01.test, matrix: context, detail)
The fourth parameter is an arbitrary client data pointer that is passed through into the xCreate and xConnect methods of the virtual table module when a new virtual table is be being created or reinitialized. (source: c3ref/create_module.html, matrix: context, detail)
If an INSERT or UPDATE statement attempts to modify the table content so that two or more rows have identical primary key values, that is a constraint violation. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The xMutexEnd() interface is invoked exactly once for each call to sqlite3_shutdown(). (source: c3ref/mutex_methods.html, matrix: context, detail)
The strftime() routine returns the date formatted according to the format string specified as the first argument. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
sqlite> CREATE INDEX i3 ON t1(b); sqlite> EXPLAIN QUERY PLAN SELECT * FROM t1 WHERE a=1 OR b=2; QUERY PLAN `--MULTI-INDEX OR |--SEARCH t1 USING COVERING INDEX i2 (a=?) `--SEARCH t1 USING INDEX i3 (b=?) (source: eqp.html, matrix: context, detail)
If V is a pointer value, then the result of sqlite3_value_dup(V) is a NULL value. (source: c3ref/value_dup.html, matrix: context, detail)
Each entry in the ex25acde index consists of only the columns a, c, d, and e, in that order. (source: fileformat2.html, checked-by: th3/req1/fileformat04.test, matrix: context, detail)
If the result is a numeric value then sqlite3_column_bytes() uses sqlite3_snprintf() to convert that value to a UTF-8 string and returns the number of bytes in that string. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
Following the size varint are one or more additional varints, one per column. (source: fileformat2.html, checked-by: src/vdbe.c, th3/req1/fileformat02.test, matrix: context, detail)
The rank of the column within the table being indexed, or -1 if the index-column is the rowid of the table being indexed and -2 if the index is on an expression. (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma15x.test, matrix: context, detail)
Each ORDER BY expression may be optionally followed by one of the keywords ASC (smaller values are returned first) or DESC (larger values are returned first). (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The SQLITE_CONFIG_HEAP option is only available if SQLite is compiled with either SQLITE_ENABLE_MEMSYS3 or SQLITE_ENABLE_MEMSYS5 and returns SQLITE_ERROR if invoked otherwise. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, th3/th3oom.c, matrix: context, detail)
Each modifier is a transformation that is applied to the time value to its left. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
The sqlite3_snapshot_open() interface returns SQLITE_OK on success or an appropriate error code if it fails. (source: c3ref/snapshot_open.html, matrix: context, detail)
The largest Fibonacci weight occurs on the first element of the sequence being summed. (source: fileformat2.html, matrix: context, detail)
The sqlite3_value_free(V) interface frees an sqlite3_value object previously obtained from sqlite3_value_dup(). (source: c3ref/value_dup.html, matrix: context, detail)
When case_sensitive_like is disabled, the default LIKE behavior is expressed. (source: pragma.html, checked-by: th3/req1/pragma10.test, matrix: context, detail)
If there are subqueries in the RETURNING clause, those subqueries may contain aggregates and window functions, but aggregates cannot occur at the top level. (source: lang_returning.html, checked-by: th3/cov1/returning01.test, matrix: context, detail)
If the UNIQUE keyword appears between CREATE and INDEX then duplicate index entries are not allowed. (source: lang_createindex.html, checked-by: th3/req1/createidx01.test, matrix: context, detail)
A column name can be any of the names defined in the CREATE TABLE statement or one of the following special identifiers: "ROWID", "OID", or "_ROWID_". (source: lang_expr.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
Note that the unary + operator also removes type affinity from an expression, and in some cases this can cause subtle changes in the meaning of an expression. (source: optoverview.html, matrix: context, detail)
If the argument N is negative then no change is made to the heap limit. (source: c3ref/hard_heap_limit64.html, checked-by: th3/req1/softheaplimit01.test, matrix: context, detail)
This option is used to change the name of the "main" database schema. (source: c3ref/c_dbconfig_defensive.html, checked-by: src/main.c, th3/cov1/maindbname01.test, matrix: context, detail)
These routines provide a means to determine the database, table, and table column that is the origin of a particular result column in SELECT statement. (source: c3ref/column_database_name.html, matrix: context, detail)
If the URI contains an authority, then it must be either an empty string or the string "localhost". (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
Freeblocks are always connected in order of increasing offset. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
The collating sequence used for expressions of the form "x IN (y, z, ...)" is the collating sequence of x. (source: datatype3.html, checked-by: th3/req1/datatype3_10.test, matrix: context, detail)
In an RTREE virtual table, the first column always has a type affinity of INTEGER and all other data columns have a type affinity of REAL. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree17.test, matrix: context, detail)
If the function is registered using the sqlite3_collation_needed() API, then it is passed the names of undefined collation sequences as strings encoded in UTF-8. (source: c3ref/collation_needed.html, matrix: context, detail)
The module-name must be registered with the SQLite database connection using sqlite3_create_module() or sqlite3_create_module_v2() prior to issuing the CREATE VIRTUAL TABLE statement. (source: lang_createvtab.html, matrix: context, detail)
Each of the named columns of the new row is populated with the results of evaluating the corresponding VALUES expression. (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
Any of these arguments may be NULL, in which case the corresponding element of metadata is omitted. (source: c3ref/table_column_metadata.html, checked-by: th3/cov1/metadata01.test, matrix: context, detail)
If the declared type contains the string "INT" then it is assigned INTEGER affinity. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
If the source database is modified by an external process or via a database connection other than the one being used by the backup operation, then the backup will be automatically restarted by the next call to sqlite3_backup_step(). (source: c3ref/backup_finish.html, matrix: context, detail)
To overcome this problem, SQLite attempts to flatten subqueries in the FROM clause of a SELECT. (source: optoverview.html, matrix: context, detail)
A single quote within the string can be encoded by putting two single quotes in a row - as in Pascal. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The table might look something like this: CREATE TABLE person( person_id INTEGER PRIMARY KEY, team_id INTEGER REFERENCES team, is_team_leader BOOLEAN, -- other fields elided ); (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
The one-byte integer at offset 7 gives the number of fragmented free bytes within the cell content area. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
The first time the database is read in EXCLUSIVE mode, a shared lock is obtained and held. (source: pragma.html, checked-by: th3/req1/pragma04.test, matrix: context, detail)
If the node has more children then it is returned to the priority queue. Otherwise it is discarded. (source: rtree.html, checked-by: tcl/rtreedoc3.test, matrix: context, detail)
The "sqlite_autoindex_TABLE_N" name is never allocated for an INTEGER PRIMARY KEY, either in rowid tables or WITHOUT ROWID tables. (source: fileformat2.html, matrix: context, detail)
A nested savepoint transaction may be RELEASEd while the database is in a state that does not satisfy a deferred foreign key constraint. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys15.test, matrix: context, detail)
The sqlite_schema.rootpage column stores the page number of the root b-tree page for tables and indexes. (source: fileformat2.html, matrix: context, detail)
The default behavior is for mutexes to be enabled. (source: c3ref/threadsafe.html, checked-by: src/sqliteInt.h, matrix: context, detail)
Assuming the library is compiled with foreign key constraints enabled, it must still be enabled by the application at runtime, using the PRAGMA foreign_keys command. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys04.test, matrix: context, detail)
For numeric values outside of the range of valid julian day numbers, but within the range of -210866760000 to 253402300799, the 'auto' modifier causes the value to be interpreted as a unix timestamp. (source: lang_datefunc.html, checked-by: tcl/date3.test, matrix: context, detail)
A value of 5 (0x05) means the page is an interior table b-tree page. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
The expression "CAST(4.0 AS INT)" returns an integer 4, whereas "CAST(4.0 AS NUMERIC)" leaves the value as a floating-point 4.0. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
An explicit DEFAULT clause may specify that the default value is NULL, a string constant, a blob constant, a signed-number, or any constant expression enclosed in parentheses. A default value may also be one of the special case-independent keywords CURRENT_TIME, CURRENT_DATE or CURRENT_TIMESTAMP. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
For example, to find all zipcode bounding boxes that overlap with the 28269 zipcode: SELECT A.id FROM demo_index AS A, demo_index AS B WHERE A.maxX>=B.minX AND A.minX<=B.maxX AND A.maxY>=B.minY AND A.minY<=B.maxY AND B.id=28269; (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq03.test, matrix: context, detail)
The hard_heap_limit pragma always returns the same integer that would be returned by the sqlite3_hard_heap_limit64(-1) C-language function. (source: pragma.html, matrix: context, detail)
The SQLITE_FCNTL_VFSNAME opcode can be used to obtain the names of all VFSes in the VFS stack. (source: c3ref/c_fcntl_begin_atomic_write.html, matrix: context, detail)
The three special identifiers describe the unique integer key (the rowid) associated with every row of every table and so are not available on WITHOUT ROWID tables. (source: lang_expr.html, checked-by: th3/req1/expr02.test, matrix: context, detail)
If the result is NULL, then sqlite3_column_bytes() returns zero. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
OR (source: lang_expr.html, matrix: context, detail)
The RELEASE command is like a COMMIT for a SAVEPOINT. (source: lang_savepoint.html, matrix: context, detail)
Shared cache is disabled by default. (source: c3ref/enable_shared_cache.html, matrix: context, detail)
Whitespace and comments that follow the final semicolon are ignored. (source: c3ref/complete.html, checked-by: th3/cov1/complete01.test, matrix: context, detail)
If a schema name is given as the argument, then all tables and indices in that one database are analyzed. (source: lang_analyze.html, checked-by: th3/req1/analyze01.test, matrix: context, detail)
Transaction control statements such as BEGIN, COMMIT, ROLLBACK, SAVEPOINT, and RELEASE cause sqlite3_stmt_readonly() to return true, since the statements themselves do not actually modify the database but rather they control the timing of when other statements modify the database. (source: c3ref/stmt_readonly.html, checked-by: tcl/capi3d.test, th3/cov1/vdbeapi14.test, matrix: context, detail)
The "%" in the name of each shadow table is replaced by the name of the R*Tree virtual table. So, if the name of the R*Tree table is "xyz" then the three shadow tables would be "xyz_node", "xyz_parent", and "xyz_rowid". (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq02.test, matrix: context, detail)
If the specified view cannot be found and an IF EXISTS clause is present in the DROP VIEW statement, then the statement is a no-op. (source: lang_dropview.html, checked-by: tcl/e_dropview.test, th3/cov1/build13.test, matrix: context, detail)
These routines return the name assigned to a particular column in the result set of a SELECT statement. (source: c3ref/column_name.html, matrix: context, detail)
The ORDER BY clause on a DELETE statement is used only to determine which rows fall within the LIMIT. The order in which rows are deleted is arbitrary and is not influenced by the ORDER BY clause. (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
The cache_spill pragma enables or disables the ability of the pager to spill dirty cache pages to the database file in the middle of a transaction. (source: pragma.html, checked-by: tcl/pragma2.test, matrix: context, detail)
The result of the CASE expression is the evaluation of the THEN expression that corresponds to the first WHEN expression for which the comparison is true. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If the largest ROWID is equal to the largest possible integer (9223372036854775807) then the database engine starts picking positive candidate ROWIDs at random until it finds one that is not previously used. (source: autoinc.html, checked-by: src/vdbe.c, th3/cov1/vdbe23.test, th3/req1/autoinc01.test, matrix: context, detail)
The format for CURRENT_TIMESTAMP is "YYYY-MM-DD HH:MM:SS". (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
Hence, the content encoding for a WITHOUT ROWID table is the same as the content encoding for an ordinary rowid table, except that the order of the columns is rearranged so that PRIMARY KEY columns come first, and the content is used as the key in an index b-tree rather than as the data in a table b-tree. (source: fileformat2.html, matrix: context, detail)
Instead of cancelling the transaction, the ROLLBACK TO command restarts the transaction again at the beginning. (source: lang_savepoint.html, matrix: context, detail)
The result of total() is always a floating point value. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
Returns the size in bytes of the BLOB accessible via the successfully opened BLOB handle in its only argument. (source: c3ref/blob_bytes.html, checked-by: tcl/e_blobbytes.test, th3/cov1/vdbeblob01.test, matrix: context, detail)
SQLITE_LIMIT_COMPOUND_SELECT The maximum number of terms in a compound SELECT statement. (source: c3ref/c_limit_attached.html, checked-by: th3/req1/limit02.test, matrix: context, detail)
The requested measurement is written into a variable pointed to by the "pOut" parameter. (source: c3ref/stmt_scanstatus.html, checked-by: th3/cov1/status02.test, matrix: context, detail)
The 4-byte big-endian integer at offset 92 is the value of the change counter when the version number was stored. (source: fileformat2.html, matrix: context, detail)
The temp_store_directory pragma may modify this variable and cause it to point to memory obtained from sqlite3_malloc. (source: c3ref/temp_directory.html, matrix: context, detail)
< > <= >= (source: lang_expr.html, matrix: context, detail)
Mutexes created using SQLITE_MUTEX_RECURSIVE can be entered multiple times by the same thread. In such cases, the mutex must be exited an equal number of times before another thread can enter. (source: c3ref/mutex_alloc.html, matrix: context, detail)
A function implementation with a non-negative nArg parameter is a better match than a function implementation with a negative nArg. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc04.test, matrix: context, detail)
If an INSERT statement attempts to insert a NULL value into a rowid or integer primary key column, the system chooses an integer value to use as the rowid automatically. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
If the result is a UTF-16 string, then sqlite3_column_bytes() converts the string to UTF-8 and then returns the number of bytes. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
If the sqlite3_vtab_distinct() interface returns 1, that means that the query planner does not need the rows to be returned in sorted order as long as all rows with the same values in all columns identified by the "aOrderBy" field are adjacent. (source: c3ref/vtab_distinct.html, matrix: context, detail)
The application can also use a PRAGMA foreign_keys statement to determine if foreign keys are currently enabled. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys04.test, matrix: context, detail)
The sqlite3_compileoption_get() function allows iterating over the list of options that were defined at compile time by returning the N-th compile time option string. (source: c3ref/compileoption_get.html, checked-by: th3/cov1/ctime01.test, matrix: context, detail)
Any operators applied to column names, including the no-op unary "+" operator, convert the column name into an expression which always has no affinity. Hence even if X and Y.Z are column names, the expressions +X and +Y.Z are not column names and have no affinity. (source: datatype3.html, checked-by: th3/req1/datatype3_05.test, matrix: context, detail)
The min/max-value pair columns are stored as 32-bit floating point values for "rtree" virtual tables or as 32-bit signed integers in "rtree_i32" virtual tables. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq01.test, matrix: context, detail)
SQLite takes the text result from the application from the 2nd parameter of the sqlite3_result_text* interfaces. (source: c3ref/result_blob.html, checked-by: th3/req1/result02.test, matrix: context, detail)
The eTextRep argument determines the encoding of strings passed to the collating function callback, xCompare. (source: c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test, matrix: context, detail)
The xShutdown() method is called by sqlite3_shutdown(). (source: c3ref/pcache_methods2.html, matrix: context, detail)
The first form (without an argument) queries the current limit. (source: pragma.html, matrix: context, detail)
The sqlite3_result_blob() interface sets the result from an application-defined function to be the BLOB whose content is pointed to by the second parameter and which is N bytes long where N is the third parameter. (source: c3ref/result_blob.html, checked-by: th3/req1/result01.test, matrix: context, detail)
This function is used to read data from an open BLOB handle into a caller-supplied buffer. N bytes of data are copied into buffer Z from the open BLOB, starting at offset iOffset. (source: c3ref/blob_read.html, checked-by: th3/cov1/vdbeblob01.test, matrix: context, detail)
The TRUNCATE journaling mode commits transactions by truncating the rollback journal to zero-length instead of deleting it. (source: pragma.html, checked-by: th3/req1/pragma24.test, matrix: context, detail)
However omitting the extra rows is optional. (source: c3ref/vtab_distinct.html, matrix: context, detail)
The sqlite3_malloc() routine returns a pointer to a block of memory at least N bytes in length, where N is the parameter. (source: c3ref/free.html, checked-by: th3/req1/malloc02.test, matrix: context, detail)
Rows are assigned contiguously ascending rowid values, starting with 1, in the order that they are returned by the SELECT statement. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
If Z is omitted then substr(X,Y) returns all characters through the end of the string X beginning with the Y-th. (source: lang_corefunc.html, checked-by: th3/cov1/func02.test, matrix: context, detail)
The default collating function for all strings is BINARY. (source: fileformat2.html, checked-by: src/callback.c, th3/req1/fileformat05.test, matrix: context, detail)
By default, coordinates are stored in an R*Tree using 32-bit floating point values. (source: rtree.html, checked-by: tcl/rtreedoc.test, matrix: context, detail)
If the database is opened (and/or created) successfully, then SQLITE_OK is returned. Otherwise an error code is returned. (source: c3ref/open.html, matrix: context, detail)
Writes to the BLOB that occurred before the BLOB handle expired are not rolled back by the expiration of the handle, though of course those changes might have been overwritten by the statement that expired the BLOB handle or by other independent statements. (source: c3ref/blob_write.html, checked-by: tcl/e_blobwrite.test, matrix: context, detail)
PRAGMA collation_list; Return a list of the collating sequences defined for the current database connection. (source: pragma.html, checked-by: th3/req1/pragma13.test, matrix: context, detail)
The ANALYZE command gathers statistics about tables and indices and stores the collected information in internal tables of the database where the query optimizer can access the information and use it to help make better query planning choices. (source: lang_analyze.html, checked-by: th3/req1/analyze01.test, matrix: context, detail)
A compound SELECT created using UNION ALL operator returns all the rows from the SELECT to the left of the UNION ALL operator, and all the rows from the SELECT to the right of it. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
A value with storage class NULL is considered less than any other value (including another value with storage class NULL). (source: datatype3.html, checked-by: th3/req1/datatype3_04.test, matrix: context, detail)
However, when not in write-ahead log mode, the page_size and/or auto_vacuum properties of an existing database may be changed by using the page_size and/or pragma auto_vacuum pragmas and then immediately VACUUMing the database. (source: lang_vacuum.html, checked-by: tcl/e_vacuum.test, matrix: context, detail)
If parameter Y is present then it is used as the separator between instances of X. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
The number of columns in the rows returned by a simple SELECT statement is equal to the number of expressions in the result expression list after substitution of * and alias.* expressions. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The second column is the number of modified pages that have been written to the write-ahead log file. (source: pragma.html, matrix: context, detail)
Subelements that return NOT_WITHIN are discarded. (source: rtree.html, checked-by: tcl/rtreedoc3.test, th3/cov1/rtree04.test, matrix: context, detail)
If any prior errors have occurred while constructing the dynamic string in sqlite3_str X, then the sqlite3_str_errcode(X) method will return an appropriate error code. (source: c3ref/str_errcode.html, matrix: context, detail)
In the second form, if the database name is omitted, the limit that is set becomes the default limit for all databases that are added to the database connection by subsequent ATTACH statements. (source: pragma.html, matrix: context, detail)
The sqlite3_commit_hook() interface registers a callback function to be invoked whenever a transaction is committed. (source: c3ref/commit_hook.html, matrix: context, detail)
If the callback argument (C) to sqlite3_autovacuum_pages(D,C,P,X) is a NULL pointer, then the autovacuum steps callback is cancelled. (source: c3ref/autovacuum_pages.html, checked-by: th3/cov1/autovac01.test, matrix: context, detail)
The sqlite3_autovacuum_pages(D,C,P,X) interface registers a callback function C that is invoked prior to each autovacuum of the database file. (source: c3ref/autovacuum_pages.html, checked-by: th3/cov1/autovac01.test, matrix: context, detail)
sqlite3_release_memory() returns the number of bytes actually freed, which might be more or less than the amount requested. (source: c3ref/release_memory.html, checked-by: th3/req1/releasemem01.test, matrix: context, detail)
Corresponding rows in the index and table b-trees share the same rowid or primary key values and contain the same value for all indexed columns. (source: fileformat2.html, matrix: context, detail)
If the simple SELECT is a SELECT ALL, then the entire set of result rows are returned by the SELECT. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The sqlite3_backup_pagecount() routine returns the total number of pages in the source database at the conclusion of the most recent sqlite3_backup_step(). (source: c3ref/backup_finish.html, matrix: context, detail)
Sum() will throw an "integer overflow" exception if all inputs are integers or NULL and an integer overflow occurs at any point during the computation. (source: lang_aggfunc.html, checked-by: th3/req1/aggfunc01.test, matrix: context, detail)
A CREATE TABLE command operates the same whether or not foreign key constraints are enabled. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys21.test, matrix: context, detail)
This interface disables all automatic extensions previously registered using sqlite3_auto_extension(). (source: c3ref/reset_auto_extension.html, checked-by: th3/req1/autoext01.test, matrix: context, detail)
Unless it returns SQLITE_MISUSE, this function sets the database connection error code and message accessible via sqlite3_errcode() and sqlite3_errmsg() and related functions. (source: c3ref/blob_open.html, checked-by: tcl/e_blobopen.test, matrix: context, detail)
When searching database schemas for a named object, objects of types that cannot be used in the context of the reference are always ignored. (source: lang_naming.html, checked-by: tcl/e_resolve.test, matrix: context, detail)
The SQLITE_CONFIG_HEAP option specifies a static memory buffer that SQLite will use for all of its dynamic memory allocation needs beyond those provided for by SQLITE_CONFIG_PAGECACHE. (source: c3ref/c_config_covering_index_scan.html, checked-by: th3/th3main.c, matrix: context, detail)
The CAST operator understands decimal integers only — conversion of hexadecimal integers stops at the "x" in the "0x" prefix of the hexadecimal integer string and thus result of the CAST is always zero. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If the sqlite3_vtab_distinct() interface returns 2, that means that the query planner does not need the rows returned in any particular order, as long as rows with the same values in all "aOrderBy" columns are adjacent. (source: c3ref/vtab_distinct.html, matrix: context, detail)
Replacing the phrase above with any of the following creates an immediate foreign key constraint. NOT DEFERRABLE INITIALLY DEFERRED -- An immediate foreign key constraint NOT DEFERRABLE INITIALLY IMMEDIATE -- An immediate foreign key constraint NOT DEFERRABLE -- An immediate foreign key constraint DEFERRABLE INITIALLY IMMEDIATE -- An immediate foreign key constraint DEFERRABLE -- An immediate foreign key constraint (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys12.test, matrix: context, detail)
As of SQLite version 3.6.19, the default setting for foreign key enforcement is OFF. (source: pragma.html, checked-by: th3/req1/pragma18.test, th3/req1/pragma19.test, matrix: context, detail)
A return of SQLITE_BUSY or SQLITE_LOCKED from sqlite3_backup_step() is not a permanent error and does not affect the return value of sqlite3_backup_finish(). (source: c3ref/backup_finish.html, matrix: context, detail)
The ANALYZE command scans all indexes of database where there might be a choice between two or more indexes and gathers statistics on the selectiveness of those indexes. (source: optoverview.html, matrix: context, detail)
TRUNCATE This mode works the same way as RESTART with the addition that the WAL file is truncated to zero bytes upon successful completion. (source: pragma.html, checked-by: th3/req1/checkpoint01.test, matrix: context, detail)
An rtree_i32 stores coordinates as 32-bit signed integers. (source: rtree.html, checked-by: tcl/rtreedoc.test, matrix: context, detail)
That is to say, it always returns the value of the hard heap limit that is set after any changes imposed by this PRAGMA. (source: pragma.html, matrix: context, detail)
Call the sqlite3_enable_load_extension() routine with onoff==1 to turn extension loading on and call it with onoff==0 to turn it back off again. (source: c3ref/enable_load_extension.html, matrix: context, detail)
The primary key columns appear in the order that they were declared in the PRIMARY KEY clause and the remaining columns appear in the order they occur in the CREATE TABLE statement. (source: fileformat2.html, matrix: context, detail)
The immutable parameter is a boolean query parameter that indicates that the database file is stored on read-only media. (source: c3ref/open.html, checked-by: th3/cov1/nolock01.test, matrix: context, detail)
If Y is omitted then the default entry point name is used. (source: lang_corefunc.html, checked-by: th3/cov1/func03.test, matrix: context, detail)
For the GLOB operator, the column must be indexed using the built-in BINARY collating sequence. (source: optoverview.html, matrix: context, detail)
If a statement modifies the contents of the database so that an immediate foreign key constraint is in violation at the conclusion the statement, an exception is thrown and the effects of the statement are reverted. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys12.test, matrix: context, detail)
SQLite keeps track of the largest ROWID using an internal table named "sqlite_sequence". (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
The MATCH operator of a custom R*Tree query function must be a top-level AND-connected term of the WHERE clause, or else it will not be usable by the R*Tree query optimizer and the query will not be runnable. (source: rtree.html, checked-by: th3/cov1/rtree04.test, matrix: context, detail)
Finally, the database is flushed to persistent storage using another xSync method call. (source: fileformat2.html, matrix: context, detail)
Otherwise, if the ORDER BY expression is an alias to an expression that has been assigned a collation sequence using the postfix COLLATE operator, then the collation sequence assigned to the aliased expression is used. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
Indirect deadlock is also detected, so the system is also considered to be deadlocked if connection B has registered for an unlock-notify callback on the conclusion of connection C's transaction, where connection C is waiting on connection A. (source: c3ref/unlock_notify.html, matrix: context, detail)
A NULL pointer can be used in place of "main" to refer to the main database file. (source: c3ref/file_control.html, matrix: context, detail)
Whenever a row in the parent table of a foreign key constraint is deleted, or when the values stored in the parent key column or columns are modified, the logical sequence of events is: Execute applicable BEFORE trigger programs, Check local (non foreign key) constraints, Update or delete the row in the parent table, Perform any required foreign key actions, Execute applicable AFTER trigger programs. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys19.test, matrix: context, detail)
BLOB literals are string literals containing hexadecimal data and preceded by a single "x" or "X" character. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
Because of this, SQLite is able to plan queries with 50- or 60-way joins in a matter of microseconds Join reordering is automatic and usually works well enough that programmers do not have to think about it, especially if ANALYZE has been used to gather statistics about the available indexes, though occasionally some hints from the programmer are needed. (source: optoverview.html, matrix: context, detail)
The time value can be followed by zero or more modifiers that alter date and/or time. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
Text values (odd serial types 13 and larger) sort after numeric values in the order determined by the columns collating function. (source: fileformat2.html, checked-by: th3/req1/fileformat05.test, matrix: context, detail)
The table-name specified as part of a DELETE statement within a trigger body must be unqualified. (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
Thus INSERT OR FAIL, INSERT OR IGNORE, INSERT OR ROLLBACK, and INSERT OR ABORT make no changes to the return value of this routine when their insertion fails. (source: c3ref/last_insert_rowid.html, matrix: context, detail)
The sqlite3_exec() interface runs zero or more UTF-8 encoded, semicolon-separate SQL statements passed into its 2nd argument, in the context of the database connection passed in as its 1st argument. (source: c3ref/exec.html, checked-by: th3/req1/exec01.test, matrix: context, detail)
PRAGMA schema.table_info(table-name); This pragma returns one row for each column in the named table. (source: pragma.html, checked-by: th3/req1/pragma15.test, matrix: context, detail)
PRAGMA module_list; This pragma returns a list of virtual table modules registered with the database connection. (source: pragma.html, matrix: context, detail)
The available modifiers are as follows. NNN days NNN hours NNN minutes NNN.NNNN seconds NNN months NNN years start of month start of year start of day weekday N unixepoch julianday auto localtime utc (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
This flag determines whether or not the F_FULLFSYNC syncing method is used on systems that support it. (source: pragma.html, checked-by: th3/req1/pragma11b.test, matrix: context, detail)
The name of the column being indexed. (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma15.test, matrix: context, detail)
Or if no collating sequence is otherwise defined, the built-in BINARY collating sequence is used. (source: lang_createindex.html, checked-by: th3/req1/createidx01.test, matrix: context, detail)
If the discard parameter is zero, then the page may be discarded or retained at the discretion of page cache implementation. (source: c3ref/pcache_methods2.html, matrix: context, detail)
If the sub-query is a compound select, then all terms of the ORDER by clause of the parent must be simple references to columns of the sub-query. (source: optoverview.html, matrix: context, detail)
As long as the buffer size is greater than zero, sqlite3_snprintf() guarantees that the buffer is always zero-terminated. (source: c3ref/mprintf.html, checked-by: th3/req1/malloc01.test, matrix: context, detail)
SQLITE_LIMIT_SQL_LENGTH The maximum length of an SQL statement, in bytes. (source: c3ref/c_limit_attached.html, checked-by: tcl/sqllimits1.test, th3/req1/limit02.test, matrix: context, detail)
Also, GLOB is case sensitive, unlike LIKE. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The value returned by sqlite3_changes() immediately after an INSERT, UPDATE or DELETE statement run on a view is always zero. (source: c3ref/changes.html, checked-by: tcl/e_changes.test, matrix: context, detail)
A negative value for the zeroblob results in a zero-length BLOB. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
Each call to the sqlite3_autovacuum_pages() interface overrides all previous invocations for that database connection. (source: c3ref/autovacuum_pages.html, checked-by: th3/cov1/autovac01.test, matrix: context, detail)
The aParam[] array (size nParam) contains the parameter values passed to the SQL function on the right-hand side of the MATCH operator. (source: rtree.html, checked-by: tcl/rtreedoc2.test, matrix: context, detail)
SQLite will invoke the destructor D with a single argument of P when it is finished using P. (source: c3ref/bind_blob.html, checked-by: th3/cov1/bindptr01.test, matrix: context, detail)
An attempt to ATTACH a database with a different text encoding from the "main" database will fail. (source: pragma.html, checked-by: th3/req1/pragma16.test, matrix: context, detail)
If X is the name of a rollback or WAL-mode journal file that is passed into the xOpen method of sqlite3_vfs, then sqlite3_database_file_object(X) returns a pointer to the sqlite3_file object that represents the main database file. (source: c3ref/database_file_object.html, matrix: context, detail)
If one operand has INTEGER, REAL or NUMERIC affinity and the other operand has TEXT or BLOB or no affinity then NUMERIC affinity is applied to other operand. (source: datatype3.html, checked-by: th3/cov1/affinity01.test, th3/req1/datatype3_05.test, matrix: context, detail)
The histogram data is only useful if the right-hand side of the constraint is a simple compile-time constant or parameter and not an expression. (source: optoverview.html, matrix: context, detail)
If SQLITE_OMIT_TRIGGER is defined but SQLITE_OMIT_FOREIGN_KEY is not, then SQLite behaves as it did prior to version 3.6.19 (2009-10-14) - foreign key definitions are parsed and may be queried using PRAGMA foreign_key_list, but foreign key constraints are not enforced. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys05.test, matrix: context, detail)
Following a successful SQLITE_FCNTL_BEGIN_ATOMIC_WRITE and prior to the closing SQLITE_FCNTL_COMMIT_ATOMIC_WRITE or SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE, SQLite will make no VFS interface calls on the same sqlite3_file file descriptor except for calls to the xWrite method and the xFileControl method with SQLITE_FCNTL_SIZE_HINT. (source: c3ref/c_fcntl_begin_atomic_write.html, matrix: context, detail)
The sqlite_stat3.nDLt column holds the approximate number of distinct left-most entries in the index that are less than the sample. (source: fileformat2.html, matrix: context, detail)
The callback registered by this function replaces any existing callback registered using sqlite3_wal_hook(). (source: c3ref/wal_autocheckpoint.html, checked-by: tcl/e_walauto.test, matrix: context, detail)
PRAGMA reverse_unordered_selects; PRAGMA reverse_unordered_selects = boolean; (source: pragma.html, checked-by: th3/req1/pragma27.test, matrix: context, detail)
The depth of recursion for triggers has a hard upper limit set by the SQLITE_MAX_TRIGGER_DEPTH compile-time option and a run-time limit set by sqlite3_limit(db,SQLITE_LIMIT_TRIGGER_DEPTH,...). (source: pragma.html, matrix: context, detail)
The CREATE TRIGGER statement is used to add triggers to the database schema. (source: lang_createtrigger.html, checked-by: slt/slt_lang_createtrigger.test, matrix: context, detail)
For the static mutex types, the same mutex is returned on every call that has the same type number. (source: c3ref/mutex_alloc.html, matrix: context, detail)
The fourth parameter may optionally be ORed with SQLITE_DETERMINISTIC to signal that the function will always return the same result given the same inputs within a single SQL statement. (source: c3ref/create_function.html, checked-by: th3/cov1/func11.test, matrix: context, detail)
Affinity is applied to operands of a comparison operator prior to the comparison according to the following rules in the order shown: (source: datatype3.html, checked-by: th3/req1/datatype3_05.test, matrix: context, detail)
Aggregate min() returns NULL if and only if there are no non-NULL values in the group. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
If any other process is running a checkpoint operation at the same time, the lock cannot be obtained and SQLITE_BUSY is returned. (source: c3ref/wal_checkpoint_v2.html, checked-by: src/wal.c, tcl/e_walckpt.test, matrix: context, detail)
Calling sqlite3_wal_hook() replaces any previously registered write-ahead log callback. (source: c3ref/wal_hook.html, checked-by: tcl/e_walhook.test, matrix: context, detail)
The usual rules for selecting a collation sequence with which to compare text values apply when evaluating expressions in a GROUP BY clause. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
Note that unlike that plain ROLLBACK command (without the TO keyword) the ROLLBACK TO command does not cancel the transaction. (source: lang_savepoint.html, matrix: context, detail)
Views are removed with the DROP VIEW command. (source: lang_createview.html, checked-by: slt/slt_lang_createview.test, th3/req1/view01.test, matrix: context, detail)
If pnCkpt is not NULL,then *pnCkpt is set to the total number of checkpointed frames in the log file (including any that were already checkpointed before the function was called) or to -1 if the checkpoint could not run due to an error or because the database is not in WAL mode. (source: c3ref/wal_checkpoint_v2.html, checked-by: tcl/e_walckpt.test, matrix: context, detail)
This API makes sure a global version of a function with a particular name and number of parameters exists. If no such function exists before this API is called, a new function is created. (source: c3ref/overload_function.html, matrix: context, detail)
When RAISE(IGNORE) is called, the remainder of the current trigger program, the statement that caused the trigger program to execute and any subsequent trigger programs that would have been executed are abandoned. (source: lang_createtrigger.html, matrix: context, detail)
The declared type of a column is used to determine the affinity of the column only. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The highwater mark associated with SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0. (source: c3ref/c_dbstatus_options.html, matrix: context, detail)
If the sub-query is a compound SELECT, then all compound operators must be UNION ALL, and no terms with the subquery compound may be aggregate or DISTINCT, and every term within the subquery must have a FROM clause, and the outer query may not be an aggregate, DISTINCT query, or join. (source: optoverview.html, matrix: context, detail)
In particular, rows containing NULL values are not handled any differently from rows without NULL values. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The round(X,Y) function returns a floating-point value X rounded to Y digits to the right of the decimal point. (source: lang_corefunc.html, checked-by: th3/cov1/func02.test, matrix: context, detail)
All intervening SAVEPOINTs are canceled, however. (source: lang_savepoint.html, matrix: context, detail)
In other words, if many of the queries run against the FTS4 table use "ORDER BY docid DESC", then it may improve performance to add the "order=desc" option to the CREATE VIRTUAL TABLE statement. (source: fts3.html, matrix: context, detail)
Both the first and second forms of the pragma listed above return a single result row containing a single integer column - the value of the journal size limit in bytes. (source: pragma.html, checked-by: th3/req1/pragma26.test, matrix: context, detail)
When faced with the choice of using an index to satisfy WHERE clause constraints or satisfying an ORDER BY clause, SQLite does the same cost analysis described above and chooses the index that it believes will result in the fastest answer. (source: optoverview.html, matrix: context, detail)
If the journal mode could not be changed, the original journal mode is returned. (source: pragma.html, checked-by: th3/req1/pragma23.test, matrix: context, detail)
The sqlite3_value_dup(V) interface makes a copy of the sqlite3_value object D and returns a pointer to that copy. (source: c3ref/value_dup.html, matrix: context, detail)
ON CONFLICT clauses work the same. (source: stricttables.html, checked-by: th3/req1/conflict04.test, matrix: context, detail)
You can query them directly if you like, though this unlikely to reveal anything particularly useful. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq02.test, matrix: context, detail)
Transactions involving multiple attached databases are atomic, assuming that the main database is not ":memory:" and the journal_mode is not WAL. (source: lang_attach.html, checked-by: th3/req1/attach02.test, th3/stress/crash002.test, th3/stress/crash003.test, matrix: context, detail)
For the purposes of sorting rows, values are compared in the same way as for comparison expressions. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
When a connection (known as the blocked connection) fails to obtain a shared-cache lock and SQLITE_LOCKED is returned to the caller, the identity of the database connection (the blocking connection) that has locked the required resource is stored internally. (source: c3ref/unlock_notify.html, matrix: context, detail)
On success, sqlite3_blob_read() returns SQLITE_OK. Otherwise, an error code or an extended error code is returned. (source: c3ref/blob_read.html, checked-by: th3/cov1/vdbeblob01.test, matrix: context, detail)
The rollback journal file can be deleted (source: fileformat2.html, matrix: context, detail)
The ORDER BY clause on an UPDATE statement is used only to determine which rows fall within the LIMIT. The order in which rows are modified is arbitrary and is not influenced by the ORDER BY clause. (source: lang_update.html, checked-by: tcl/e_update.test, matrix: context, detail)
The index for "?NNN" parameters is the value of NNN. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
The ADD COLUMN syntax is used to add a new column to an existing table. (source: lang_altertable.html, checked-by: th3/req1/altertable01.test, matrix: context, detail)
If the source database is modified by the using the same database connection as is used by the backup operation, then the backup database is automatically updated at the same time. (source: c3ref/backup_finish.html, matrix: context, detail)
It is only when the shared-memory wal-index is omitted, when the locking mode is EXCLUSIVE prior to the first WAL-mode database access, that the locking mode is stuck in EXCLUSIVE. (source: wal.html, checked-by: tcl/e_wal.test, th3/req1/pragma05.test, matrix: context, detail)
In a database that uses ptrmap pages, all pages at locations identified by the computation in the previous paragraph must be ptrmap page and no other page may be a ptrmap page. Except, if the byte-lock page happens to fall on the same page number as a ptrmap page, then the ptrmap is moved to the following page for that one case. (source: fileformat2.html, matrix: context, detail)
If N is less than 1 then a 1-byte random blob is returned. (source: lang_corefunc.html, checked-by: th3/req1/func03.test, matrix: context, detail)
szPage will always a power of two. (source: c3ref/pcache_methods2.html, matrix: context, detail)
The specific value of a WHERE-clause parameter might influence the choice of query plan if the parameter is the left-hand side of a LIKE or GLOB operator or if the parameter is compared to an indexed column and the SQLITE_ENABLE_STAT4 compile-time option is enabled. (source: c3ref/prepare.html, checked-by: th3/req1/prepare04.test, matrix: context, detail)
The implicit DELETE does not cause any SQL triggers to fire, but may invoke foreign key actions or constraint violations. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys16.test, th3/req1/foreignkeys22.test, matrix: context, detail)
The ESCAPE clause (with its escape character) acts as a single postfix operator. It can only bind to a preceding [expr] LIKE [expr] expression. (source: lang_expr.html, matrix: context, detail)
If there is an error, *ppStmt is set to NULL. (source: c3ref/prepare.html, checked-by: th3/req1/prepare01.test, matrix: context, detail)
END TRANSACTION is an alias for COMMIT. (source: lang_transaction.html, matrix: context, detail)
Expressions in an index may not reference other tables and may not use subqueries nor functions whose result might change (ex: random() or sqlite_version()). (source: lang_createindex.html, matrix: context, detail)
The memory returned by sqlite3_malloc(), sqlite3_realloc(), sqlite3_malloc64(), and sqlite3_realloc64() is always aligned to at least an 8 byte boundary, or to a 4 byte boundary if the SQLITE_4_BYTE_ALIGNED_MALLOC compile-time option is used. (source: c3ref/free.html, checked-by: src/malloc.c, th3/req1/malloc02.test, matrix: context, detail)
The unlikely(X) function returns the argument X unchanged. (source: lang_corefunc.html, checked-by: tcl/func3.test, matrix: context, detail)
Internally, the BEGIN DEFERRED statement merely sets a flag on the database connection that turns off the automatic commit that would normally occur when the last statement finishes. (source: lang_transaction.html, matrix: context, detail)
sqlite> EXPLAIN QUERY PLAN SELECT * FROM (SELECT * FROM t2 WHERE c=1) AS t3, t1; QUERY PLAN |--SEARCH t2 USING INDEX i4 (c=?) `--SCAN t1 (source: eqp.html, matrix: context, detail)
The sqlite3_result_error() and sqlite3_result_error16() routines make a private copy of the error message text before they return. (source: c3ref/result_blob.html, checked-by: th3/req1/result01.test, matrix: context, detail)
PRAGMA schema.freelist_count; Return the number of unused pages in the database file. (source: pragma.html, checked-by: tcl/pragma2.test, th3/req1/pragma21.test, matrix: context, detail)
This function is a wrapper around the sqlite3_total_changes64() C/C++ interface. (source: lang_corefunc.html, checked-by: src/func.c, matrix: context, detail)
As an example, consider creating a two-dimensional R*Tree index for use in spatial queries: CREATE VIRTUAL TABLE demo_index USING rtree( id, -- Integer primary key minX, maxX, -- Minimum and maximum X coordinate minY, maxY -- Minimum and maximum Y coordinate ); (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree17.test, matrix: context, detail)
The following command-line session demonstrates this: sqlite> PRAGMA foreign_keys; 0 sqlite> PRAGMA foreign_keys = ON; sqlite> PRAGMA foreign_keys; 1 sqlite> PRAGMA foreign_keys = OFF; sqlite> PRAGMA foreign_keys; 0 (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys04.test, matrix: context, detail)
The P argument is a pointer to the database connection object and the X argument is unused. (source: c3ref/c_trace.html, checked-by: th3/cov1/trace01.test, matrix: context, detail)
The operand to the right of the LIKE operator contains the pattern and the left hand operand contains the string to match against the pattern. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If the S argument to sqlite3_txn_state(D,S) is not the name of a valid schema, then -1 is returned. (source: c3ref/txn_state.html, matrix: context, detail)
The default busy callback is NULL. (source: c3ref/busy_handler.html, checked-by: th3/req1/busy01.test, matrix: context, detail)
Any leading spaces in the TEXT value are ignored when converging from TEXT to REAL. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The 4-byte big-endian integer at offset 28 into the header stores the size of the database file in pages. (source: fileformat2.html, matrix: context, detail)
The sqlite3_snapshot_get(D,S,P) interface attempts to make a new sqlite3_snapshot object that records the current state of schema S in database connection D. (source: c3ref/snapshot_get.html, matrix: context, detail)
Named parameters are also numbered. The number assigned is one greater than the largest parameter number already assigned. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If either operand is a column, then the collating function of that column is used with precedence to the left operand. (source: datatype3.html, checked-by: th3/req1/datatype3_09.test, matrix: context, detail)
This ensures that the next writer will restart the log file from the beginning. (source: c3ref/wal_checkpoint_v2.html, matrix: context, detail)
Format 12 is the Julian day number expressed as an integer or floating point value. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
When comparing a base expression against a WHEN expression, the same collating sequence, affinity, and NULL-handling rules apply as if the base expression and WHEN expression are respectively the left- and right-hand operands of an = operator. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
In a well-formed b-tree page, the total number of bytes in fragments may not exceed 60. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
With synchronous=FULL in WAL mode, an additional sync operation of the WAL file happens after each transaction commit. (source: pragma.html, matrix: context, detail)
FULL This mode blocks (invokes the busy-handler callback) until there is no database writer and all readers are reading from the most recent database snapshot. It then checkpoints all frames in the log file and syncs the database file. (source: pragma.html, checked-by: th3/req1/checkpoint01.test, matrix: context, detail)
It is an error to specify both a schema-name and the TEMP keyword on a VIEW, unless the schema-name is "temp". (source: lang_createview.html, matrix: context, detail)
The 4-byte big-endian integer at offset 56 determines the encoding used for all text strings stored in the database. (source: fileformat2.html, checked-by: th3/req1/fileformat03.test, matrix: context, detail)
An attempt to invoke the BEGIN command within a transaction will fail with an error, regardless of whether the transaction was started by SAVEPOINT or a prior BEGIN. (source: lang_transaction.html, matrix: context, detail)
The virtual table may, if it chooses, omit extra rows that have the same value for all columns identified by "aOrderBy". (source: c3ref/vtab_distinct.html, matrix: context, detail)
A colon followed by an identifier name holds a spot for a named parameter with the name :AAAA. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
No attempt is made to convert NULL or BLOB values. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
The sqlite3_value objects returned by sqlite3_vtab_rhs_value() are protected. (source: c3ref/value.html, matrix: context, detail)
The sqlite3_preupdate_count(D) interface returns the number of columns in the row that is being inserted, updated, or deleted. (source: c3ref/preupdate_blobwrite.html, matrix: context, detail)
The specified column of row iRow contains a value that is not a TEXT or BLOB value (source: c3ref/blob_open.html, checked-by: tcl/e_blobopen.test, matrix: context, detail)
The explicit COMMIT command runs immediately, even if there are pending SELECT statements. (source: lang_transaction.html, matrix: context, detail)
The compound SELECT operators UNION, INTERSECT and EXCEPT perform implicit comparisons between values. (source: datatype3.html, checked-by: th3/req1/datatype3_07.test, matrix: context, detail)
The sqlite3_db_status() routine returns SQLITE_OK on success and a non-zero error code on failure. (source: c3ref/db_status.html, checked-by: th3/req1/dbstatus01.test, matrix: context, detail)
There can be an arbitrary number of sqlite_stat4 entries per index. (source: fileformat2.html, matrix: context, detail)
1 if the index-column is sorted in reverse (DESC) order by the index and 0 otherwise. (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma15x.test, matrix: context, detail)
For example: -- Database schema CREATE TABLE artist( artistid INTEGER PRIMARY KEY, artistname TEXT ); CREATE TABLE track( trackid INTEGER, trackname TEXT, trackartist INTEGER DEFAULT 0 REFERENCES artist(artistid) ON DELETE SET DEFAULT ); sqlite> SELECT * FROM artist; artistid artistname -------- ----------------- 3 Sammy Davis Jr. sqlite> SELECT * FROM track; trackid trackname trackartist ------- ----------------- ----------- 14 Mr. Bojangles 3 sqlite> -- Deleting the row from the parent table causes the child key sqlite> -- value of the dependent row to be set to integer value 0. However, this sqlite> -- value does not correspond to any row in the parent table. Therefore sqlite> -- the foreign key constraint is violated and an is exception thrown. sqlite> DELETE FROM artist WHERE artistname = 'Sammy Davis Jr.'; SQL error: foreign key constraint failed sqlite> -- This time, the value 0 does correspond to a parent table row. And sqlite> -- so the DELETE statement does not violate the foreign key constraint sqlite> -- and no exception is thrown. sqlite> INSERT INTO artist VALUES(0, 'Unknown Artist'); sqlite> DELETE FROM artist WHERE artistname = 'Sammy Davis Jr.'; sqlite> SELECT * FROM artist; artistid artistname -------- ----------------- 0 Unknown Artist sqlite> SELECT * FROM track; trackid trackname trackartist ------- ----------------- ----------- 14 Mr. Bojangles 0 (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys18.test, matrix: context, detail)
The "none" setting means that auto-vacuum is disabled. (source: pragma.html, checked-by: th3/req1/pragma07.test, matrix: context, detail)
If the result is NULL, then sqlite3_column_bytes16() returns zero. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
The highwater mark is always 0. (source: c3ref/c_dbstatus_options.html, checked-by: src/status.c, matrix: context, detail)
The third and fourth parameters to this routine are passed directly through to the second and third parameters of the xFileControl method. (source: c3ref/file_control.html, matrix: context, detail)
If page B is a ptrmap page then back-link information about page B+1 is provided by the first entry on the pointer map. Information about page B+2 is provided by the second entry. And so forth. (source: fileformat2.html, matrix: context, detail)
julianday(time-value, modifier, modifier, ...) (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
The "double" variable pointed to by the V parameter will be set to the query planner's estimate for the average number of rows output from each iteration of the X-th loop. (source: c3ref/c_scanstat_est.html, checked-by: th3/cov1/status02.test, matrix: context, detail)
When text data is inserted into a NUMERIC column, the storage class of the text is converted to INTEGER or REAL (in order of preference) if the text is a well-formed integer or real literal, respectively. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
If no ROWID is specified on the insert, or if the specified ROWID has a value of NULL, then an appropriate ROWID is created automatically. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
The table-name specified as part of an UPDATE statement within a trigger body must be unqualified. (source: lang_update.html, checked-by: tcl/e_update.test, matrix: context, detail)
Freelist leaf pages bear no information that would need to be restored on a rollback and so they are not written to the journal prior to modification, in order to reduce disk I/O. (source: fileformat2.html, matrix: context, detail)
Table columns that do not appear in the column list are populated with the default column value (specified as part of the CREATE TABLE statement), or with NULL if no default value is specified. (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
Note that calling sqlite3_busy_timeout() or evaluating PRAGMA busy_timeout=N will change the busy handler and thus clear any previously set busy handler. (source: c3ref/busy_handler.html, checked-by: th3/req1/busy01.test, matrix: context, detail)
A VACUUM will fail if there is an open transaction on the database connection that is attempting to run the VACUUM. (source: lang_vacuum.html, checked-by: src/vacuum.c, tcl/e_vacuum.test, matrix: context, detail)
Whenever a PRAGMA statement is parsed, an SQLITE_FCNTL_PRAGMA file control is sent to the open sqlite3_file object corresponding to the database file to which the pragma statement refers. (source: c3ref/c_fcntl_begin_atomic_write.html, checked-by: src/pragma.c, tcl/multiplex4.test, matrix: context, detail)
A VALUES clause cannot be followed by LIMIT. (source: lang_select.html, checked-by: th3/req1/select02.test, matrix: context, detail)
In other words, the schema-name. prefix on the table name is not allowed within triggers. (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
Division by zero gives a result of NULL. (source: datatype3.html, checked-by: th3/req1/datatype3_06.test, matrix: context, detail)
The locking-mode is either NORMAL or EXCLUSIVE. (source: pragma.html, checked-by: th3/req1/pragma04.test, matrix: context, detail)
If any of the sqlite3_bind_*() routines are called with a NULL pointer for the prepared statement or with a prepared statement for which sqlite3_step() has been called more recently than sqlite3_reset(), then the call will return SQLITE_MISUSE. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
This mode works the same way as SQLITE_CHECKPOINT_FULL with the addition that after checkpointing the log file it blocks (calls the busy-handler callback) until all readers are reading from the database file only. (source: c3ref/wal_checkpoint_v2.html, checked-by: tcl/e_walckpt.test, th3/req1/checkpoint01.test, matrix: context, detail)
Note that case insensitivity only applies to latin1 characters - basically the upper and lower case letters of English in the lower 127 byte codes of ASCII. (source: optoverview.html, checked-by: th3/cov1/pragma02.test, matrix: context, detail)
Extension loading must be enabled using sqlite3_enable_load_extension() or sqlite3_db_config(db,SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION,1,NULL) prior to calling this API, otherwise an error will be returned. (source: c3ref/load_extension.html, matrix: context, detail)
PRAGMA foreign_key_list(table-name); This pragma returns one row for each foreign key constraint created by a REFERENCES clause in the CREATE TABLE statement of table "table-name". (source: pragma.html, checked-by: th3/req1/pragma17.test, matrix: context, detail)
In every case the first argument is a pointer to the prepared statement that is being evaluated (the sqlite3_stmt* that was returned from sqlite3_prepare_v2() or one of its variants) and the second argument is the index of the column for which information should be returned. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, th3/req1/column02.test, th3/req1/column03.test, matrix: context, detail)
When auto-vacuum is disabled and data is deleted data from a database, the database file remains the same size. (source: pragma.html, checked-by: th3/req1/pragma07.test, matrix: context, detail)
If a NOT NULL constraint violation occurs, the REPLACE conflict resolution replaces the NULL value with the default value for that column, or if the column has no default value, then the ABORT algorithm is used. (source: lang_conflict.html, checked-by: th3/req1/conflict02.test, matrix: context, detail)
The rollback hook is invoked on a rollback that results from a commit hook returning non-zero, just as it would be with any other rollback. (source: c3ref/commit_hook.html, matrix: context, detail)
If the default value of the column is a constant NULL, text, blob or signed-number value, then that value is used directly in the new row. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The byte-order specified by the BOM at the beginning of the text overrides the byte-order specified by the interface procedure. (source: c3ref/result_blob.html, matrix: context, detail)
If no WHEN clause is supplied, the SQL statements are executed every time the trigger fires. (source: lang_createtrigger.html, checked-by: slt/slt_lang_createtrigger.test, matrix: context, detail)
The values returned by sqlite3_column_bytes() and sqlite3_column_bytes16() do not include the zero terminators at the end of the string. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
This option is used to enable or disable views. (source: c3ref/c_dbconfig_defensive.html, checked-by: th3/cov1/view02.test, matrix: context, detail)
The cache sharing mode set by this interface effects all subsequent calls to sqlite3_open(), sqlite3_open_v2(), and sqlite3_open16(). Existing database connections continue to use the sharing mode that was in effect at the time they were opened. (source: c3ref/enable_shared_cache.html, matrix: context, detail)
The order of the entries indicates the nesting order. (source: eqp.html, matrix: context, detail)
For example, 0x1234 means the same as 4660 and 0x8000000000000000 means the same as -9223372036854775808. (source: lang_expr.html, checked-by: th3/req1/expr01.test, matrix: context, detail)
The incremental blob I/O mechanism does not work for WITHOUT ROWID tables. (source: withoutrowid.html, checked-by: tcl/without_rowid5.test, th3/cov1/vdbeblob01.test, matrix: context, detail)
Or, if a constraint definition does not include a conflict-clause or it is a CHECK constraint, the default conflict resolution algorithm is ABORT. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
Again, in this case the call to sqlite3_backup_step() can be retried later on. (source: c3ref/backup_finish.html, matrix: context, detail)
Mathematical operators (+, -, *, /, %, <<, >>, &, and |) interpret both operands as if they were numbers. STRING or BLOB operands automatically convert into REAL or INTEGER values. (source: datatype3.html, checked-by: th3/req1/datatype3_06.test, matrix: context, detail)
The P argument is a pointer to the prepared statement and the X argument points to a 64-bit integer which is the estimated of the number of nanosecond that the prepared statement took to run. (source: c3ref/c_trace.html, checked-by: th3/cov1/trace01.test, matrix: context, detail)
SQLITE_LIMIT_EXPR_DEPTH The maximum depth of the parse tree on any expression. (source: c3ref/c_limit_attached.html, checked-by: tcl/sqllimits1.test, th3/req1/limit02.test, matrix: context, detail)
A VALUES clause cannot be followed by ORDER BY. (source: lang_select.html, checked-by: th3/req1/select02.test, matrix: context, detail)
To mark a foreign key constraint as deferred, its declaration must include the following clause: DEFERRABLE INITIALLY DEFERRED -- A deferred foreign key constraint (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys12.test, matrix: context, detail)
The full amount of memory used by the schemas is reported, even if the schema memory is shared with other database connections due to shared cache mode being enabled. (source: c3ref/c_dbstatus_options.html, checked-by: th3/req1/dbstatus02.test, matrix: context, detail)
Every value in SQLite has one of five fundamental datatypes: 64-bit signed integer 64-bit IEEE floating point number string BLOB NULL (source: c3ref/c_blob.html, checked-by: src/vdbeapi.c, tcl/capi3.test, th3/req1/column01.test, matrix: context, detail)
The highest recorded value is returned in *pHighwater. (source: c3ref/status.html, matrix: context, detail)
The query above will quickly locate all zipcodes that contain the SQLite main office in their bounding box, even if the R*Tree contains many entries. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq03.test, matrix: context, detail)
The RELEASE command starts with the most recent addition to the transaction stack and releases savepoints backwards in time until it releases a savepoint with a matching savepoint-name. (source: lang_savepoint.html, matrix: context, detail)
The query string consists of text following the first "?" character but excluding the optional fragment that begins with "#". (source: uri.html, matrix: context, detail)
When query results are sorted by an ORDER BY clause, values with storage class NULL come first, followed by INTEGER and REAL values interspersed in numeric order, followed by TEXT values in collating sequence order, and finally BLOB values in memcmp() order. (source: datatype3.html, checked-by: th3/req1/datatype3_04.test, matrix: context, detail)
Inner joins to the left and right of the outer join might be reordered if the optimizer thinks that is advantageous but the outer joins are always evaluated in the order in which they occur. (source: optoverview.html, matrix: context, detail)
SQLITE_LIMIT_LIKE_PATTERN_LENGTH The maximum length of the pattern argument to the LIKE or GLOB operators. (source: c3ref/c_limit_attached.html, checked-by: tcl/sqllimits1.test, th3/req1/limit02.test, matrix: context, detail)
Value is the integer 0. (source: fileformat2.html, checked-by: src/vdbeaux.c, th3/req1/fileformat02.test, matrix: context, detail)
When multiple implementations of the same function are available, SQLite will pick the one that involves the least amount of data conversion. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc04.test, matrix: context, detail)
Unrecognized arguments are silently ignored. (source: fileformat2.html, matrix: context, detail)
The maximum value is the value that would be returned last in an ORDER BY on the same column. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
The number of columns in an index is limited to the value set by sqlite3_limit(SQLITE_LIMIT_COLUMN,...). (source: lang_createindex.html, checked-by: th3/req1/createidx03.test, matrix: context, detail)
Note that the authorizer callback is invoked only during sqlite3_prepare() or its variants. (source: c3ref/set_authorizer.html, matrix: context, detail)
The RETURNING clause only returns rows that are directly modified by the DELETE, INSERT, or UPDATE statement. (source: lang_returning.html, checked-by: th3/cov1/returning04.test, matrix: context, detail)
A function where the encoding difference is between UTF16le and UTF16be is a closer match than a function where the encoding difference is between UTF8 and UTF16. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc04.test, matrix: context, detail)
The subquery and the outer query do not both have ORDER BY clauses. (source: optoverview.html, matrix: context, detail)
Otherwise, if no error occurs, sqlite3_db_cacheflush() returns SQLITE_OK. (source: c3ref/db_cacheflush.html, matrix: context, detail)
Parameters of the form "?" without a following integer have no name and are referred to as "nameless" or "anonymous parameters". (source: c3ref/bind_parameter_name.html, checked-by: th3/req1/bind04.test, matrix: context, detail)
No error is returned for uniqueness, NOT NULL, and UNIQUE constraint errors when the IGNORE conflict resolution algorithm is used. (source: lang_conflict.html, checked-by: th3/req1/conflict01.test, matrix: context, detail)
Each entry in the table b-tree corresponds to a row of the SQL table. (source: fileformat2.html, matrix: context, detail)
If that entry is a leaf (meaning that it is an actual R*Tree entry and not a subtree) then that entry is returned as one row of the query result. (source: rtree.html, checked-by: tcl/rtreedoc3.test, matrix: context, detail)
SQLITE_BUSY means that the database engine was unable to acquire the database locks it needs to do its job. (source: c3ref/step.html, matrix: context, detail)
This interface returns a pointer to the next prepared statement after pStmt associated with the database connection pDb. (source: c3ref/next_stmt.html, checked-by: th3/cov1/vdbeapi04.test, matrix: context, detail)
A false return does not guarantee that the statement will change the database file. (source: c3ref/stmt_readonly.html, checked-by: tcl/capi3d.test, th3/cov1/vdbeapi14.test, matrix: context, detail)
The sqlite3_memory_used() routine returns the number of bytes of memory currently outstanding (malloced but not freed). (source: c3ref/memory_highwater.html, matrix: context, detail)
When two BLOB values are compared, the result is determined using memcmp(). (source: datatype3.html, checked-by: th3/req1/datatype3_04.test, matrix: context, detail)
If Z is negative then the abs(Z) characters preceding the Y-th character are returned. (source: lang_corefunc.html, checked-by: th3/cov1/func02.test, matrix: context, detail)
The escape character followed by a percent symbol (%), underscore (_), or a second instance of the escape character itself matches a literal percent symbol, underscore, or a single escape character, respectively. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
PRAGMA pragma_list; This pragma returns a list of PRAGMA commands known to the database connection. (source: pragma.html, matrix: context, detail)
If a numeric literal has a decimal point or an exponentiation clause or if it is less than -9223372036854775808 or greater than 9223372036854775807, then it is a floating point literal. Otherwise is it is an integer literal. (source: lang_expr.html, checked-by: th3/req1/expr01.test, matrix: context, detail)
Usually, the parent key of a foreign key constraint is the primary key of the parent table. If they are not the primary key, then the parent key columns must be collectively subject to a UNIQUE constraint or have a UNIQUE index. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys07.test, matrix: context, detail)
The CREATE VIEW command assigns a name to a pre-packaged SELECT statement. (source: lang_createview.html, checked-by: th3/req1/view01.test, matrix: context, detail)
The sqlite3_data_count(P) will return non-zero if previous call to sqlite3_step(P) returned SQLITE_ROW, except in the case of the PRAGMA incremental_vacuum where it always returns zero since each step of that multi-step pragma returns 0 columns of data. (source: c3ref/data_count.html, checked-by: th3/req1/datacnt01.test, matrix: context, detail)
In a compound SELECT, only the last or right-most simple SELECT may contain a LIMIT clause. (source: lang_select.html, checked-by: tcl/limit.test, th3/req1/select02.test, matrix: context, detail)
The second integer on a freelist trunk page is the number of leaf page pointers to follow. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
The default isolation level for SQLite is SERIALIZABLE. (source: pragma.html, matrix: context, detail)
When immutable is set, SQLite assumes that the database file cannot be changed, even by a process with higher privilege, and so the database is opened read-only and all locking and change detection is disabled. (source: c3ref/open.html, checked-by: th3/cov1/nolock01.test, matrix: context, detail)
The sqlite3_result_text(), sqlite3_result_text16(), sqlite3_result_text16le(), and sqlite3_result_text16be() interfaces set the return value of the application-defined function to be a text string which is represented as UTF-8, UTF-16 native byte order, UTF-16 little endian, or UTF-16 big endian, respectively. (source: c3ref/result_blob.html, checked-by: th3/req1/result02.test, matrix: context, detail)
The scalar SQL function rtreecheck(R) or rtreecheck(S,R) runs an integrity check on the rtree table named R contained within database S. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree25.test, matrix: context, detail)
The user_version pragma will get or set the value of the user-version integer at offset 60 in the database header. (source: pragma.html, checked-by: th3/req1/pragma28.test, matrix: context, detail)
Newer versions of SQLite use the in-header database size if it is available but fall back to the actual file size if the in-header database size is not valid. (source: fileformat2.html, matrix: context, detail)
A 3-dimensional R*Tree has 7 columns. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq01.test, matrix: context, detail)
Missing values at the end of the record are filled in using the default value for the corresponding columns defined in the table schema. (source: fileformat2.html, matrix: context, detail)
The file change counter is a 4-byte big-endian integer at offset 24 that is incremented whenever the database file is unlocked after having been modified. (source: fileformat2.html, matrix: context, detail)
The current value of the requested counter is returned. (source: c3ref/stmt_status.html, matrix: context, detail)
The count(*) function (with no arguments) returns the total number of rows in the group. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
As long as exactly one connection is using a shared-memory wal-index, the locking mode can be changed freely between NORMAL and EXCLUSIVE. (source: wal.html, checked-by: tcl/e_wal.test, th3/req1/pragma05.test, matrix: context, detail)
For clarity: the values returned by sqlite3_column_bytes() and sqlite3_column_bytes16() are the number of bytes in the string, not the number of characters. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
The sqlite_schema.sql column stores SQL text that describes the object. This SQL text is a CREATE TABLE, CREATE VIRTUAL TABLE, CREATE INDEX, CREATE VIEW, or CREATE TRIGGER statement that if evaluated against the database file when it is the main database of a database connection would recreate the object. (source: fileformat2.html, matrix: context, detail)
unless the cell is on the root node, that the cell is bounded by the parent cell on the parent node. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree25.test, matrix: context, detail)
The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. (source: lang_corefunc.html, checked-by: th3/req1/func03.test, matrix: context, detail)
PRAGMA schema.cache_size; PRAGMA schema.cache_size = pages; PRAGMA schema.cache_size = -kibibytes; Query or change the suggested maximum number of database disk pages that SQLite will hold in memory at once per open database file. (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma09.test, matrix: context, detail)
The sqlite3_load_extension() interface attempts to load an SQLite extension library contained in the file zFile. (source: c3ref/load_extension.html, matrix: context, detail)
If foreign key constraints are enabled and a column with a REFERENCES clause is added, the column must have a default value of NULL. (source: lang_altertable.html, checked-by: th3/req1/altertable01.test, matrix: context, detail)
For an "ON UPDATE CASCADE" action, it means that the values stored in each dependent child key are modified to match the new parent key values. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys16.test, matrix: context, detail)
The string returned by sqlite3_expanded_sql(P), on the other hand, is obtained from sqlite3_malloc() and must be freed by the application by passing it to sqlite3_free(). (source: c3ref/expanded_sql.html, checked-by: th3/req1/sql01.test, matrix: context, detail)
This means that when VACUUMing a database, as much as twice the size of the original database file is required in free disk space. (source: lang_vacuum.html, matrix: context, detail)
If the callback returns zero, then no autovacuum happens. (source: c3ref/autovacuum_pages.html, checked-by: th3/cov1/autovac01.test, matrix: context, detail)
A NULL result is considered untrue when evaluating WHEN terms. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
And a 5-dimensional R*Tree has 11 columns. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq01.test, matrix: context, detail)
A SELECT statement will always have a positive sqlite3_column_count() but depending on the WHERE clause constraints and the table content, it might return no rows. (source: c3ref/column_count.html, matrix: context, detail)
No affinity is applied to comparison operands for the implicit comparisons associated with UNION, INTERSECT, or EXCEPT - the values are compared as is. (source: datatype3.html, checked-by: th3/req1/datatype3_07.test, matrix: context, detail)
If an error code is returned, that error will propagate back up through the SQLite code base to cause the statement that provoked the callback to report an error, though the commit will have still occurred. (source: c3ref/wal_hook.html, checked-by: tcl/e_walhook.test, matrix: context, detail)
The special encoding rules for columns with REAL affinity apply to WITHOUT ROWID tables the same as they do with rowid tables. (source: fileformat2.html, matrix: context, detail)
Parameters that are not assigned values using sqlite3_bind() are treated as NULL. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If the commit hook returns non-zero, then the COMMIT is converted into a ROLLBACK. (source: c3ref/commit_hook.html, matrix: context, detail)
If there is no ELSE expression and none of the WHEN expressions are true, then the overall result is NULL. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If any other error occurs while flushing dirty pages to disk (for example an IO error or out-of-memory condition), then processing is abandoned and an SQLite error code is returned to the caller immediately. (source: c3ref/db_cacheflush.html, matrix: context, detail)
The SQLITE_FCNTL_FILE_POINTER value for the op parameter causes a pointer to the underlying sqlite3_file object to be written into the space pointed to by the 4th parameter. (source: c3ref/file_control.html, matrix: context, detail)
PRAGMA recursive_triggers; PRAGMA recursive_triggers = boolean; Query, set, or clear the recursive trigger capability. (source: pragma.html, matrix: context, detail)
If foreign key constraints are enabled when it is prepared, the DROP TABLE command performs an implicit DELETE to remove all rows from the table before dropping it. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys16.test, th3/req1/foreignkeys22.test, matrix: context, detail)
If the function pointer is NULL, the sqlite3_log() interface becomes a no-op. (source: c3ref/c_config_covering_index_scan.html, checked-by: th3/cov1/log01.test, matrix: context, detail)
Any attempt to create a function with a longer name will result in SQLITE_MISUSE being returned. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc01.test, matrix: context, detail)
The new column may take any of the forms permissible in a CREATE TABLE statement, with the following restrictions: (source: lang_altertable.html, checked-by: th3/req1/altertable01.test, matrix: context, detail)
If database zDb is the name of an attached database that is not in WAL mode, SQLITE_OK is returned and both *pnLog and *pnCkpt set to -1. (source: c3ref/wal_checkpoint_v2.html, checked-by: tcl/e_walckpt.test, matrix: context, detail)
1 if the index-column is a key column and 0 if the index-column is an auxiliary column. (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma15x.test, matrix: context, detail)
Note that the order of the rules for determining column affinity is important. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
If write-ahead log mode is disabled, this pragma is a harmless no-op. (source: pragma.html, checked-by: th3/req1/pragma29.test, matrix: context, detail)
If no successful INSERTs into rowid tables have ever occurred on the database connection D, then sqlite3_last_insert_rowid(D) returns zero. (source: c3ref/last_insert_rowid.html, checked-by: th3/cov1/withoutrowid01.test, matrix: context, detail)
This option sets the threading mode to Multi-thread. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, matrix: context, detail)
The schema of the sqlite_stat1 table is as follows: CREATE TABLE sqlite_stat1(tbl,idx,stat); (source: fileformat2.html, matrix: context, detail)
The sqlite3_reset(S) interface resets the prepared statement S back to the beginning of its program. (source: c3ref/reset.html, checked-by: th3/req1/reset01.test, matrix: context, detail)
If the simple SELECT is a SELECT DISTINCT, then duplicate rows are removed from the set of result rows before it is returned. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
If SQLite is compiled with the SQLITE_THREADSAFE=0 compile-time option then the entire mutexing subsystem is omitted from the build and hence calls to sqlite3_config() with the SQLITE_CONFIG_GETMUTEX configuration option will return SQLITE_ERROR. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, th3/th3main.c, matrix: context, detail)
If N is zero then memory mapped I/O is disabled. (source: pragma.html, matrix: context, detail)
An INTEGER or REAL value is less than any TEXT or BLOB value. (source: datatype3.html, checked-by: th3/req1/datatype3_04.test, matrix: context, detail)
The sqlite3_uint64 and sqlite_uint64 types can store integer values between 0 and +18446744073709551615 inclusive. (source: c3ref/int64.html, checked-by: th3/req1/int64_01.test, matrix: context, detail)
When xBestIndex returns, the sqlite3_value object returned by sqlite3_vtab_rhs_value() is automatically deallocated. (source: c3ref/vtab_rhs_value.html, checked-by: src/where.c, tcl/vtabrhs1.test, matrix: context, detail)
the complete database schema for efficient implementation of the foreign key constraint might be: CREATE TABLE artist( artistid INTEGER PRIMARY KEY, artistname TEXT ); CREATE TABLE track( trackid INTEGER, trackname TEXT, trackartist INTEGER REFERENCES artist ); CREATE INDEX trackindex ON track(trackartist); (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys09.test, matrix: context, detail)
The sqlite3_blob_bytes() interface returns the size of the BLOB in bytes. (source: c3ref/blob.html, checked-by: th3/cov1/vdbeblob01.test, matrix: context, detail)
Value is a BLOB that is (N-12)/2 bytes in length. (source: fileformat2.html, checked-by: src/vdbeaux.c, th3/req1/fileformat02.test, matrix: context, detail)
This is the number of rows inserted into transient indices that were created automatically in order to help joins run faster. (source: c3ref/c_stmtstatus_counter.html, matrix: context, detail)
If either X or Y are NULL in instr(X,Y) then the result is NULL. (source: lang_corefunc.html, checked-by: tcl/instr.test, matrix: context, detail)
Bindings are not cleared by the sqlite3_reset() routine. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
If a schema name is specified, then only that one schema is searched for the named object. (source: lang_naming.html, checked-by: tcl/e_resolve.test, matrix: context, detail)
The fourth parameter to the preupdate callback is the name of the database within the database connection that is being modified. This will be "main" for the main database or "temp" for TEMP tables or the name given after the AS keyword in the ATTACH statement for attached databases. (source: c3ref/preupdate_blobwrite.html, matrix: context, detail)
Every column of every table has an associated collating function. (source: datatype3.html, checked-by: th3/req1/datatype3_09.test, matrix: context, detail)
The sqlite3_mutex_enter() and sqlite3_mutex_try() routines attempt to enter a mutex. (source: c3ref/mutex_alloc.html, matrix: context, detail)
The xShutdown method is only called from sqlite3_shutdown() so it does not need to be threadsafe either. (source: c3ref/pcache_methods2.html, matrix: context, detail)
The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. (source: lang_corefunc.html, checked-by: th3/req1/func01.test, matrix: context, detail)
Generated columns can have a datatype. (source: gencol.html, matrix: context, detail)
For the purposes of grouping rows, NULL values are considered equal. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The soft heap limit is automatically enabled whenever the hard heap limit is enabled. (source: c3ref/hard_heap_limit64.html, matrix: context, detail)
For indexes on WITHOUT ROWID tables, N will be the number of columns indexed plus the number of columns in the primary key. (source: fileformat2.html, matrix: context, detail)
If this flag is set, then the F_FULLFSYNC syncing method is used during checkpoint operations on systems that support F_FULLFSYNC. (source: pragma.html, checked-by: th3/req1/pragma11.test, matrix: context, detail)
A 1-dimensional R*Tree thus has 3 columns. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq01.test, matrix: context, detail)
A zero is returned if no matching parameter is found. (source: c3ref/bind_parameter_index.html, checked-by: th3/req1/bind03.test, matrix: context, detail)
The registration remains valid until it is replaced by a different module or until the database connection closes. (source: c3ref/module.html, matrix: context, detail)
However, if an insert fails due to (for example) a uniqueness constraint, the ROWID of the failed insertion attempt might not be reused on subsequent inserts, resulting in gaps in the ROWID sequence. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
The authorizer callback is invoked as SQL statements are being compiled by sqlite3_prepare() or its variants sqlite3_prepare_v2(), sqlite3_prepare_v3(), sqlite3_prepare16(), sqlite3_prepare16_v2(), and sqlite3_prepare16_v3(). (source: c3ref/set_authorizer.html, matrix: context, detail)
Numeric values (serial types 1 through 9) sort after NULLs and in numeric order. (source: fileformat2.html, checked-by: th3/req1/fileformat05.test, matrix: context, detail)
A new R*Tree index is created as follows: CREATE VIRTUAL TABLE
If the 5th parameter to sqlite3_exec() is not NULL then any error message is written into memory obtained from sqlite3_malloc() and passed back through the 5th parameter. (source: c3ref/exec.html, checked-by: th3/req1/exec01.test, matrix: context, detail)
The returned value is one of SQLITE_INTEGER, SQLITE_FLOAT, SQLITE_TEXT, SQLITE_BLOB, or SQLITE_NULL. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
The N-th integer (for N>1) is the estimated average number of rows in the index which have the same value for the first N-1 columns. (source: fileformat2.html, matrix: context, detail)
A RETURNING clause for an UPSERT reports both inserted and updated rows. (source: lang_returning.html, checked-by: th3/cov1/returning01.test, matrix: context, detail)
The time-value (and all modifiers) may be omitted, in which case a time value of 'now' is assumed. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
The solution to enforcing one leader per team is to create a unique index on team_id but restricted to those entries for which is_team_leader is true: CREATE UNIQUE INDEX team_leader ON person(team_id) WHERE is_team_leader; (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
For the purposes of this routine, an INSERT is considered to be successful even if it is subsequently rolled back. (source: c3ref/last_insert_rowid.html, matrix: context, detail)
Virtual tables methods can set an error message by assigning a string obtained from sqlite3_mprintf() to zErrMsg. (source: c3ref/vtab.html, checked-by: th3/req1/vtab01.test, matrix: context, detail)
If the table has never before contained any data, then a ROWID of 1 is used. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
The name for the collating sequence used to compare values in the index-column. (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma15x.test, matrix: context, detail)
When multiple database connections share the same cache, changing the secure-delete flag on one database connection changes it for them all. (source: pragma.html, checked-by: th3/cov1/pragma21.test, matrix: context, detail)
The second parameter to the logger function is a copy of the first parameter to the corresponding sqlite3_log() call and is intended to be a result code or an extended result code. (source: c3ref/c_config_covering_index_scan.html, checked-by: th3/cov1/log01.test, matrix: context, detail)
A column that uses INTEGER affinity behaves the same as a column with NUMERIC affinity. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
SQLite does not use the lock-byte page. (source: fileformat2.html, matrix: context, detail)
If the default value of a column is CURRENT_TIME, CURRENT_DATE or CURRENT_TIMESTAMP, then the value used in the new row is a text representation of the current UTC date and/or time. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
A keyword enclosed in square brackets is an identifier. (source: lang_keywords.html, checked-by: th3/req1/keyword01.test, matrix: context, detail)
PRAGMA schema.foreign_key_check; PRAGMA schema.foreign_key_check(table-name); (source: pragma.html, checked-by: tcl/fkey5.test, th3/cov1/fkey23.test, matrix: context, detail)
Indices are not required for child key columns (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys07.test, matrix: context, detail)
Furthermore, the data_store_directory pragma always assumes that any string that this variable points to is held in memory obtained from sqlite3_malloc and the pragma may attempt to free that memory using sqlite3_free. (source: c3ref/data_directory.html, matrix: context, detail)
An SQLITE_TRACE_STMT callback is invoked when a prepared statement first begins running and possibly at other times during the execution of the prepared statement, such as at the start of each trigger subprogram. (source: c3ref/c_trace.html, checked-by: th3/cov1/trace01.test, matrix: context, detail)
The maximum and minimum embedded payload fractions and the leaf payload fraction values must be 64, 32, and 32. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
The second callback argument is one of SQLITE_INSERT, SQLITE_DELETE, or SQLITE_UPDATE, depending on the operation that caused the callback to be invoked. (source: c3ref/update_hook.html, checked-by: tcl/hook.test, th3/cov1/main15.test, matrix: context, detail)
For all of these errors, SQLite attempts to undo just the one statement it was working on and leave changes from prior statements within the same transaction intact and continue with the transaction. (source: lang_transaction.html, matrix: context, detail)
Inserting a NULL value into this column causes SQLite to automatically generate a new unique primary key value. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq01.test, matrix: context, detail)
If the largest root b-tree page value is zero, then the database must not contain ptrmap pages. (source: fileformat2.html, matrix: context, detail)
So just because a column is declared to contain a particular type does not mean that the data stored in that column is of the declared type. (source: c3ref/column_decltype.html, matrix: context, detail)
The added rows contain NULL values in the columns that would normally contain values copied from the right-hand input dataset. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
Unfinalized SQL statements typically hold a read transaction open, so the VACUUM might fail if there are unfinalized SQL statements on the same connection. (source: lang_vacuum.html, checked-by: src/vacuum.c, matrix: context, detail)
If it is NULL, then all attached databases are searched for the table using the same algorithm used by the database engine to resolve unqualified table references. (source: c3ref/table_column_metadata.html, checked-by: th3/cov1/metadata01.test, matrix: context, detail)
In this case the call to sqlite3_backup_step() can be retried later. (source: c3ref/backup_finish.html, matrix: context, detail)
If the locking mode is EXCLUSIVE when first entering WAL journal mode, then the locking mode cannot be changed to NORMAL until after exiting WAL journal mode. (source: pragma.html, checked-by: th3/req1/pragma05.test, matrix: context, detail)
PRAGMA schema.page_count; Return the total number of pages in the database file. (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma12.test, matrix: context, detail)
If it is set to "ASC" (the default), then the data structures are optimized for returning results in ascending order by docid. (source: fts3.html, matrix: context, detail)
The LIKE optimization will only be attempted if the right-hand side of the GLOB or LIKE operator is either literal string or a parameter that has been bound to a string literal. (source: optoverview.html, matrix: context, detail)
Keyword arguments can optionally appear in quotes. (source: pragma.html, checked-by: th3/req1/pragma01.test, matrix: context, detail)
The child key index does not have to be (and usually will not be) a UNIQUE index. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys09.test, matrix: context, detail)
If the join-operator is a "RIGHT JOIN" or "RIGHT OUTER JOIN", then after the ON or USING filtering clauses have been applied, an extra row is added to the output for each row in the original right-hand input dataset that does not match any row in the left-hand dataset. (source: lang_select.html, matrix: context, detail)
When comparing text values, the collating sequence associated with the parent key column is always used. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys03.test, matrix: context, detail)
If index-name does not exist or cannot be used for the query, then the preparation of the SQL statement fails. (source: lang_indexedby.html, checked-by: tcl/indexedby.test, matrix: context, detail)
The SQLITE_TRANSIENT value means that the content will likely change in the near future and that SQLite should make its own private copy of the content before returning. (source: c3ref/c_static.html, checked-by: th3/req1/clearbind01.test, th3/req1/static01.test, matrix: context, detail)
The IN and NOT IN operators take an expression on the left and a list of values or a subquery on the right. (source: lang_expr.html, checked-by: th3/cov1/in01.test, matrix: context, detail)
The first parameter is a prepared statement. If this statement is a SELECT statement and the Nth column of the returned result set of that SELECT is a table column (not an expression or subquery) then the declared type of the table column is returned. (source: c3ref/column_decltype.html, matrix: context, detail)
The psow query parameter overrides the powersafe overwrite property of the database file being opened. (source: uri.html, matrix: context, detail)
The WHERE clause on a query is broken up into "terms" where each term is separated from the others by an AND operator. (source: optoverview.html, matrix: context, detail)
The "." character is always used as the decimal point even if the locale setting specifies "," for this role - the use of "," for the decimal point would result in syntactic ambiguity. (source: lang_expr.html, checked-by: th3/req1/expr01.test, matrix: context, detail)
Similarly, the "DEFAULT VALUES" form of the INSERT statement is supported for top-level INSERT statements only and not for INSERT statements within triggers. (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
The result of any binary operator is either a numeric value or NULL, except for the || concatenation operator, and the -> and ->> extract operators which evaluate to either NULL or a text value. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
In incremental mode, the separate incremental_vacuum pragma must be invoked to cause the auto-vacuum to occur. (source: pragma.html, checked-by: th3/req1/pragma07.test, matrix: context, detail)
2. (source: lang_delete.html, matrix: context, detail)
As you would expect, it is not possible to manipulate the database to a state that violates the foreign key constraint by deleting or updating rows in the artist table either: sqlite> -- Attempting to delete the artist record for "Frank Sinatra" fails, since sqlite> -- the track table contains a row that refer to it. sqlite> DELETE FROM artist WHERE artistname = 'Frank Sinatra'; SQL error: foreign key constraint failed sqlite> -- Delete all the records from the track table that refer to the artist sqlite> -- "Frank Sinatra". Only then is it possible to delete the artist. sqlite> DELETE FROM track WHERE trackname = 'My Way'; sqlite> DELETE FROM artist WHERE artistname = 'Frank Sinatra'; sqlite> -- Try to update the artistid of a row in the artist table while there sqlite> -- exists records in the track table that refer to it. sqlite> UPDATE artist SET artistid=4 WHERE artistname = 'Dean Martin'; SQL error: foreign key constraint failed sqlite> -- Once all the records that refer to a row in the artist table have sqlite> -- been deleted, it is possible to modify the artistid of the row. sqlite> DELETE FROM track WHERE trackname IN('That''s Amore', 'Christmas Blues'); sqlite> UPDATE artist SET artistid=4 WHERE artistname = 'Dean Martin'; (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys01.test, matrix: context, detail)
The other allowed parameters to sqlite3_mutex_alloc() (anything other than SQLITE_MUTEX_FAST and SQLITE_MUTEX_RECURSIVE) each return a pointer to a static preexisting mutex. (source: c3ref/mutex_alloc.html, matrix: context, detail)
PRAGMA read_uncommitted; PRAGMA read_uncommitted = boolean; Query, set, or clear READ UNCOMMITTED isolation. (source: pragma.html, matrix: context, detail)
The min() aggregate function returns the minimum non-NULL value of all values in the group. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
If no encoding is first set with this pragma, then the encoding with which the main database will be created defaults to one determined by the API used to open the connection. (source: pragma.html, matrix: context, detail)
If the "unordered" argument is present, then the query planner assumes that the index is unordered and will not use the index for a range query or for sorting. (source: fileformat2.html, checked-by: th3/cov1/unordered01.test, matrix: context, detail)
All other date and time functions can be expressed in terms of strftime(): FunctionEquivalent (or nearly) strftime() date(...) strftime('%Y-%m-%d', ...) time(...) strftime('%H:%M:%S', ...) datetime(...) strftime('%Y-%m-%d %H:%M:%S', ...) julianday(...) strftime('%J', ...) -- note-1 unixepoch(...) strftime('%s', ...) -- note-1 (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
The extension can add new functions or collating sequences, but cannot modify or delete existing functions or collating sequences because those functions and/or collating sequences might be used elsewhere in the currently running SQL statement. (source: lang_corefunc.html, checked-by: th3/cov1/func03.test, matrix: context, detail)
If the FROM clause is omitted from a simple SELECT statement, then the input data is implicitly a single row zero columns wide (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
If the optional IF NOT EXISTS clause is present and another index with the same name already exists, then this command becomes a no-op. (source: lang_createindex.html, checked-by: th3/req1/createidx01.test, matrix: context, detail)
The following SQLite command-line session illustrates the effect of the foreign key constraint added to the track table: sqlite> SELECT * FROM artist; artistid artistname -------- ----------------- 1 Dean Martin 2 Frank Sinatra sqlite> SELECT * FROM track; trackid trackname trackartist ------- ----------------- ----------- 11 That's Amore 1 12 Christmas Blues 1 13 My Way 2 sqlite> -- This fails because the value inserted into the trackartist column (3) sqlite> -- does not correspond to row in the artist table. sqlite> INSERT INTO track VALUES(14, 'Mr. Bojangles', 3); SQL error: foreign key constraint failed sqlite> -- This succeeds because a NULL is inserted into trackartist. A sqlite> -- corresponding row in the artist table is not required in this case. sqlite> INSERT INTO track VALUES(14, 'Mr. Bojangles', NULL); sqlite> -- Trying to modify the trackartist field of the record after it has sqlite> -- been inserted does not work either, since the new value of trackartist (3) sqlite> -- Still does not correspond to any row in the artist table. sqlite> UPDATE track SET trackartist = 3 WHERE trackname = 'Mr. Bojangles'; SQL error: foreign key constraint failed sqlite> -- Insert the required row into the artist table. It is then possible to sqlite> -- update the inserted row to set trackartist to 3 (since a corresponding sqlite> -- row in the artist table now exists). sqlite> INSERT INTO artist VALUES(3, 'Sammy Davis Jr.'); sqlite> UPDATE track SET trackartist = 3 WHERE trackname = 'Mr. Bojangles'; sqlite> -- Now that "Sammy Davis Jr." (artistid = 3) has been added to the database, sqlite> -- it is possible to INSERT new tracks using this artist without violating sqlite> -- the foreign key constraint: sqlite> INSERT INTO track VALUES(15, 'Boogie Woogie', 3); (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys01.test, matrix: context, detail)
sqlite> CREATE INDEX i1 ON t1(a); sqlite> EXPLAIN QUERY PLAN SELECT a, b FROM t1 WHERE a=1; QUERY PLAN `--SEARCH t1 USING INDEX i1 (a=?) (source: eqp.html, matrix: context, detail)
After the error message is delivered up to the client application, the string will be automatically freed by sqlite3_free() and the zErrMsg field will be zeroed. (source: c3ref/vtab.html, checked-by: th3/req1/vtab01.test, matrix: context, detail)
SQLite uses a cost-based query planner that estimates the CPU and disk I/O costs of various competing query plans and chooses the plan that it thinks will be the fastest. (source: optoverview.html, matrix: context, detail)
The sqlite3_str_finish(X) interface will also return a NULL pointer if the string in sqlite3_str object X is zero bytes long. (source: c3ref/str_finish.html, matrix: context, detail)
The LIKE and GLOB optimizations consist of adding two virtual terms like this: column >= x AND column < y (source: optoverview.html, matrix: context, detail)
If X is a string then characters indices refer to actual UTF-8 characters. (source: lang_corefunc.html, checked-by: th3/cov1/func02.test, matrix: context, detail)
Whenever the xFilename parameter is NULL it will also be the case that the flags parameter will include SQLITE_OPEN_DELETEONCLOSE. (source: c3ref/vfs.html, checked-by: th3/th3testvfs.c, matrix: context, detail)
SQLite uses the string pointed to by the 2nd parameter of sqlite3_result_error() or sqlite3_result_error16() as the text of an error message. (source: c3ref/result_blob.html, checked-by: th3/req1/result01.test, matrix: context, detail)
Checkpoint as many frames as possible without waiting for any database readers or writers to finish, then sync the database file if all frames in the log were checkpointed. (source: c3ref/wal_checkpoint_v2.html, checked-by: tcl/e_walckpt.test, th3/req1/checkpoint01.test, matrix: context, detail)
The implementation of the new function always causes an exception to be thrown. (source: c3ref/overload_function.html, matrix: context, detail)
The sqlite_schema.sql is NULL for the internal indexes that are automatically created by UNIQUE or PRIMARY KEY constraints. (source: fileformat2.html, matrix: context, detail)
If the specified column is "rowid", "oid" or "_rowid_" and the table is not a WITHOUT ROWID table and an INTEGER PRIMARY KEY column has been explicitly declared, then the output parameters are set for the explicitly declared column. (source: c3ref/table_column_metadata.html, checked-by: th3/cov1/metadata01.test, matrix: context, detail)
SQLITE_CONFIG_LOOKASIDE sets the default lookaside size. The SQLITE_DBCONFIG_LOOKASIDE option to sqlite3_db_config() can be used to change the lookaside configuration on individual connections. (source: c3ref/c_config_covering_index_scan.html, matrix: context, detail)
An error is still returned if the table cannot be created because of an existing index, even if the "IF NOT EXISTS" clause is specified. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
Let X be ((U-12)*64/255)-23. If the payload size P is less than or equal to X then the entire payload is stored on the b-tree page. (source: fileformat2.html, matrix: context, detail)
This means that if there is a RETURNING clause, the rows returned by the statement probably will not be in the order specified by the ORDER BY clause. (source: lang_delete.html, matrix: context, detail)
When memory allocation statistics are disabled, the following SQLite interfaces become non-operational: sqlite3_hard_heap_limit64() sqlite3_memory_used() sqlite3_memory_highwater() sqlite3_soft_heap_limit64() sqlite3_status64() (source: c3ref/c_config_covering_index_scan.html, matrix: context, detail)
If the fourth parameter to sqlite3_bind_text() or sqlite3_bind_text16() is negative, then the length of the string is the number of bytes up to the first zero terminator. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
The LIKE operator does a pattern matching comparison. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The xDestroy callback is not called if the sqlite3_create_collation_v2() function fails. (source: c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test, matrix: context, detail)
CREATE TABLE t1( t TEXT, -- text affinity by rule 2 nu NUMERIC, -- numeric affinity by rule 5 i INTEGER, -- integer affinity by rule 1 r REAL, -- real affinity by rule 4 no BLOB -- no affinity by rule 3 ); -- Values stored as TEXT, INTEGER, INTEGER, REAL, TEXT. INSERT INTO t1 VALUES('500.0', '500.0', '500.0', '500.0', '500.0'); SELECT typeof(t), typeof(nu), typeof(i), typeof(r), typeof(no) FROM t1; text|integer|integer|real|text -- Values stored as TEXT, INTEGER, INTEGER, REAL, REAL. DELETE FROM t1; INSERT INTO t1 VALUES(500.0, 500.0, 500.0, 500.0, 500.0); SELECT typeof(t), typeof(nu), typeof(i), typeof(r), typeof(no) FROM t1; text|integer|integer|real|real -- Values stored as TEXT, INTEGER, INTEGER, REAL, INTEGER. DELETE FROM t1; INSERT INTO t1 VALUES(500, 500, 500, 500, 500); SELECT typeof(t), typeof(nu), typeof(i), typeof(r), typeof(no) FROM t1; text|integer|integer|real|integer -- BLOBs are always stored as BLOBs regardless of column affinity. DELETE FROM t1; INSERT INTO t1 VALUES(x'0500', x'0500', x'0500', x'0500', x'0500'); SELECT typeof(t), typeof(nu), typeof(i), typeof(r), typeof(no) FROM t1; blob|blob|blob|blob|blob -- NULLs are also unaffected by affinity DELETE FROM t1; INSERT INTO t1 VALUES(NULL,NULL,NULL,NULL,NULL); SELECT typeof(t), typeof(nu), typeof(i), typeof(r), typeof(no) FROM t1; null|null|null|null|null (source: datatype3.html, checked-by: th3/req1/datatype3_03.test, matrix: context, detail)
If pnLog is not NULL, then *pnLog is set to the total number of frames in the log file or to -1 if the checkpoint could not run because of an error or because the database is not in WAL mode. (source: c3ref/wal_checkpoint_v2.html, checked-by: tcl/e_walckpt.test, matrix: context, detail)
Assuming that customer records are stored in the "customers" table, and that order records are stored in the "orders" table, the following UPDATE trigger ensures that all associated orders are redirected when a customer changes his or her address: CREATE TRIGGER update_customer_address UPDATE OF address ON customers BEGIN UPDATE orders SET address = new.address WHERE customer_name = old.name; END; With this trigger installed, executing the statement: UPDATE customers SET address = '1 Main St.' WHERE name = 'Jack Jones'; causes the following to be automatically executed: UPDATE orders SET address = '1 Main St.' WHERE customer_name = 'Jack Jones'; (source: lang_createtrigger.html, matrix: context, detail)
A table created using CREATE TABLE AS has no PRIMARY KEY and no constraints of any kind. The default value of each column is NULL. The default collation sequence for each column of the new table is BINARY. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
All spaces following the first two keywords are converted into a single space. (source: fileformat2.html, matrix: context, detail)
The filename in the INTO clause can be an arbitrary SQL expression that evaluates to a string. (source: lang_vacuum.html, checked-by: th3/cov1/vacuum10.test, matrix: context, detail)
Each R*Tree index is a virtual table with an odd number of columns between 3 and 11. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq01.test, matrix: context, detail)
The column may not be GENERATED ALWAYS . (source: lang_altertable.html, matrix: context, detail)
In this case, the object and the provided pointer to it must remain valid until either the prepared statement is finalized or the same SQL parameter is bound to something else, whichever occurs sooner. (source: c3ref/bind_blob.html, matrix: context, detail)
When two TEXT values are compared an appropriate collating sequence is used to determine the result. (source: datatype3.html, checked-by: th3/req1/datatype3_04.test, matrix: context, detail)
If the specified table is actually a view, an error code is returned. (source: c3ref/table_column_metadata.html, checked-by: th3/cov1/metadata01.test, matrix: context, detail)
You cannot DELETE, INSERT, or UPDATE a view. (source: lang_createview.html, checked-by: slt/slt_lang_createview.test, th3/req1/view01.test, matrix: context, detail)
The integer return value from the callback is currently ignored, though this may change in future releases. (source: c3ref/trace_v2.html, matrix: context, detail)
Support for the diagnostic functions sqlite3_compileoption_used() and sqlite3_compileoption_get() may be omitted by specifying the SQLITE_OMIT_COMPILEOPTION_DIAGS option at compile time. (source: c3ref/compileoption_get.html, checked-by: src/ctime.c, matrix: context, detail)
However, in many cases you can use an INSTEAD OF trigger on the view to accomplish the same thing. (source: lang_createview.html, matrix: context, detail)
The SQL syntax for custom queries is the same regardless of which interface, sqlite3_rtree_geometry_callback() or sqlite3_rtree_query_callback(), is used to register the SQL function. (source: rtree.html, checked-by: tcl/rtreedoc2.test, th3/cov1/rtree03.test, th3/cov1/rtree04.test, matrix: context, detail)
The xSetSystemCall(), xGetSystemCall(), and xNestSystemCall() interfaces are not used by the SQLite core. (source: c3ref/vfs.html, matrix: context, detail)
The %z format is interchangeable with %s. (source: lang_corefunc.html, checked-by: tcl/printf2.test, th3/cov1/printf08.test, matrix: context, detail)
Multiple collating functions can be registered using the same name but with different eTextRep parameters and SQLite will use whichever function requires the least amount of data transformation. (source: c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test, matrix: context, detail)
If this global variable is made to point to a string which is the name of a folder (a.k.a. directory), then all database files specified with a relative pathname and created or accessed by SQLite when using a built-in windows VFS will be assumed to be relative to that directory. (source: c3ref/data_directory.html, matrix: context, detail)
The multi-argument min() function searches its arguments from left to right for an argument that defines a collating function and uses that collating function for all string comparisons. (source: lang_corefunc.html, checked-by: th3/req1/func03.test, matrix: context, detail)
Regardless of whether or not it is successful, this file control takes the file descriptor out of batch write mode so that all subsequent write operations are independent. (source: c3ref/c_fcntl_begin_atomic_write.html, matrix: context, detail)
The sqlite3_column_name() interface returns a pointer to a zero-terminated UTF-8 string and sqlite3_column_name16() returns a pointer to a zero-terminated UTF-16 string. (source: c3ref/column_name.html, matrix: context, detail)
The "start of" modifiers (7 through 9) shift the date backwards to the beginning of the subject month, year or day. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
The SQLITE_ENABLE_STAT3 and SQLITE_ENABLE_STAT4 options causes the ANALYZE command to collect a histogram of column content in the sqlite_stat3 or sqlite_stat4 tables and to use this histogram to make a better guess at the best query to use for range constraints such as the above. (source: optoverview.html, matrix: context, detail)
Within a trigger program each INSERT, UPDATE and DELETE statement sets the value returned by sqlite3_changes() upon completion as normal. Of course, this value will not include any changes performed by sub-triggers, as the sqlite3_changes() value will be saved and restored after each sub-trigger has run. (source: c3ref/changes.html, checked-by: tcl/e_changes.test, matrix: context, detail)
The sort order may or may not be ignored depending on the database file format, and in particular the schema format number. (source: lang_createindex.html, checked-by: th3/req1/createidx02.test, matrix: context, detail)
The result of avg() is always a floating point value whenever there is at least one non-NULL input even if all inputs are integers. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
The busy-handler callback is never invoked in this mode. (source: pragma.html, checked-by: th3/req1/checkpoint01.test, matrix: context, detail)
COLLATE clauses work the same. (source: stricttables.html, checked-by: th3/cov1/build08.test, matrix: context, detail)
Calling sqlite3_free() with a pointer previously returned by sqlite3_malloc() or sqlite3_realloc() releases that memory so that it might be reused. (source: c3ref/free.html, checked-by: th3/req1/malloc02.test, matrix: context, detail)
If the action code is SQLITE_DELETE and the callback returns SQLITE_IGNORE then the DELETE operation proceeds but the truncate optimization is disabled and all rows are deleted individually. (source: c3ref/set_authorizer.html, checked-by: src/delete.c, th3/cov1/delete05.test, matrix: context, detail)
The pArg argument is passed through to the callback. (source: c3ref/commit_hook.html, matrix: context, detail)
Immediately following the wal-header are zero or more frames. (source: fileformat2.html, matrix: context, detail)
The S and M arguments passed to sqlite3_backup_init(D,N,S,M) identify the database connection and database name of the source database, respectively. (source: c3ref/backup_finish.html, checked-by: th3/req1/backup02.test, matrix: context, detail)
If both arguments X and Y to instr(X,Y) are non-NULL and are not BLOBs then both are interpreted as strings. (source: lang_corefunc.html, checked-by: tcl/instr.test, matrix: context, detail)
This is the number of times that SQLite has stepped forward in a table as part of a full table scan. (source: c3ref/c_stmtstatus_counter.html, matrix: context, detail)
Any attempt to insert a duplicate entry will result in an error. (source: lang_createindex.html, checked-by: th3/req1/createidx01.test, matrix: context, detail)
This value is not actually a counter, and so the resetFlg parameter to sqlite3_stmt_status() is ignored when the opcode is SQLITE_STMTSTATUS_MEMUSED. (source: c3ref/c_stmtstatus_counter.html, matrix: context, detail)
Like other SQL identifiers, schema names are case-insensitive. (source: lang_naming.html, checked-by: tcl/e_resolve.test, matrix: context, detail)
The sqlite3_stmt_busy(S) interface returns false if S is a NULL pointer. (source: c3ref/stmt_busy.html, checked-by: th3/cov1/vdbeapi03.test, matrix: context, detail)
If the schema. name appears before the pragma, then only tables in that one schema are shown. (source: pragma.html, checked-by: th3/cov1/pragma30.test, matrix: context, detail)
If the authority is not an empty string or "localhost", an error is returned to the caller. (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
The VACUUM command may change the ROWIDs of entries in any tables that do not have an explicit INTEGER PRIMARY KEY. (source: lang_vacuum.html, checked-by: tcl/e_vacuum.test, th3/cov1/vacuum01.test, matrix: context, detail)
Likewise, registering a callback using sqlite3_wal_hook() disables the automatic checkpoint mechanism configured by this function. (source: c3ref/wal_autocheckpoint.html, checked-by: tcl/e_walauto.test, matrix: context, detail)
If the WAL contains no copies of page P that are valid and which are a commit frame or are followed by a commit frame, then page P is read from the database file. (source: fileformat2.html, matrix: context, detail)
The default implementation stores all statistics in a single table named "sqlite_stat1". (source: lang_analyze.html, checked-by: th3/req1/analyze01.test, matrix: context, detail)
Parameter OutputType Description 5th const char* Data type 6th const char* Name of default collation sequence 7th int True if column has a NOT NULL constraint 8th int True if column is part of the PRIMARY KEY 9th int True if column is AUTOINCREMENT (source: c3ref/table_column_metadata.html, checked-by: th3/cov1/metadata01.test, matrix: context, detail)
If foreign key constraints are enabled, a DROP TABLE command performs an implicit DELETE FROM command before removing the table from the database schema. (source: lang_droptable.html, checked-by: th3/req1/droptable01.test, matrix: context, detail)
A similar effect occurs when the original date is February 29 of a leapyear and the modifier is ±N years where N is not a multiple of four. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
Strings returned by sqlite3_column_text16() always have the endianness which is native to the platform, regardless of the text encoding set for the database. (source: c3ref/column_blob.html, matrix: context, detail)
If the resetFlag is true, then the highest record value is reset after *pHighwater is written. (source: c3ref/status.html, matrix: context, detail)
These interfaces are only available if SQLite is compiled using the SQLITE_ENABLE_PREUPDATE_HOOK compile-time option. (source: c3ref/preupdate_blobwrite.html, matrix: context, detail)
Boolean values are stored as integers 0 (false) and 1 (true). (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
A particular database will use either a rollback journal or a WAL, but not both at the same time. (source: fileformat2.html, matrix: context, detail)
A negative number implies no limit. (source: pragma.html, checked-by: th3/req1/pragma26.test, matrix: context, detail)
The next time SQLite attempts to open the database file, the presence of the rollback journal file will be detected and the journal will be automatically played back to restore the database to its state at the start of the incomplete transaction. (source: fileformat2.html, matrix: context, detail)
The sqlite3_create_module_v2() interface has a fifth parameter which is a pointer to a destructor for the pClientData. (source: c3ref/create_module.html, matrix: context, detail)
[expr] ESCAPE [escape-character-expr] 4 (source: lang_expr.html, matrix: context, detail)
At various points during the compilation process, as logic is being created to perform various actions, the authorizer callback is invoked to see if those actions are allowed. (source: c3ref/set_authorizer.html, matrix: context, detail)
Only ROWID values from previous transactions that were committed are considered. ROWID values that were rolled back are ignored and can be reused. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
An aggregate SQL function requires an implementation of xStep and xFinal and NULL pointer must be passed for xFunc. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc03.test, matrix: context, detail)
Each frame consists of a 24-byte frame-header followed by a page-size bytes of page data. (source: fileformat2.html, matrix: context, detail)
Pointers to the right of X refer to pages where all keys are greater than X. (source: fileformat2.html, matrix: context, detail)
Most R*Tree queries use a depth-first search. This is accomplished by setting the rScore equal to iLevel. (source: rtree.html, matrix: context, detail)
The name of a result column is the value of the "AS" clause for that column, if there is an AS clause. (source: c3ref/column_name.html, matrix: context, detail)
The sqlite3_snapshot_open(D,S,P) interface either starts a new read transaction or upgrades an existing one for schema S of database connection D such that the read transaction refers to historical snapshot P, rather than the most recent change to the database. (source: c3ref/snapshot_open.html, matrix: context, detail)
If the largest possible ROWID has previously been inserted, then new INSERTs are not allowed and any attempt to insert a new row will fail with an SQLITE_FULL error. (source: autoinc.html, checked-by: src/vdbe.c, th3/req1/autoinc01.test, matrix: context, detail)
If an error occurs within sqlite3_backup_init(D,N,S,M), then NULL is returned and an error code and error message are stored in the destination database connection D. (source: c3ref/backup_finish.html, checked-by: th3/req1/backup02.test, matrix: context, detail)
In ordinary indexes, there is exactly one entry in the index for every row in the table. (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
The third parameter (nArg) is the number of arguments that the SQL function or aggregate takes. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc02.test, matrix: context, detail)
The first column of an SQLite R*Tree is similar to an integer primary key column of a normal SQLite table. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq01.test, matrix: context, detail)
Table names that begin with "sqlite_" are reserved for internal use. It is an error to attempt to create a table with a name that starts with "sqlite_". (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The statistics gathered by this scan are stored in special database tables names shows names all begin with "sqlite_stat". (source: optoverview.html, matrix: context, detail)
The extract operators act as a special syntax for functions "->"() and "->>"(). (source: lang_expr.html, matrix: context, detail)
The fifth parameter is an arbitrary pointer. The implementation of the function can gain access to this pointer using sqlite3_user_data(). (source: c3ref/create_function.html, checked-by: th3/req1/userdata01.test, matrix: context, detail)
The left-hand operand of the operator is given by the corresponding aConstraint[]. (source: c3ref/c_index_constraint_eq.html, matrix: context, detail)
EXTRA synchronous is like FULL with the addition that the directory containing a rollback journal is synced after that journal is unlinked to commit a transaction in DELETE mode. (source: pragma.html, matrix: context, detail)
If there is no metadata associated with the function argument, the sqlite3_get_auxdata(C,N) interface returns a NULL pointer. (source: c3ref/get_auxdata.html, matrix: context, detail)
The psow query parameter works with the default windows and unix VFSes but might be a no-op for other proprietary or non-standard VFSes. (source: uri.html, matrix: context, detail)
numeric arguments in parentheses that following the type name (ex: "VARCHAR(255)") are ignored (source: datatype3.html, checked-by: th3/req1/datatype3_02.test, matrix: context, detail)
For example, let the index be CREATE INDEX ex1 ON tab1(a,b) WHERE a=5 OR b=6; And let the query be: SELECT * FROM tab1 WHERE b=6 AND a=7; -- uses partial index Then the index is usable by the query because the "b=6" term appears in both the index definition and in the query. (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
This interface enables or disables both the C-API sqlite3_load_extension() and the SQL function load_extension(). (source: c3ref/enable_load_extension.html, matrix: context, detail)
the current parser accepts duplicate options without complaining (source: stricttables.html, checked-by: th3/req1/strictreq01.test, matrix: context, detail)
Value is the integer 1. (source: fileformat2.html, checked-by: src/vdbeaux.c, th3/req1/fileformat02.test, matrix: context, detail)
PRAGMA foreign_keys; PRAGMA foreign_keys = boolean; Query, set, or clear the enforcement of foreign key constraints. (source: pragma.html, checked-by: th3/req1/pragma18.test, matrix: context, detail)
SQLITE_STATUS_MALLOC_SIZE This parameter records the largest memory allocation request handed to sqlite3_malloc() or sqlite3_realloc() (or their internal equivalents). Only the value returned in the *pHighwater parameter to sqlite3_status() is of interest. The value written into the *pCurrent parameter is undefined. (source: c3ref/c_status_malloc_count.html, matrix: context, detail)
If an error occurs and pzErrMsg is not 0, then the sqlite3_load_extension() interface shall attempt to fill *pzErrMsg with error message text stored in memory obtained from sqlite3_malloc(). (source: c3ref/load_extension.html, matrix: context, detail)
In other words, the values to the right of the IN operator (the "x", "y", and "z" values in this example) are considered to have no affinity, even if they happen to be column values or CAST expressions. (source: datatype3.html, checked-by: th3/req1/datatype3_05.test, matrix: context, detail)
The TEMP or TEMPORARY keyword is removed if it occurs after the initial CREATE keyword. (source: fileformat2.html, matrix: context, detail)
If an application-defined collating sequence and/or like() SQL function are provided, the LIKE optimization described here will never be taken. (source: optoverview.html, matrix: context, detail)
The value of a subquery expression is the first row of the result from the enclosed SELECT statement. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The flags parameter to sqlite3_open_v2() must include, at a minimum, one of the following three flag combinations: (source: c3ref/open.html, checked-by: src/main.c, matrix: context, detail)
NULL values (serial type 0) sort first. (source: fileformat2.html, checked-by: th3/req1/fileformat05.test, matrix: context, detail)
Some mathematical operators (%, <<, >>, &, and |) expect INTEGER operands. For those operators, REAL operands are converted into INTEGER in the same way as a CAST to INTEGER. (source: datatype3.html, checked-by: th3/req1/datatype3_06.test, matrix: context, detail)
In each such row, the sqlite_stat.stat column will be a string consisting of a list of integers followed by zero or more arguments. (source: fileformat2.html, matrix: context, detail)
The ROLLBACK TO command reverts the state of the database back to what it was just after the corresponding SAVEPOINT. (source: lang_savepoint.html, matrix: context, detail)
For the purposes of this paragraph, hexadecimal integer literals are not considered well-formed and are stored as TEXT. (This is done for historical compatibility with versions of SQLite prior to version 3.8.6 2014-08-15 where hexadecimal integer literals were first introduced into SQLite.) (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
In other words, if the left-hand dataset consists of Nleft rows of Mleft columns, and the right-hand dataset of Nright rows of Mright columns, then the cartesian product is a dataset of Nleft×Nright rows, each containing Mleft+Mright columns. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
If the progress callback returns non-zero, the operation is interrupted. (source: c3ref/progress_handler.html, checked-by: th3/req1/progress01.test, matrix: context, detail)
If a schema-name is specified, it must be either "main", "temp", or the name of an attached database. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The sqlite3_data_count(P) routine also returns 0 if P is a NULL pointer. (source: c3ref/data_count.html, checked-by: th3/req1/datacnt01.test, matrix: context, detail)
When the auto-vacuum mode is 1 or "full", the freelist pages are moved to the end of the database file and the database file is truncated to remove the freelist pages at every transaction commit. (source: pragma.html, checked-by: th3/req1/pragma07.test, matrix: context, detail)
In a well-formed sqlite_stat4 table, the samples for any single index must appear in the same order that they occur in the index. In other words, if entry S1 is earlier in the index b-tree than entry S2, then in the sqlite_stat4 table, sample S1 must have a smaller rowid than sample S2. (source: fileformat2.html, matrix: context, detail)
PRAGMA schema.table_xinfo(table-name); This pragma returns one row for each column in the named table, including generated columns and hidden columns. (source: pragma.html, matrix: context, detail)
The nul terminator is not stored. (source: fileformat2.html, checked-by: th3/req1/fileformat02.test, matrix: context, detail)
The 4th argument to sqlite3_exec() is relayed through to the 1st argument of each callback invocation. (source: c3ref/exec.html, checked-by: th3/req1/exec01.test, matrix: context, detail)
If the LIMIT expression evaluates to non-negative value N and the UPDATE statement has an ORDER BY clause, then all rows that would be updated in the absence of the LIMIT clause are sorted according to the ORDER BY and the first N updated. (source: lang_update.html, checked-by: tcl/e_update.test, matrix: context, detail)
+ - (source: lang_expr.html, matrix: context, detail)
The third parameter passed to the logger is log message after formatting via sqlite3_snprintf(). (source: c3ref/c_config_covering_index_scan.html, checked-by: th3/cov1/log01.test, matrix: context, detail)
The in-header database size is only considered to be valid if it is non-zero and if the 4-byte change counter at offset 24 exactly matches the 4-byte version-valid-for number at offset 92. (source: fileformat2.html, matrix: context, detail)
A successful call to sqlite3_backup_init() returns a pointer to an sqlite3_backup object. (source: c3ref/backup_finish.html, checked-by: th3/req1/backup02.test, matrix: context, detail)
The view to drop is identified by the view-name and optional schema-name specified as part of the DROP VIEW statement. This reference is resolved using the standard procedure for object resolution. (source: lang_dropview.html, checked-by: slt/slt_lang_dropview.test, th3/cov1/build13.test, matrix: context, detail)
When no rows match an aggregate query, the xStep() callback of the aggregate function implementation is never called and xFinal() is called exactly once. In those cases, sqlite3_aggregate_context() might be called for the first time from within xFinal(). (source: c3ref/aggregate_context.html, checked-by: th3/req1/aggcntx01.test, matrix: context, detail)
If the table being renamed has triggers or indices, then these remain attached to the table after it has been renamed. (source: lang_altertable.html, checked-by: th3/req1/altertable01.test, matrix: context, detail)
If sqlite3_realloc(X,N) returns NULL and N is positive, then the prior allocation is not freed. (source: c3ref/free.html, checked-by: th3/req1/malloc02.test, matrix: context, detail)
If neither ASC or DESC are specified, rows are sorted in ascending (smaller values first) order by default. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The ROLLBACK command without a TO clause rolls backs all transactions and leaves the transaction stack empty. (source: lang_savepoint.html, matrix: context, detail)
If the SQLITE_FCNTL_PRAGMA file control returns any result code other than SQLITE_OK or SQLITE_NOTFOUND, that means that the VFS encountered an error while handling the PRAGMA and the compilation of the PRAGMA fails with an error. (source: c3ref/c_fcntl_begin_atomic_write.html, checked-by: th3/cov1/pragma24.test, matrix: context, detail)
If the third parameter to sqlite3_result_error() or sqlite3_result_error16() is negative then SQLite takes as the error message all text up through the first zero character. (source: c3ref/result_blob.html, checked-by: th3/req1/result01.test, matrix: context, detail)
There are three arguments to SQLITE_CONFIG_PAGECACHE: A pointer to 8-byte aligned memory (pMem), the size of each page cache line (sz), and the number of cache lines (N). (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, th3/cov1/main42.test, matrix: context, detail)
SQLITE_RANGE is returned if the parameter index is out of range. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
Each time a row is inserted into the table by an INSERT statement that does not provide explicit values for all table columns the values stored in the new row are determined by their default values (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
A SAVEPOINT can be started either within or outside of a BEGIN...COMMIT. (source: lang_savepoint.html, matrix: context, detail)
With synchronous OFF (0), SQLite continues without syncing as soon as it has handed data off to the operating system. (source: pragma.html, matrix: context, detail)
For example, the following CREATE TABLE statements all specify the same table, which will have the exact same representation on disk: CREATE TABLE t1(a,b,c,d,PRIMARY KEY(a,c)) WITHOUT ROWID); CREATE TABLE t1(a,b,c,d,PRIMARY KEY(a,c,a,c)) WITHOUT ROWID); CREATE TABLE t1(a,b,c,d,PRIMARY KEY(a,A,a,C)) WITHOUT ROWID); CREATE TABLE t1(a,b,c,d,PRIMARY KEY(a,a,a,a,c)) WITHOUT ROWID); (source: fileformat2.html, matrix: context, detail)
If it is set to "DESC", then FTS4 stores its data in such a way as to optimize returning results in descending order by docid. (source: fts3.html, matrix: context, detail)
A column with REAL affinity behaves like a column with NUMERIC affinity except that it forces integer values into floating point representation. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
If the "TEMP" or "TEMPORARY" keyword occurs between the "CREATE" and "TABLE" then the new table is created in the temp database. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
A "FULL JOIN" or "FULL OUTER JOIN" is a combination of a "LEFT JOIN" and a "RIGHT JOIN". (source: lang_select.html, matrix: context, detail)
The fourth parameter is the number of pages currently in the write-ahead log file, including those that were just committed. (source: c3ref/wal_hook.html, checked-by: tcl/e_walhook.test, matrix: context, detail)
Each column of the new row is populated with its default value, or with a NULL if no default value is specified as part of the column definition in the CREATE TABLE statement. (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
Hence, a cache created with bPurgeable false will never contain any unpinned pages. (source: c3ref/pcache_methods2.html, matrix: context, detail)
This function causes any pending database operation to abort and return at its earliest opportunity. (source: c3ref/interrupt.html, matrix: context, detail)
The ROWID chosen for the new row is at least one larger than the largest ROWID that has ever before existed in that same table. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
The sqlite3_txn_state(D,S) interface returns one of these constants in order to describe the transaction state of schema S in database connection D. (source: c3ref/c_txn_none.html, matrix: context, detail)
The memory pointed to by the character pointers returned for the declaration type and collation sequence is valid until the next call to any SQLite API function. (source: c3ref/table_column_metadata.html, checked-by: th3/cov1/metadata01.test, matrix: context, detail)
When the defer_foreign_keys PRAGMA is on, enforcement of all foreign key constraints is delayed until the outermost transaction is committed. (source: pragma.html, checked-by: tcl/fkey6.test, th3/cov1/fkey24.test, matrix: context, detail)
The OFF journaling mode disables the rollback journal completely. (source: pragma.html, checked-by: th3/req1/pragma25.test, matrix: context, detail)
However, the IGNORE conflict resolution algorithm works like ABORT for foreign key constraint errors. (source: lang_conflict.html, matrix: context, detail)
The SAVEPOINT with the matching name remains on the transaction stack, but all database changes that occurred after that SAVEPOINT was created are rolled back. (source: lang_savepoint.html, matrix: context, detail)
These routines are used to register a new virtual table module name. (source: c3ref/create_module.html, matrix: context, detail)
Different constraints within the same table may have different default conflict resolution algorithms. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The sqlite3_preupdate_old(D,N,P) interface writes into P a pointer to a protected sqlite3_value that contains the value of the Nth column of the table row before it is updated. (source: c3ref/preupdate_blobwrite.html, matrix: context, detail)
If sqlite3_unlock_notify() is called with a NULL pointer as its second argument, then any existing unlock-notify callback is canceled. (source: c3ref/unlock_notify.html, matrix: context, detail)
The sqlite3_bind_zeroblob() routine binds a BLOB of length N that is filled with zeroes. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
Otherwise, no affinity is applied and both operands are compared as is. (source: datatype3.html, checked-by: th3/cov1/affinity01.test, th3/req1/datatype3_05.test, matrix: context, detail)
The sqlite3_result_value() interface makes a copy of the sqlite3_value so that the sqlite3_value specified in the parameter may change or be deallocated after sqlite3_result_value() returns without harm. (source: c3ref/result_blob.html, checked-by: th3/req1/result03.test, matrix: context, detail)
If this in-header datasize size is not valid (see the next paragraph), then the database size is computed by looking at the actual size of the database file. (source: fileformat2.html, matrix: context, detail)
If the column-name list after table-name is omitted then the number of values inserted into each row must be the same as the number of columns in the table. (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
Otherwise, sqlite3_value_pointer(V,Y) returns a NULL. (source: c3ref/value_blob.html, checked-by: th3/cov1/carray01.test, matrix: context, detail)
The leaves have a level of 0. (source: rtree.html, matrix: context, detail)
The DELETE journaling mode is the normal behavior. (source: pragma.html, checked-by: th3/req1/pragma23.test, matrix: context, detail)
SQLITE_LIMIT_WORKER_THREADS The maximum number of auxiliary worker threads that a single prepared statement may start. (source: c3ref/c_limit_attached.html, checked-by: tcl/sort4.test, matrix: context, detail)
SQLITE_STATUS_PAGECACHE_SIZE This parameter records the largest memory allocation request handed to the pagecache memory allocator. Only the value returned in the *pHighwater parameter to sqlite3_status() is of interest. The value written into the *pCurrent parameter is undefined. (source: c3ref/c_status_malloc_count.html, matrix: context, detail)
The sqlite3_normalized_sql() interface is only available if the SQLITE_ENABLE_NORMALIZE compile-time option is defined. (source: c3ref/expanded_sql.html, matrix: context, detail)
The "PRAGMA data_version" value is a local property of each database connection and so values returned by two concurrent invocations of "PRAGMA data_version" on separate database connections are often different even though the underlying database is identical. (source: pragma.html, checked-by: tcl/pragma3.test, th3/cov1/pragma26.test, matrix: context, detail)
Each group of input dataset rows contributes a single row to the set of result rows. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
A 2-dimensional R*Tree has 5 columns. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq01.test, matrix: context, detail)
The last bullet above is illustrated by the following: CREATE TABLE parent2(a, b, PRIMARY KEY(a,b)); CREATE TABLE child8(x, y, FOREIGN KEY(x,y) REFERENCES parent2); -- Ok CREATE TABLE child9(x REFERENCES parent2); -- Error! CREATE TABLE child10(x,y,z, FOREIGN KEY(x,y,z) REFERENCES parent2); -- Error! (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys07.test, matrix: context, detail)
For a string value X, the length(X) function returns the number of characters (not bytes) in X prior to the first NUL character. (source: lang_corefunc.html, checked-by: th3/cov1/func01.test, matrix: context, detail)
When the argument X to sqlite_compileoption_used(X) is a string which is the name of a compile-time option, this routine returns true (1) or false (0) depending on whether or not that option was used during the build. (source: lang_corefunc.html, checked-by: th3/cov1/ctime02.test, matrix: context, detail)
The destructor will also be invoked if the call to sqlite3_create_module_v2() fails. (source: c3ref/create_module.html, matrix: context, detail)
In other words, sqlite3_vtab_in() with -1 in the third argument is a mechanism by which the virtual table can ask SQLite if all-at-once processing of the IN operator is even possible. (source: c3ref/vtab_in.html, matrix: context, detail)
The sqlite3_memory_highwater() routine returns the maximum value of sqlite3_memory_used() since the high-water mark was last reset. (source: c3ref/memory_highwater.html, matrix: context, detail)
It can be applied to strings, numbers, blobs or NULL and it always returns a result with the same value as the operand. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If the UPDATE statement has no ORDER BY clause, then all rows that would be updated in the absence of the LIMIT clause are assembled in an arbitrary order before applying the LIMIT and OFFSET clauses to determine which are actually updated. (source: lang_update.html, checked-by: tcl/e_update.test, matrix: context, detail)
Instead of a separate OFFSET clause, the LIMIT clause may specify two scalar expressions separated by a comma. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
If there is no match, a NULL pointer is returned. (source: c3ref/vfs_find.html, checked-by: th3/req1/vfs01.test, matrix: context, detail)
Total() never throws an integer overflow. (source: lang_aggfunc.html, checked-by: th3/req1/aggfunc01.test, matrix: context, detail)
It is an error to specify a compress function without also specifying an uncompress function. (source: fts3.html, matrix: context, detail)
DEFAULT clauses work the same. (source: stricttables.html, checked-by: th3/cov1/vdbemem05.test, matrix: context, detail)
The sqlite3_str_reset(X) method resets the string under construction inside sqlite3_str object X back to zero bytes in length. (source: c3ref/str_append.html, matrix: context, detail)
The INDEXED BY and NOT INDEXED clauses are not allowed on UPDATE statements within triggers. (source: lang_update.html, checked-by: tcl/e_update.test, matrix: context, detail)
The first argument to the busy handler is a copy of the void* pointer which is the third argument to sqlite3_busy_handler(). (source: c3ref/busy_handler.html, checked-by: th3/req1/busy01.test, matrix: context, detail)
SQLite holds a write transaction open on the destination database file for the duration of the backup operation. (source: c3ref/backup_finish.html, checked-by: th3/req1/backup01.test, matrix: context, detail)
This option takes three additional arguments that determine the lookaside memory allocator configuration for the database connection. (source: c3ref/c_dbconfig_defensive.html, checked-by: th3/req1/dbconfig01.test, matrix: context, detail)
Thus when the third parameter (F) is non-negative, this interface is the mechanism by which the virtual table tells SQLite how it wants to process the IN operator. (source: c3ref/vtab_in.html, matrix: context, detail)
The result of sum() is an integer value if all non-NULL inputs are integers. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
The BEGIN command only works if the transaction stack is empty, or in other words if there are no pending transactions. (source: lang_savepoint.html, matrix: context, detail)
If executing the SELECT would return no rows at all, then the EXISTS operator evaluates to 0. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If logging is enabled, the zFormat string and subsequent arguments are used with sqlite3_snprintf() to generate the final output string. (source: c3ref/log.html, checked-by: th3/cov1/log01.test, matrix: context, detail)
So, for example, suppose an application runs one query against an R-Tree like this: SELECT id FROM demo_index WHERE maxY>=35.0 AND minY<=35.0; Then for each "id" value returned, suppose the application creates an UPDATE statement like the following and binds the "id" value returned against the "?1" parameter: UPDATE demo_index SET maxY=maxY+0.5 WHERE id=?1; (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree22.test, matrix: context, detail)
The current value of the parameter is returned into *pCurrent. (source: c3ref/status.html, matrix: context, detail)
This pragma is a wrapper around the sqlite3_wal_autocheckpoint() C interface. (source: pragma.html, matrix: context, detail)
If an action is not explicitly specified, it defaults to "NO ACTION". (source: foreignkeys.html, checked-by: src/parse.y, tcl/e_fkey.test, th3/req1/foreignkeys16.test, matrix: context, detail)
The xDestroy() method is used to delete a cache allocated by xCreate(). (source: c3ref/pcache_methods2.html, checked-by: th3/th3pcache.c, matrix: context, detail)
If one operand is NULL and the other is not, then the IS operator evaluates to 0 (false) and the IS NOT operator is 1 (true). (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If both virtual terms end up being used as constraints on an index, then the original BETWEEN term is omitted and the corresponding test is not performed on input rows. (source: optoverview.html, matrix: context, detail)
Example: X'53514C697465' (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The value returned by sqlite3_msize(X) might be larger than the number of bytes requested when X was allocated. (source: c3ref/free.html, checked-by: th3/req1/malloc02.test, matrix: context, detail)
There are three arguments to SQLITE_CONFIG_HEAP: An 8-byte aligned pointer to the memory, the number of bytes in the memory buffer, and the minimum allocation size. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, th3/th3main.c, matrix: context, detail)
Let M be ((U-12)*32/255)-23 and let K be M+((P-M)%(U-4)). If P is greater than X then the number of bytes stored on the table b-tree leaf page is K if K is less or equal to X or M otherwise. (source: fileformat2.html, matrix: context, detail)
VACUUM (but not VACUUM INTO) is a write operation and so if another database connection is holding a lock that prevents writes, then the VACUUM will fail. (source: lang_vacuum.html, matrix: context, detail)
The sqlite3_preupdate_new(D,N,P) interface writes into P a pointer to a protected sqlite3_value that contains the value of the Nth column of the table row after it is updated. (source: c3ref/preupdate_blobwrite.html, matrix: context, detail)
The names of internal schema objects always begin with "sqlite_" and any table, index, view, or trigger whose name begins with "sqlite_" is an internal schema object. (source: fileformat2.html, matrix: context, detail)
However, newer versions of SQLite still avoid using the last six entries in the freelist trunk page array in order that database files created by newer versions of SQLite can be read by older versions of SQLite. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
The sqlite3_vtab_rhs_value(P,J,V) interface returns SQLITE_OK if and only if *V is set to a value. (source: c3ref/vtab_rhs_value.html, checked-by: src/where.c, matrix: context, detail)
Configuring "NO ACTION" means just that: when a parent key is modified or deleted from the database, no special action is taken. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys16.test, matrix: context, detail)
If pStmt is NULL then this interface returns a pointer to the first prepared statement associated with the database connection pDb. (source: c3ref/next_stmt.html, checked-by: th3/cov1/vdbeapi04.test, matrix: context, detail)
The byte-order of UTF16 input text is determined by the byte-order mark (BOM, U+FEFF) found in first character, which is removed, or in the absence of a BOM the byte order is the native byte order of the host machine for sqlite3_bind_text16() or the byte order specified in the 6th parameter for sqlite3_bind_text64(). (source: c3ref/bind_blob.html, matrix: context, detail)
On windows, the first component of an absolute path is a drive specification (e.g. "C:"). (source: c3ref/open.html, matrix: context, detail)
The X argument is a pointer to a string which is the unexpanded SQL text of the prepared statement or an SQL comment that indicates the invocation of a trigger. (source: c3ref/c_trace.html, checked-by: th3/cov1/trace01.test, matrix: context, detail)
In order to succeed, the database connection must not be in autocommit mode when sqlite3_snapshot_open(D,S,P) is called. (source: c3ref/snapshot_open.html, matrix: context, detail)
If a schema-name is specified, then the view is created in the specified database. (source: lang_createview.html, checked-by: th3/req1/view01.test, matrix: context, detail)
the following declaration does not result in "x" being an alias for the rowid: CREATE TABLE t(x INTEGER PRIMARY KEY DESC, y, z); (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
If the WHERE clause is not present, all records in the table are deleted. (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
These expressions are similar to the expressions following the SELECT keyword in a SELECT statement in that they define the values of the columns in the result set. (source: lang_returning.html, checked-by: th3/cov1/returning01.test, matrix: context, detail)
Unregister a VFS with the sqlite3_vfs_unregister() interface. (source: c3ref/vfs_find.html, checked-by: th3/req1/vfs01.test, matrix: context, detail)
If the subquery uses LIMIT then the outer query may not have a WHERE clause. (source: optoverview.html, matrix: context, detail)
The list of integers in the stat column can optionally be followed by arguments, each of which is a sequence of non-space characters. (source: fileformat2.html, matrix: context, detail)
No rollback journal is ever created and hence there is never a rollback journal to delete. (source: pragma.html, checked-by: th3/req1/pragma25.test, matrix: context, detail)
However, just because this routine returns a positive number does not mean that one or more rows of data will be returned. (source: c3ref/column_count.html, matrix: context, detail)
Format 4 causes SQLite to respect the DESC keyword on index declarations. (source: fileformat2.html, checked-by: th3/req1/fileformat01.test, matrix: context, detail)
The avg() function returns the average value of all non-NULL X within a group. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
The first four bytes of each overflow page are a big-endian integer which is the page number of the next page in the chain, or zero for the final page in the chain. (source: fileformat2.html, matrix: context, detail)
If an expression has an OFFSET clause, then the first M rows are omitted from the result set returned by the SELECT statement and the next N rows are returned, where M and N are the values that the OFFSET and LIMIT clauses evaluate to, respectively. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
Normally, the database page_size and whether or not the database supports auto_vacuum must be configured before the database file is actually created. (source: lang_vacuum.html, checked-by: tcl/e_vacuum.test, matrix: context, detail)
The content of the sqlite_sequence table can be modified using ordinary UPDATE, INSERT, and DELETE statements. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
If SQLite is compiled with the SQLITE_THREADSAFE=0 compile-time option then it is not possible to set the Multi-thread threading mode and sqlite3_config() will return SQLITE_ERROR if called with the SQLITE_CONFIG_MULTITHREAD configuration option. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, matrix: context, detail)
If the 4th parameter to the sqlite3_result_text* interfaces or sqlite3_result_blob is the special constant SQLITE_TRANSIENT then SQLite makes a copy of the result into space obtained from sqlite3_malloc() before it returns. (source: c3ref/result_blob.html, checked-by: th3/req1/result02.test, matrix: context, detail)
The UNION operator works the same way as UNION ALL, except that duplicate rows are removed from the final result set. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
. (source: whynotgit.html, matrix: context, detail)
Extra rows of output are added for each row in left dataset that matches no rows in the right, and for each row in the right dataset that matches no rows in the left. (source: lang_select.html, matrix: context, detail)
SQLITE_OPEN_URI The filename can be interpreted as a URI if this flag is set. (source: c3ref/open.html, matrix: context, detail)
It is an error to specify a value for the mode parameter that is less restrictive than that specified by the flags passed in the third parameter to sqlite3_open_v2(). (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
The rollback journal file is always located in the same directory as the database file and has the same name as the database file but with the string "-journal" appended. (source: fileformat2.html, matrix: context, detail)
A simple SELECT statement is an aggregate query if it contains either a GROUP BY clause or one or more aggregate functions in the result-set. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The sqlite3_data_count(P) interface returns the number of columns in the current row of the result set of prepared statement P. (source: c3ref/data_count.html, checked-by: th3/th3util.c, matrix: context, detail)
The second field of the b-tree page header is the offset of the first freeblock, or zero if there are no freeblocks on the page. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
If there are many OR terms in the WHERE clause or if some of the indexes on individual OR-clause subterms are not very selective, then SQLite might decide that it is faster to use a different query algorithm, or even a full-table scan. (source: optoverview.html, matrix: context, detail)
Parentheses around the column name are ignored. Hence if X and Y.Z are column names, then (X) and (Y.Z) are also considered column names and have the affinity of the corresponding columns. (source: datatype3.html, checked-by: th3/req1/datatype3_05.test, matrix: context, detail)
The sqlite_schema table contains one row for each table, index, view, and trigger (collectively "objects") in the database schema, except there is no entry for the sqlite_schema table itself. (source: fileformat2.html, matrix: context, detail)
Metadata is returned by writing to the memory locations passed as the 5th and subsequent parameters to this function. (source: c3ref/table_column_metadata.html, checked-by: th3/cov1/metadata01.test, matrix: context, detail)
The sqlite3_threadsafe() function returns zero if and only if SQLite was compiled with mutexing code omitted due to the SQLITE_THREADSAFE compile-time option being set to 0. (source: c3ref/threadsafe.html, checked-by: src/main.c, matrix: context, detail)
Other numeric values are out of range and cause a NULL return. (source: lang_datefunc.html, checked-by: tcl/date3.test, matrix: context, detail)
The column is used in the expression of a generated column. (source: lang_altertable.html, checked-by: tcl/alterdropcol2.test, th3/cov1/altertable25.test, matrix: context, detail)
This function causes all database schemas to be read from disk and parsed, if that has not already been done, and returns an error if any errors are encountered while loading the schema. (source: c3ref/table_column_metadata.html, checked-by: th3/cov1/metadata01.test, matrix: context, detail)
A CAST conversion is similar to the conversion that takes place when a column affinity is applied to a value except that with the CAST operator the conversion always takes place even if the conversion lossy and irreversible, whereas column affinity only changes the data type of a value if the change is lossless and reversible. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The sqlite3_int64 and sqlite_int64 types can store integer values between -9223372036854775808 and +9223372036854775807 inclusive. (source: c3ref/int64.html, checked-by: th3/req1/int64_01.test, matrix: context, detail)
The second form of the pragma listed above is used to set a new limit in bytes for the specified database. (source: pragma.html, checked-by: th3/req1/pragma26.test, matrix: context, detail)
An attempt to write to an expired BLOB handle fails with an error code of SQLITE_ABORT. (source: c3ref/blob_write.html, checked-by: tcl/e_blobwrite.test, matrix: context, detail)
Some systems (for example, Windows 95) do not support the operation implemented by sqlite3_mutex_try(). On those systems, sqlite3_mutex_try() will always return SQLITE_BUSY. The SQLite core only ever uses sqlite3_mutex_try() as an optimization so this is acceptable behavior. (source: c3ref/mutex_alloc.html, checked-by: th3/th3mutex.c, matrix: context, detail)
If sqlite3_config() is called after sqlite3_initialize() and before sqlite3_shutdown() then it will return SQLITE_MISUSE. (source: c3ref/config.html, matrix: context, detail)
The following is a complete list of valid strftime() substitutions: %d day of month: 00 %f fractional seconds: SS.SSS %H hour: 00-24 %j day of year: 001-366 %J Julian day number (fractional) %m month: 01-12 %M minute: 00-59 %s seconds since 1970-01-01 %S seconds: 00-59 %w day of week 0-6 with Sunday==0 %W week of year: 00-53 %Y year: 0000-9999 %% % (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
The 4-byte big-endian integer at offset 36 stores the total number of pages on the freelist. (source: fileformat2.html, checked-by: src/btree.c, th3/req1/pragma21.test, matrix: context, detail)
The rowid is always available as an undeclared column named ROWID, OID, or _ROWID_ as long as those names are not also used by explicitly declared columns. (source: c3ref/last_insert_rowid.html, checked-by: th3/cov1/withoutrowid01.test, matrix: context, detail)
If integer coordinates are desired, declare the table using "rtree_i32" instead: CREATE VIRTUAL TABLE intrtree USING rtree_i32(id,x0,x1,y0,y1,z0,z1); (source: rtree.html, checked-by: tcl/rtreedoc.test, matrix: context, detail)
For the example above, one might create an auxiliary table as follows: CREATE TABLE demo_data( id INTEGER PRIMARY KEY, -- primary key objname TEXT, -- name of the object objtype TEXT, -- object type boundary BLOB -- detailed boundary of object ); (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree18.test, matrix: context, detail)
If a column-name list is specified, then the number of values in each term of the VALUE list must match the number of specified columns. (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
The "INSERT INTO table DEFAULT VALUES" form of the INSERT statement is not supported. (source: lang_createtrigger.html, matrix: context, detail)
The "julianday" modifier must immediately follow the initial time-value which must be of the form DDDDDDDDD. (source: lang_datefunc.html, checked-by: tcl/date3.test, th3/req1/date01.test, matrix: context, detail)
If the third parameter to sqlite3_bind_text64() is not NULL, then it should be a pointer to a well-formed unicode string that is either UTF8 if the sixth parameter is SQLITE_UTF8, or UTF16 otherwise. (source: c3ref/bind_blob.html, matrix: context, detail)
The eParentWithin and rParentScore values are copies of the eWithin and rScore values from the containing subtree of the current row. (source: rtree.html, matrix: context, detail)
The replace(X,Y,Z) function returns a string formed by substituting string Z for every occurrence of string Y in string X. (source: lang_corefunc.html, checked-by: th3/req1/func03.test, matrix: context, detail)
When sqlite3_hard_heap_limit64(N) is invoked and the soft heap limit is outside the range of 1. (source: c3ref/hard_heap_limit64.html, matrix: context, detail)
The sqlite3_cancel_auto_extension(X) interface unregisters the initialization routine X that was registered using a prior call to sqlite3_auto_extension(X). (source: c3ref/cancel_auto_extension.html, matrix: context, detail)
If M is greater than zero then after M page records the journal file may be zero padded out to the next multiple of the sector size and another journal header may be inserted. (source: fileformat2.html, matrix: context, detail)
The sqlite3_interrupt(D) call is in effect until all currently running SQL statements on database connection D complete. (source: c3ref/interrupt.html, matrix: context, detail)
The wal_checkpoint pragma returns a single row with three integer columns. (source: pragma.html, checked-by: th3/req1/pragma29.test, matrix: context, detail)
The path component of the URI specifies the disk file that is the SQLite database to be opened. (source: uri.html, matrix: context, detail)
The first form (with the "VALUES" keyword) creates one or more new rows in an existing table. (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
The third argument (eTextRep) must be one of the constants: SQLITE_UTF8, SQLITE_UTF16LE, SQLITE_UTF16BE, SQLITE_UTF16, or SQLITE_UTF16_ALIGNED. (source: c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test, matrix: context, detail)
If, however, all columns that were to be fetched from the table are already available in the index itself, SQLite will use the values contained in the index and will never look up the original table row. (source: optoverview.html, matrix: context, detail)
No storage class conversions occur before the sort. (source: datatype3.html, checked-by: th3/req1/datatype3_04.test, matrix: context, detail)
In SQLite, a foreign key constraint is permanently marked as deferred or immediate when it is created. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys23.test, matrix: context, detail)
If a term in X is of the form "z IS NOT NULL" and if a term in W is a comparison operator on "z" other than "IS", then those terms match. (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
The rowid of the SQL table is the 64-bit signed integer key for each entry in the table b-tree. (source: fileformat2.html, matrix: context, detail)
The defer_foreign_keys pragma is automatically switched off at each COMMIT or ROLLBACK. Hence, the defer_foreign_keys pragma must be separately enabled for each transaction. (source: pragma.html, checked-by: tcl/fkey6.test, th3/cov1/fkey24.test, matrix: context, detail)
For example, if an application defines a function "eval()" that calls sqlite3_exec(), then the following SQL statement would change the database file through side-effects: SELECT eval('DELETE FROM t1') FROM t2; But because the SELECT statement does not change the database file directly, sqlite3_stmt_readonly() would still return true. (source: c3ref/stmt_readonly.html, checked-by: tcl/capi3d.test, th3/cov1/vdbeapi14.test, matrix: context, detail)
The sqlite3_initialize() routine returns SQLITE_OK on success. (source: c3ref/initialize.html, matrix: context, detail)
The vfs query parameter causes the database connection to be opened using the VFS called NAME. (source: uri.html, matrix: context, detail)
Example: Let the index be CREATE INDEX ex2 ON tab2(b,c) WHERE c IS NOT NULL; Then any query that uses operators =, <, >, <=, >=, <>, IN, LIKE, or GLOB on column "c" would be usable with the partial index because those comparison operators are only true if "c" is not NULL. (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
When casting a BLOB value to INTEGER, the value is first converted to TEXT. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The sqlite_stat1.tbl column is the name of the table to which the index belongs. (source: fileformat2.html, matrix: context, detail)
For backwards compatibility, the "0x" hexadecimal integer notation is only understood by the SQL language parser, not by the type conversions routines. (source: lang_expr.html, checked-by: th3/req1/expr01.test, matrix: context, detail)
The DBSTAT virtual table is an eponymous virtual table, meaning that is not necessary to run CREATE VIRTUAL TABLE to create an instance of the dbstat virtual table before using it. (source: dbstat.html, matrix: context, detail)
AND (source: lang_expr.html, matrix: context, detail)
A column with TEXT affinity stores all data using storage classes NULL, TEXT or BLOB. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
The sqlite3_update_hook() interface registers a callback function with the database connection identified by the first argument to be invoked whenever a row is updated, inserted or deleted in a rowid table. (source: c3ref/update_hook.html, checked-by: tcl/hook.test, th3/cov1/main15.test, matrix: context, detail)
The default virtual table ("rtree") stores coordinates as single-precision (4-byte) floating point numbers. (source: rtree.html, checked-by: tcl/rtreedoc.test, matrix: context, detail)
The SQLITE_CONFIG_GETPCACHE2 option takes a single argument which is a pointer to an sqlite3_pcache_methods2 object. SQLite copies of the current page cache implementation into that object. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, th3/th3pcache.c, matrix: context, detail)
The sqlite3_result_error_nomem() interface causes SQLite to throw an error indicating that a memory allocation failed. (source: c3ref/result_blob.html, checked-by: th3/req1/result01.test, matrix: context, detail)
If a term consists of multiple subterms containing a common column name and separated by OR, like this: column = expr1 OR column = expr2 OR column = expr3 OR ... Then that term is rewritten as follows: column IN (expr1,expr2,expr3,...) (source: optoverview.html, matrix: context, detail)
On success, the sqlite3_snapshot_get(D,S,P) interface writes a pointer to the newly created sqlite3_snapshot object into *P and returns SQLITE_OK. (source: c3ref/snapshot_get.html, matrix: context, detail)
The string returned by sqlite_source_id() is the date and time that the source code was checked in followed by the SHA3-256 hash for that check-in. (source: lang_corefunc.html, checked-by: th3/req1/func03.test, matrix: context, detail)
For example, an UPDATE statement might have a WHERE clause that makes it a no-op, but the sqlite3_stmt_readonly() result would still be false. (source: c3ref/stmt_readonly.html, checked-by: tcl/capi3d.test, th3/cov1/vdbeapi14.test, matrix: context, detail)
The particular operator is stored in aConstraint[].op using one of the SQLITE_INDEX_CONSTRAINT_ values. (source: c3ref/index_info.html, matrix: context, detail)
Casting an INTEGER or REAL value into TEXT renders the value as if via sqlite3_snprintf() except that the resulting TEXT uses the encoding of the database connection. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
A subquery that returns two or more columns is a row value subquery and can only be used as the operand of a comparison operator. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
Tables are removed using the DROP TABLE statement. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
In practice, metadata is preserved between function calls for function parameters that are compile-time constants, including literal values and parameters and expressions composed from the same. (source: c3ref/get_auxdata.html, matrix: context, detail)
The profile callback contains the original statement text and an estimate of wall-clock time of how long that statement took to run. (source: c3ref/profile.html, checked-by: th3/cov1/main16.test, matrix: context, detail)
If N is less than one then the progress handler is disabled. (source: c3ref/progress_handler.html, checked-by: th3/req1/progress01.test, matrix: context, detail)
When a configuration option is set, sqlite3_config() returns SQLITE_OK. (source: c3ref/config.html, matrix: context, detail)
The behavior of ANY is slightly different in a STRICT table versus an ordinary non-strict table. (source: stricttables.html, checked-by: th3/req1/strictreq01.test, matrix: context, detail)
Note that if one of the dynamic mutex parameters (SQLITE_MUTEX_FAST or SQLITE_MUTEX_RECURSIVE) is used then sqlite3_mutex_alloc() returns a different mutex on every call. (source: c3ref/mutex_alloc.html, checked-by: th3/cov1/mutex01.test, matrix: context, detail)
A COLLATE operator has the same affinity as its left-hand side operand. (source: datatype3.html, checked-by: th3/req1/datatype3_05.test, matrix: context, detail)
The expression of a generated column can refer to any of the other declared columns in the table, including other generated columns, as long as the expression does not directly or indirectly refer back to itself. (source: gencol.html, matrix: context, detail)
Leading spaces are removed. (source: fileformat2.html, matrix: context, detail)
One might, for example, want to query all objects that overlap with the 35th parallel: SELECT id FROM demo_index WHERE maxY>=35.0 AND minY<=35.0; (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq03.test, matrix: context, detail)
In first form, if the main database has already been created, then this pragma returns the text encoding used by the main database, one of 'UTF-8', 'UTF-16le' (little-endian UTF-16 encoding) or 'UTF-16be' (big-endian UTF-16 encoding). (source: pragma.html, checked-by: th3/req1/pragma16.test, matrix: context, detail)
This is the number of times that the prepared statement has been run. (source: c3ref/c_stmtstatus_counter.html, matrix: context, detail)
The FTS4 prefix option causes FTS to index term prefixes of specified lengths in the same way that it always indexes complete terms. (source: fts3.html, matrix: context, detail)
The following two queries are not equivalent: SELECT * FROM tab1 LEFT JOIN tab2 ON tab1.x=tab2.y; SELECT * FROM tab1 LEFT JOIN tab2 WHERE tab1.x=tab2.y; (source: optoverview.html, matrix: context, detail)
The header begins with a single varint which determines the total number of bytes in the header. The varint value is the size of the header in bytes including the size varint itself. (source: fileformat2.html, checked-by: src/vdbe.c, th3/req1/fileformat02.test, matrix: context, detail)
The PRAGMA foreign_keys command is a no-op in this configuration. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys05.test, matrix: context, detail)
SQLITE_OPEN_EXRESCODE The database connection comes up in "extended result code mode". In other words, the database behaves has if sqlite3_extended_result_codes(db,1) where called on the database connection as soon as the connection is created. In addition to setting the extended result code mode, this flag also causes sqlite3_open_v2() to return an extended result code. SQLITE_OPEN_NOFOLLOW The database filename is not allowed to contain a symbolic link (source: c3ref/open.html, matrix: context, detail)
Terms of the WHERE clause can be manually disqualified for use with indexes by prepending a unary + operator to the column name. (source: optoverview.html, matrix: context, detail)
The coalesce() function returns a copy of its first non-NULL argument, or NULL if all arguments are NULL. (source: lang_corefunc.html, checked-by: th3/cov1/func01.test, matrix: context, detail)
If there is no prefix that can be interpreted as a real number, the result of the conversion is 0.0. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The orderByConsumed means that output from xFilter/xNext will occur in the correct order to satisfy the ORDER BY clause so that no separate sorting step is required. (source: c3ref/index_info.html, matrix: context, detail)
If argvIndex>0 then the right-hand side of the corresponding aConstraint[] is evaluated and becomes the argvIndex-th entry in argv. (source: c3ref/index_info.html, matrix: context, detail)
The third and fourth bytes of each freeblock form a big-endian integer which is the size of the freeblock in bytes, including the 4-byte header. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
if there is only a single global wildcard to the right of x, then the original LIKE or GLOB test is disabled. (source: optoverview.html, matrix: context, detail)
The number of bytes stored on the leaf page is never less than M. (source: fileformat2.html, matrix: context, detail)
For each pair of named columns, the expression "lhs.X = rhs.X" is evaluated for each row of the cartesian product as a boolean expression. Only rows for which all such expressions evaluates to true are included from the result set. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
Names are zero-terminated UTF-8 strings. (source: c3ref/vfs_find.html, checked-by: th3/req1/vfs01.test, matrix: context, detail)
If X is a BLOB then the indices refer to bytes. (source: lang_corefunc.html, checked-by: th3/cov1/func02.test, matrix: context, detail)
The sqlite3_status() and sqlite3_status64() routines return SQLITE_OK on success and a non-zero error code on failure. (source: c3ref/status.html, matrix: context, detail)
If a floating point value that can be represented exactly as an integer is inserted into a column with NUMERIC affinity, the value is converted into an integer. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
Zero all sqlite3_stmt_scanstatus() related event counters. (source: c3ref/stmt_scanstatus_reset.html, checked-by: th3/cov1/status02.test, matrix: context, detail)
The LIKE operator can be made case sensitive using the case_sensitive_like pragma. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
But the "PRAGMA cache_spill=N" form of this statement only applies to the "main" schema or whatever other schema is specified as part of the statement. (source: pragma.html, matrix: context, detail)
The unlikely(X) function is a no-op that the code generator optimizes away so that it consumes no CPU cycles at run-time (that is, during calls to sqlite3_step()). (source: lang_corefunc.html, checked-by: tcl/func3.test, matrix: context, detail)
Comments are treated as whitespace by the parser. (source: lang_comment.html, checked-by: src/tokenize.c, matrix: context, detail)
Casting to a BLOB consists of first casting the value to TEXT in the encoding of the database connection, then interpreting the resulting byte sequence as a BLOB instead of as TEXT. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
SQLite will make this determination, but only if it has been compiled with SQLITE_ENABLE_STAT3 or SQLITE_ENABLE_STAT4. (source: optoverview.html, matrix: context, detail)
When case_sensitive_like is enabled, case becomes significant. So, for example, 'a' LIKE 'A' is false but 'a' LIKE 'a' is still true. (source: pragma.html, checked-by: th3/req1/pragma10.test, matrix: context, detail)
The maximum page count cannot be reduced below the current database size. (source: pragma.html, checked-by: th3/req1/pragma12.test, matrix: context, detail)
Setting it to "shared" is equivalent to setting the SQLITE_OPEN_SHAREDCACHE bit in the flags argument passed to sqlite3_open_v2(). (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
The size of the blob (and hence the maximum value of N+iOffset) can be determined using the sqlite3_blob_bytes() interface. (source: c3ref/blob_read.html, checked-by: th3/cov1/vdbeblob01.test, matrix: context, detail)
If a database connection is operating in exclusive locking mode or in persistent journal mode (PRAGMA journal_mode=persist) then after committing a transaction the rollback journal file may remain in the file-system. (source: pragma.html, checked-by: th3/req1/pragma26.test, matrix: context, detail)
If the most recent error references a specific token in the input SQL, the sqlite3_error_offset() interface returns the byte offset of the start of that token. (source: c3ref/errcode.html, matrix: context, detail)
This modifier causes the DDDDDDDDDD to be interpreted not as a Julian day number as it normally would be, but as Unix Time - the number of seconds since 1970. (source: lang_datefunc.html, checked-by: tcl/date3.test, th3/req1/date01.test, matrix: context, detail)
the parser allows the use of the single keyword REPLACE as an alias for "INSERT OR REPLACE". (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
The auxiliary index-columns are not shown by the index_info pragma, but they are listed by the index_xinfo pragma. (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma15x.test, matrix: context, detail)
After an application receives an SQLITE_LOCKED error, it may call the sqlite3_unlock_notify() method with the blocked connection handle as the first argument to register for a callback that will be invoked when the blocking connections current transaction is concluded. (source: c3ref/unlock_notify.html, matrix: context, detail)
SQLITE_STMTSTATUS_FILTER_HIT is the number of times that a join step was bypassed because a Bloom filter returned not-found. (source: c3ref/c_stmtstatus_counter.html, matrix: context, detail)
The second parameter is either the name of the database (i.e. "main", "temp", or an attached database) containing the specified table or NULL. (source: c3ref/table_column_metadata.html, checked-by: th3/cov1/metadata01.test, matrix: context, detail)
A column whose declared type is "CHARINT" will match both rules 1 and 2 but the first rule takes precedence and so the column affinity will be INTEGER. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
Otherwise, if a simple SELECT contains no aggregate functions or a GROUP BY clause, it is a non-aggregate query. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The cache parameter may be set to either "shared" or "private". (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
That there are the same number of entries in the %_rowid table as there are leaf cells in the r-tree structure, and that there is a leaf cell that corresponds to each entry in the %_rowid table. (source: rtree.html, checked-by: tcl/rtreedoc.test, matrix: context, detail)
If the OFFSET clause evaluates to a negative value, the results are the same as if it had evaluated to zero. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The sqlite3_value_numeric_type() interface attempts to apply numeric affinity to the value. This means that an attempt is made to convert the value to an integer or floating point. If such a conversion is possible without loss of information (in other words, if the value is a string that looks like a number) then the conversion is performed. Otherwise no conversion occurs. The datatype after conversion is returned. (source: c3ref/value_blob.html, checked-by: th3/req1/value02.test, th3/req1/value03.test, matrix: context, detail)
If this SELECT returns any rows at all, then SQLite concludes that deleting the row from the parent table would violate the foreign key constraint and returns an error. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys10.test, matrix: context, detail)
Call the second integer on a freelist trunk page L. If L is greater than zero then integers with array indexes between 2 and L+1 inclusive contain page numbers for freelist leaf pages. (source: fileformat2.html, matrix: context, detail)
The rtrim(X,Y) function returns a string formed by removing any and all characters that appear in Y from the right side of X. (source: lang_corefunc.html, checked-by: th3/req1/func03.test, matrix: context, detail)
The sqlite3_stmt_readonly(X) interface returns true (non-zero) if and only if the prepared statement X makes no direct changes to the content of the database file. (source: c3ref/stmt_readonly.html, checked-by: tcl/capi3d.test, th3/cov1/vdbeapi14.test, matrix: context, detail)
The new column is always appended to the end of the list of existing columns. (source: lang_altertable.html, checked-by: th3/req1/altertable01.test, matrix: context, detail)
Rows for which the expression is false or NULL are retained. (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
The second is a copy of the database handle. (source: c3ref/wal_hook.html, checked-by: tcl/e_walhook.test, matrix: context, detail)
Applications can update, delete from, insert into or drop the sqlite_stat1 table, but may not create or alter the sqlite_stat1 table. (source: fileformat2.html, matrix: context, detail)
SQLITE_DBSTATUS_LOOKASIDE_HIT This parameter returns the number of malloc attempts that were satisfied using lookaside memory. Only the high-water value is meaningful; the current value is always zero. (source: c3ref/c_dbstatus_options.html, matrix: context, detail)
This pragma causes the database connection on which it is invoked to free up as much memory as it can, by calling sqlite3_db_release_memory(). (source: pragma.html, checked-by: src/pragma.c, matrix: context, detail)
Virtual tables can provide alternative implementations of functions using the xFindFunction method of the virtual table module. But global versions of those functions must exist in order to be overloaded. (source: c3ref/overload_function.html, matrix: context, detail)
Alternative collating functions for table columns can be specified in the CREATE TABLE statement using the COLLATE clause on the column definition. (source: fileformat2.html, checked-by: th3/req1/fileformat05.test, matrix: context, detail)
The SQLITE_ prefix is omitted from any strings returned by sqlite3_compileoption_get(). (source: c3ref/compileoption_get.html, checked-by: th3/cov1/ctime01.test, matrix: context, detail)
When the REPLACE conflict resolution strategy deletes rows in order to satisfy a constraint, delete triggers fire if and only if recursive triggers are enabled. (source: lang_conflict.html, checked-by: th3/req1/conflict02.test, matrix: context, detail)
If the INTO clause is included, then the original database file is unchanged and a new database is created in a file named by the argument to the INTO clause. (source: lang_vacuum.html, matrix: context, detail)
These functions return the total number of rows inserted, modified or deleted by all INSERT, UPDATE or DELETE statements completed since the database connection was opened, including those executed as part of trigger programs. (source: c3ref/total_changes.html, matrix: context, detail)
If the MATCH operator is connected to other terms of the WHERE clause via an OR operator, for example, the query will fail with an error. (source: rtree.html, checked-by: th3/cov1/rtree04.test, matrix: context, detail)
UNIQUE and PRIMARY KEY constraints on tables cause SQLite to create internal indexes with names of the form "sqlite_autoindex_TABLE_N" where TABLE is replaced by the name of the table that contains the constraint and N is an integer beginning with 1 and increasing by one with each constraint seen in the table definition. (source: fileformat2.html, matrix: context, detail)
PRAGMA busy_timeout; PRAGMA busy_timeout = milliseconds; Query or change the setting of the busy timeout. (source: pragma.html, checked-by: tcl/lock.test, th3/cov1/main21.test, matrix: context, detail)
The two-byte integer at offset 1 gives the start of the first freeblock on the page, or is zero if there are no freeblocks. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
The sqlite3_malloc64(N) routine works just like sqlite3_malloc(N) except that N is an unsigned 64-bit integer instead of a signed 32-bit integer. (source: c3ref/free.html, checked-by: th3/req1/malloc02.test, matrix: context, detail)
You can access the ROWID of an SQLite table using one of the special column names ROWID, _ROWID_, or OID. Except if you declare an ordinary table column to use one of those special names, then the use of that name will refer to the declared column not to the internal ROWID. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
The rollback journal file can be truncated to zero length (source: fileformat2.html, matrix: context, detail)
SQLite only understands upper/lower case for ASCII characters by default. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
sqlite> EXPLAIN QUERY PLAN SELECT a, b FROM t1 WHERE a=1; QUERY PLAN `--SCAN t1 (source: eqp.html, matrix: context, detail)
By contrast, if foreign key errors can be recognized simply by looking at the definition of the child table and without having to consult the parent table definition, then the CREATE TABLE statement for the child table fails. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys08.test, matrix: context, detail)
The PRAGMA integrity_check and PRAGMA quick_check commands check the type of the content of all columns in STRICT tables and show errors if anything is amiss. (source: stricttables.html, checked-by: th3/cov1/strict02.test, th3/req1/strictreq02.test, matrix: context, detail)
The path is optional if the authority is present. (source: uri.html, matrix: context, detail)
The likely(X) function returns the argument X unchanged. (source: lang_corefunc.html, checked-by: tcl/func3.test, matrix: context, detail)
The destructor is also invoked if the call to sqlite3_create_function_v2() fails. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc07.test, matrix: context, detail)
The "PRAGMA cache_spill=boolean" form of this pragma applies across all databases attached to the database connection. (source: pragma.html, matrix: context, detail)
After at least "ms" milliseconds of sleeping, the handler returns 0 which causes sqlite3_step() to return SQLITE_BUSY. (source: c3ref/busy_timeout.html, checked-by: th3/cov1/main21.test, matrix: context, detail)
The cell pointer array of a b-tree page immediately follows the b-tree page header. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
A literal value can also be the token "NULL". (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
Each expression in the result-set is then evaluated once for each group of rows. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
These routines work just like the corresponding column access functions except that these routines take a single protected sqlite3_value object pointer instead of a sqlite3_stmt* pointer and an integer column number. (source: c3ref/value_blob.html, checked-by: th3/req1/value02.test, th3/req1/value03.test, matrix: context, detail)
If a RELEASE command releases the outermost savepoint, so that the transaction stack becomes empty, then RELEASE is the same as COMMIT. (source: lang_savepoint.html, matrix: context, detail)
Cache_spill is enabled by default (source: pragma.html, checked-by: tcl/pragma2.test, matrix: context, detail)
It is an error to specify both a schema-name and the TEMP or TEMPORARY keyword, unless the schema-name is "temp". (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The abs(X) function returns the absolute value of the numeric argument X. (source: lang_corefunc.html, checked-by: src/func.c, th3/cov1/func01.test, matrix: context, detail)
This interface causes the xEntryPoint() function to be invoked for each new database connection that is created. (source: c3ref/auto_extension.html, checked-by: th3/req1/autoext01.test, matrix: context, detail)
There is one exception: if the foreign key column in the track table is NULL, then no corresponding entry in the artist table is required. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys01.test, matrix: context, detail)
PRAGMA ignore_check_constraints = boolean; This pragma enables or disables the enforcement of CHECK constraints. (source: pragma.html, checked-by: th3/req1/pragma20.test, matrix: context, detail)
Regardless of the compile-time configuration, any identifier that is not on the following 147 element list is not a keyword to the SQL parser in SQLite: ABORT ACTION ADD AFTER ALL ALTER ALWAYS ANALYZE AND AS ASC ATTACH AUTOINCREMENT BEFORE BEGIN BETWEEN BY CASCADE CASE CAST CHECK COLLATE COLUMN COMMIT CONFLICT CONSTRAINT CREATE CROSS CURRENT CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP DATABASE DEFAULT DEFERRABLE DEFERRED DELETE DESC DETACH DISTINCT DO DROP EACH ELSE END ESCAPE EXCEPT EXCLUDE EXCLUSIVE EXISTS EXPLAIN FAIL FILTER FIRST FOLLOWING FOR FOREIGN FROM FULL GENERATED GLOB GROUP GROUPS HAVING IF IGNORE IMMEDIATE IN INDEX INDEXED INITIALLY INNER INSERT INSTEAD INTERSECT INTO IS ISNULL JOIN KEY LAST LEFT LIKE LIMIT MATCH MATERIALIZED NATURAL NO NOT NOTHING NOTNULL NULL NULLS OF OFFSET ON OR ORDER OTHERS OUTER OVER PARTITION PLAN PRAGMA PRECEDING PRIMARY QUERY RAISE RANGE RECURSIVE REFERENCES REGEXP REINDEX RELEASE RENAME REPLACE RESTRICT RETURNING RIGHT ROLLBACK ROW ROWS SAVEPOINT SELECT SET TABLE TEMP TEMPORARY THEN TIES TO TRANSACTION TRIGGER UNBOUNDED UNION UNIQUE UPDATE USING VACUUM VALUES VIEW VIRTUAL WHEN WHERE WINDOW WITH WITHOUT (source: lang_keywords.html, checked-by: th3/req1/keyword01.test, matrix: context, detail)
If the "TEMP" or "TEMPORARY" keyword occurs in between "CREATE" and "VIEW" then the view that is created is only visible to the database connection that created it and is automatically deleted when the database connection is closed. (source: lang_createview.html, checked-by: th3/req1/view01.test, matrix: context, detail)
C-style comments can span multiple lines. (source: lang_comment.html, checked-by: th3/req1/comment01.test, matrix: context, detail)
For auxiliary columns, only the name of the column matters. The type affinity is ignored. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree18.test, matrix: context, detail)
The mode query parameter determines if the new database is opened read-only, read-write, read-write and created if it does not exist, or that the database is a pure in-memory database that never interacts with disk, respectively. (source: uri.html, matrix: context, detail)
Value is a NULL. (source: fileformat2.html, checked-by: src/vdbeaux.c, th3/req1/fileformat02.test, matrix: context, detail)
For example, a partial index might omit entries for which the column being indexed is NULL. (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
If a page contains no cells (which is only possible for a root page of a table that contains no rows) then the offset to the cell content area will equal the page size minus the bytes of reserved space. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
The DROP COLUMN command only works if the column is not referenced by any other parts of the schema and is not a PRIMARY KEY and does not have a UNIQUE constraint. (source: lang_altertable.html, checked-by: tcl/alterdropcol2.test, matrix: context, detail)
Tables created using CREATE TABLE AS are initially populated with the rows of data returned by the SELECT statement. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The 3rd argument to the sqlite3_exec() callback is an array of pointers to strings obtained as if from sqlite3_column_text(), one for each column. (source: c3ref/exec.html, checked-by: th3/req1/exec01.test, matrix: context, detail)
The sqlite3_version() function is mostly constant, but it can change when SQLite is upgraded, and so even though it always returns the same answer for any particular session, because it can change answers across sessions it is still considered non-deterministic. (source: deterministic.html, matrix: context, detail)
The length of the name is limited to 255 bytes in a UTF-8 representation, exclusive of the zero-terminator. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc01.test, matrix: context, detail)
Even if the foreign key constraint it is attached to is deferred, configuring a RESTRICT action causes SQLite to return an error immediately if a parent key with dependent child keys is deleted or modified. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys16.test, matrix: context, detail)
The expression attached to the optional OFFSET clause that may follow a LIMIT clause must also evaluate to an integer, or a value that can be losslessly converted to an integer. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
An SQLITE_TRACE_ROW callback is invoked whenever a prepared statement generates a single row of result. (source: c3ref/c_trace.html, checked-by: th3/cov1/trace01.test, matrix: context, detail)
The use of the R*Tree in the penultimate query reduces the number of calls to contained_in() function to a small subset of the entire table. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree18.test, matrix: context, detail)
For example, "(CAST '123e+5' AS INTEGER)" results in 123, not in 12300000. (source: lang_expr.html, checked-by: tcl/cast.test, matrix: context, detail)
Or, if none of the WHEN expressions evaluate to true, the result of evaluating the ELSE expression, if any. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
RESTART This mode works the same way as FULL with the addition that after checkpointing the log file it blocks (calls the busy-handler callback) until all readers are finished with the log file. (source: pragma.html, checked-by: th3/req1/checkpoint01.test, matrix: context, detail)
The SQLite core will never read or write the lock-byte page, though operating-system specific VFS implementations may choose to read or write bytes on the lock-byte page according to the needs and proclivities of the underlying system. (source: fileformat2.html, matrix: context, detail)
The X parameter to sqlite3_autovacuum_pages(D,C,P,X) is an optional destructor for the P parameter. (source: c3ref/autovacuum_pages.html, checked-by: th3/cov1/autovac01.test, matrix: context, detail)
as will attempting to delete a row from the artist table when there exist dependent rows in the track table (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys01.test, matrix: context, detail)
An application can tell which course of action SQLite took by using the sqlite3_get_autocommit() C-language interface. (source: lang_transaction.html, matrix: context, detail)
The frame-header is six big-endian 32-bit unsigned integer values, as follows: WAL Frame Header Format OffsetSizeDescription 04 Page number 44 For commit records, the size of the database file in pages after the commit. For all other records, zero. 84 Salt-1 copied from the WAL header 124 Salt-2 copied from the WAL header 164 Checksum-1: Cumulative checksum up through and including this page 204 Checksum-2: Second half of the cumulative checksum. (source: fileformat2.html, matrix: context, detail)
In formats 5 through 7, the "T" is a literal character separating the date and the time, as required by ISO-8601. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
AUTOINCREMENT guarantees that automatically chosen ROWIDs will be increasing but not that they will be sequential. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
All foreign key constraints in SQLite are handled as if MATCH SIMPLE were specified. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys23.test, matrix: context, detail)
The BINARY collating sequence is used for comparisons. (source: lang_corefunc.html, checked-by: th3/req1/func03.test, matrix: context, detail)
This function is an SQL wrapper around the sqlite3_sourceid() C interface. (source: lang_corefunc.html, checked-by: src/func.c, th3/req1/func04.test, matrix: context, detail)
sqlite> SELECT * FROM > (SELECT * FROM t1 WHERE a=1 ORDER BY b LIMIT 2) AS x, > (SELECT * FROM t2 WHERE c=1 ORDER BY d LIMIT 2) AS y; QUERY PLAN |--MATERIALIZE x | `--SEARCH t1 USING COVERING INDEX i2 (a=?) |--MATERIALIZE y | |--SEARCH t2 USING INDEX i4 (c=?) | `--USE TEMP B-TREE FOR ORDER BY |--SCAN x `--SCAN y (source: eqp.html, matrix: context, detail)
The following example illustrates the effect of using a deferred foreign key constraint. -- Database schema. Both tables are initially empty. CREATE TABLE artist( artistid INTEGER PRIMARY KEY, artistname TEXT ); CREATE TABLE track( trackid INTEGER, trackname TEXT, trackartist INTEGER REFERENCES artist(artistid) DEFERRABLE INITIALLY DEFERRED ); sqlite3> -- If the foreign key constraint were immediate, this INSERT would sqlite3> -- cause an error (since as there is no row in table artist with sqlite3> -- artistid=5). But as the constraint is deferred and there is an sqlite3> -- open transaction, no error occurs. sqlite3> BEGIN; sqlite3> INSERT INTO track VALUES(1, 'White Christmas', 5); sqlite3> -- The following COMMIT fails, as the database is in a state that sqlite3> -- does not satisfy the deferred foreign key constraint. The sqlite3> -- transaction remains open. sqlite3> COMMIT; SQL error: foreign key constraint failed sqlite3> -- After inserting a row into the artist table with artistid=5, the sqlite3> -- deferred foreign key constraint is satisfied. It is then possible sqlite3> -- to commit the transaction without error. sqlite3> INSERT INTO artist VALUES(5, 'Bing Crosby'); sqlite3> COMMIT; (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys13.test, matrix: context, detail)
A pointer to an sqlite3_context object is always first parameter to application-defined SQL functions. (source: c3ref/context.html, checked-by: src/vdbe.c, src/vdbemem.c, th3/req1/aggcntx01.test, th3/req1/func02.test, matrix: context, detail)
When the value of auto-vacuum is 2 or "incremental" then the additional information needed to do auto-vacuuming is stored in the database file but auto-vacuuming does not occur automatically at each commit as it does with auto_vacuum=full. (source: pragma.html, checked-by: th3/req1/pragma07.test, matrix: context, detail)
The update hook is not invoked when internal system tables are modified (i.e. sqlite_sequence). (source: c3ref/update_hook.html, checked-by: tcl/hook.test, matrix: context, detail)
PRAGMA function_list; This pragma returns a list of SQL functions known to the database connection. (source: pragma.html, matrix: context, detail)
If pzTail is not NULL then *pzTail is made to point to the first byte past the end of the first SQL statement in zSql. (source: c3ref/prepare.html, checked-by: th3/req1/prepare01.test, matrix: context, detail)
An SQLITE_TRACE_CLOSE callback is invoked when a database connection closes. (source: c3ref/c_trace.html, checked-by: th3/cov1/trace01.test, matrix: context, detail)
The right-hand operand of an IN or NOT IN operator has no affinity if the operand is a list, or has the same affinity as the affinity of the result set expression if the operand is a SELECT. (source: datatype3.html, checked-by: th3/cov1/affinity01.test, th3/req1/datatype3_05.test, matrix: context, detail)
If the join-operator is a "LEFT JOIN" or "LEFT OUTER JOIN", then after the ON or USING filtering clauses have been applied, an extra row is added to the output for each row in the original left-hand input dataset that does not match any row in the right-hand dataset. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
SQLite makes its own private copy of the content of the sqlite3_mem_methods structure before the sqlite3_config() call returns. (source: c3ref/c_config_covering_index_scan.html, checked-by: th3/th3oom.c, matrix: context, detail)
The <<, >>, &, and | operators always return an INTEGER (or NULL) result, but the % operator returns either INTEGER or REAL (or NULL) depending on the type of its operands. (source: datatype3.html, checked-by: th3/req1/datatype3_06.test, matrix: context, detail)
The -> and ->> operators are "extract"; they extract the RHS component from the LHS. (source: lang_expr.html, matrix: context, detail)
The X callback is invoked whenever any of the events identified by mask M occur. (source: c3ref/trace_v2.html, matrix: context, detail)
SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE The database is opened for reading and writing, and is created if it does not already exist. This is the behavior that is always used for sqlite3_open() and sqlite3_open16(). (source: c3ref/open.html, matrix: context, detail)
For example, consider the following database schema: CREATE TABLE album( albumartist TEXT, albumname TEXT, albumcover BINARY, PRIMARY KEY(albumartist, albumname) ); CREATE TABLE song( songid INTEGER, songartist TEXT, songalbum TEXT, songname TEXT, FOREIGN KEY(songartist, songalbum) REFERENCES album(albumartist, albumname) ); In this system, each entry in the song table is required to map to an entry in the album table with the same combination of artist and album. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys11.test, matrix: context, detail)
Memory to hold the error message string is managed internally. The application does not need to worry about freeing the result. However, the error string might be overwritten or deallocated by subsequent calls to other SQLite interface functions. (source: c3ref/errcode.html, matrix: context, detail)
The estimatedRows value is an estimate of the number of rows that will be returned by the strategy. (source: c3ref/index_info.html, matrix: context, detail)
SQLite parses MATCH clauses (i.e. does not report a syntax error if you specify one), but does not enforce them. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys23.test, matrix: context, detail)
The IS and IS NOT operators work like = and != except when one or both of the operands are NULL. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
Otherwise, it is invoked with two arguments only. (source: lang_corefunc.html, checked-by: th3/req1/func02.test, matrix: context, detail)
The expression of a generated column may only reference constant literals and columns within the same row, and may only use scalar deterministic functions. (source: gencol.html, matrix: context, detail)
As with all SQL syntax, the case of the keywords does not matter. One can write "WITHOUT rowid" or "without rowid" or "WiThOuT rOwId" and it will mean the same thing. (source: withoutrowid.html, checked-by: tcl/without_rowid5.test, th3/cov1/withoutrowid01.test, matrix: context, detail)
The authority may be omitted, may be blank, or may be "localhost". Any other authority results in an error. (source: uri.html, matrix: context, detail)
It is permitted to register multiple implementations of the same functions with the same name but with either differing numbers of arguments or differing preferred text encodings. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc04.test, matrix: context, detail)
If sqlite3_collation_needed16() is used, the names are passed as UTF-16 in machine native byte order. (source: c3ref/collation_needed.html, matrix: context, detail)
The sqlite_stat4.tbl column holds name of the table that owns the index that the row describes (source: fileformat2.html, matrix: context, detail)
The GLOB operator is always case sensitive. (source: optoverview.html, checked-by: th3/cov1/pragma02.test, matrix: context, detail)
The sum() and total() aggregate functions return the sum of all non-NULL values in the group. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
Format 12 might also be interpreted as a unix timestamp if it is immediately followed either the 'auto' or 'unixepoch' modifier. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
The SQLITE_CONFIG_SMALL_MALLOC option takes single argument of type int, interpreted as a boolean, which if true provides a hint to SQLite that it should avoid large memory allocations if possible. (source: c3ref/c_config_covering_index_scan.html, matrix: context, detail)
Because the function inputs are not necessarily known until run-time, the date/time functions will throw an exception if they encounter any of the non-deterministic features in a context where only deterministic functions are allowed. (source: deterministic.html, matrix: context, detail)
Any callback set by a previous call to sqlite3_rollback_hook() for the same database connection is overridden. (source: c3ref/commit_hook.html, matrix: context, detail)
The size of a page is a power of two between 512 and 65536 inclusive. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
SQLite will never invoke xInit() more than once without an intervening call to xShutdown(). (source: c3ref/pcache_methods2.html, checked-by: th3/th3pcache.c, matrix: context, detail)
The sqlite3_sourceid() function returns a pointer to a string constant whose value is the same as the SQLITE_SOURCE_ID C preprocessor macro. Except if SQLite is built using an edited copy of the amalgamation, then the last four characters of the hash might be different from SQLITE_SOURCE_ID. (source: c3ref/libversion.html, checked-by: src/main.c, th3/th3main.c, matrix: context, detail)
The "CROSS JOIN" join operator produces the same result as the "INNER JOIN", "JOIN" and "," operators (source: lang_select.html, checked-by: tcl/e_select.test, tcl/e_select2.test, matrix: context, detail)
The argument to INTO can be a URI filename if URI filenames are enabled. (source: lang_vacuum.html, matrix: context, detail)
PRAGMA table_list; PRAGMA schema.table_list; PRAGMA table_list(table-name); (source: pragma.html, checked-by: th3/cov1/pragma30.test, matrix: context, detail)
However, if there are pending write operations, the COMMIT command will fail with an error code SQLITE_BUSY. (source: lang_transaction.html, matrix: context, detail)
This option is used to enable or disable the enforcement of foreign key constraints. (source: c3ref/c_dbconfig_defensive.html, checked-by: th3/cov1/main34.test, matrix: context, detail)
For conversions between TEXT and REAL storage classes, only the first 15 significant decimal digits of the number are preserved. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
The RETURNING clause may only reference the table being modified. (source: lang_returning.html, matrix: context, detail)
The INSERT ... DEFAULT VALUES statement inserts a single new row into the named table. (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
The sqlite3_str object is destroyed and the string it created is returned using the sqlite3_str_finish() interface. (source: c3ref/str.html, matrix: context, detail)
The term "b=6" does not match "b=3+3" or "b-6=0" or "b BETWEEN 6 AND 6". (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
If sqlite3_value object V was initialized using sqlite3_bind_pointer(S,I,P,X,D) or sqlite3_result_pointer(C,P,X,D) and if X and Y are strings that compare equal according to strcmp(X,Y), then sqlite3_value_pointer(V,Y) will return the pointer P. (source: c3ref/value_blob.html, checked-by: th3/cov1/carray01.test, matrix: context, detail)
It is not necessary for every column of an index to appear in a WHERE clause term in order for that index to be used. (source: optoverview.html, matrix: context, detail)
If the implicit DELETE FROM causes any deferred foreign key constraints to be violated, and the violations still exist when the transaction is committed, an error is returned at the time of commit. (source: lang_droptable.html, checked-by: th3/cov1/fkey24.test, matrix: context, detail)
This function is omitted from SQLite by default. It is only available if the SQLITE_SOUNDEX compile-time option is used when SQLite is built. (source: lang_corefunc.html, checked-by: src/func.c, th3/cov1/func07.test, matrix: context, detail)
There is nothing stopping the user from creating a foreign key definition that refers to a parent table that does not exist, or to parent key columns that do not exist or are not collectively bound by a PRIMARY KEY or UNIQUE constraint. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys21.test, matrix: context, detail)
The SQLITE_CONFIG_URI option takes a single argument of type int. If non-zero, then URI handling is globally enabled. If the parameter is zero, then URI handling is globally disabled. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, matrix: context, detail)
These routines return 0 if the statement is incomplete. (source: c3ref/complete.html, checked-by: th3/cov1/complete01.test, matrix: context, detail)
The sqlite3_test_control() interface is used to read out internal state of SQLite and to inject faults into SQLite for testing purposes. (source: c3ref/test_control.html, checked-by: th3/req1/checkpoint01.test, matrix: context, detail)
The number of columns in a table is limited by the SQLITE_MAX_COLUMN compile-time parameter. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
So as not to open security holes in older applications that are unprepared to deal with extension loading, and as a means of disabling extension loading while evaluating user-entered SQL, the following API is provided to turn the sqlite3_load_extension() mechanism on and off. (source: c3ref/enable_load_extension.html, matrix: context, detail)
Furthermore, the temp_store_directory pragma always assumes that any string that this variable points to is held in memory obtained from sqlite3_malloc and the pragma may attempt to free that memory using sqlite3_free. (source: c3ref/temp_directory.html, matrix: context, detail)
If the specified view cannot be found and the IF EXISTS clause is not present, it is an error. (source: lang_dropview.html, checked-by: tcl/e_dropview.test, th3/cov1/build13.test, matrix: context, detail)
Compute the last day of the current month. SELECT date('now','start of month','+1 month','-1 day'); (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
Additional sqlite3_trace() callbacks might occur as each triggered subprogram is entered. The callbacks for triggers contain a UTF-8 SQL comment that identifies the trigger. (source: c3ref/profile.html, checked-by: th3/cov1/main16.test, matrix: context, detail)
The EXISTS operator always evaluates to one of the integer values 0 and 1. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
Indexes are removed with the DROP INDEX command. (source: lang_createindex.html, checked-by: th3/req1/createidx01.test, matrix: context, detail)
A SELECT statement used as either a scalar subquery or as the right-hand operand of an IN, NOT IN or EXISTS expression may contain references to columns in the outer query. (source: lang_expr.html, checked-by: th3/req1/select01.test, matrix: context, detail)
The database connection can be changed between full and incremental autovacuum mode at any time. (source: pragma.html, checked-by: th3/req1/pragma07.test, matrix: context, detail)
The sqlite3_mprintf() and sqlite3_vmprintf() routines write their results into memory obtained from sqlite3_malloc64(). (source: c3ref/mprintf.html, matrix: context, detail)
However, if the 4th parameter to sqlite3_create_function_v2() is OR-ed with SQLITE_DETERMINISTIC, then SQLite will treat that function as if it were deterministic. (source: deterministic.html, matrix: context, detail)
All reads from and writes to the main database file begin at a page boundary and all writes are an integer number of pages in size. (source: fileformat2.html, matrix: context, detail)
Memory allocation statistics are enabled by default unless SQLite is compiled with SQLITE_DEFAULT_MEMSTATUS=0 in which case memory allocation statistics are disabled by default. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/sqliteInt.h, matrix: context, detail)
sqlite3_realloc(X,N) returns a pointer to a memory allocation of at least N bytes in size or NULL if insufficient memory is available. (source: c3ref/free.html, checked-by: th3/req1/malloc02.test, matrix: context, detail)
SQLite will invoke the destructor function (if it is not NULL) when SQLite no longer needs the pClientData pointer. (source: c3ref/create_module.html, matrix: context, detail)
Each expression defines the value for a single column. (source: lang_returning.html, checked-by: th3/cov1/returning01.test, matrix: context, detail)
The EXCEPT operator returns the subset of rows returned by the left SELECT that are not also returned by the right-hand SELECT. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The D and N arguments to sqlite3_backup_init(D,N,S,M) are the database connection associated with the destination database and the database name, respectively. (source: c3ref/backup_finish.html, checked-by: th3/req1/backup02.test, matrix: context, detail)
The presence of the "noskipscan" token on the sqlite_stat1.stat field of an index prevents that index from being used with the skip-scan optimization. (source: fileformat2.html, checked-by: th3/cov1/where43.test, matrix: context, detail)
The values of these parameters (also called "host parameter names" or "SQL parameters") can be set using the sqlite3_bind_*() routines defined here. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
The only difference is that adding 'julianday' forces the DDDDDDDDD time-value format, and causes a NULL to be returned if any other time-value format is used. (source: lang_datefunc.html, checked-by: tcl/date3.test, th3/req1/date01.test, matrix: context, detail)
SQLITE_OPEN_MEMORY The database will be opened as an in-memory database. The database is named by the "filename" argument for the purposes of cache-sharing, if shared cache mode is enabled, but the "filename" is otherwise ignored. (source: c3ref/open.html, matrix: context, detail)
The expressions in the GROUP BY clause do not have to be expressions that appear in the result. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
Calling this routine with a null pointer (such as would be returned by a failed call to sqlite3_blob_open()) is a harmless no-op. (source: c3ref/blob_close.html, checked-by: tcl/e_blobclose.test, th3/cov1/vdbeblob01.test, matrix: context, detail)
Both the WHEN clause and the trigger actions may access elements of the row being inserted, deleted or updated using references of the form "NEW.column-name" and "OLD.column-name", where column-name is the name of a column from the table that the trigger is associated with. (source: lang_createtrigger.html, matrix: context, detail)
The xInit() method is passed a copy of the sqlite3_pcache_methods2.pArg value. (source: c3ref/pcache_methods2.html, checked-by: th3/th3pcache.c, matrix: context, detail)
The xShutdown() method may be NULL. (source: c3ref/pcache_methods2.html, checked-by: src/pcache.c, matrix: context, detail)
The sqlite3_db_name(D,N) interface returns a pointer to the schema name for the N-th database on database connection D, or a NULL pointer of N is out of range. (source: c3ref/db_name.html, matrix: context, detail)
In the "vX" interfaces, the prepared statement that is returned (the sqlite3_stmt object) contains a copy of the original SQL text. (source: c3ref/prepare.html, checked-by: th3/req1/prepare01.test, matrix: context, detail)
PRAGMA analysis_limit; PRAGMA analysis_limit = N; (source: pragma.html, checked-by: th3/cov1/analyze18.test, matrix: context, detail)
The highwater mark associated with SQLITE_DBSTATUS_CACHE_USED is always 0. (source: c3ref/c_dbstatus_options.html, checked-by: th3/req1/dbstatus01.test, matrix: context, detail)
URIs are processed as UTF8 text. (source: uri.html, matrix: context, detail)
The content of these tables is not updated as the database changes so after making significant changes it might be prudent to rerun ANALYZE. (source: optoverview.html, matrix: context, detail)
If there are multiple ATTACH-ed database files that are being modified as part of a transaction commit, then the autovacuum pages callback is invoked separately for each file. (source: c3ref/autovacuum_pages.html, checked-by: th3/cov1/autovac01.test, matrix: context, detail)
SELECT objname FROM demo_index2 WHERE contained_in(boundary, 35.37785, -80.77470) AND minX<=-80.77470 AND maxX>=-80.77470 AND minY<=35.37785 AND maxY>=35.37785; (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree18.test, matrix: context, detail)
The mxLevel entry in the sqlite3_rtree_query_info structure is the level value for the root of the R*Tree. (source: rtree.html, matrix: context, detail)
In this latter case, the integer at offset 64 is true for incremental_vacuum and false for auto_vacuum. (source: fileformat2.html, matrix: context, detail)
Calls to sqlite3_close() and sqlite3_close_v2() return SQLITE_OK if the sqlite3 object is successfully destroyed and all associated resources are deallocated. (source: c3ref/close.html, checked-by: th3/th3util.c, matrix: context, detail)
Even though it stores values using integer, the rtree_i32 virtual table still uses floating point computations internally as part of the r-tree algorithm. (source: rtree.html, matrix: context, detail)
The sqlite3_errmsg() and sqlite3_errmsg16() return English-language text that describes the error, as either UTF-8 or UTF-16 respectively. (source: c3ref/errcode.html, matrix: context, detail)
The sqlite3_str_appendchar(X,N,C) method appends N copies of the single-byte character C onto the end of sqlite3_str object X. (source: c3ref/str_append.html, matrix: context, detail)
If X is not NULL, then X(P) is invoked whenever the database connection closes or when the callback is overwritten by another invocation of sqlite3_autovacuum_pages(). (source: c3ref/autovacuum_pages.html, checked-by: th3/cov1/autovac01.test, matrix: context, detail)
The first argument is an integer code for the specific parameter to measure. (source: c3ref/status.html, matrix: context, detail)
If the SQLITE_FCNTL_PRAGMA file control returns SQLITE_OK, then the parser assumes that the VFS has handled the PRAGMA itself and the parser generates a no-op prepared statement if result string is NULL, or that returns a copy of the result string if the string is non-NULL. (source: c3ref/c_fcntl_begin_atomic_write.html, checked-by: tcl/multiplex4.test, th3/cov1/pragma24.test, matrix: context, detail)
The 4th argument to the sqlite3_exec() callback is an array of pointers to strings where each entry represents the name of corresponding result column as obtained from sqlite3_column_name(). (source: c3ref/exec.html, checked-by: th3/req1/exec01.test, matrix: context, detail)
Whether or not any conversions are attempted before the comparison takes place depends on the type affinity of the operands. (source: datatype3.html, checked-by: th3/req1/datatype3_05.test, matrix: context, detail)
Comments can begin anywhere whitespace can be found, including inside expressions that span multiple lines. (source: lang_comment.html, checked-by: th3/req1/comment01.test, matrix: context, detail)
If the implicit DELETE FROM executed as part of a DROP TABLE command violates any immediate foreign key constraints, an error is returned and the table is not dropped. (source: lang_droptable.html, checked-by: th3/cov1/fkey24.test, th3/req1/droptable01.test, matrix: context, detail)
In the case of an update, this is the rowid after the update takes place. (source: c3ref/update_hook.html, checked-by: th3/cov1/main15.test, matrix: context, detail)
If a WHERE clause is supplied, then only those rows for which the WHERE clause boolean expression is true are deleted. (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
The sqlite3_errstr() interface returns the English-language text that describes the result code, as UTF-8. (source: c3ref/errcode.html, matrix: context, detail)
The second and third column are -1 if there is no write-ahead log, for example if this pragma is invoked on a database connection that is not in WAL mode. (source: pragma.html, checked-by: th3/req1/pragma29.test, matrix: context, detail)
This pragma invokes the sqlite3_soft_heap_limit64() interface with the argument N, if N is specified and is a non-negative integer. (source: pragma.html, checked-by: src/pragma.c, tcl/softheap1.test, matrix: context, detail)
When casting a BLOB value to a REAL, the value is first converted to TEXT. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If the DELETE statement also has an OFFSET clause, then it is similarly evaluated and cast to an integer value. Again, it is an error if the value cannot be losslessly converted to an integer. (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
Note that the journal_mode for an in-memory database is either MEMORY or OFF and can not be changed to a different value. (source: pragma.html, checked-by: th3/req1/pragma23.test, matrix: context, detail)
If a CHECK constraint or foreign key constraint violation occurs, the REPLACE conflict resolution algorithm works like ABORT. (source: lang_conflict.html, checked-by: src/insert.c, th3/req1/conflict02.test, matrix: context, detail)
It is possible for the library compile-time C preprocessor symbol SQLITE_TEMP_STORE to override this pragma setting. (source: pragma.html, matrix: context, detail)
Other parameters record only the highwater mark and not the current value. For these latter parameters nothing is written into *pCurrent. (source: c3ref/status.html, matrix: context, detail)
The key for each entry in the WITHOUT ROWID b-tree is a record composed of the columns of the PRIMARY KEY followed by all remaining columns of the table. (source: fileformat2.html, matrix: context, detail)
But making modifications to this table will likely perturb the AUTOINCREMENT key generation algorithm. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
If P>X and K<=X then the first K bytes of P are stored on the btree page and the remaining P-K bytes are stored on overflow pages. (source: fileformat2.html, matrix: context, detail)
If a table contains a user defined column named "rowid", "oid" or "_rowid_", then that name always refers the explicitly declared column and cannot be used to retrieve the integer rowid value. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
If the N parameter to sqlite3_realloc(X,N) is zero or negative then the behavior is exactly the same as calling sqlite3_free(X). (source: c3ref/free.html, checked-by: src/malloc.c, th3/req1/malloc02.test, matrix: context, detail)
When secure_delete is on, SQLite overwrites deleted content with zeros. (source: pragma.html, checked-by: th3/cov1/pragma20.test, matrix: context, detail)
The load_extension() function raises an exception if the extension fails to load or initialize correctly. (source: lang_corefunc.html, checked-by: th3/cov1/func03.test, matrix: context, detail)
Subject to rules (11), (12) and (13), they may also contain ORDER BY, LIMIT and OFFSET clauses. (source: optoverview.html, matrix: context, detail)
The sqlite3_blob_read() and sqlite3_blob_write() interfaces can be used to read or write small subsections of the BLOB. (source: c3ref/blob.html, checked-by: th3/cov1/vdbeblob01.test, matrix: context, detail)
Each non-aggregate expression in the result-set is evaluated once for an arbitrarily selected row of the dataset. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The sqlite3_config(SQLITE_CONFIG_PCACHE2, ...) interface can register an alternative page cache implementation by passing in an instance of the sqlite3_pcache_methods2 structure. (source: c3ref/pcache_methods2.html, matrix: context, detail)
If the xInit() method is NULL, then the built-in default page cache is used instead of the application defined page cache. (source: c3ref/pcache_methods2.html, checked-by: src/pcache.c, matrix: context, detail)
If the authority section is present, then the path is always an absolute pathname. (source: uri.html, matrix: context, detail)
The first argument (the third parameter to sqlite3_db_config() is a pointer to a memory buffer to use for lookaside memory. (source: c3ref/c_dbconfig_defensive.html, checked-by: src/main.c, th3/req1/dbconfig01.test, matrix: context, detail)
SQL comments begin with two consecutive "-" characters (ASCII 0x2d) and extend up to and including the next newline character (ASCII 0x0a) or until the end of input, whichever comes first. (source: lang_comment.html, checked-by: th3/req1/comment01.test, matrix: context, detail)
Value "rwc" is equivalent to setting both SQLITE_OPEN_READWRITE and SQLITE_OPEN_CREATE. (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
The default setting is off, meaning that CHECK constraints are enforced by default. (source: pragma.html, checked-by: th3/req1/pragma20.test, matrix: context, detail)
If the TEXT value is not a well-formed integer or real literal, then the value is stored as TEXT. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
However (note-1) the julianday() and unixepoch() functions return numeric values. Their strftime() equivalents return strings that is the text representation of the corresponding number. (source: lang_datefunc.html, checked-by: th3/req1/date01.test, matrix: context, detail)
A value of 13 (0x0d) means the page is a leaf table b-tree page. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
For the INSERT and UPDATE commands, the keywords "ON CONFLICT" are replaced by "OR" so that the syntax reads more naturally. (source: lang_conflict.html, checked-by: th3/req1/conflict01.test, matrix: context, detail)
If the statement is a COMMIT or occurs outside of an explicit transaction, then you can retry the statement. (source: c3ref/step.html, matrix: context, detail)
As of version 3.6.18, without running ANALYZE, SQLite will choose option 2. (source: optoverview.html, matrix: context, detail)
The sqlite3_bind_* routines return SQLITE_OK on success or an error code if anything goes wrong. (source: c3ref/bind_blob.html, checked-by: th3/req1/bind01.test, matrix: context, detail)
Passing zero or a negative value as the nFrame parameter disables automatic checkpoints entirely. (source: c3ref/wal_autocheckpoint.html, checked-by: tcl/e_walauto.test, matrix: context, detail)
The sqlite_sequence table is an internal table used to help implement AUTOINCREMENT. (source: fileformat2.html, matrix: context, detail)
The DROP VIEW statement removes a view created by the CREATE VIEW statement. (source: lang_dropview.html, checked-by: slt/slt_lang_dropview.test, tcl/e_dropview.test, th3/cov1/build13.test, matrix: context, detail)
The aConstraintUsage[].omit flag is an optimization hint. When the omit flag is left in its default setting of false, the constraint will always be checked separately in byte code. If the omit flag is change to true, then the constraint may or may not be checked in byte code. In other words, when the omit flag is true there is no guarantee that the constraint will not be checked again using byte code. (source: c3ref/index_info.html, matrix: context, detail)
The name of the database is "main" for the main database or "temp" for the TEMP database, or the name that appears after the AS keyword for databases that are added using the ATTACH SQL command. (source: c3ref/file_control.html, matrix: context, detail)
The third and fourth parameters to this function are the table and column name of the desired column, respectively. (source: c3ref/table_column_metadata.html, checked-by: th3/cov1/metadata01.test, matrix: context, detail)
Unlike most SQL databases, SQLite does not restrict the type of data that may be inserted into a column based on the columns declared type. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
A scalar SQL function requires an implementation of the xFunc callback only; NULL pointers must be passed as the xStep and xFinal parameters. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc03.test, matrix: context, detail)
If the TEXT value is a well-formed integer literal that is too large to fit in a 64-bit signed integer, it is converted to REAL. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
Parameter zDb is not the filename that contains the database, but rather the symbolic name of the database. For attached databases, this is the name that appears after the AS keyword in the ATTACH statement. For the main database file, the database name is "main". For TEMP tables, the database name is "temp". (source: c3ref/blob_open.html, checked-by: tcl/e_blobopen.test, matrix: context, detail)
All nodes other than the root have an entry in the %_parent shadow table that identifies the parent node. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq04.test, matrix: context, detail)
If N is negative, then the limit reverts to the default value determined by the most recent sqlite3_config(SQLITE_CONFIG_MMAP_SIZE), or to the compile time default determined by SQLITE_DEFAULT_MMAP_SIZE if not start-time limit has been set. (source: pragma.html, matrix: context, detail)
CREATE INDEX po_parent ON purchaseorder(parent_po) WHERE parent_po IS NOT NULL; (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
Otherwise, if the ORDER BY expression is a column or an alias of an expression that is a column, then the default collation sequence for the column is used. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
Query or change a limit on the approximate ANALYZE setting. This is the approximate number of rows examined in each index by the ANALYZE command. (source: pragma.html, checked-by: th3/cov1/analyze18.test, matrix: context, detail)
The entry point is zProc. (source: c3ref/load_extension.html, matrix: context, detail)
If the result is a BLOB or UTF-8 string then the sqlite3_column_bytes() routine returns the number of bytes in that BLOB or string. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
CHECK constraints work the same. (source: stricttables.html, checked-by: th3/cov1/check01.test, th3/cov1/check02.test, matrix: context, detail)
All schemas are optimized in the first two forms, and only the specified schema is optimized in the latter two. (source: pragma.html, matrix: context, detail)
An ON UPDATE action is only taken if the values of the parent key are modified so that the new parent key values are not equal to the old. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys20.test, matrix: context, detail)
Each column of the subquery has the collation sequence and affinity of the corresponding expression in the subquery statement. (source: lang_select.html, checked-by: tcl/e_select2.test, matrix: context, detail)
URI hexadecimal escape sequences (%HH) are supported within the path and query components of a URI. (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
The TEMP database has a default suggested cache size of 0 pages. (source: pragma.html, checked-by: th3/req1/pragma09.test, matrix: context, detail)
But WITHOUT ROWID tables do follow the standard and will throw an error on any attempt to insert a NULL into a PRIMARY KEY column. (source: withoutrowid.html, checked-by: tcl/without_rowid5.test, th3/cov1/withoutrowid01.test, matrix: context, detail)
For example, CREATE TABLE parent(a PRIMARY KEY, b UNIQUE, c, d, e, f); CREATE UNIQUE INDEX i1 ON parent(c, d); CREATE INDEX i2 ON parent(e); CREATE UNIQUE INDEX i3 ON parent(f COLLATE nocase); CREATE TABLE child1(f, g REFERENCES parent(a)); -- Ok CREATE TABLE child2(h, i REFERENCES parent(b)); -- Ok CREATE TABLE child3(j, k, FOREIGN KEY(j, k) REFERENCES parent(c, d)); -- Ok CREATE TABLE child4(l, m REFERENCES parent(e)); -- Error! CREATE TABLE child5(n, o REFERENCES parent(f)); -- Error! CREATE TABLE child6(p, q, FOREIGN KEY(p, q) REFERENCES parent(b, c)); -- Error! CREATE TABLE child7(r REFERENCES parent(c)); -- Error! The foreign key constraints created as part of tables child1, child2 and child3 are all fine. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys07.test, matrix: context, detail)
Reads are also usually an integer number of pages in size, with the one exception that when the database is first opened, the first 100 bytes of the database file (the database file header) are read as a sub-page size unit. (source: fileformat2.html, matrix: context, detail)
The column on the left side of the GLOB operator must always use the built-in BINARY collating sequence or no attempt will be made to optimize that operator with indexes. (source: optoverview.html, matrix: context, detail)
The sqlite3_set_auxdata(C,N,P,X) interface saves P as metadata for the N-th argument of the application-defined function. (source: c3ref/get_auxdata.html, matrix: context, detail)
The instr(X,Y) function finds the first occurrence of string Y within string X and returns the number of prior characters plus 1, or 0 if Y is nowhere found within X. (source: lang_corefunc.html, checked-by: tcl/instr.test, matrix: context, detail)
The callback function registered by sqlite3_trace() is invoked at various times when an SQL statement is being run by sqlite3_step(). (source: c3ref/profile.html, checked-by: th3/cov1/main16.test, matrix: context, detail)
URI filename interpretation is enabled if the SQLITE_OPEN_URI flag is set in the third argument to sqlite3_open_v2(), or if it has been enabled globally using the SQLITE_CONFIG_URI option with the sqlite3_config() method or by the SQLITE_USE_URI compile-time option. (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
However a left outer join is neither commutative nor associative and hence will not be reordered. (source: optoverview.html, matrix: context, detail)
Within an xUpdate method, any value for which sqlite3_value_nochange(X) is true will in all other respects appear to be a NULL value. (source: c3ref/value_blob.html, matrix: context, detail)
The sqlite3_int64 variable pointed to by the V parameter will be set to the total number of times that the X-th loop has run. (source: c3ref/c_scanstat_est.html, checked-by: th3/cov1/status02.test, matrix: context, detail)
New VFSes are registered with sqlite3_vfs_register(). (source: c3ref/vfs_find.html, checked-by: th3/req1/vfs01.test, matrix: context, detail)
The "PRAGMA data_version" command provides an indication that the database file has been modified. (source: pragma.html, checked-by: tcl/pragma3.test, th3/cov1/pragma26.test, matrix: context, detail)
The remaining seven methods defined by this structure (xMutexAlloc, xMutexFree, xMutexEnter, xMutexTry, xMutexLeave, xMutexHeld and xMutexNotheld) implement the following interfaces (respectively): sqlite3_mutex_alloc() sqlite3_mutex_free() sqlite3_mutex_enter() sqlite3_mutex_try() sqlite3_mutex_leave() sqlite3_mutex_held() sqlite3_mutex_notheld() (source: c3ref/mutex_methods.html, matrix: context, detail)
The 5th parameter to the authorizer callback is the name of the database ("main", "temp", etc.) if applicable. (source: c3ref/c_alter_table.html, checked-by: th3/cov1/auth03.test, matrix: context, detail)
Both of these limits can be lowered at runtime using the sqlite3_limit() C/C++ interface. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
For the index above and WHERE clause like this: ... WHERE a=5 AND b IN (1,2,3) AND d='hello' Only columns a and b of the index would be usable. The d column would not be usable because column c is not constrained and there can be no gaps in the set of columns that usable by the index. (source: optoverview.html, matrix: context, detail)
The handler for an SQLITE_FCNTL_PRAGMA file control can optionally make the first element of the char** argument point to a string obtained from sqlite3_mprintf() or the equivalent and that string will become the result of the pragma or the error message if the pragma fails. (source: c3ref/c_fcntl_begin_atomic_write.html, checked-by: src/test_multiplex.c, th3/cov1/pragma24.test, matrix: context, detail)
The VACUUM command works by copying the contents of the database into a temporary database file and then overwriting the original with the contents of the temporary file. (source: lang_vacuum.html, matrix: context, detail)
The _database_ routines return the database name, the _table_ routines return the table name, and the origin_ routines return the column name. (source: c3ref/column_database_name.html, matrix: context, detail)
NOT NULL is enforced on every column of the PRIMARY KEY in a WITHOUT ROWID table. (source: withoutrowid.html, checked-by: tcl/without_rowid5.test, th3/cov1/withoutrowid01.test, matrix: context, detail)
The first argument is the database connection object to be interrogated. (source: c3ref/db_status.html, checked-by: th3/req1/dbstatus01.test, matrix: context, detail)
The implied type conversion of mathematical operands is slightly different from CAST to NUMERIC in that string and BLOB values that look like real numbers but have no fractional part are kept as REAL instead of being converted into INTEGER as they would be for CAST to NUMERIC. (source: datatype3.html, checked-by: th3/req1/datatype3_06.test, matrix: context, detail)
This option is used to enable or disable the sqlite3_load_extension() interface independently of the load_extension() SQL function. (source: c3ref/c_dbconfig_defensive.html, matrix: context, detail)
The sqlite3_result_null() interface sets the return value of the application-defined function to be NULL. (source: c3ref/result_blob.html, checked-by: th3/req1/result01.test, matrix: context, detail)
If an SQL operation is very nearly finished at the time when sqlite3_interrupt() is called, then it might not have an opportunity to be interrupted and might continue to completion. (source: c3ref/interrupt.html, matrix: context, detail)
the affinity of a column is determined by the declared type of the column, according to the following rules in the order shown: (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
SQLite strives to keep heap memory utilization below the soft heap limit by reducing the number of pages held in the page cache as heap memory usages approaches the limit. (source: c3ref/hard_heap_limit64.html, checked-by: th3/req1/softheaplimit02.test, matrix: context, detail)
Any prior cache entry associated with newKey is guaranteed not to be pinned. (source: c3ref/pcache_methods2.html, matrix: context, detail)
The sqlite3_rollback_hook() interface registers a callback function to be invoked whenever a transaction is rolled back. (source: c3ref/commit_hook.html, matrix: context, detail)
Each ordinary SQL table in the database schema is represented on-disk by a table b-tree. (source: fileformat2.html, matrix: context, detail)
An attempt to create a WITHOUT ROWID table without a PRIMARY KEY results in an error. (source: withoutrowid.html, checked-by: tcl/without_rowid5.test, th3/cov1/withoutrowid01.test, matrix: context, detail)
These interfaces are used to retrieve runtime status information about the performance of SQLite, and optionally to reset various highwater marks. (source: c3ref/status.html, matrix: context, detail)
The RETURNING clause is not supported for triggers. (source: lang_delete.html, matrix: context, detail)
The same arbitrarily selected row is used for each non-aggregate expression. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
If xGeom returns anything other than SQLITE_OK, then the r-tree query will abort with an error. (source: rtree.html, checked-by: tcl/rtreedoc2.test, th3/cov1/rtree03.test, matrix: context, detail)
So, for example, if sqlite3_result_text16le() is invoked with text that begins with bytes 0xfe, 0xff (a big-endian byte-order mark) then the first two bytes of input are skipped and the remaining input is interpreted as UTF16BE text. (source: c3ref/result_blob.html, matrix: context, detail)
To make an existing VFS into the default VFS, register it again with the makeDflt flag set. (source: c3ref/vfs_find.html, checked-by: th3/req1/vfs01.test, matrix: context, detail)
The xGeom callback always does a depth-first search of the r-tree. (source: rtree.html, checked-by: tcl/rtreedoc2.test, matrix: context, detail)
If the callback returns non-zero, then another attempt is made to access the database and the cycle repeats. (source: c3ref/busy_handler.html, checked-by: th3/req1/busy01.test, matrix: context, detail)
sqlite> CREATE INDEX i4 ON t2(c); sqlite> EXPLAIN QUERY PLAN SELECT c, d FROM t2 ORDER BY c; QUERY PLAN `--SCAN t2 USING INDEX i4 (source: eqp.html, matrix: context, detail)
The last argument is a pointer into which the callback result should be written. (source: rtree.html, checked-by: tcl/test_rtreedoc.c, th3/cov1/rtree03.test, matrix: context, detail)
For example, if an "ON DELETE SET DEFAULT" action is configured, but there is no row in the parent table that corresponds to the default values of the child key columns, deleting a parent key while dependent child keys exist still causes a foreign key violation. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys18.test, matrix: context, detail)
Row iRow is not present in the table (source: c3ref/blob_open.html, checked-by: tcl/e_blobopen.test, matrix: context, detail)
If a HAVING clause is a non-aggregate expression, it is evaluated with respect to an arbitrarily selected row from the group. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The second argument is a pointer to the function to invoke when a row is updated, inserted or deleted in a rowid table. (source: c3ref/update_hook.html, checked-by: th3/cov1/main15.test, matrix: context, detail)
If nByte is positive, then it is the number of bytes read from zSql. (source: c3ref/prepare.html, checked-by: th3/req1/prepare01.test, matrix: context, detail)
All other databases use the normal locking mode by default and are affected by this pragma. (source: pragma.html, checked-by: th3/req1/pragma04.test, matrix: context, detail)
However, the usable size is not allowed to be less than 480. In other words, if the page size is 512, then the reserved space size cannot exceed 32. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
The string literal must not begin with a wildcard; if the right-hand side begins with a wildcard character then this optimization is not attempted. (source: optoverview.html, matrix: context, detail)
A call to either function replaces the existing collation-needed callback. (source: c3ref/collation_needed.html, matrix: context, detail)
Note that an inner transaction might commit (using the RELEASE command) but then later have its work undone by a ROLLBACK in an outer transaction. (source: lang_savepoint.html, matrix: context, detail)
If there is more than one table or subquery in FROM clause then the contents of all tables and/or subqueries are joined into a single dataset for the simple SELECT statement to operate on. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
Value is a string in the text encoding and (N-13)/2 bytes in length. (source: fileformat2.html, checked-by: src/vdbeaux.c, th3/req1/fileformat02.test, matrix: context, detail)
This API may be used to register a callback that SQLite will invoke when the connection currently holding the required lock relinquishes it. (source: c3ref/unlock_notify.html, matrix: context, detail)
When the temp_store setting is changed, all existing temporary tables, indices, triggers, and views are immediately deleted. (source: pragma.html, matrix: context, detail)
The optional "OR action" conflict clause that follows the UPDATE keyword allows the user to nominate a specific constraint conflict resolution algorithm to use during this one UPDATE command. (source: lang_update.html, checked-by: tcl/e_update.test, matrix: context, detail)
Content is not actually committed on the disk until the outermost transaction commits. (source: lang_savepoint.html, matrix: context, detail)
The likelihood(X) function is a no-op that the code generator optimizes away so that it consumes no CPU cycles during run-time (that is, during calls to sqlite3_step()). (source: lang_corefunc.html, checked-by: tcl/func3.test, matrix: context, detail)
This function is used to move an existing BLOB handle so that it points to a different row of the same database table. (source: c3ref/blob_reopen.html, checked-by: th3/req1/blob01.test, matrix: context, detail)
The one-byte flag at offset 0 indicating the b-tree page type. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
If the path begins with a '/' character, then it is interpreted as an absolute path. (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
Table zTable does not exist within database zDb (source: c3ref/blob_open.html, checked-by: tcl/e_blobopen.test, matrix: context, detail)
The xMutexInit routine is called by SQLite exactly once for each effective call to sqlite3_initialize(). (source: c3ref/mutex_methods.html, matrix: context, detail)
The INDEXED BY and NOT INDEXED clauses are not allowed on DELETE statements within triggers. (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
Those subelements for which the xQueryFunc callback sets eWithin to PARTLY_WITHIN or FULLY_WITHIN are added to the priority queue using the score supplied by the callback. (source: rtree.html, checked-by: tcl/rtreedoc3.test, matrix: context, detail)
When more than two tables are joined together as part of a FROM clause, the join operations are processed in order from left to right. In other words, the FROM clause (A join-op-1 B join-op-2 C) is computed as ((A join-op-1 B) join-op-2 C). (source: lang_select.html, checked-by: tcl/e_select2.test, matrix: context, detail)
If the previous call to this routine had an N of 1 or more and a non-NULL P then the pseudo-randomness is generated internally and without recourse to the sqlite3_vfs xRandomness method. (source: c3ref/randomness.html, checked-by: th3/cov1/random01.test, matrix: context, detail)
Otherwise, they return the name of the attached database, table, or column that query result column was extracted from. (source: c3ref/column_database_name.html, matrix: context, detail)
If the table to which the trigger is attached is not in the temp database, then DELETE statements within the trigger body must operate on tables within the same database as it. (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
However, if the SELECT is a compound SELECT, then ORDER BY expressions that are not aliases to output columns must be exactly the same as an expression used as an output column. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The structure of the sqlite_schema table is as if it had been created using the following SQL: CREATE TABLE sqlite_schema( type text, name text, tbl_name text, rootpage integer, sql text ); (source: fileformat2.html, matrix: context, detail)
In SQLite, table rows normally have a 64-bit signed integer ROWID which is unique among all rows in the same table. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
The ALTER TABLE command does not work on statistics tables. (source: lang_analyze.html, checked-by: th3/req1/analyze01.test, matrix: context, detail)
EXPLAIN QUERY PLAN is most useful on a SELECT statement, but may also appear with other statements that read data from database tables (e.g. UPDATE, DELETE, INSERT INTO ... SELECT). (source: eqp.html, matrix: context, detail)
The defer_foreign_keys pragma defaults to OFF so that foreign key constraints are only deferred if they are created as "DEFERRABLE INITIALLY DEFERRED". (source: pragma.html, checked-by: tcl/fkey6.test, th3/cov1/fkey24.test, matrix: context, detail)
sqlite3_config() can be called as part of the implementation of an application-defined sqlite3_os_init(). (source: c3ref/config.html, matrix: context, detail)
The sqlite3_column_type() routine returns the datatype code for the initial data type of the result column. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
FTS4 uses term prefix indexes to speed up prefix queries. (source: fts3.html, matrix: context, detail)
For example, the sqlite_stat1 table might indicate that an equality constraint on column x reduces the search space to 10 rows on average, whereas an equality constraint on column y reduces the search space to 3 rows on average. In that case, SQLite would prefer to use index ex2i2 since that index is more selective. (source: optoverview.html, matrix: context, detail)
String and BLOB values that do not look like numbers are interpreted as 0. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
SQLite interprets the string from sqlite3_result_error16() as UTF-16 using the same byte-order determination rules as sqlite3_bind_text16(). (source: c3ref/result_blob.html, checked-by: th3/req1/result01.test, matrix: context, detail)
An attempt to read from an expired BLOB handle fails with an error code of SQLITE_ABORT. (source: c3ref/blob_read.html, checked-by: th3/cov1/vdbeblob01.test, matrix: context, detail)
The sqlite3_str_finish(X) interface destroys the sqlite3_str object X and returns a pointer to a memory buffer obtained from sqlite3_malloc64() that contains the constructed string. (source: c3ref/str_finish.html, matrix: context, detail)
SQLITE_STATUS_MALLOC_COUNT This parameter records the number of separate memory allocations currently checked out. (source: c3ref/c_status_malloc_count.html, matrix: context, detail)
The ROLLBACK command with a TO clause rolls back transactions going backwards in time back to the most recent SAVEPOINT with a matching name. (source: lang_savepoint.html, matrix: context, detail)
This is the number of sort operations that have occurred. (source: c3ref/c_stmtstatus_counter.html, matrix: context, detail)
If one operand has TEXT affinity and the other has no affinity, then TEXT affinity is applied to the other operand. (source: datatype3.html, checked-by: th3/cov1/affinity01.test, th3/req1/datatype3_05.test, matrix: context, detail)
It then checkpoints all frames in the log file and syncs the database file. (source: c3ref/wal_checkpoint_v2.html, checked-by: tcl/e_walckpt.test, th3/req1/checkpoint01.test, matrix: context, detail)
For indexes on an ordinary rowid table, N will be one more than the number of columns indexed. (source: fileformat2.html, matrix: context, detail)
When the commit hook callback routine returns zero, the COMMIT operation is allowed to continue normally. (source: c3ref/commit_hook.html, matrix: context, detail)
The third and fourth arguments to the callback contain pointers to the database and table name containing the affected row. (source: c3ref/update_hook.html, checked-by: tcl/hook.test, th3/cov1/main15.test, matrix: context, detail)
For "X LIKE P" without the ESCAPE clause, set the E parameter of sqlite3_strlike(P,X,E) to 0. (source: c3ref/strlike.html, matrix: context, detail)
When the locking-mode is set to EXCLUSIVE, the database connection never releases file-locks. (source: pragma.html, checked-by: th3/req1/pragma04.test, matrix: context, detail)
Otherwise, the storage class of the result is determined by applying the rules for determining column affinity to the type-name. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If the source database connection is being used to write to the source database when sqlite3_backup_step() is called, then SQLITE_LOCKED is returned immediately. (source: c3ref/backup_finish.html, matrix: context, detail)
PRAGMA fullfsync PRAGMA fullfsync = boolean; Query or change the fullfsync flag. (source: pragma.html, checked-by: th3/req1/pragma11b.test, matrix: context, detail)
Generated columns can occur anywhere in the table definition. (source: gencol.html, matrix: context, detail)
If the database uses a 65536-byte page size and the reserved space is zero (the usual value for reserved space) then the cell content offset of an empty page wants to be 65536. However, that integer is too large to be stored in a 2-byte unsigned integer, so a value of 0 is used in its place. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
Some virtual table implementations might impose additional restrictions. (source: lang_createvtab.html, matrix: context, detail)
If there are too few arguments in the argument list, missing arguments are assumed to have a NULL value, which is translated into 0 or 0.0 for numeric formats or an empty string for %s. (source: lang_corefunc.html, checked-by: tcl/printf2.test, th3/cov1/printf08.test, matrix: context, detail)
The highwater mark associated with SQLITE_DBSTATUS_CACHE_WRITE is always 0. (source: c3ref/c_dbstatus_options.html, checked-by: src/status.c, matrix: context, detail)
PRAGMA schema.index_info(index-name); This pragma returns one row for each key column in the named index. (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma15.test, matrix: context, detail)
If a given call to sqlite3_unlock_notify() would put the system in a deadlocked state, then SQLITE_LOCKED is returned and no unlock-notify callback is registered. (source: c3ref/unlock_notify.html, matrix: context, detail)
A subsequent call to sqlite3_result_error() or sqlite3_result_error16() resets the error code to SQLITE_ERROR. (source: c3ref/result_blob.html, checked-by: th3/req1/result01.test, matrix: context, detail)
If the 3rd parameter to any of the sqlite3_result_text* interfaces other than sqlite3_result_text64() is negative, then SQLite computes the string length itself by searching the 2nd parameter for the first zero character. (source: c3ref/result_blob.html, checked-by: th3/req1/result02.test, matrix: context, detail)
If the table to which the trigger is attached is in the TEMP database, then the unqualified name of the table being updated is resolved in the same way as it is for a top-level statement (by searching first the TEMP database, then the main database, then any other databases in the order they were attached). (source: lang_update.html, checked-by: tcl/e_update.test, matrix: context, detail)
Hence, when an application changes the statistics tables directly, SQLite will not immediately notice the changes. (source: lang_analyze.html, checked-by: th3/req1/analyze01.test, matrix: context, detail)
When a "table-name" is specified, the only foreign key constraints checked are those created by REFERENCES clauses in the CREATE TABLE statement for table-name. (source: pragma.html, checked-by: th3/cov1/fkey23.test, matrix: context, detail)
The usual algorithm is to give the newly created row a ROWID that is one larger than the largest ROWID in the table prior to the insert. (source: autoinc.html, checked-by: src/vdbe.c, th3/req1/autoinc01.test, matrix: context, detail)
The sqlite3_stmt_isexplain(S) interface returns 1 if the prepared statement S is an EXPLAIN statement, or 2 if the statement S is an EXPLAIN QUERY PLAN. (source: c3ref/stmt_isexplain.html, matrix: context, detail)
Each call to either sqlite3_trace() or sqlite3_trace_v2() overrides (cancels) any prior calls to sqlite3_trace() or sqlite3_trace_v2(). (source: c3ref/trace_v2.html, matrix: context, detail)
In a STRICT table, a column of type ANY always preserves the data exactly as it is received. (source: stricttables.html, checked-by: th3/req1/strictreq01.test, matrix: context, detail)
An INSERT that fails due to a constraint violation is not a successful INSERT and does not change the value returned by this routine. (source: c3ref/last_insert_rowid.html, matrix: context, detail)
sqlite3_free() is used to free idxPtr if and only if needToFreeIdxPtr is true. (source: c3ref/index_info.html, matrix: context, detail)
However, COMMIT will fail as long as foreign key constraints remain in violation. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys12.test, th3/req1/foreignkeys14.test, matrix: context, detail)
The right-hand side of an IN or NOT IN operator can be a table name or table-valued function name in which case the right-hand side is understood to be subquery of the form "(SELECT * FROM name)". (source: lang_expr.html, checked-by: th3/cov1/in01.test, matrix: context, detail)
Type is associated with individual values, not with the containers used to hold those values. (source: c3ref/column_decltype.html, matrix: context, detail)
The sqlite3_db_readonly(D,N) interface returns 1 if the database N of connection D is read-only, 0 if it is read/write, or -1 if N is not the name of a database on connection D. (source: c3ref/db_readonly.html, checked-by: tcl/rdonly.test, matrix: context, detail)
The sqlite3_create_function() interface can be used to override the like() function and thereby change the operation of the LIKE operator. (source: lang_corefunc.html, checked-by: th3/req1/func02.test, matrix: context, detail)
The nullif(X,Y) function returns its first argument if the arguments are different and NULL if the arguments are the same. (source: lang_corefunc.html, checked-by: th3/cov1/func02.test, th3/req1/func03.test, matrix: context, detail)
The second argument to the busy handler callback is the number of times that the busy handler has been invoked previously for the same locking event. (source: c3ref/busy_handler.html, checked-by: th3/req1/busy01.test, matrix: context, detail)
For a blob value X, length(X) returns the number of bytes in the blob. (source: lang_corefunc.html, checked-by: th3/cov1/func01.test, matrix: context, detail)
The unicode(X) function returns the numeric unicode code point corresponding to the first character of the string X. (source: lang_corefunc.html, checked-by: tcl/func.test, matrix: context, detail)
If either operand has an explicit collating function assignment using the postfix COLLATE operator, then the explicit collating function is used for comparison, with precedence to the collating function of the left operand. (source: datatype3.html, checked-by: th3/req1/datatype3_09.test, matrix: context, detail)
Application developers can use the EXPLAIN QUERY PLAN prefix on a statement to get a high-level overview of the chosen query strategy. (source: optoverview.html, matrix: context, detail)
In this case the result of evaluating the left-most expression from each term of the VALUES list is inserted into the left-most column of each new row, and so forth for each subsequent expression. (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
The sqlite3_str_new(D) interface allocates and initializes a new sqlite3_str object. (source: c3ref/str_new.html, matrix: context, detail)
For any key X, pointers to the left of a X refer to b-tree pages on which all keys are less than or equal to X. (source: fileformat2.html, matrix: context, detail)
FULL blocks concurrent writers while it is running, but readers can proceed. (source: pragma.html, matrix: context, detail)
A function where the preferred text encoding matches the database encoding is a better match than a function where the encoding is different. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc04.test, matrix: context, detail)
The text of query parameters is appended to the filename argument of the xOpen method of the VFS. (source: uri.html, matrix: context, detail)
When an INTEGER or REAL is compared to another INTEGER or REAL, a numerical comparison is performed. (source: datatype3.html, checked-by: th3/req1/datatype3_04.test, matrix: context, detail)
If the ORDER BY expression is a constant integer K then the expression is considered an alias for the K-th column of the result set (columns are numbered from left to right starting with 1). (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
So, ordinary rowid tables in SQLite violate the SQL standard and allow NULL values in PRIMARY KEY fields. (source: withoutrowid.html, checked-by: tcl/without_rowid5.test, th3/cov1/withoutrowid01.test, matrix: context, detail)
If offset iOffset is less than N bytes from the end of the BLOB, SQLITE_ERROR is returned and no data is written. (source: c3ref/blob_write.html, checked-by: tcl/e_blobwrite.test, matrix: context, detail)
If the savepoint-name in a ROLLBACK TO command does not match any SAVEPOINT on the stack, then the ROLLBACK command fails with an error and leaves the state of the database unchanged. (source: lang_savepoint.html, matrix: context, detail)
Value is a big-endian 64-bit twos-complement integer. (source: fileformat2.html, checked-by: src/vdbeaux.c, th3/req1/fileformat02.test, matrix: context, detail)
The source database connection may be used by the application for other purposes while a backup operation is underway or being initialized. (source: c3ref/backup_finish.html, matrix: context, detail)
If a NOT NULL constraint is specified, then the column must have a default value other than NULL. (source: lang_altertable.html, checked-by: th3/req1/altertable01.test, matrix: context, detail)
If those locks cannot be obtained immediately and there is a busy-handler callback configured, it is invoked in the usual manner. (source: c3ref/db_cacheflush.html, matrix: context, detail)
The argument to the SQLITE_FCNTL_PRAGMA file control is an array of pointers to strings (char**) in which the second element of the array is the name of the pragma and the third element is the argument to the pragma or NULL if the pragma has no argument. (source: c3ref/c_fcntl_begin_atomic_write.html, checked-by: src/pragma.c, src/test_multiplex.c, matrix: context, detail)
Such transactions usually persist until the next COMMIT or ROLLBACK command. But a transaction will also ROLLBACK if the database is closed or if an error occurs and the ROLLBACK conflict resolution algorithm is specified. (source: lang_transaction.html, matrix: context, detail)
The SQLITE_OPEN_EXCLUSIVE flag is always used in conjunction with the SQLITE_OPEN_CREATE flag, which are both directly analogous to the O_EXCL and O_CREAT flags of the POSIX open() API. (source: c3ref/vfs.html, checked-by: th3/th3testvfs.c, matrix: context, detail)
This file control takes the file descriptor out of batch write mode so that all subsequent write operations are independent. (source: c3ref/c_fcntl_begin_atomic_write.html, matrix: context, detail)
Calling sqlite3_auto_extension(X) with an entry point X that is already on the list of automatic extensions is a harmless no-op. (source: c3ref/auto_extension.html, checked-by: th3/req1/autoext01.test, matrix: context, detail)
EXCLUSIVE is similar to IMMEDIATE in that a write transaction is started immediately. (source: lang_transaction.html, matrix: context, detail)
If neither argument to nullif() defines a collating function then the BINARY collating function is used. (source: lang_corefunc.html, checked-by: th3/req1/func03.test, matrix: context, detail)
Example Typenames From TheCREATE TABLE Statement or CAST Expression Resulting Affinity Rule Used To Determine Affinity INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8 INTEGER 1 CHARACTER(20) VARCHAR(255) VARYING CHARACTER(255) NCHAR(55) NATIVE CHARACTER(70) NVARCHAR(100) TEXT CLOB TEXT 2 BLOB no datatype specified BLOB 3 REAL DOUBLE DOUBLE PRECISION FLOAT REAL 4 NUMERIC DECIMAL(10,5) BOOLEAN DATE DATETIME NUMERIC 5 (source: datatype3.html, checked-by: th3/req1/datatype3_02.test, matrix: context, detail)
The leftmost column of the result set has the index 0. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
If the argument to sqlite3_mutex_enter(), sqlite3_mutex_try(), or sqlite3_mutex_leave() is a NULL pointer, then all three routines behave as no-ops. (source: c3ref/mutex_alloc.html, checked-by: th3/cov1/mutex01.test, matrix: context, detail)
If the result is a BLOB or UTF-16 string then the sqlite3_column_bytes16() routine returns the number of bytes in that BLOB or string. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
The psow parameter indicates whether or not the powersafe overwrite property does or does not apply to the storage media on which the database file resides. (source: c3ref/open.html, checked-by: th3/cov1/psow01.test, matrix: context, detail)
The non-equals operator can be either != or <>. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The index of the column is stored in aConstraint[].iColumn. (source: c3ref/index_info.html, matrix: context, detail)
Additional application-specific collating functions can be added to SQLite using the sqlite3_create_collation() interface. (source: fileformat2.html, checked-by: th3/th3util.c, matrix: context, detail)
PASSIVE Checkpoint as many frames as possible without waiting for any database readers or writers to finish. Sync the db file if all frames in the log are checkpointed. (source: pragma.html, checked-by: th3/req1/checkpoint01.test, matrix: context, detail)
The wal_autocheckpoint pragma can be used to invoke this interface from SQL. (source: c3ref/wal_autocheckpoint.html, checked-by: tcl/e_walauto.test, matrix: context, detail)
The compress option is used to specify the compress function. (source: fts3.html, matrix: context, detail)
The number of pages in cache must exceed both the cache_spill threshold and the maximum cache size set by the PRAGMA cache_size statement in order for spilling to occur. (source: pragma.html, matrix: context, detail)
The default suggested cache size is -2000, which means the cache size is limited to 2048000 bytes of memory. (source: pragma.html, checked-by: src/sqliteLimit.h, th3/req1/pragma09.test, matrix: context, detail)
For each limit category SQLITE_LIMIT_NAME there is a hard upper bound set at compile-time by a C preprocessor macro called SQLITE_MAX_NAME. (The "_LIMIT_" in the name is changed to "_MAX_".) (source: c3ref/limit.html, checked-by: src/main.c, matrix: context, detail)
All automatic checkpoints are PASSIVE. (source: pragma.html, matrix: context, detail)
The load_extension() function will fail if the extension attempts to modify or delete an SQL function or collating sequence. (source: lang_corefunc.html, checked-by: th3/cov1/func03.test, matrix: context, detail)
The sqlite3_stricmp() and sqlite3_strnicmp() APIs allow applications and extensions to compare the contents of two buffers containing UTF-8 strings in a case-independent fashion, using the same definition of "case independence" that SQLite uses internally when comparing identifiers. (source: c3ref/stricmp.html, checked-by: src/util.c, matrix: context, detail)
All arguments are preceded by a single space. (source: fileformat2.html, matrix: context, detail)
The default value of the fullfsync flag is off. (source: pragma.html, checked-by: th3/req1/pragma11b.test, matrix: context, detail)
The minimum value is the first non-NULL value that would appear in an ORDER BY of the column. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
Each foreign key constraint in SQLite is classified as either immediate or deferred. (source: foreignkeys.html, checked-by: src/build.c, src/fkey.c, src/sqliteInt.h, tcl/e_fkey.test, th3/req1/foreignkeys12.test, matrix: context, detail)
Casting a REAL or INTEGER value to NUMERIC is a no-op, even if a real value could be losslessly converted to an integer. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The SQLITE_SOURCE_ID macro evaluates to a string which identifies a particular check-in of SQLite within its configuration management system. (source: c3ref/c_source_id.html, checked-by: th3/req1/version01.test, matrix: context, detail)
Every call to sqlite3_backup_step() obtains a shared lock on the source database that lasts for the duration of the sqlite3_backup_step() call. (source: c3ref/backup_finish.html, matrix: context, detail)
There can only be a single busy handler defined for each database connection. Setting a new busy handler clears any previously set handler. (source: c3ref/busy_handler.html, checked-by: th3/req1/busy01.test, matrix: context, detail)
An underscore ("_") in the LIKE pattern matches any single character in the string. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
Any column in an SQLite version 3 database, except an INTEGER PRIMARY KEY column, may be used to store a value of any storage class. (source: datatype3.html, checked-by: th3/req1/datatype3_11.test, matrix: context, detail)
Any scalar expression may be used in the LIMIT clause, so long as it evaluates to an integer or a value that can be losslessly converted to an integer. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
If this routine has not been previously called or if the previous call had N less than one or a NULL pointer for P, then the PRNG is seeded using randomness obtained from the xRandomness method of the default sqlite3_vfs object. (source: c3ref/randomness.html, checked-by: th3/cov1/random01.test, matrix: context, detail)
Auxiliary columns must come after all of the coordinate boundary columns. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree18.test, matrix: context, detail)
The locking mode of temp and in-memory databases cannot be changed. (source: pragma.html, checked-by: th3/req1/pragma04.test, matrix: context, detail)
The sqlite3_vtab_rhs_value() interface can return an result code other than SQLITE_OK or SQLITE_NOTFOUND if something goes wrong. (source: c3ref/vtab_rhs_value.html, checked-by: src/where.c, matrix: context, detail)
If the callback on a commit hook function returns non-zero, then the commit is converted into a rollback. (source: c3ref/commit_hook.html, matrix: context, detail)
After calling the xDestroy() method, SQLite considers the sqlite3_pcache* handle invalid, and will not use it with any other sqlite3_pcache_methods2 functions. (source: c3ref/pcache_methods2.html, checked-by: th3/th3pcache.c, matrix: context, detail)
In a CASE without a base expression, each WHEN expression is evaluated and the result treated as a boolean, starting with the leftmost and continuing to the right. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The WAL header is 32 bytes in size and consists of the following eight big-endian 32-bit unsigned integer values: WAL Header Format OffsetSizeDescription 04 Magic number. 0x377f0682 or 0x377f0683 44 File format version. Currently 3007000. 84 Database page size. Example: 1024 124 Checkpoint sequence number 164 Salt-1: random integer incremented with each checkpoint 204 Salt-2: a different random number for each checkpoint 244 Checksum-1: First part of a checksum on the first 24 bytes of header 284 Checksum-2: Second part of the checksum on the first 24 bytes of header (source: fileformat2.html, matrix: context, detail)
The SQLITE_INDEX_CONSTRAINT_ISNULL and SQLITE_INDEX_CONSTRAINT_ISNOTNULL operators have no right-hand operand and hence calls to sqlite3_vtab_rhs_value() for those operators will always return SQLITE_NOTFOUND. (source: c3ref/c_index_constraint_eq.html, matrix: context, detail)
& | << >> (source: lang_expr.html, matrix: context, detail)
But if the content cannot be losslessly converted into an integer, for example if the input is 'xyz', then the original string is inserted instead. (source: stricttables.html, checked-by: th3/req1/strictreq01.test, matrix: context, detail)
The sqlite3_strlike(P,X,E) function matches Unicode characters, though only ASCII characters are case folded. (source: c3ref/strlike.html, matrix: context, detail)
The final callback parameter is the rowid of the row. (source: c3ref/update_hook.html, checked-by: tcl/hook.test, th3/cov1/main15.test, matrix: context, detail)
If a write-transaction is open on database connection D when the sqlite3_db_cacheflush(D) interface invoked, any dirty pages in the pager-cache that are not currently in use are written out to disk. (source: c3ref/db_cacheflush.html, matrix: context, detail)
The callback is invoked from within the sqlite3_step or sqlite3_close call that concludes the blocking connection's transaction. (source: c3ref/unlock_notify.html, matrix: context, detail)
The unixepoch() function returns a unix timestamp - the number of seconds since 1970-01-01 00:00:00 UTC. (source: lang_datefunc.html, checked-by: tcl/date3.test, th3/req1/date01.test, matrix: context, detail)
And the declared type of "STRING" has an affinity of NUMERIC, not TEXT. (source: datatype3.html, checked-by: th3/req1/datatype3_02.test, matrix: context, detail)
The sqlite3_result_text64() interface sets the return value of an application-defined function to be a text string in an encoding specified by the fifth (and last) parameter, which must be one of SQLITE_UTF8, SQLITE_UTF16, SQLITE_UTF16BE, or SQLITE_UTF16LE. (source: c3ref/result_blob.html, checked-by: th3/req1/result02.test, matrix: context, detail)
If the UPDATE statement also has an OFFSET clause, then it is similarly evaluated and cast to an integer value. If the OFFSET expression evaluates to a non-negative value M, then the first M rows are skipped and the following N rows updated instead. (source: lang_update.html, checked-by: tcl/e_update.test, matrix: context, detail)
The legacy behavior was that sqlite3_step() would only return a generic SQLITE_ERROR result code and the application would have to make a second call to sqlite3_reset() in order to find the underlying cause of the problem. (source: c3ref/prepare.html, checked-by: th3/req1/prepare03.test, matrix: context, detail)
Memory to hold the error message string is managed internally and must not be freed by the application (source: c3ref/errcode.html, matrix: context, detail)
For each UNIQUE constraint on the table, each row must contain a unique combination of values in the columns identified by the UNIQUE constraint. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
* / % (source: lang_expr.html, matrix: context, detail)
Root pages are moved to the beginning of the database file by the CREATE TABLE, CREATE INDEX, DROP TABLE, and DROP INDEX operations. (source: fileformat2.html, matrix: context, detail)
If no arguments are given, all attached databases are analyzed. (source: lang_analyze.html, checked-by: th3/req1/analyze01.test, matrix: context, detail)
Triggers are removed using the DROP TRIGGER statement. (source: lang_createtrigger.html, matrix: context, detail)
The sqlite3_busy_handler(D,X,P) routine sets a callback function X that might be invoked with argument P whenever an attempt is made to access a database table associated with database connection D when another thread or process has the table locked. (source: c3ref/busy_handler.html, checked-by: th3/req1/busy01.test, matrix: context, detail)
Any SELECT statement, including compound SELECTs and SELECT statements with ORDER BY and/or LIMIT clauses, may be used in an INSERT statement of this form. (source: lang_insert.html, checked-by: tcl/e_insert.test, matrix: context, detail)
On success, SQLITE_OK is returned and the new BLOB handle is stored in *ppBlob. Otherwise an error code is returned and, unless the error code is SQLITE_MISUSE, *ppBlob is set to NULL. (source: c3ref/blob_open.html, checked-by: tcl/e_blobopen.test, matrix: context, detail)
The SQLITE_SOURCE_ID string contains the date and time of the check-in (UTC) and a SHA1 or SHA3-256 hash of the entire source tree. (source: c3ref/c_source_id.html, checked-by: th3/req1/version01.test, matrix: context, detail)
The "E" character that begins the exponentiation clause of a floating point literal can be either upper or lower case. (source: lang_expr.html, checked-by: th3/req1/expr01.test, matrix: context, detail)
Any other use of the 'julianday' modifier is an error and causes the function to return NULL. (source: lang_datefunc.html, checked-by: src/date.c, tcl/date3.test, th3/req1/date01.test, matrix: context, detail)
Every table must have at least one non-generated column. (source: gencol.html, matrix: context, detail)
The sqlite3_db_filename(D,N) interface returns a pointer to the filename associated with database N of connection D. (source: c3ref/db_filename.html, checked-by: th3/cov1/attach04.test, matrix: context, detail)
Database zDb does not exist (source: c3ref/blob_open.html, checked-by: tcl/e_blobopen.test, matrix: context, detail)
sqlite> CREATE INDEX i2 ON t1(a, b); sqlite> EXPLAIN QUERY PLAN SELECT a, b FROM t1 WHERE a=1; QUERY PLAN `--SEARCH t1 USING COVERING INDEX i2 (a=?) (source: eqp.html, matrix: context, detail)
The new mutex is recursive when SQLITE_MUTEX_RECURSIVE is used but not necessarily so when SQLITE_MUTEX_FAST is used. (source: c3ref/mutex_alloc.html, matrix: context, detail)
The fourth column in the output of the foreign_key_check pragma is the same integer as the first column in the output of the foreign_key_list pragma. (source: pragma.html, checked-by: th3/cov1/fkey23.test, matrix: context, detail)
The pContext member of the sqlite3_rtree_geometry structure is always set to a copy of the pContext argument passed to sqlite3_rtree_geometry_callback() when the callback is registered. (source: rtree.html, checked-by: tcl/rtreedoc2.test, th3/cov1/rtree03.test, matrix: context, detail)
The 32-bit integers are big-endian if the magic number in the first 4 bytes of the WAL header is 0x377f0683 and the integers are little-endian if the magic number is 0x377f0682. (source: fileformat2.html, matrix: context, detail)
Strings returned by sqlite3_column_text() and sqlite3_column_text16(), even empty strings, are always zero-terminated. (source: c3ref/column_blob.html, checked-by: src/vdbemem.c, th3/req1/column01.test, matrix: context, detail)
After the header and zero padding are zero or more page records. (source: fileformat2.html, matrix: context, detail)
The lower(X) function returns a copy of string X with all ASCII characters converted to lower case. (source: lang_corefunc.html, checked-by: th3/cov1/func02.test, matrix: context, detail)
Each trigger must specify that it will fire for one of the following operations: DELETE, INSERT, UPDATE. (source: lang_createtrigger.html, matrix: context, detail)
The error code and message for the failed call to sqlite3_backup_init() can be retrieved using the sqlite3_errcode(), sqlite3_errmsg(), and/or sqlite3_errmsg16() functions. (source: c3ref/backup_finish.html, checked-by: th3/req1/backup02.test, matrix: context, detail)
The authorizer callback should return SQLITE_OK to allow the action, SQLITE_IGNORE to disallow the specific action but allow the SQL statement to continue to be compiled, or SQLITE_DENY to cause the entire SQL statement to be rejected with an error. (source: c3ref/set_authorizer.html, matrix: context, detail)
If the 2nd parameter to sqlite3_exec() is a NULL pointer, a pointer to an empty string, or a pointer that contains only whitespace and/or SQL comments, then no SQL statements are evaluated and the database is not changed. (source: c3ref/exec.html, checked-by: th3/req1/exec01.test, matrix: context, detail)
The sqlite3_user_data() interface returns a copy of the pointer that was the pUserData parameter (the 5th parameter) of the sqlite3_create_function() and sqlite3_create_function16() routines that originally registered the application defined function. (source: c3ref/user_data.html, checked-by: th3/req1/userdata01.test, matrix: context, detail)
The default built-in lower() function works for ASCII characters only. (source: lang_corefunc.html, checked-by: th3/cov1/func02.test, matrix: context, detail)
For example, the function "count(distinct X)" will return the number of distinct values of column X instead of the total number of non-null values in column X. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
The "order" option may be set to either "DESC" or "ASC" (in upper or lower case). (source: fts3.html, matrix: context, detail)
The purpose of the likelihood(X,Y) function is to provide a hint to the query planner that the argument X is a boolean that is true with a probability of approximately Y. (source: lang_corefunc.html, checked-by: th3/cov1/where42.test, matrix: context, detail)
If the destructor argument is SQLITE_STATIC, it means that the content pointer is constant and will never change. (source: c3ref/c_static.html, checked-by: th3/req1/clearbind01.test, th3/req1/static01.test, matrix: context, detail)
When a table is referenced by a SELECT but no column values are extracted from that table (for example in a query like "SELECT count(*) FROM tab") then the SQLITE_READ authorizer callback is invoked once for that table with a column name that is an empty string. (source: c3ref/set_authorizer.html, checked-by: tcl/auth.test, th3/cov1/auth01.test, matrix: context, detail)
Literal values may be integers, floating point numbers, strings, BLOBs, or NULLs. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If a HAVING clause is specified, it is evaluated once for each group of rows as a boolean expression. If the result of evaluating the HAVING clause is false, the group is discarded. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
_. (source: undoredo.html, matrix: context, detail)
Inner joins can be freely reordered. (source: optoverview.html, matrix: context, detail)
If the table to which the trigger is attached is in the TEMP database, then the unqualified name of the table being deleted is resolved in the same way as it is for a top-level statement (by searching first the TEMP database, then the main database, then any other databases in the order they were attached). (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
To avoid having to register all collation sequences before a database can be used, a single callback function may be registered with the database connection to be invoked whenever an undefined collation sequence is required. (source: c3ref/collation_needed.html, matrix: context, detail)
The sqlite3_trace_v2(D,M,X,P) interface registers a trace callback function X against database connection D, using property mask M and context pointer P. (source: c3ref/trace_v2.html, matrix: context, detail)
RTRIM is like BINARY except that extra spaces at the end of either string do not change the result. In other words, strings will compare equal to one another as long as they differ only in the number of spaces at the end. (source: fileformat2.html, matrix: context, detail)
If X is the integer -9223372036854775808 then abs(X) throws an integer overflow error since there is no equivalent positive 64-bit two complement value. (source: lang_corefunc.html, checked-by: src/func.c, th3/cov1/func01.test, matrix: context, detail)
As an internal optimization, small floating point values with no fractional component and stored in columns with REAL affinity are written to disk as integers in order to take up less space and are automatically converted back into floating point as the value is read out. (source: datatype3.html, checked-by: th3/req1/datatype3_12.test, matrix: context, detail)
If sqlite3_open_v2() is used and the "cache" parameter is present in a URI filename, its value overrides any behavior requested by setting SQLITE_OPEN_PRIVATECACHE or SQLITE_OPEN_SHAREDCACHE flag. (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
Or, if a PRIMARY KEY clause is specified as a table-constraint, then the primary key of the table consists of the list of columns specified as part of the PRIMARY KEY clause. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
a NOT NULL constraint dictates that the associated column may not contain a NULL value. Attempting to set the column value to NULL when inserting a new row or updating an existing one causes a constraint violation. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The size of a blob may not be changed by this interface. (source: c3ref/blob_open.html, checked-by: th3/cov1/vdbeblob01.test, matrix: context, detail)
PRAGMA legacy_alter_table; PRAGMA legacy_alter_table = boolean This pragma sets or queries the value of the legacy_alter_table flag. (source: pragma.html, matrix: context, detail)
If the final parameter to sqlite3_create_function_v2() or sqlite3_create_window_function() is not NULL, then it is destructor for the application data pointer. The destructor is invoked when the function is deleted, either by being overloaded or when the database connection closes. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc07.test, matrix: context, detail)
An error is raised if more than one PRIMARY KEY clause appears in a CREATE TABLE statement. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
Both forms of the pragma return the maximum page count. (source: pragma.html, checked-by: th3/req1/pragma12.test, matrix: context, detail)
The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. (source: lang_corefunc.html, checked-by: th3/cov1/func04.test, matrix: context, detail)
If sqlite3_open_v2() is used and the vfs option is present, then the VFS specified by the option takes precedence over the value passed as the fourth parameter to sqlite3_open_v2(). (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
In addition to being a result code, the SQLITE_ABORT value is also used as a conflict resolution mode returned from the sqlite3_vtab_on_conflict() interface. (source: rescode.html, checked-by: th3/cov1/vtab04.test, th3/cov1/vtab07.test, matrix: context, detail)
When an applicable constraint violation occurs, the ROLLBACK resolution algorithm aborts the current SQL statement with an SQLITE_CONSTRAINT error and rolls back the current transaction. (source: lang_conflict.html, checked-by: th3/req1/conflict01.test, matrix: context, detail)
But the FAIL resolution does not back out prior changes of the SQL statement that failed nor does it end the transaction. (source: lang_conflict.html, checked-by: th3/req1/conflict01.test, matrix: context, detail)
If the path component is omitted, then the database is stored in a temporary file that will be automatically deleted when the database connection closes. (source: uri.html, matrix: context, detail)
The syntax for the ON CONFLICT clause is as shown above for the CREATE TABLE command. (source: lang_conflict.html, checked-by: th3/req1/conflict01.test, matrix: context, detail)
during the original sqlite3_set_auxdata() call when a memory allocation error occurs. (source: c3ref/get_auxdata.html, matrix: context, detail)
If EXCLUSIVE locking mode is set prior to the first WAL-mode database access, then SQLite never attempts to call any of the shared-memory methods and hence no shared-memory wal-index is ever created. (source: wal.html, checked-by: tcl/e_wal.test, th3/req1/pragma05.test, matrix: context, detail)
On windows, if the absolute path begins with "/X:/" where X is any single ASCII alphabetic character ("a" through "z" or "A" through "Z") then the "X:" is understood to be the drive letter of the volume containing the file, not the toplevel directory. (source: uri.html, matrix: context, detail)
Text is appended to the sqlite3_str object using various methods, such as sqlite3_str_appendf(). (source: c3ref/str.html, matrix: context, detail)
If no schema name is specified and the TEMP keyword is not present then the table is created in the main database. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The second parameter is the name of the SQL function to be created or redefined. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc01.test, matrix: context, detail)
Autocommit mode is re-enabled by a COMMIT or ROLLBACK. (source: c3ref/get_autocommit.html, matrix: context, detail)
For the purposes of comparing virtual table output values to see if the values are same value for sorting purposes, two NULL values are considered to be the same. (source: c3ref/vtab_distinct.html, matrix: context, detail)
The sqlite3_normalized_sql(P) interface returns a pointer to a UTF-8 string containing the normalized SQL text of prepared statement P. (source: c3ref/expanded_sql.html, matrix: context, detail)
Function sqlite3_backup_step(B,N) will copy up to N pages between the source and destination databases specified by sqlite3_backup object B. (source: c3ref/backup_finish.html, checked-by: th3/req1/backup03.test, matrix: context, detail)
Queries that contain a single MIN() or MAX() aggregate function whose argument is the left-most column of an index might be satisfied by doing a single index lookup rather than by scanning the entire table. (source: optoverview.html, matrix: context, detail)
FOR EACH ROW implies that the SQL statements specified in the trigger may be executed (depending on the WHEN clause) for each database row being inserted, updated or deleted by the statement causing the trigger to fire. (source: lang_createtrigger.html, matrix: context, detail)
The preupdate hook is disabled by invoking sqlite3_preupdate_hook() with a NULL pointer as the second parameter. (source: c3ref/preupdate_blobwrite.html, matrix: context, detail)
If the second parameter (zDbName) does not match the name of any open database file, then SQLITE_ERROR is returned. (source: c3ref/file_control.html, matrix: context, detail)
The data_store_directory pragma may modify this variable and cause it to point to memory obtained from sqlite3_malloc. (source: c3ref/data_directory.html, matrix: context, detail)
Unlike normal SQLite columns, an integer primary key or rowid column must contain integer values. Integer primary key or rowid columns are not able to hold floating point values, strings, BLOBs, or NULLs. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The sqlite_stat4.idx column holds name of the index that the row describes, or in the case of an sqlite_stat4 entry for a WITHOUT ROWID table, the name of the table itself. (source: fileformat2.html, matrix: context, detail)
Triggers are automatically dropped when the table that they are associated with (the table-name table) is dropped. (source: lang_createtrigger.html, matrix: context, detail)
However if the phrase "WITHOUT ROWID" is added to the end of a CREATE TABLE statement, then the special "rowid" column is omitted. (source: withoutrowid.html, checked-by: tcl/without_rowid5.test, th3/cov1/withoutrowid01.test, matrix: context, detail)
For the purposes of this pragma, the VACUUM command is considered a schema change, since VACUUM will usually alter the "rootpage" values for entries in the sqlite_schema table. (source: pragma.html, checked-by: th3/req1/pragma28.test, matrix: context, detail)
A "CREATE TABLE ... AS SELECT" statement creates and populates a database table based on the results of a SELECT statement. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
An iColumn of -1 indicates the left-hand operand is the rowid. (source: c3ref/c_index_constraint_eq.html, matrix: context, detail)
If the value of expr is NULL, then the result of the CAST expression is also NULL. (source: lang_expr.html, checked-by: tcl/e_expr.test, th3/cov1/cast01.test, matrix: context, detail)
The 'julianday' modifier forces the time-value number to be interpreted as a julian-day number. (source: lang_datefunc.html, checked-by: tcl/date3.test, th3/req1/date01.test, matrix: context, detail)
The RENAME TO syntax changes the name of table-name to new-table-name. (source: lang_altertable.html, checked-by: th3/req1/altertable01.test, matrix: context, detail)
The format(FORMAT,...) SQL function works like the sqlite3_mprintf() C-language function and the printf() function from the standard C library. (source: lang_corefunc.html, checked-by: tcl/printf2.test, th3/cov1/printf08.test, matrix: context, detail)
When three or more simple SELECTs are connected into a compound SELECT, they group from left to right. In other words, if "A", "B" and "C" are all simple SELECT statements, (A op B op C) is processed as ((A op B) op C). (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
There can be an arbitrary number of sqlite_stat3 entries per index. (source: fileformat2.html, matrix: context, detail)
SELECT statements may be optionally preceded by a single WITH clause that defines one or more common table expressions for use within the SELECT statement. (source: lang_select.html, checked-by: th3/cov1/with01.test, matrix: context, detail)
Ordinary tables in SQLite are able to read and write at the same time. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree22.test, matrix: context, detail)
At least szOsFile bytes of memory are allocated by SQLite to hold the sqlite3_file structure passed as the third argument to xOpen. (source: c3ref/vfs.html, checked-by: th3/th3testvfs.c, matrix: context, detail)
The built-in date and time functions of SQLite are a special case. These functions are usually considered deterministic. However, if these functions use the string "now" as the date, or if they use the localtime modifier or the utc modifier, then they are considered non-deterministic. (source: deterministic.html, matrix: context, detail)
Then an efficient way to find the specific ZIP code for the main SQLite office would be to run a query like this: SELECT objname FROM demo_data, demo_index WHERE demo_data.id=demo_index.id AND contained_in(demo_data.boundary, 35.37785, -80.77470) AND minX<=-80.77470 AND maxX>=-80.77470 AND minY<=35.37785 AND maxY>=35.37785; (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree18.test, matrix: context, detail)
No affinity transformations are applied to any values when comparing rows as part of a compound SELECT. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
Comments are not SQL commands, but can occur within the text of SQL queries passed to sqlite3_prepare_v2() and related interfaces. (source: lang_comment.html, checked-by: th3/req1/comment01.test, matrix: context, detail)
The changes() SQL function is a wrapper around the sqlite3_changes64() C/C++ function and hence follows the same rules for counting changes. (source: lang_corefunc.html, checked-by: src/func.c, matrix: context, detail)
One would get the same answer without the use of the R*Tree index using the following simpler query: SELECT objname FROM demo_data WHERE contained_in(demo_data.boundary, 35.37785, -80.77470); (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree18.test, matrix: context, detail)
If an immediate foreign key constraint is violated, the DROP TABLE statement fails and the table is not dropped. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys16.test, th3/req1/foreignkeys22.test, matrix: context, detail)
The fourth argument, pArg, is an application data pointer that is passed through as the first argument to the collating function callback. (source: c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test, matrix: context, detail)
The parent key must be a named column or columns in the parent table, not the rowid. (source: foreignkeys.html, checked-by: th3/req1/foreignkeys03.test, matrix: context, detail)
When the WHERE clause and RETURNING clause are both omitted from a DELETE statement and the table being deleted has no triggers, SQLite uses an optimization to erase the entire table content without having to visit each row of the table individually. (source: lang_delete.html, matrix: context, detail)
Subsequent calls to sqlite3_get_auxdata(C,N) return P from the most recent sqlite3_set_auxdata(C,N,P,X) call if the metadata is still valid or NULL if the metadata has been discarded. (source: c3ref/get_auxdata.html, matrix: context, detail)
Before entering a trigger program the value returned by sqlite3_changes() function is saved. After the trigger program has finished, the original value is restored. (source: c3ref/changes.html, checked-by: tcl/e_changes.test, matrix: context, detail)
Thus, if a COLLATE operator is used anywhere in a comparison expression, the collating function defined by that operator is used for string comparison regardless of what table columns might be a part of that expression. (source: datatype3.html, checked-by: th3/req1/datatype3_09.test, matrix: context, detail)
Each column name or expression can be followed by one of the "ASC" or "DESC" keywords to indicate sort order. (source: lang_createindex.html, checked-by: th3/req1/createidx02.test, matrix: context, detail)
If a memory allocation fails, then SQLITE_NOMEM is returned. (source: c3ref/complete.html, checked-by: th3/cov1/complete01.test, matrix: context, detail)
If the second argument to SQLITE_DBCONFIG_LOOKASIDE is not a multiple of 8, it is internally rounded down to the next smaller multiple of 8. (source: c3ref/c_dbconfig_defensive.html, checked-by: src/main.c, matrix: context, detail)
If a keyword in single quotes (ex: 'key' or 'glob') is used in a context where an identifier is allowed but where a string literal is not allowed, then the token is understood to be an identifier instead of a string literal. (source: lang_keywords.html, checked-by: th3/req1/keyword01.test, matrix: context, detail)
Checkpoints initiated by this mechanism are PASSIVE. (source: c3ref/wal_autocheckpoint.html, checked-by: tcl/e_walauto.test, matrix: context, detail)
The iRowid field is the rowid (the first of the 3 to 11 columns in the R*Tree) for the element being considered. iRowid is only valid for leaves. (source: rtree.html, matrix: context, detail)
Note that when the right-hand side of a LIKE or GLOB operator is a parameter and the statement is prepared using sqlite3_prepare_v2() or sqlite3_prepare16_v2() then the statement is automatically reparsed and recompiled on the first sqlite3_step() call of each run if the binding to the right-hand side parameter has changed since the previous run. (source: optoverview.html, matrix: context, detail)
For the LIKE operator, if case_sensitive_like mode is enabled then the column must indexed using BINARY collating sequence, or if case_sensitive_like mode is disabled then the column must indexed using built-in NOCASE collating sequence. (source: optoverview.html, checked-by: th3/cov1/where03.test, th3/cov1/where03b.test, matrix: context, detail)
AUTOINCREMENT does not work on WITHOUT ROWID tables. (source: withoutrowid.html, checked-by: tcl/without_rowid5.test, th3/cov1/withoutrowid01.test, matrix: context, detail)
These routines do not parse the SQL statements thus will not detect syntactically incorrect SQL. (source: c3ref/complete.html, checked-by: th3/cov1/complete01.test, matrix: context, detail)
The update hook is not invoked when WITHOUT ROWID tables are modified. (source: c3ref/update_hook.html, checked-by: tcl/hook.test, matrix: context, detail)
Thus, the backup may be performed on a live source database without preventing other database connections from reading or writing to the source database while the backup is underway. (source: c3ref/backup_finish.html, checked-by: th3/req1/backup01.test, matrix: context, detail)
If the most recent call to sqlite3_step(S) for the prepared statement S indicated an error, then sqlite3_reset(S) returns an appropriate error code. (source: c3ref/reset.html, checked-by: th3/th3util.c, matrix: context, detail)
The ON DELETE and ON UPDATE action associated with each foreign key in an SQLite database is one of "NO ACTION", "RESTRICT", "SET NULL", "SET DEFAULT" or "CASCADE". (source: foreignkeys.html, checked-by: src/parse.y, tcl/e_fkey.test, th3/req1/foreignkeys16.test, matrix: context, detail)
When the EXPLAIN keyword appears by itself it causes the statement to behave as a query that returns the sequence of virtual machine instructions it would have used to execute the command had the EXPLAIN keyword not been present. (source: lang_explain.html, checked-by: th3/cov1/vdbeaux01.test, matrix: context, detail)
The first parameter, szPage, is the size in bytes of the pages that must be allocated by the cache. (source: c3ref/pcache_methods2.html, checked-by: th3/th3pcache.c, matrix: context, detail)
Terms of the ORDER BY clause that is part of a SELECT statement may be assigned a collating sequence using the COLLATE operator, in which case the specified collating function is used for sorting. (source: datatype3.html, checked-by: th3/req1/datatype3_10.test, matrix: context, detail)
SQLITE_OPEN_READONLY The database is opened in read-only mode. If the database does not already exist, an error is returned. (source: c3ref/open.html, matrix: context, detail)
The SQLITE_UTF16 and SQLITE_UTF16_ALIGNED values for eTextRep force strings to be UTF16 with native byte order. (source: c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test, matrix: context, detail)
Unix timestamps for the first 63 days of 1970 will be interpreted as julian day numbers. (source: lang_datefunc.html, checked-by: tcl/date3.test, matrix: context, detail)
For the purposes of the DEFAULT clause, an expression is considered constant if it contains no sub-queries, column or table references, bound parameters, or string literals enclosed in double-quotes instead of single-quotes. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
For non-TEMP triggers, the table to be modified or queried must exist in the same database as the table or view to which the trigger is attached. (source: lang_createtrigger.html, matrix: context, detail)
The third column is the number of pages in the write-ahead log file that have been successfully moved back into the database file at the conclusion of the checkpoint. (source: pragma.html, matrix: context, detail)
Module names must be registered before creating a new virtual table using the module and before using a preexisting virtual table for the module. (source: c3ref/create_module.html, matrix: context, detail)
A question mark followed by a number NNN holds a spot for the NNN-th parameter. NNN must be between 1 and SQLITE_MAX_VARIABLE_NUMBER. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If no database is specified as part of the object reference, then SQLite searches the main, temp and all attached databases for an object with a matching name. The temp database is searched first, followed by the main database, followed all attached databases in the order that they were attached. The reference resolves to the first match found. (source: lang_naming.html, checked-by: tcl/e_resolve.test, matrix: context, detail)
The subquery does not use OFFSET. (source: optoverview.html, matrix: context, detail)
The following table summarizes the interaction of the SQLITE_TEMP_STORE preprocessor macro and the temp_store pragma: SQLITE_TEMP_STORE PRAGMAtemp_store Storage used forTEMP tables and indices 0 any file 1 0 file 1 1 file 1 2 memory 2 0 memory 2 1 file 2 2 memory 3 any memory (source: pragma.html, matrix: context, detail)
The sqlite_stat4.nEq column holds a list of N integers where the K-th integer is the approximate number of entries in the index whose left-most K columns exactly match the K left-most columns of the sample. (source: fileformat2.html, matrix: context, detail)
The "auto" modifier must immediately follow the initial time-value. (source: lang_datefunc.html, checked-by: src/date.c, th3/req1/date01.test, matrix: context, detail)
If any input to sum() is neither an integer nor a NULL, then sum() returns a floating point value which is an approximation of the mathematical sum. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
There may be at most one unlock-notify callback registered by a blocked connection. If sqlite3_unlock_notify() is called when the blocked connection already has a registered unlock-notify callback, then the new callback replaces the old. (source: c3ref/unlock_notify.html, matrix: context, detail)
In SQLite, if any of the child key columns (in this case songartist and songalbum) are NULL, then there is no requirement for a corresponding row in the parent table. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys11.test, matrix: context, detail)
These functions return the number of rows modified, inserted or deleted by the most recently completed INSERT, UPDATE or DELETE statement on the database connection specified by the only parameter. (source: c3ref/changes.html, matrix: context, detail)
Use these routines to access all values on the right-hand side of the IN constraint using code like the following: for(rc=sqlite3_vtab_in_first(pList, &pVal); rc==SQLITE_OK && pVal rc=sqlite3_vtab_in_next(pList, &pVal) ){ // do something with pVal } if( rc!=SQLITE_OK ){ // an error has occurred } (source: c3ref/vtab_in_first.html, matrix: context, detail)
A question mark that is not followed by a number creates a parameter with a number one greater than the largest parameter number already assigned. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
The REGEXP operator is a special syntax for the regexp() user function. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
In a WITHOUT ROWID table, there is no sqlite_schema entry for the PRIMARY KEY, but the "sqlite_autoindex_TABLE_N" name is set aside for the PRIMARY KEY as if the sqlite_schema entry did exist. This will affect the numbering of subsequent UNIQUE constraints. (source: fileformat2.html, matrix: context, detail)
If the X parameter is not an xFilter argument that was selected for all-at-once IN constraint processing, then these routines return SQLITE_MISUSE (source: c3ref/vtab_in_first.html, matrix: context, detail)
The content allows the text being indexed to be stored in a separate table distinct from the FTS4 table, or even outside of SQLite. (source: fts3.html, matrix: context, detail)
PRAGMA legacy_file_format; This pragma no longer functions. It has become a no-op. (source: pragma.html, matrix: context, detail)
Otherwise, the SELECT returns the first N rows of its result set only, where N is the value that the LIMIT expression evaluates to. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
you can say "LEFT RIGHT JOIN" which is the same as "FULL JOIN". (source: lang_select.html, checked-by: tcl/join8.test, matrix: context, detail)
In this case, the first expression is used as the OFFSET expression and the second as the LIMIT expression. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The content of an R*Tree index is actually stored in three ordinary SQLite tables with names derived from the name of the R*Tree. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq02.test, matrix: context, detail)
If the required lock still cannot be obtained, then the database is skipped and an attempt made to flush any dirty pages belonging to the next (if any) database. (source: c3ref/db_cacheflush.html, matrix: context, detail)
PRAGMA schema.incremental_vacuum(N); PRAGMA schema.incremental_vacuum; The incremental_vacuum pragma causes up to N pages to be removed from the freelist. (source: pragma.html, checked-by: th3/req1/pragma21.test, matrix: context, detail)
Foreign key DDL errors are reported regardless of whether or not foreign key constraints are enabled when the table is created. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys08.test, matrix: context, detail)
However, if the "IF NOT EXISTS" clause is specified as part of the CREATE TABLE statement and a table or view of the same name already exists, the CREATE TABLE command simply has no effect (and no error message is returned). (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
The algorithm specified in the OR clause of an INSERT or UPDATE overrides any algorithm specified in a CREATE TABLE. (source: lang_conflict.html, checked-by: th3/req1/conflict04.test, matrix: context, detail)
All indices and triggers associated with the table are also deleted. (source: lang_droptable.html, checked-by: slt/slt_lang_droptable.test, th3/req1/droptable01.test, matrix: context, detail)
The left-most column is column 0 for these routines. (source: c3ref/column_database_name.html, matrix: context, detail)
When casting to INTEGER, if the text looks like a floating point value with an exponent, the exponent will be ignored because it is no part of the integer prefix. (source: lang_expr.html, checked-by: tcl/cast.test, matrix: context, detail)
If Y is negative then the first character of the substring is found by counting from the right rather than the left. (source: lang_corefunc.html, checked-by: th3/cov1/func02.test, matrix: context, detail)
The optimizer automatically inverts terms of the form "expr OP column" and makes other simplifications to the WHERE clause in an attempt to get as many WHERE clause terms into the form shown above as possible. (source: c3ref/index_info.html, matrix: context, detail)
The query string is optional. (source: uri.html, matrix: context, detail)
If the blob handle being closed was opened for read-write access, and if the database is in auto-commit mode and there are no other open read-write blob handles or active write statements, the current transaction is committed. (source: c3ref/blob_close.html, checked-by: tcl/e_blobclose.test, matrix: context, detail)
SQLITE_OPEN_PRIVATECACHE The database is opened shared cache disabled, overriding the default shared cache setting provided by sqlite3_enable_shared_cache(). (source: c3ref/open.html, matrix: context, detail)
The RETURNING clause may not contain top-level aggregate functions or window functions. (source: lang_returning.html, checked-by: th3/cov1/returning01.test, matrix: context, detail)
If the CHECK expression evaluates to NULL, or any other non-zero value, it is not a constraint violation. (source: lang_createtable.html, checked-by: tcl/e_createtable.test, matrix: context, detail)
SQLite attempts to coerce the data into the appropriate type using the usual affinity rules, as PostgreSQL, MySQL, SQL Server, and Oracle all do. (source: stricttables.html, checked-by: th3/req1/strictreq01.test, matrix: context, detail)
Column zColumn is part of an index, PRIMARY KEY or UNIQUE constraint and the blob is being opened for read/write access (source: c3ref/blob_open.html, checked-by: tcl/e_blobopen.test, th3/cov1/vdbeblob01.test, matrix: context, detail)
The rank of the column within the index. (0 means left-most.) (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma15.test, matrix: context, detail)
SQLite automatically increments the schema-version whenever the schema changes. (source: pragma.html, checked-by: src/build.c, th3/req1/pragma28.test, matrix: context, detail)
The default mode is for LIKE comparisons to be insensitive to differences of case for latin1 characters. (source: optoverview.html, checked-by: th3/cov1/pragma02.test, th3/cov1/where03.test, th3/cov1/where03b.test, matrix: context, detail)
The legacy_file_format pragma can be used to cause SQLite to create new database files using format 1. (source: fileformat2.html, matrix: context, detail)
PRAGMA automatic_index; PRAGMA automatic_index = boolean; Query, set, or clear the automatic indexing capability. (source: pragma.html, checked-by: tcl/autoindex1.test, th3/req1/pragma08.test, matrix: context, detail)
The count(X) function returns a count of the number of times that X is not NULL in a group. (source: lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test, matrix: context, detail)
The sqlite3_extended_errcode() interface is the same except that it always returns the extended result code even when extended result codes are disabled. (source: c3ref/errcode.html, matrix: context, detail)
The sqlite3_sql(P) interface returns a pointer to a copy of the UTF-8 SQL text used to create prepared statement P if P was created by sqlite3_prepare_v2(), sqlite3_prepare_v3(), sqlite3_prepare16_v2(), or sqlite3_prepare16_v3(). (source: c3ref/expanded_sql.html, checked-by: th3/req1/sql01.test, th3/th3util.c, matrix: context, detail)
The sqlite3_result_error_code() function changes the error code returned by SQLite as a result of an error in a function. (source: c3ref/result_blob.html, checked-by: th3/req1/result01.test, matrix: context, detail)
If the callback pointer to sqlite3_exec() is NULL, then no callback is ever invoked and result rows are ignored. (source: c3ref/exec.html, checked-by: th3/req1/exec01.test, matrix: context, detail)
The third integer is the number of rows in the index that have the same value for the first two columns. (source: fileformat2.html, matrix: context, detail)
The sqlite3_release_memory() routine is a no-op returning zero if SQLite is not compiled with SQLITE_ENABLE_MEMORY_MANAGEMENT. (source: c3ref/release_memory.html, checked-by: src/malloc.c, th3/req1/releasemem01.test, matrix: context, detail)
Any leading spaces in the TEXT value when converting from TEXT to INTEGER are ignored. (source: lang_expr.html, checked-by: tcl/e_expr.test, th3/cov1/cast01.test, matrix: context, detail)
The sqlite3_vsnprintf() routine is a varargs version of sqlite3_snprintf(). (source: c3ref/mprintf.html, checked-by: th3/req1/malloc01.test, matrix: context, detail)
The first form of this pragma queries the current journaling mode for database. (source: pragma.html, checked-by: th3/req1/pragma23.test, matrix: context, detail)
"1" if the index is a partial index and "0" if not. (source: pragma.html, checked-by: tcl/index7.test, th3/req1/pragma15.test, matrix: context, detail)
When the destructor callback is invoked, it is passed a single argument which is a copy of the application data pointer which was the fifth parameter to sqlite3_create_function_v2(). (source: c3ref/create_function.html, checked-by: th3/req1/createfunc07.test, matrix: context, detail)
Note that if a non-deterministic function is tagged with SQLITE_DETERMINISTIC and if that function ends up being used in the WHERE clause of a partial index or in an expression index, then when the function begins to return different answers, the associated index may become corrupt. (source: deterministic.html, matrix: context, detail)
The NOCASE collation is like BINARY except that uppercase ASCII characters ('A' through 'Z') are folded into their lowercase equivalents prior to running the comparison. Only ASCII characters are case-folded. (source: fileformat2.html, matrix: context, detail)
Nine static mutexes are used by the current version of SQLite. (source: c3ref/mutex_alloc.html, matrix: context, detail)
That ORDER BY clause will apply across all elements of the compound. (source: lang_select.html, checked-by: th3/req1/select02.test, matrix: context, detail)
SQLITE_BUSY is returned in this case. (source: c3ref/wal_checkpoint_v2.html, checked-by: tcl/e_walckpt.test, matrix: context, detail)
By default, the error code is SQLITE_ERROR. (source: c3ref/result_blob.html, checked-by: th3/req1/result01.test, matrix: context, detail)
If an authorizer callback returns SQLITE_IGNORE for an SQLITE_DELETE action code, then the DELETE operation will proceed but the truncate optimization will be bypassed and rows will be deleted one by one. (source: lang_delete.html, matrix: context, detail)
When the the "orderByConsumed" flag is unset, the query planner will add extra bytecode to ensure that the final results returned by the SQL query are ordered correctly. (source: c3ref/vtab_distinct.html, matrix: context, detail)
Cache sharing is enabled and disabled for an entire process. (source: c3ref/enable_shared_cache.html, matrix: context, detail)
Or, if the SELECT would return less than M+N rows if it did not have a LIMIT clause, then the first M rows are skipped and the remaining rows (if any) are returned. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
The "PRAGMA cache_spill=N" form of this pragma sets a minimum cache size threshold required for spilling to occur. (source: pragma.html, checked-by: tcl/pragma2.test, matrix: context, detail)
When a prepared statement runs, it first checks the schema cookie to ensure the value is the same as when the statement was prepared and if the schema cookie has changed, the statement either automatically reprepares and reruns or it aborts with an SQLITE_SCHEMA error. (source: fileformat2.html, matrix: context, detail)
The open attempt fails if NAME is not the name of a VFS that is built into SQLite or that has been previously registered using sqlite3_vfs_register(). (source: uri.html, matrix: context, detail)
The case_sensitive_like pragma installs a new application-defined LIKE function that is either case sensitive or insensitive depending on the value of the case_sensitive_like pragma. (source: pragma.html, checked-by: th3/req1/pragma10.test, matrix: context, detail)
If the xDelUser variable is set to a non-NULL value, then after the query has finished running SQLite automatically invokes it with the value of the pUser variable as the only argument. (source: rtree.html, checked-by: tcl/rtreedoc2.test, th3/cov1/rtree03.test, matrix: context, detail)
So, in the example above, if the query were rewritten as: SELECT z FROM ex2 WHERE +x=5 AND y=6; The + operator on the x column will prevent that term from constraining an index. This would force the use of the ex2i2 index. (source: optoverview.html, matrix: context, detail)
If a single column-name appears more than once in the list of assignment expressions, all but the rightmost occurrence is ignored. (source: lang_update.html, checked-by: slt/slt_lang_update.test, tcl/e_update.test, matrix: context, detail)
The only difference between the following two CASE expressions is that the x expression is evaluated exactly once in the first example but might be evaluated multiple times in the second: CASE x WHEN w1 THEN r1 WHEN w2 THEN r2 ELSE r3 END CASE WHEN x=w1 THEN r1 WHEN x=w2 THEN r2 ELSE r3 END (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
Unless SQLITE_MISUSE is returned, this function sets the database connection error code and message accessible via sqlite3_errcode() and sqlite3_errmsg() and related functions. (source: c3ref/blob_write.html, checked-by: tcl/e_blobwrite.test, matrix: context, detail)
The DESC keyword is ignored in indexes for formats 1, 2, and 3. (source: fileformat2.html, checked-by: th3/req1/fileformat01.test, matrix: context, detail)
Let X be U-35. If the payload size P is less than or equal to X then the entire payload is stored on the b-tree leaf page. (source: fileformat2.html, matrix: context, detail)
Values stored in sqlite3_value objects can be integers, floating point values, strings, BLOBs, or NULL. (source: c3ref/value.html, checked-by: th3/req1/value01.test, matrix: context, detail)
The xCreate and xConnect methods of a virtual table module call this interface to declare the format (the names and datatypes of the columns) of the virtual tables they implement. (source: c3ref/declare_vtab.html, checked-by: th3/req1/vtab01.test, matrix: context, detail)
The 'now' argument to date and time functions always returns exactly the same value for multiple invocations within the same sqlite3_step() call. (source: lang_datefunc.html, checked-by: tcl/date.test, th3/cov1/date4.test, matrix: context, detail)
The first argument to the callback is a copy of the third argument to sqlite3_update_hook(). (source: c3ref/update_hook.html, checked-by: th3/cov1/main15.test, matrix: context, detail)
The INDEXED BY and NOT INDEXED clauses are not supported for UPDATE and DELETE statements. (source: lang_createtrigger.html, matrix: context, detail)
SQLITE_CONFIG_WIN32_HEAPSIZE takes a 32-bit unsigned integer value that specifies the maximum size of the created heap. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, matrix: context, detail)
The names returned are the original un-aliased names of the database, table, and column. (source: c3ref/column_database_name.html, matrix: context, detail)
The sole argument is a pointer to a constant UTF8 string which will become the new schema name in place of "main". (source: c3ref/c_dbconfig_defensive.html, checked-by: th3/cov1/maindbname01.test, matrix: context, detail)
If the sqlite_sequence.seq field of an AUTOINCREMENT table is already at the largest integer value (9223372036854775807) then attempts to add new rows to that table with an automatically generated integer primary will fail with an SQLITE_FULL error. (source: fileformat2.html, matrix: context, detail)
When the datatype of a column is "ANY", that means that any kind of data - integers, floating point values, strings, or binary blobs, can be inserted into that table and its value and datatype will be preserved exactly as it is inserted. (source: stricttables.html, checked-by: th3/req1/strictreq01.test, matrix: context, detail)
If the main database is ":memory:" or if the journal_mode is WAL, then transactions continue to be atomic within each individual database file. But if the host computer crashes in the middle of a COMMIT where two or more database files are updated, some of those files might get the changes where others might not. (source: lang_attach.html, checked-by: th3/req1/attach02.test, matrix: context, detail)
The maximum allowed mmap size will be silently truncated if necessary so that it does not exceed the compile-time maximum mmap size set by the SQLITE_MAX_MMAP_SIZE compile-time option. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, matrix: context, detail)
If the result is a UTF-8 string, then sqlite3_column_bytes16() converts the string to UTF-16 and then returns the number of bytes. (source: c3ref/column_blob.html, checked-by: th3/req1/column01.test, matrix: context, detail)
If the threading mode is Single-thread or Multi-thread then this routine returns a NULL pointer. (source: c3ref/db_mutex.html, checked-by: th3/req1/dbmutex01.test, matrix: context, detail)
If X is numeric then length(X) returns the length of a string representation of X. (source: lang_corefunc.html, checked-by: th3/cov1/func01.test, matrix: context, detail)
The subquery on the right of an IN or NOT IN operator must be a scalar subquery if the left expression is not a row value expression. (source: lang_expr.html, checked-by: slt/in2.test, matrix: context, detail)
The sixth, seventh and eighth parameters passed to the three "sqlite3_create_function*" functions, xFunc, xStep and xFinal, are pointers to C-language functions that implement the SQL function or aggregate. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc03.test, matrix: context, detail)
For a WITHOUT ROWID table, N will be the number of columns in the primary key. (source: fileformat2.html, matrix: context, detail)
Shared-cache locks are released when a database connection concludes its current transaction, either by committing it or rolling it back. (source: c3ref/unlock_notify.html, matrix: context, detail)
The pointers returned are valid until a type conversion occurs as described above, or until sqlite3_step() or sqlite3_reset() or sqlite3_finalize() is called. (source: c3ref/column_blob.html, checked-by: th3/req1/column03.test, matrix: context, detail)
If pMem is NULL and N is non-zero, then each database connection does an initial bulk allocation for page cache memory from sqlite3_malloc() sufficient for N cache lines if N is positive or of -1024*N bytes if N is negative, . (source: c3ref/c_config_covering_index_scan.html, matrix: context, detail)
The number of columns in each row returned by the SELECT statement (if any) and the specific values returned have no effect on the results of the EXISTS operator. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If an error occurs while committing the transaction, an error code is returned and the transaction rolled back. (source: c3ref/blob_close.html, checked-by: tcl/e_blobclose.test, matrix: context, detail)
For example: -- Database schema CREATE TABLE parent(x PRIMARY KEY); CREATE TABLE child(y REFERENCES parent ON UPDATE SET NULL); sqlite> SELECT * FROM parent; x ---- key sqlite> SELECT * FROM child; y ---- key sqlite> -- Since the following UPDATE statement does not actually modify sqlite> -- the parent key value, the ON UPDATE action is not performed and sqlite> -- the child key value is not set to NULL. sqlite> UPDATE parent SET x = 'key'; sqlite> SELECT IFNULL(y, 'null') FROM child; y ---- key sqlite> -- This time, since the UPDATE statement does modify the parent key sqlite> -- value, the ON UPDATE action is performed and the child key is set sqlite> -- to NULL. sqlite> UPDATE parent SET x = 'key2'; sqlite> SELECT IFNULL(y, 'null') FROM child; y ---- null (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys20.test, matrix: context, detail)
There is a single row in the sqlite_sequence table for each ordinary table that uses AUTOINCREMENT. (source: fileformat2.html, matrix: context, detail)
The sqlite3_libversion_number() function returns an integer equal to SQLITE_VERSION_NUMBER. (source: c3ref/libversion.html, checked-by: src/main.c, th3/th3main.c, matrix: context, detail)
Format 4 also adds two new boolean record type values (serial types 8 and 9). (source: fileformat2.html, checked-by: th3/req1/fileformat01.test, matrix: context, detail)
The table named in the table_info pragma can also be a view. (source: pragma.html, matrix: context, detail)
A string constant is formed by enclosing the string in single quotes ('). (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
A call to one of the above APIs creates a new SQL function named by the second parameter (zQueryFunc or zGeom). (source: rtree.html, checked-by: tcl/rtreedoc2.test, th3/cov1/rtree03.test, th3/cov1/rtree04.test, matrix: context, detail)
The value returned by sqlite3_memory_highwater(1) is the high-water mark prior to the reset. (source: c3ref/memory_highwater.html, matrix: context, detail)
Columns in the result set include the column name, data type, whether or not the column can be NULL, and the default value for the column. (source: pragma.html, checked-by: th3/req1/pragma15.test, matrix: context, detail)
Foreign key constraints are immediate by default. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys12.test, matrix: context, detail)
An uncorrelated subquery is evaluated only once and the result reused as necessary. (source: lang_expr.html, checked-by: th3/req1/select01.test, matrix: context, detail)
The BEFORE or AFTER keyword determines when the trigger actions will be executed relative to the insertion, modification or removal of the associated row. (source: lang_createtrigger.html, checked-by: slt/slt_lang_createtrigger.test, matrix: context, detail)
The ATTACH DATABASE statement adds another database file to the current database connection. (source: lang_attach.html, checked-by: th3/req1/attach01.test, matrix: context, detail)
Ifnull() must have exactly 2 arguments. (source: lang_corefunc.html, checked-by: th3/cov1/func01.test, matrix: context, detail)
If P>X and K>X then the first M bytes of P are stored on the btree page and the remaining P-M bytes are stored on overflow pages. (source: fileformat2.html, matrix: context, detail)
Registering a NULL function disables the callback. (source: c3ref/commit_hook.html, matrix: context, detail)
The name of the index. (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma15.test, matrix: context, detail)
The upper(X) function returns a copy of input string X in which all lower-case ASCII characters are converted to their upper-case equivalent. (source: lang_corefunc.html, checked-by: th3/cov1/func04.test, matrix: context, detail)
If pragma integrity_check finds no errors, a single row with the value 'ok' is returned. (source: pragma.html, checked-by: th3/req1/integrityck01.test, matrix: context, detail)
The sqlite3_value_dup(V) interface returns NULL if V is NULL or if a memory allocation fails. (source: c3ref/value_dup.html, matrix: context, detail)
The phrase "VALUES(expr-list)" means the same thing as "SELECT expr-list". (source: lang_select.html, checked-by: th3/cov1/select30.test, th3/req1/select02.test, matrix: context, detail)
C-style comments begin with "/*" and extend up to and including the next "*/" character pair or until the end of input, whichever comes first. (source: lang_comment.html, checked-by: th3/req1/comment01.test, matrix: context, detail)
If N or iOffset is less than zero, SQLITE_ERROR is returned and no data is read. (source: c3ref/blob_read.html, checked-by: th3/cov1/vdbeblob01.test, matrix: context, detail)
The sqlite3_errmsg() or sqlite3_errmsg16() routines can be used to obtain an English language description of the error following a failure of any of the sqlite3_open() routines. (source: c3ref/open.html, matrix: context, detail)
Foreign key DML errors are reported if: The parent table does not exist, or The parent key columns named in the foreign key constraint do not exist, or The parent key columns named in the foreign key constraint are not the primary key of the parent table and are not subject to a unique constraint using collating sequence specified in the CREATE TABLE, or The child table references the primary key of the parent without specifying the primary key columns and the number of primary key columns in the parent do not match the number of child key columns. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys07.test, matrix: context, detail)
Only a single progress handler may be defined at one time per database connection; setting a new progress handler cancels the old one. (source: c3ref/progress_handler.html, checked-by: th3/req1/progress01.test, matrix: context, detail)
Nor is the update hook invoked when rows are deleted using the truncate optimization. (source: c3ref/update_hook.html, checked-by: th3/cov1/main15.test, matrix: context, detail)
The default journal size limit is -1 (no limit). (source: pragma.html, checked-by: th3/req1/pragma26.test, matrix: context, detail)
NOCASE - Similar to binary, except that it uses sqlite3_strnicmp() for the comparison. Hence the 26 upper case characters of ASCII are folded to their lower case equivalents before the comparison is performed. (source: datatype3.html, checked-by: th3/req1/datatype3_09.test, matrix: context, detail)
If URI filename interpretation is enabled, and the filename argument begins with "file:", then the filename is interpreted as a URI. (source: c3ref/open.html, checked-by: tcl/e_uri.test, matrix: context, detail)
The big reason for using an R*Tree is so that you can efficiently do range queries against the coordinate ranges. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/req1/rtreereq03.test, matrix: context, detail)
However if an ON CONFLICT clause is specified as part of the statement causing the trigger to fire, then conflict handling policy of the outer statement is used instead. (source: lang_createtrigger.html, matrix: context, detail)
This interface is used to retrieve runtime status information about a single database connection. (source: c3ref/db_status.html, checked-by: th3/req1/dbstatus01.test, matrix: context, detail)
For the index above and WHERE clause like this: ... WHERE b IN (1,2,3) AND c NOT NULL AND d='hello' The index is not usable at all because the left-most column of the index (column "a") is not constrained. (source: optoverview.html, matrix: context, detail)
For a command of the form "REINDEX name", a match against collation-name takes precedence over a match against index-name or table-name. (source: lang_reindex.html, checked-by: tcl/e_reindex.test, matrix: context, detail)
The P argument is a pointer to the prepared statement. (source: c3ref/c_trace.html, checked-by: th3/cov1/trace01.test, matrix: context, detail)
If SQLite has not been initialized using sqlite3_initialize() prior to invoking sqlite3_complete16() then sqlite3_initialize() is invoked automatically by sqlite3_complete16(). If that initialization fails, then the return value from sqlite3_complete16() will be non-zero regardless of whether or not the input SQL is complete. (source: c3ref/complete.html, checked-by: th3/cov1/complete01.test, matrix: context, detail)
The sqlite3_mutex_alloc() routine returns NULL if it is unable to allocate the requested mutex. (source: c3ref/mutex_alloc.html, matrix: context, detail)
By default, application-defined SQL functions are considered to be non-deterministic. (source: deterministic.html, matrix: context, detail)
The sqlite3_realloc64(X,N) interfaces works the same as sqlite3_realloc(X,N) except that N is a 64-bit unsigned integer instead of a 32-bit signed integer. (source: c3ref/free.html, checked-by: th3/req1/malloc02.test, matrix: context, detail)
The function returns a human-language description of any problems found, or the string 'ok' if everything is ok. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree25.test, matrix: context, detail)
The parent key definitions of foreign key constraints are not checked when a table is created. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys21.test, matrix: context, detail)
Changes made as part of foreign key actions are included in the count, but those made as part of REPLACE constraint resolution are not. (source: c3ref/total_changes.html, checked-by: tcl/e_totalchanges.test, matrix: context, detail)
If the third parameter (the pointer to the sqlite3_module object) is NULL then no new module is created and any existing modules with the same name are dropped. (source: c3ref/create_module.html, matrix: context, detail)
SQLite implements this interface by calling the xSleep() method of the default sqlite3_vfs object. (source: c3ref/sleep.html, checked-by: th3/req1/sleep01.test, matrix: context, detail)
The sqlite_stat3.nLt holds the approximate number of entries in the index whose left-most column is less than the sample. (source: fileformat2.html, matrix: context, detail)
The second parameter to the preupdate callback is a pointer to the database connection that registered the preupdate hook. (source: c3ref/preupdate_blobwrite.html, matrix: context, detail)
If the column-name list is omitted, then the names of the columns in the view are derived from the names of the result-set columns in the select-stmt. (source: lang_createview.html, matrix: context, detail)
PRAGMA schema.page_size; PRAGMA schema.page_size = bytes; Query or set the page size of the database. (source: pragma.html, matrix: context, detail)
The usual INSERT, UPDATE, and DELETE commands work on an R*Tree index just like on regular tables. (source: rtree.html, checked-by: tcl/rtreedoc.test, th3/cov1/rtree01.test, matrix: context, detail)
The scalar expressions may refer to columns of the row being updated. (source: lang_update.html, checked-by: slt/slt_lang_update.test, tcl/e_update.test, matrix: context, detail)
SQLite does not make a copy of the new main schema name string, so the application must ensure that the argument passed into this DBCONFIG option is unchanged until after the database connection closes. (source: c3ref/c_dbconfig_defensive.html, checked-by: src/main.c, th3/cov1/maindbname01.test, matrix: context, detail)
If a result expression is the special expression "*" then all columns in the input data are substituted for that one expression. (source: lang_select.html, checked-by: tcl/e_select.test, matrix: context, detail)
In that case, the database connection remains in EXCLUSIVE mode as long as the journal mode is WAL; attempts to change the locking mode using "PRAGMA locking_mode=NORMAL;" are no-ops. (source: wal.html, checked-by: tcl/e_wal.test, th3/req1/pragma05.test, matrix: context, detail)
If the WHERE clause expression evaluates to NULL or to false for some rows of the table, then those rows are omitted from the index. (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
When the locking_mode pragma specifies a particular database, for example: PRAGMA main.locking_mode=EXCLUSIVE; then the locking mode applies only to the named database. (source: pragma.html, checked-by: th3/req1/pragma04.test, matrix: context, detail)
SQLite will always use the table b-tree key rather than the NULL value when referencing the INTEGER PRIMARY KEY column. (source: fileformat2.html, matrix: context, detail)
SQLITE_STATUS_PAGECACHE_USED This parameter returns the number of pages used out of the pagecache memory allocator that was configured using SQLITE_CONFIG_PAGECACHE. The value returned is in pages, not in bytes. (source: c3ref/c_status_malloc_count.html, matrix: context, detail)
The sqlite3_vtab_rhs_value(P,J,V) inteface returns SQLITE_NOTFOUND if the right-hand side of the J-th constraint is not available. (source: c3ref/vtab_rhs_value.html, checked-by: src/where.c, matrix: context, detail)
A string might look like a floating-point literal with a decimal point and/or exponent notation but as long as the value can be expressed as an integer, the NUMERIC affinity will convert it into an integer. (source: datatype3.html, checked-by: th3/req1/datatype3_01.test, matrix: context, detail)
If the database connection is associated with unfinalized prepared statements, BLOB handlers, and/or unfinished sqlite3_backup objects then sqlite3_close() will leave the database connection open and return SQLITE_BUSY. (source: c3ref/close.html, checked-by: th3/cov1/main23.test, matrix: context, detail)
The value returned by sqlite3_backup_finish is SQLITE_OK if no sqlite3_backup_step() errors occurred, regardless or whether or not sqlite3_backup_step() completed. (source: c3ref/backup_finish.html, matrix: context, detail)
Transactions can be started manually using the BEGIN command. (source: lang_transaction.html, matrix: context, detail)
The SQLITE_CONFIG_COVERING_INDEX_SCAN option takes a single integer argument which is interpreted as a boolean in order to enable or disable the use of covering indices for full table scans in the query optimizer. (source: c3ref/c_config_covering_index_scan.html, checked-by: src/main.c, matrix: context, detail)
The sqlite3_last_insert_rowid(D) interface usually returns the rowid of the most recent successful INSERT into a rowid table or virtual table on database connection D. (source: c3ref/last_insert_rowid.html, matrix: context, detail)
Attached databases can be vacuumed by appending the appropriate schema-name to the VACUUM statement. (source: lang_vacuum.html, checked-by: tcl/e_vacuum.test, matrix: context, detail)
The column is named in the WHERE clause of a partial index. (source: lang_altertable.html, checked-by: th3/cov1/altertable25.test, matrix: context, detail)
The arguments can be just about any text as long as it has balanced parentheses. (source: lang_createvtab.html, matrix: context, detail)
"c" if the index was created by a CREATE INDEX statement, "u" if the index was created by a UNIQUE constraint, or "pk" if the index was created by a PRIMARY KEY constraint. (source: pragma.html, checked-by: tcl/pragma.test, th3/req1/pragma15.test, matrix: context, detail)
The sqlite3_snprintf() routine is similar to "snprintf()" from the standard C library. The result is written into the buffer supplied as the second parameter whose size is given by the first parameter. Note that the order of the first two parameters is reversed from snprintf(). (source: c3ref/mprintf.html, checked-by: th3/req1/malloc01.test, matrix: context, detail)
But the next query can not use the partial index: SELECT * FROM tab2 WHERE b=456; -- cannot use partial index (source: partialindex.html, checked-by: th3/cov1/index01.test, matrix: context, detail)
The secure-delete setting for newly attached databases is the setting of the main database at the time the ATTACH command is evaluated. (source: pragma.html, checked-by: th3/cov1/pragma20.test, th3/cov1/pragma21.test, matrix: context, detail)
Note that the name length limit is in UTF-8 bytes, not characters nor UTF-16 bytes. (source: c3ref/create_function.html, checked-by: th3/req1/createfunc01.test, matrix: context, detail)
The PRAGMA wal_checkpoint command can be used to invoke this interface from SQL. (source: c3ref/wal_checkpoint_v2.html, checked-by: tcl/e_walckpt.test, matrix: context, detail)
Strings with embedded NUL characters cannot be represented as string literals in SQL and hence the returned string literal is truncated prior to the first NUL. (source: lang_corefunc.html, checked-by: th3/cov1/func02.test, matrix: context, detail)
If the sqlite_stat1.idx column is the same as the sqlite_stat1.tbl column, then the table is a WITHOUT ROWID table and the sqlite_stat1.stat field contains information about the index btree that implements the WITHOUT ROWID table. (source: fileformat2.html, matrix: context, detail)
If the STRING or BLOB looks like a real number (if it has a decimal point or an exponent) or if the value is outside the range that can be represented as a 64-bit signed integer, then it converts to REAL. Otherwise the operand converts to INTEGER. (source: datatype3.html, checked-by: th3/req1/datatype3_06.test, matrix: context, detail)
In many pragmas, the argument is a boolean. The boolean can be one of: 1 yes true on0 no false off (source: pragma.html, checked-by: th3/req1/pragma01.test, matrix: context, detail)
On the other hand, the virtual terms themselves never causes tests to be performed on input rows. (source: optoverview.html, matrix: context, detail)
INSTEAD OF triggers work only on views. (source: lang_createtrigger.html, matrix: context, detail)
The likely(X) function is short-hand for likelihood(X,0.9375). (source: lang_corefunc.html, checked-by: src/resolve.c, matrix: context, detail)
SQLite guarantees that the zFilename parameter to xOpen is either a NULL pointer or string obtained from xFullPathname() with an optional suffix added. (source: c3ref/vfs.html, checked-by: th3/cov1/pager25.test, th3/th3testvfs.c, matrix: context, detail)
The sqlite3_hard_heap_limit64(N) interface is similar to sqlite3_soft_heap_limit64(N) except that memory allocations will fail when the hard heap limit is reached. (source: c3ref/hard_heap_limit64.html, matrix: context, detail)
All-at-once processing of the IN operator is selected if both of the following conditions are met: The P->aConstraintUsage[N].argvIndex value is set to a positive integer. This is how the virtual table tells SQLite that it wants to use the N-th constraint. The last call to sqlite3_vtab_in(P,N,F) for which F was non-negative had F>=1. (source: c3ref/vtab_in.html, matrix: context, detail)
By default, every row in SQLite has a special column, usually called the "rowid", that uniquely identifies that row within the table. (source: withoutrowid.html, checked-by: tcl/rowid.test, tcl/without_rowid5.test, th3/cov1/withoutrowid01.test, matrix: context, detail)
A WITHOUT ROWID table uses an index b-tree rather than a table b-tree for storage. (source: fileformat2.html, matrix: context, detail)
The sqlite3_stmt_readonly() interface returns true for BEGIN since BEGIN merely sets internal flags, but the BEGIN IMMEDIATE and BEGIN EXCLUSIVE commands do touch the database and so sqlite3_stmt_readonly() returns false for those commands. (source: c3ref/stmt_readonly.html, checked-by: tcl/capi3d.test, th3/cov1/vdbeapi14.test, matrix: context, detail)
The "NOT INDEXED" clause specifies that no index shall be used when accessing the preceding table, including implied indices create by UNIQUE and PRIMARY KEY constraints. However, the rowid can still be used to look up entries even when "NOT INDEXED" is specified. (source: lang_indexedby.html, checked-by: tcl/indexedby.test, matrix: context, detail)
The two-byte integer at offset 3 gives the number of cells on the page. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
The ATTACH and DETACH statements also cause sqlite3_stmt_readonly() to return true since, while those statements change the configuration of a database connection, they do not make changes to the content of the database files on disk. (source: c3ref/stmt_readonly.html, checked-by: tcl/capi3d.test, th3/cov1/vdbeapi14.test, matrix: context, detail)
Nor does REPLACE increment the change counter. (source: lang_conflict.html, checked-by: th3/req1/conflict02.test, matrix: context, detail)
Similarly, if URI filenames are not recognized when the database connection is first opened, they will not be recognized by ATTACH. (source: uri.html, matrix: context, detail)
A call to this routine stores N bytes of randomness into buffer P. (source: c3ref/randomness.html, checked-by: th3/cov1/random01.test, matrix: context, detail)
In some pragmas, the schema name is meaningless and is simply ignored. (source: pragma.html, checked-by: th3/req1/pragma01.test, matrix: context, detail)
Note that upon successful completion of an SQLITE_CHECKPOINT_TRUNCATE, the log file will have been truncated to zero bytes and so both *pnLog and *pnCkpt will be set to zero. (source: c3ref/wal_checkpoint_v2.html, checked-by: tcl/e_walckpt.test, th3/req1/checkpoint01.test, matrix: context, detail)
All these names are aliases for one another and work equally well in any context. (source: autoinc.html, checked-by: th3/req1/autoinc01.test, matrix: context, detail)
If the DELETE statement has no ORDER BY clause, then all rows that would be deleted in the absence of the LIMIT clause are assembled in an arbitrary order before applying the LIMIT and OFFSET clauses to determine the subset that are actually deleted. (source: lang_delete.html, checked-by: tcl/e_delete.test, matrix: context, detail)
/* Add a table named 't1' to the temp, main and an attached database */ ATTACH 'file.db' AS aux; CREATE TABLE t1(x, y); CREATE TEMP TABLE t1(x, y); CREATE TABLE aux.t1(x, y); DROP TABLE t1; /* Drop table in temp database */ DROP TABLE t1; /* Drop table in main database */ DROP TABLE t1; /* Drop table in aux database */ (source: lang_naming.html, checked-by: tcl/e_resolve.test, matrix: context, detail)
The column may not have a default value of CURRENT_TIME, CURRENT_DATE, CURRENT_TIMESTAMP, or an expression in parentheses. (source: lang_altertable.html, checked-by: th3/req1/altertable01.test, matrix: context, detail)
If the base expression is NULL then the result of the CASE is always the result of evaluating the ELSE expression if it exists, or NULL if it does not. (source: lang_expr.html, checked-by: tcl/e_expr.test, matrix: context, detail)
If an SQL table is created using the "WITHOUT ROWID" clause at the end of its CREATE TABLE statement, then that table is a WITHOUT ROWID table and uses a different on-disk representation. (source: fileformat2.html, matrix: context, detail)
The sqlite3_result_double() interface sets the result from an application-defined function to be a floating point value specified by its 2nd argument. (source: c3ref/result_blob.html, checked-by: th3/req1/result01.test, matrix: context, detail)
The index value returned is suitable for use as the second parameter to sqlite3_bind(). (source: c3ref/bind_parameter_index.html, checked-by: th3/req1/bind03.test, matrix: context, detail)
In a well-formed sqlite_stat3 table, the samples for any single index must appear in the same order that they occur in the index. In other words, if the entry with left-most column S1 is earlier in the index b-tree than the entry with left-most column S2, then in the sqlite_stat3 table, sample S1 must have a smaller rowid than sample S2. (source: fileformat2.html, matrix: context, detail)
Pending write operations always fail with this error when a rollback occurs. (source: rescode.html, matrix: context, detail)
For this reason, attempts to change the value of schema_version are a silent no-op when defensive mode is enabled for a database connection. (source: pragma.html, checked-by: th3/cov1/pragma12.test, matrix: context, detail)
Either modification causes the SQL statement to behave as a query and to return information about how the SQL statement would have operated if the EXPLAIN keyword or phrase had been omitted. (source: lang_explain.html, checked-by: th3/cov1/vdbeaux01.test, matrix: context, detail)
Abs(X) returns NULL if X is NULL. (source: lang_corefunc.html, checked-by: src/func.c, th3/cov1/func01.test, matrix: context, detail)
The size of the reserved region is determined by the one-byte unsigned integer found at an offset of 20 into the database file header. (source: fileformat2.html, checked-by: src/btree.c, matrix: context, detail)
A value of 1 means UTF-8. (source: fileformat2.html, checked-by: th3/req1/fileformat03.test, matrix: context, detail)
The second integer is the approximate number of rows in the index that have the same value in the first column of the index. (source: fileformat2.html, matrix: context, detail)
This interfaces opens a handle to the BLOB located in row iRow, column zColumn, table zTable in database zDb; in other words, the same BLOB that would be selected by: SELECT zColumn FROM zDb.zTable WHERE rowid = iRow; (source: c3ref/blob_open.html, checked-by: tcl/e_blobopen.test, th3/req1/blob01.test, matrix: context, detail)
In order to use foreign key constraints in SQLite, the library must be compiled with neither SQLITE_OMIT_FOREIGN_KEY nor SQLITE_OMIT_TRIGGER defined. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys05.test, matrix: context, detail)
If a table-name argument is supplied, then only information about that one table is returned. (source: pragma.html, checked-by: th3/cov1/pragma30.test, matrix: context, detail)
Use the sqlite3_blob_bytes() interface to determine the size of the opened blob. (source: c3ref/blob_open.html, checked-by: th3/cov1/vdbeblob01.test, matrix: context, detail)
If a COMMIT statement (or the RELEASE of a transaction SAVEPOINT) fails because the database is currently in a state that violates a deferred foreign key constraint and there are currently nested savepoints, the nested savepoints remain open. (source: foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys15.test, matrix: context, detail)
The sqlite3_table_column_metadata() interface returns SQLITE_OK and fills in the non-NULL pointers in the final five arguments with appropriate values if the specified column exists. (source: c3ref/table_column_metadata.html, checked-by: th3/cov1/metadata01.test, matrix: context, detail)
For a table or view, the tbl_name column is a copy of the name column. (source: fileformat2.html, matrix: context, detail)
Any %HH escape sequences in the query parameters are resolved prior to being appended to the xOpen filename. (source: uri.html, matrix: context, detail)
The SQLITE_CONFIG_LOG option takes two arguments: a pointer to a function with a call signature of void(*)(void*,int,const char*), and a pointer to void. (source: c3ref/c_config_covering_index_scan.html, checked-by: th3/cov1/log01.test, th3/th3main.c, matrix: context, detail)