Small. Fast. Reliable.
Choose any three.

1.0 About SQLite Requirements

2.0 List Of Requirements

R-00013-61831-22423-62410-56475-12017-42000-15640

The key comes first and is separated from the value by a single "=" character. (source uri.html)

R-00109-30887-26782-37306-11423-15179-45221-18025

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)

R-00140-37445-57377-20863-40395-21152-20469-25306

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)

R-00171-59428-63637-20419-61024-28048-20428-49478

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)

R-00175-32013-26549-28352-31178-54147-63518-21692

SQLite keeps track of the largest ROWID that a table has ever held using the special SQLITE_SEQUENCE table. (source autoinc.html, checked-by: th3/req1/autoinc01.test)

R-00202-17548-59772-16282-16027-29431-32424-58722

The outer query is not an aggregate or the subquery does not contain ORDER BY. (source optoverview.html)

R-00203-32193-54208-20071-18893-56924-36288-02453

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)

R-00206-08174-12423-08291-28017-31720-33784-40037

Assuming there are no other indices, the query above would result in a full table scan. (source optoverview.html)

R-00211-15100-13551-08029-11999-21398-14516-56107

The analysis of a term might cause new "virtual" terms to be added to the WHERE clause. (source optoverview.html, checked-by: src/where.c)

R-00227-21080-37302-15362-03285-23826-51380-28642

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)

R-00243-07929-08239-44820-61576-27318-53216-12960

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)

R-00279-52283-49814-15354-28909-18424-55374-18430

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)

R-00293-64994-39339-33419-11494-64597-05681-15697

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)

R-00311-09993-39149-44899-64441-18371-52816-22132

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)

R-00336-65009-59389-29167-11927-65433-48801-33923

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)

R-00353-01851-44275-08807-26330-41077-52452-65296

The subquery and outer query do not both use LIMIT. (source optoverview.html)

R-00359-41639-41144-27010-59632-30416-37191-53432

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)

R-00376-39212-00900-22873-65373-47922-05493-41094

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)

R-00402-11496-45496-40393-08263-15231-62727-28991

The filename argument can be a URI filename if URI filename processing is enable on the database connection. (source lang_attach.html)

R-00416-37972-26105-59380-00814-31989-13044-05972

When the right operand of an IN or NOT IN operator is a subquery, the subquery must have a single result column. (source lang_expr.html, checked-by: slt/in2.test)

R-00421-53597-33844-16365-55873-40811-64785-22587

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)

R-00426-09545-34990-46978-51710-39529-12013-14536

A frame is considered valid if and only if the following conditions are true: The salt-1 and salt-2 values in the frame-header match salt values in the wal-header The checksum values in the final 8 bytes of the frame-header exactly match the checksum computed consecutively on the WAL header and the first 8 bytes and the content of all frames up to and including the current frame. (source fileformat2.html)

R-00449-33772-33919-59402-60829-28733-22208-04727

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: th3/req1/pragma05.test)

R-00466-56349-41436-38164-40851-28282-49107-17370

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)

R-00515-56855-31188-51684-43616-15583-54594-04320

Unless the flattening optimization is applied, if a subquery appears in the FROM clause of a SELECT statement, SQLite executes the subquery and stores the results in a temporary table. It then uses the contents of the temporary table in place of the subquery to execute the parent query. (source eqp.html, checked-by: th3/req1/eqp01.test)

R-00576-15510-24475-53838-43505-45493-44918-44548

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)

R-00598-03741-13790-05735-40657-11548-64969-46486

A negative LIMIT value is interpreted as "no limit". (source lang_delete.html, checked-by: tcl/e_delete.test)

R-00605-14249-27716-38234-38428-32294-04406-05104

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)

R-00640-12624-18808-26941-05585-54150-12700-55718

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)

R-00660-06687-37276-33282-42397-40638-27737-43602

If additional page cache memory is needed beyond what is provided by this option, then SQLite goes to sqlite3_malloc() for the additional storage space. (source c3ref/c_config_getmalloc.html)

R-00695-31519-05206-48434-15068-58741-03264-34333

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)

R-00717-60341-45862-31619-05346-22343-41612-42650

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)

R-00741-38776-05771-28684-24632-02227-32145-23425

A cast of a REAL value into an INTEGER will truncate the fractional part of the REAL. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-00767-44770-16975-15707-27043-13440-51014-32740

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)

R-00820-56127-32552-48001-55340-02932-17552-54138

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 use the sharing mode that was in effect at the time they were opened. (source c3ref/enable_shared_cache.html)

R-00862-05326-51946-26490-09320-50697-05494-49603

If neither argument to nullif() defines a collating function then the BINARY is used. (source lang_corefunc.html, checked-by: th3/req1/func03.test)

R-00888-53115-42960-22822-38463-42827-06390-25797

The prefix option must be set to a comma separated list of positive non-zero integers. (source fts3.html)

R-00917-09393-39202-02128-36060-48881-52217-44853

If no database 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)

R-00918-16997-33541-06619-01421-44106-53820-17907

For each value N in the list, prefixes of length N bytes (when encoded using UTF-8) are indexed. (source fts3.html)

R-00971-36933-64386-25480-59601-44057-12316-57384

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)

R-00980-39256-56998-08744-11771-59211-03196-47897

A SELECT statement enclosed in parentheses may appear as a scalar quantity. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-01024-14859-24749-42660-19760-50991-31724-08152

The column in the MIN or MAX function must be an indexed column. (source optoverview.html)

R-01060-48788-51013-07543-20121-01838-30879-37400

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)

R-01080-23340-38639-20728-26521-10375-12428-21631

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)

R-01099-23153-64353-38789-60475-21260-04733-65290

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)

R-01232-54838-06099-51737-48729-53565-23196-29255

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)

R-01265-50598-22943-30233-54647-62239-07339-33462

The result of load_extension() is always a NULL. (source lang_corefunc.html, checked-by: th3/cov1/func03.test)

R-01277-06213-42474-53306-49270-01327-38555-55249

This function sets the database handle error code and message. (source c3ref/blob_reopen.html, checked-by: th3/req1/blob01.test)

R-01298-38284-36243-26684-29926-32770-62313-39537

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)

R-01335-41434-49669-14652-18813-14877-14788-28819

Hence, the histogram data which is collected no left-most column of indices is useless in helping to choose between the range constraints on columns x and y. (source optoverview.html)

R-01379-47306-55874-35809-24668-39985-05961-47226

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)

R-01402-03601-05785-14929-05185-63336-09442-11982

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)

R-01448-06859-29804-04457-45951-59563-33373-60665

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)

R-01450-11152-28406-58151-44531-37891-10618-14069

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)

R-01463-03846-55774-41515-18498-48278-35486-16549

The DROP TABLE statement removes a table added with the CREATE TABLE statement. (source lang_droptable.html, checked-by: slt/slt_lang_droptable.test)

R-01476-54324-00474-06545-27810-42527-27940-12435

The ALTER TABLE command does not work on the sqlite_stat1 or sqlite_stat3 tables, but all the content of those tables can be queried using SELECT and can be deleted, augmented, or modified using the DELETE, INSERT, and UPDATE commands. (source lang_analyze.html, checked-by: th3/req1/analyze01.test)

R-01587-15367-52926-43879-39292-01582-45706-36467

xUnpin() is called by SQLite with a pointer to a currently pinned page as its second argument. (source c3ref/pcache_methods2.html)

R-01592-27714-26694-24809-12949-19667-58343-14650

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)

R-01608-60102-65317-52352-30720-05415-32906-61116

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)

R-01612-30877-07572-17003-08953-37118-55537-45996

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)

R-01707-21292-14865-10862-25623-35625-38879-45651

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)

R-01724-22761-13278-31858-02106-19568-34768-00701

If the sub-query is a compound select, then it must not use an ORDER BY clause. (source optoverview.html)

R-01766-15387-49282-35089-26578-35550-62519-17422

The third argument is the value to bind to the parameter. (source c3ref/bind_blob.html, checked-by: th3/req1/bind01.test)

R-01766-56079-01675-00227-41454-02515-08725-53568

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)

R-01809-52134-43102-64793-33065-39958-53424-53518

If the NATURAL keyword is added to any of the join-ops, 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)

R-01862-45642-20021-42706-06373-08124-48431-44069

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)

R-01891-42274-26925-30881-56776-56514-32083-52465

The sqlite3_bind_zeroblob() and sqlite3_result_zeroblob() interfaces and the built-in zeroblob SQL function can be used, if desired, to create an empty, zero-filled blob in which to read or write using this interface. (source c3ref/blob_open.html)

R-02002-57504-34434-01583-03603-06723-12633-24185

Any triggers attached to the table are dropped from the database schema before the implicit DELETE FROM is executed, so this cannot cause any triggers to fire. (source lang_droptable.html)

R-02005-53466-64191-45009-56070-04146-49679-01840

This option is used to enable or disable triggers. (source c3ref/c_dbconfig_enable_fkey.html)

R-02045-23762-08268-15190-44661-50351-03152-06188

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)

R-02054-15343-41665-64514-11380-36685-28202-41617

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)

R-02060-64547-35959-63655-11509-53404-59087-08290

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)

R-02063-40503-04157-38005-61496-25541-17209-31219

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)

R-02065-49465-15222-26040-51715-24674-62882-64380

The left-hand side of the LIKE or GLOB operator must be the name of an indexed column with TEXT affinity. (source optoverview.html, checked-by: src/where.c, th3/req1/like01.test)

R-02204-63196-34665-25585-57735-42246-07132-57008

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)

R-02223-49279-19512-29951-11875-18036-12006-07318

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)

R-02252-33116-19516-04017-38924-34713-55853-59947

Such an index is used like any other index in the database to optimize queries. (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-02287-33529-57702-51380-05125-54682-23740-46632

The shadow tables are ordinary SQLite data tables. (source rtree.html)

R-02313-46896-62483-09816-33283-33292-64343-33302

The subquery is not the right operand of a left outer join. (source optoverview.html)

R-02336-39303-27290-23991-25845-02494-13210-07983

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)

R-02345-65444-60943-14398-34223-24956-21175-03626

Columns of the result set include the index name and a flag to indicate whether or not the index is UNIQUE. (source pragma.html, checked-by: th3/req1/pragma15.test)

R-02355-51069-10404-51667-09139-26886-58872-12048

The sqlite3_initialize() routine initializes the SQLite library. (source c3ref/initialize.html)

R-02402-03425-02840-42627-65060-52098-37241-46689

SQLite has three built-in collating functions: BINARY, NOCASE, and RTRIM. (source datatype3.html, checked-by: th3/req1/datatype3_09.test)

R-02445-31643-12462-38565-43200-47259-24553-56004

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)

R-02452-55255-23051-52258-05350-24145-51359-57873

This in-memory database will vanish when the database connection is closed. (source c3ref/open.html)

R-02526-60953-53079-20441-57017-47857-19506-30877

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)

R-02552-35840-06241-57542-28930-20966-35259-36291

If the filename is an empty string, then a private, temporary on-disk database will be created. (source c3ref/open.html)

R-02573-31629-30846-62353-22365-28558-65513-55729

The cast is carried through even if it is lossy and irreversible. (source datatype3.html, checked-by: th3/req1/datatype3_06.test)

R-02595-18934-38766-26109-36357-54761-54151-36696

The wal_checkpoint pragma can be used to invoke this interface from SQL. (source c3ref/wal_checkpoint.html)

R-02612-37947-62500-41847-13282-34946-09245-20088

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)

R-02650-36887-21025-17890-26577-45175-39281-30209

PRAGMA cache_size; PRAGMA cache_size = pages; PRAGMA 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: th3/req1/pragma09.test)

R-02661-56399-16863-16765-39256-52589-25619-21380

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)

R-02679-20590-41366-48266-29489-18564-45161-10655

This function may load one or more schemas from database files. If an error occurs during this process, or if the requested table or column cannot be found, an error code is returned and an error message left in the database connection (to be retrieved using sqlite3_errmsg()). (source c3ref/table_column_metadata.html)

R-02748-19096-10502-39344-29556-06426-40271-21454

This option sets the threading mode to Single-thread. (source c3ref/c_config_getmalloc.html)

R-02762-06118-02091-47563-07775-65228-64836-17683

If one operand has TEXT affinity and the other has NONE affinity, then TEXT affinity is applied to the other operand. (source datatype3.html, checked-by: th3/req1/datatype3_05.test)

R-02776-14802-36986-43055-33540-06058-61102-35501

The cell pointer array consists of K 2-byte integer offsets to the cell contents. (source fileformat2.html)

R-02781-38257-61601-52824-21453-60365-23021-11331

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)

R-02811-30532-06780-49040-22686-08574-20833-13918

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)

R-02823-24537-56381-41482-05439-43543-17760-52541

All journal headers within the same journal must contain the same database page size and sector size. (source fileformat2.html)

R-02824-47636-45772-64521-23830-46233-52625-44302

Cautious programmers might include assert() statements in their application to verify that values returned by these interfaces match the macros in the header, and thus insure that the application is compiled with matching library and header files. assert( sqlite3_libversion_number()==SQLITE_VERSION_NUMBER ); assert( strcmp(sqlite3_sourceid(),SQLITE_SOURCE_ID)==0 ); assert( strcmp(sqlite3_libversion(),SQLITE_VERSION)==0 ); (source c3ref/libversion.html, checked-by: th3/mkth3.tcl)

R-02834-55381-03461-31664-23015-51190-16436-44295

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)

R-02854-44844-25004-52722-20972-43816-38252-26758

Transactions created using BEGIN...COMMIT do not nest. (source lang_transaction.html)

R-02874-38817-33703-51785-18711-55321-62678-25711

The sub-query is not a compound select, or it is a UNION ALL compound clause made up entirely of non-aggregate queries, and the parent query: is not itself part of a compound select, is not an aggregate or DISTINCT query, and has no other tables or sub-selects in the FROM clause. (source optoverview.html)

R-02896-44879-31402-29559-09669-33629-62706-33982

SQLite will use no more than two scratch buffers per thread. (source c3ref/c_config_getmalloc.html)

R-02961-26666-41829-02507-08304-47031-60058-62132

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)

R-02967-39447-48493-62980-07323-62892-07266-03012

But there can not be gaps in the columns of the index that are used. (source optoverview.html)

R-02989-21050-28671-33221-63054-40934-12075-15702


(source lang_expr.html, checked-by: tcl/e_expr.test)

R-03014-26414-56458-20281-20451-13984-34730-16215

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)

R-03031-24356-65405-31144-24091-48279-38334-39454

First, queries against the primary key are efficient: SELECT * FROM demo_index WHERE id=1; (source rtree.html)

R-03040-34580-06414-61878-61161-08528-60209-55771

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)

R-03074-57892-20072-01566-09609-39793-17507-25835


(source lang_createindex.html, checked-by: th3/req1/createidx01.test)

R-03108-01565-06076-29544-14093-00699-65398-01477

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)

R-03108-55458-13871-22315-35483-39116-29628-08970

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)

R-03108-63659-37525-03634-22905-61973-06931-63842

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)

R-03152-62612-16815-38242-09328-52021-06080-07878

If aConstraintUsage[].omit is true, then the constraint is assumed to be fully handled by the virtual table and is not checked again by SQLite. (source c3ref/index_info.html)

R-03153-51711-62729-48073-48955-48855-20367-13139

Then an efficient way to find the name of all objects located within the North Carolina 12th District, one may 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, :boundary) AND minX>=-81.0 AND maxX=35.0 AND maxY (source rtree.html)

R-03236-28327-53832-55698-26984-08951-20811-30621

The callback function registered by sqlite3_profile() is invoked as each SQL statement finishes. (source c3ref/profile.html)

R-03353-05327-21191-28288-58549-30161-65035-16573

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)

R-03364-08004-01846-16626-35041-21418-01059-33152

This saves disk I/O but at the expense of database safety and integrity. (source pragma.html, checked-by: th3/req1/pragma25.test)

R-03371-37637-45197-41040-02325-30195-01599-52807

A value of 2 means UTF-16le. (source fileformat2.html)

R-03384-16988-56342-27113-15582-23905-61625-46605

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)

R-03387-12896-30110-08033-64260-38467-31820-29841

For a trigger, the tbl_name column stores the name of the table or view that causes the trigger to fire. (source fileformat2.html)

R-03407-11483-10764-04340-16731-05555-54147-57723

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)

R-03415-51114-16877-13927-48292-50475-12409-45422

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)

R-03421-22330-15487-45434-55764-30375-36326-03914

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)

R-03421-57988-17823-20871-36963-31591-05991-31026

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)

R-03529-13145-61172-45991-35853-35097-63918-09520

Each new VFS becomes the default VFS if the makeDflt flag is set. (source c3ref/vfs_find.html, checked-by: th3/req1/vfs01.test)

R-03629-56437-27886-19229-27867-49230-43558-11164

This routine sets a callback function that might be invoked whenever an attempt is made to open a database table that another thread or process has locked. (source c3ref/busy_handler.html)

R-03640-13415-56664-14060-37000-49599-27539-06381

A value of 5 means the page is an interior table b-tree page. (source fileformat2.html)

R-03642-28175-07234-22849-20831-22837-60337-13680

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)

R-03679-60639-59233-10900-40024-64867-37353-18498

Equals can be either = or ==. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-03718-56652-35720-52480-53179-27141-13621-15908

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)

R-03733-29734-34954-23072-53116-42399-24178-53918

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)

R-03763-21608-02614-21475-13242-45742-42220-44388

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)

R-03774-63970-49348-18096-09598-62977-03168-07384

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)

R-03775-43471-64071-42182-04548-19220-35511-30117

For CURRENT_DATE, "YYYY-MM-DD". (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-03793-19254-25835-35208-42396-01402-31770-31653

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)

R-03805-18240-25396-23037-09576-28411-40508-44417

This private database will be automatically deleted as soon as the database connection is closed. (source c3ref/open.html)

R-03816-21626-17112-32643-57381-58430-16315-21594

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)

R-03880-38961-16553-20098-36513-53865-60133-40229

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)

R-03934-63400-35021-15759-28695-34964-02248-59433

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)

R-03993-24285-31190-14311-07438-62351-52230-47181

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)

R-04005-08111-39731-15170-36576-49560-64443-15597

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)

R-04006-57648-63099-63460-42508-11282-26752-53417

In this case the result of evaluating the left-most expression in the VALUES list is inserted into the left-most column of the new row, and so on. (source lang_insert.html, checked-by: tcl/e_insert.test)

R-04042-24825-64259-53667-46708-22366-11905-57675

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)

R-04132-09474-00805-46196-04402-30131-02139-26149

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)

R-04136-04681-09628-27696-46047-23040-33903-21102

If no collating function is explicitly defined, then the collating function defaults to BINARY. (source datatype3.html, checked-by: th3/req1/datatype3_09.test)

R-04156-06964-57164-01636-33935-16787-30855-09296

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)

R-04207-37981-22726-45777-39517-24105-18228-28404

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)

R-04230-65027-27281-23522-50954-57493-39965-31436

This statement detaches an additional database connection previously attached using the ATTACH statement. (source lang_detach.html)

R-04232-24861-40917-13992-27645-07811-63353-60101

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)

R-04239-46396-01814-35437-09500-15330-29656-29388

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)

R-04240-13860-65376-64948-20761-30630-14399-44960

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)

R-04272-38653-14303-01704-38451-58113-36784-29823

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)

R-04304-33529-02265-14363-24121-34151-06311-12119

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)

R-04425-13680-18982-00806-50027-50568-09550-24420

The amount of space allocated by sqlite3_aggregate_context(C,N) is determined by the N parameter on first successful call. Changing the value of N in subsequent call to sqlite3_aggregate_context() within the same aggregate function instance will not resize the memory allocation. (source c3ref/aggregate_context.html, checked-by: th3/req1/aggcntx01.test)

R-04450-47777-14788-42766-36602-14112-22925-03409

This API is only available if the library was compiled with the SQLITE_ENABLE_COLUMN_METADATA C-preprocessor symbol defined. (source c3ref/table_column_metadata.html)

R-04452-49349-54233-41206-52506-27116-05869-21475

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)

R-04460-53386-37328-50072-27408-53032-10915-39219

The third argument is the number of slots. (source c3ref/c_dbconfig_enable_fkey.html, checked-by: src/main.c, th3/req1/dbconfig01.test)

R-04486-07266-01902-48649-32493-31514-19208-51625

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)

R-04527-41458-36687-16089-60868-43636-56199-14424

Automatically started transactions are committed when the last query finishes. (source lang_transaction.html)

R-04530-63331-37041-42549-14186-19880-63499-36384

An individual database connections D can reduce its maximum parameter number below the compile-time maximum using the sqlite3_limit(D, SQLITE_LIMIT_VARIABLE_NUMBER,...) interface. (source lang_expr.html)

R-04532-11527-60293-16788-37808-59040-51319-08926

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)

R-04558-24451-40018-59769-17015-19792-37809-52993

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)

R-04675-44850-10615-34055-22415-21112-63316-33860

The memory returned by sqlite3_malloc() and sqlite3_realloc() 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)

R-04709-28430-14842-03600-36278-03324-37525-06420

The two syntaxes yield identical results. (source pragma.html, checked-by: th3/req1/pragma01.test)

R-04813-30632-36613-23233-44977-18945-21013-25400

Any number of levels of indirection are allowed. (source c3ref/unlock_notify.html)

R-04816-56144-44599-11234-14128-65131-61660-44235

This function returns the number of direct row changes in the most recent INSERT, UPDATE, or DELETE statement within the same trigger context. (source c3ref/changes.html)

R-04857-57605-48133-44150-30535-05379-36560-24650

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)

R-04864-61029-16829-56446-03389-34714-38812-10063

Information about the ORDER BY clause is stored in aOrderBy[]. (source c3ref/index_info.html)

R-04905-26881-40783-35987-17174-16580-39842-61729

SQLite uses dynamic run-time typing. (source c3ref/column_decltype.html)

R-04922-24076-20312-31472-33218-43152-59920-55175

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)

R-04965-15290-07639-47076-03173-25539-55321-39216

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)

R-04966-20924-22801-44909-48927-53251-60616-56610

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)

R-04974-06543-23459-27016-04793-62254-28268-32718

The SQLITE_OPEN_PRIVATECACHE flag causes the database connection to not participate in shared cache mode even if it is enabled. (source c3ref/open.html)

R-05038-25064-50136-23943-62126-35147-57737-05371

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)

R-05119-02637-14414-33683-07351-22342-03629-61768

The 4-byte big-endian integer at offset 36 stores stores the total number of pages on the freelist. (source fileformat2.html, checked-by: th3/req1/pragma21.test)

R-05155-34454-27271-17967-48575-19068-12269-57153

The precedence of the BETWEEN operator is the same as the precedence as operators == and != and LIKE and groups left to right. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-05192-57965-21317-62763-55347-54447-59069-43394

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)

R-05196-58733-44887-26524-08639-58577-62968-38394

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)

R-05226-30063-38393-23337-31220-10155-17682-45217

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)

R-05239-12850-29861-48267-58259-09367-64321-59571

If no algorithm is specified anywhere, the ABORT algorithm is used. (source lang_conflict.html, checked-by: th3/req1/conflict03.test)

R-05256-02411-03120-41159-49408-38531-58118-03521

The second column is the "main" for the main database file, "temp" for the database file used to store TEMP objects, or the name of the ATTACHed database for other database files. (source pragma.html, checked-by: th3/req1/pragma14.test)

R-05272-22592-13374-24756-51597-06491-53677-55023

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)

R-05363-17893-60997-09697-28202-47991-52787-63067

Views are read-only in SQLite. (source lang_createview.html)

R-05367-01575-38544-05441-45705-50827-33382-05876

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)

R-05416-39654-33473-55228-34062-26099-18988-34297

Any callback set by a previous call to sqlite3_commit_hook() for the same database connection is overridden. (source c3ref/commit_hook.html)

R-05416-57569-14245-59554-42970-16556-04782-39407

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)

R-05452-35198-10871-20803-29102-44206-02290-23562

The object returned by sqlite3_column_value() is an unprotected sqlite3_value object. (source c3ref/column_blob.html, checked-by: th3/req1/column01.test)

R-05485-48422-13403-52608-43825-07463-15494-45842

The schema-version is usually only manipulated internally by SQLite. It is incremented by SQLite whenever the database schema is modified (by creating or dropping a table or index). (source pragma.html, checked-by: th3/req1/pragma28.test)

R-05513-33819-59240-57490-36750-56355-20133-11323

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)

R-05617-50091-64320-09946-64698-41149-46478-61865

In the DELETE mode, the rollback journal is deleted at the conclusion of each transaction. (source pragma.html, checked-by: th3/req1/pragma24.test)

R-05644-53956-28885-25038-62165-04272-38392-10037

A WAL always grows from beginning toward the end. (source fileformat2.html)

R-05646-15132-11020-10123-43884-18508-24247-46472

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)

R-05650-46070-32640-12192-03987-30502-33558-23123

And you can UPDATE, DELETE, INSERT or even DROP the shadow tables, though doing so will corrupt your R*Tree index. (source rtree.html)

R-05693-48487-42509-32993-20525-28591-05760-18227

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)

R-05731-00924-21642-36920-42396-08100-00001-17293

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)

R-05734-13629-21302-48631-57775-63447-36504-30462

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)

R-05791-54928-02769-08459-30778-25258-29853-24680

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)

R-05898-54598-22699-61791-29592-33550-33097-15159

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)

R-05903-08460-38037-43122-07089-54739-62474-34030

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)

R-05912-10167-55658-18265-62443-52976-18281-50268

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)

R-05951-02312-23711-17446-20598-09219-25533-37117

This interface is used to retrieve runtime status information about the performance of SQLite, and optionally to reset various highwater marks. (source c3ref/status.html)

R-06021-09373-60954-10709-09959-52253-36320-11394

But extensions can override the match() function with more helpful logic. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-06044-07843-41488-27430-15484-51013-09491-52143

Each page record stores a copy of the content of a page from the database file before it was changed. (source fileformat2.html)

R-06049-55948-28351-06702-55753-35994-01473-31124

A simple function can be used in any expression. (source lang_expr.html)

R-06081-00362-40480-25487-62040-62396-65262-38690

The third column of output is the name of the column being indexed. (source pragma.html, checked-by: th3/req1/pragma15.test)

R-06085-13761-54522-48441-51146-08233-07521-56188

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)

R-06094-55152-33533-26668-27298-05995-61599-07184

Unbound parameters are interpreted as NULL. (source c3ref/bind_blob.html, checked-by: th3/req1/bind01.test)

R-06104-61237-23339-52943-61678-27484-43131-29451

The result set must contain a single column. (source optoverview.html)

R-06121-44139-52990-59264-15521-64976-48420-00452

If X is NULL then length(X) is NULL. (source lang_corefunc.html, checked-by: th3/cov1/func01.test)

R-06125-22327-52915-34188-45275-42271-34098-17754

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)

R-06184-64035-19129-41964-19001-40522-59120-29266

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)

R-06192-43187-09900-12561-05322-03139-09562-46958

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)

R-06207-57205-00965-33799-58232-34287-36235-59712


(source lang_detach.html)

R-06211-52866-60944-51344-33653-00695-35099-44728

A single WAL file can be reused multiple times. (source fileformat2.html)

R-06247-40710-32264-36174-63374-18082-50900-27234

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)

R-06248-64121-07188-29551-61796-15919-61110-34160

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)

R-06268-22533-04308-14386-21741-11230-29946-31155

The cache query parameter determines if the new database is opened using shared cache mode or with a private cache. (source uri.html)

R-06325-15315-47203-37013-07627-21557-12001-05874

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)

R-06367-56981-61813-52742-22421-22635-19629-30966

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)

R-06396-00487-24665-04701-02670-39583-42617-54638

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)

R-06467-48849-57565-61954-24161-42230-15845-14512

PRAGMA journal_mode; PRAGMA database.journal_mode; PRAGMA journal_mode = DELETE | TRUNCATE | PERSIST | MEMORY | WAL | OFF PRAGMA database.journal_mode = DELETE | TRUNCATE | PERSIST | MEMORY | WAL | OFF This pragma queries or sets the journal mode for databases associated with the current database connection. (source pragma.html, checked-by: th3/req1/pragma23.test)

R-06480-34950-60281-23859-23229-38424-06701-10325


(source lang_select.html, checked-by: tcl/e_select.test)

R-06483-27112-61838-60600-31039-16842-06931-49767

The xMutexEnd() interface is invoked exactly once for each call to sqlite3_shutdown(). (source c3ref/mutex_methods.html)

R-06497-44374-00376-59592-23814-22462-41106-13473

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)

R-06526-21822-44146-52005-29553-25229-08273-20735

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)

R-06529-47362-28298-49876-57281-01728-38007-39876

Following the size varint are one or more additional varints, one per column. (source fileformat2.html)

R-06571-04773-06599-01457-22611-05632-63010-56149

If X is NULL or an empty string, then a checkpoint is run on all databases of connection D. (source c3ref/wal_checkpoint.html)

R-06617-54588-52951-29775-47412-02155-55122-34673

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)

R-06630-59185-25894-35312-55008-29354-15372-24847

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)

R-06665-27325-40160-13157-49305-60075-62484-50967

If the argument N is zero then the soft heap limit is disabled. (source c3ref/soft_heap_limit64.html, checked-by: th3/req1/softheaplimit02.test)

R-06681-36915-07445-41328-35159-18817-58464-46967

The largest Fibonacci weight occurs on the first element of the sequence being summed. (source fileformat2.html)

R-06710-22511-57136-17945-50070-33110-36192-14395

When case_sensitive_like is disabled, the default LIKE behavior is expressed. (source pragma.html, checked-by: th3/req1/pragma10.test)

R-06718-34797-20809-29800-16443-15807-57069-06143

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)

R-06726-07466-50674-60893-18596-18216-57915-63107

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)

R-06730-09692-37737-40278-41150-46947-53359-48437

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)

R-06827-27714-37662-62265-13123-35942-36667-57305

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)

R-06842-00595-27459-11943-09880-13369-18922-07215

If the URI contains an authority, then it must be either an empty string or the string "localhost". (source c3ref/open.html)

R-06866-39125-55055-41490-42674-60526-11809-05930

Freeblocks are always connected in order of increasing offset. (source fileformat2.html)

R-06868-44093-33901-50180-63066-19596-24201-39627

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)

R-06920-11647-57198-53546-22558-52613-40073-20013

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)

R-06999-14330-42253-15689-34889-17561-34842-22744

If a WHERE clause is specified, the WHERE expression is evaluated for each row in the input data as a boolean expression. All rows for which the WHERE clause expression evaluates to false are excluded from the dataset before continuing. (source lang_select.html, checked-by: tcl/e_select.test)

R-07016-26442-22994-35571-41506-56753-23987-59797

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)

R-07046-65439-53781-18565-05582-11236-16234-65526

Any of these arguments may be NULL, in which case the corresponding element of metadata is omitted. (source c3ref/table_column_metadata.html)

R-07051-38416-38857-52812-51917-08930-07930-15860

If the declared type contains the string "INT" then it is assigned INTEGER affinity. (source datatype3.html, checked-by: th3/req1/datatype3_01.test)

R-07057-45839-58945-17922-08934-43257-63274-32805

Terms of the WHERE clause can be manually disqualified for use with indices by prepending a unary + operator to the column name. (source optoverview.html)

R-07061-20551-45555-61970-58663-33619-01553-07889

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)

R-07061-54920-02690-34802-26523-14617-41412-12725

To overcome this problem, SQLite attempts to flatten subqueries in the FROM clause of a SELECT. (source optoverview.html)

R-07100-06606-15404-00202-26903-38022-07639-13720

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)

R-07178-42569-23822-25165-44123-64804-39149-01193

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)

R-07223-48323-28604-04641-30689-62184-47326-29698

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)

R-07224-37960-07038-64465-45368-63797-43287-02157

The subquery does not use aggregates or the outer query is not DISTINCT. (source optoverview.html)

R-07272-22309-27541-26278-30152-44282-17867-64207

The default behavior is for mutexes to be enabled. (source c3ref/threadsafe.html, checked-by: src/sqliteInt.h)

R-07280-60510-42023-64617-40990-52816-04160-12840

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)

R-07331-34822-27033-34737-57404-62591-62661-47793

The only guarantee is that the destructor will be called before the metadata is dropped. (source c3ref/get_auxdata.html)

R-07373-26855-08191-07958-60277-35412-28383-64233

The SQLITE_FCNTL_VFSNAME opcode can be used to obtain the names of all VFSes in the VFS stack. (source c3ref/c_fcntl_chunk_size.html)

R-07382-08557-17278-61689-15374-46602-01237-34965

The values returned by these functions are only updated by sqlite3_backup_step(). (source c3ref/backup_finish.html)

R-07391-62365-50484-20583-23156-31411-22306-43291

If the result is NULL, then sqlite3_column_bytes() returns zero. (source c3ref/column_blob.html, checked-by: th3/req1/column01.test)

R-07393-01823-08752-25333-30222-31178-15035-23553

The text in the sqlite_master.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)

R-07434-39946-64395-56249-16923-20954-34684-05720

The RELEASE command is like a COMMIT for a SAVEPOINT. (source lang_savepoint.html)

R-07443-03104-25430-52440-15603-28211-53431-58552

Shared cache is disabled by default. (source c3ref/enable_shared_cache.html)

R-07444-33850-51822-16540-61383-01460-32210-48440

Whitespace and comments that follow the final semicolon are ignored. (source c3ref/complete.html, checked-by: th3/cov1/complete01.test)

R-07450-54313-35396-53583-38577-19120-59837-03482

The SQLITE_OPEN_SHAREDCACHE flag causes the database connection to be eligible to use shared cache mode, regardless of whether or not shared cache is enabled using sqlite3_enable_shared_cache(). (source c3ref/open.html)

R-07474-04783-61557-15842-18544-20982-63471-50658

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: th3/cov1/vdbeapi14.test)

R-07490-32536-65444-08514-64358-21801-57919-13418

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)

R-07535-34995-01447-54565-38524-09572-39500-26944

The result of avg() is always a floating point value as long as at 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)

R-07544-24155-45327-34744-59210-13180-54893-36145

The "CROSS JOIN" join operator produces the same data as the "INNER JOIN", "JOIN" and "," operators (source lang_select.html, checked-by: tcl/e_select.test, tcl/e_select2.test)

R-07548-06087-12762-53515-32578-33672-61878-36013

These routines return the name assigned to a particular column in the result set of a SELECT statement. (source c3ref/column_name.html)

R-07548-13422-51816-60728-36638-61915-61462-20502

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)

R-07643-43989-02240-56676-20648-32041-01109-19546

An expression that is a simple reference to a column value has the same affinity as the column. (source datatype3.html, checked-by: th3/req1/datatype3_05.test)

R-07667-49537-57124-54989-59227-41131-33160-03537

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)

R-07677-41881-40135-26272-16926-18163-28954-03069

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)

R-07677-44926-50918-49822-13370-30168-54851-13094

The format for CURRENT_TIMESTAMP is "YYYY-MM-DD HH:MM:SS". (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-07713-47409-31141-62502-19233-29758-58887-35448

When a UNIQUE constraint violation occurs, the REPLACE algorithm deletes pre-existing rows that are causing the constraint violation prior to inserting or updating the current row and the command continues executing normally. (source lang_conflict.html, checked-by: th3/req1/conflict02.test)

R-07727-56631-19058-51033-37798-11219-19213-34496

Instead of cancelling the transaction, the ROLLBACK TO command restarts the transaction again at the beginning. (source lang_savepoint.html)

R-07734-01023-35400-33877-62605-53392-63637-26399

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)

R-07796-55423-52523-43504-40552-37000-09933-05670

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: th3/cov1/vdbeblob01.test)

R-07801-24468-36344-27295-15963-50909-61997-55720

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)

R-07865-58192-09859-42993-29277-46278-59857-06081

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)

R-07866-07572-04759-27245-06319-59551-46387-52672

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)

R-07866-27301-20685-29645-48664-65136-34349-24758

Format 4 also adds two new boolean record type values (serial types 8 and 9. (source fileformat2.html)

R-07963-00293-13635-32107-53901-52250-25105-19603

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)

R-07986-46024-43778-44003-14770-46888-01136-33565

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)

R-07987-54086-28782-61595-63457-13975-41237-46869

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)

R-08013-09052-64869-46064-46630-59593-28325-27907

4 N Original content of the page prior to the start of the transaction (source fileformat2.html)

R-08023-12605-32642-43845-16740-17726-48491-51878

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)

R-08114-32142-00732-64514-48561-20765-18490-60884

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)

R-08161-44559-11294-25208-33337-24402-63584-35626

The xShutdown() method is called by sqlite3_shutdown(). (source c3ref/pcache_methods2.html)

R-08185-34281-12728-08403-04938-30337-50100-31193

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)

R-08195-21952-34144-42523-58914-33404-63629-47185

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)

R-08198-48522-54017-24058-29188-47107-45936-39213

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)

R-08220-00712-08202-21182-26079-26258-28714-22258

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)

R-08224-30249-18275-36906-02216-43610-40508-55733

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)

R-08267-32299-63841-11105-16971-59372-17886-11855

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)

R-08308-17224-38959-45804-35149-08611-40097-56535

The default collating function for all strings is BINARY. (source fileformat2.html)

R-08348-34672-30710-39534-43438-18204-53248-46501

If the database is opened (and/or created) successfully, then SQLITE_OK is returned. Otherwise an error code is returned. (source c3ref/open.html)

R-08375-20446-26647-36116-19592-16605-23479-65514

Tables in an attached database can be referred to using the syntax database-name.table-name. (source lang_attach.html, checked-by: th3/req1/attach01.test)

R-08382-59936-33976-47324-12447-38582-10569-47799

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)

R-08385-08814-16494-59705-02420-23410-27891-51332

An application can force the query planner to reread the statistics tables by running ANALYZE sqlite_master. (source lang_analyze.html, checked-by: th3/req1/analyze01.test)

R-08468-48792-53240-63754-20732-07699-03752-10764

Even though the function prototype shows that xEntryPoint() takes no arguments and returns void, SQLite invokes xEntryPoint() with three arguments and expects and integer result as if the signature of the entry point where as follows:   int xEntryPoint(   sqlite3 *db,   const char **pzErrMsg,   const struct sqlite3_api_routines *pThunk   ); (source c3ref/auto_extension.html, checked-by: th3/req1/autoext01.test)

R-08469-46782-59132-04592-41153-65090-64039-23228

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)

R-08478-11330-06279-18955-61635-50618-42740-39005

The list of query parameters parameters appended to the xOpen filename is terminated by a single zero-length key. (source uri.html)

R-08531-36543-43368-50490-58607-10151-50307-46292

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)

R-08551-61977-00536-43869-21824-42581-53338-42827

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)

R-08570-19916-06094-14315-21140-23229-64814-49543

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)

R-08600-21007-59699-24141-37945-25671-33905-23052

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)

R-08611-24523-10731-50775-53205-29379-11431-63545

So to insert some data into our sample R*Tree index, we can do something like this: INSERT INTO demo_index VALUES( 1, -- Primary key -80.7749, -80.7747, -- Longitude range 30.3776, 30.3778 -- Latitude range ); INSERT INTO demo_index VALUES( 2, -81.0, -79.6, 35.0, 36.2 ); (source rtree.html)

R-08669-22397-26856-32296-22372-63471-24126-56225

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)

R-08702-09805-37818-25319-39065-12548-64378-42477

The sqlite3_commit_hook() interface registers a callback function to be invoked whenever a transaction is committed. (source c3ref/commit_hook.html)

R-08782-34587-24709-60747-46157-12897-42098-02206

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)

R-08861-34280-62866-63452-63262-62491-16025-47018

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)

R-08904-24719-11346-47287-22123-01310-57737-05262

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)

R-08908-23439-37383-27763-09062-14229-58252-49666

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)

R-08914-63790-06643-47289-00974-31735-19483-54546

The operator % outputs the value of its left operand modulo its right operand. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-08916-58393-39719-51162-04738-33368-03102-45258

This interface disables all automatic extensions previously registered using sqlite3_auto_extension(). (source c3ref/reset_auto_extension.html, checked-by: th3/req1/autoext01.test)

R-08951-19801-08417-23581-55505-30558-59834-07757

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)

R-09005-28791-60027-45340-35703-17892-19441-18649

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)

R-09022-44606-06842-17388-21408-48931-57788-61269

sqlite> CREATE INDEX i1 ON t1(a); sqlite> EXPLAIN QUERY PLAN SELECT a, b FROM t1 WHERE a=1; 0|0|0|SEARCH TABLE t1 USING INDEX i1 (a=?) (~10 rows) (source eqp.html, checked-by: tcl/eqp.test)

R-09033-01493-08484-25490-18731-61378-37357-02599

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)

R-09056-11515-12774-07770-59896-07057-39657-55585

If nByte is non-negative, then it is the maximum number of bytes read from zSql. (source c3ref/prepare.html, checked-by: th3/req1/prepare01.test)

R-09068-40660-27195-07118-53993-03715-03215-45426

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)

R-09224-24423-49994-35052-44782-07327-29162-57753

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)

R-09261-30775-60628-01529-14091-08694-38549-11160

Locks are not acquired until the first read or write operation. (source lang_transaction.html)

R-09295-61337-32073-06786-13373-31465-59006-42307

Casting a TEXT or BLOB value into NUMERIC first does a forced conversion into REAL but then further converts the result into INTEGER if and only if the conversion from REAL to INTEGER is lossless and reversible. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-09310-54000-20676-45974-44442-40354-59533-62372

For the GLOB operator, the column must be indexed using the built-in BINARY collating sequence. (source optoverview.html)

R-09323-30470-62004-36090-30809-61331-17692-32313

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)

R-09385-24237-02595-13081-61892-09820-41014-64589

Finally, the database is flushed to persistent storage using another xSync method call. (source fileformat2.html)

R-09398-26102-26496-59828-02242-35200-16935-00376

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)

R-09458-10155-15158-32437-48979-56448-00494-45626

When the flag is off, new databases are created using the latest file format which might not be readable or writable by versions of SQLite prior to 3.3.0. (source pragma.html, checked-by: th3/req1/pragma22.test)

R-09479-17959-18929-07004-59700-09241-00688-08802

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)

R-09543-06473-23021-32220-32793-21583-15245-47596

A NULL pointer can be used in place of "main" to refer to the main database file. (source c3ref/file_control.html)

R-09564-22170-27375-05763-54488-45369-57253-27733

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)

R-09569-43120-63415-51925-62643-35022-32061-47045

The checksum is an unsigned 32-bit integer computed as follows: Initialize the checksum to the checksum nonce value found in the journal header at offset 12. Initialize index X to be N-200 (where N is the size of a database page in bytes. Interpret the four bytes at offset X into the page as a 4-byte big-endian unsigned integer. Add the value of that integer to the checksum. Subtrace 200 from X. If X is greater than or equal to zero, go back to step 3. (source fileformat2.html)

R-09593-03321-24060-42412-44512-07305-25128-61318

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)

R-09606-17150-22417-06889-63193-11228-63947-46501

Virtual terms can be used with indices to restrict a search. (source optoverview.html)

R-09651-31805-63758-44025-19992-32343-60168-27850

If "ro" is specified, then the database is opened for read-only access, just as if the SQLITE_OPEN_READONLY flag had been set in the third argument to sqlite3_prepare_v2(). (source c3ref/open.html, checked-by: tcl/e_uri.test)

R-09669-59284-18904-57253-21475-23488-47064-03765

Text values (odd serial types 13 and larger) sort after numeric values in the order determined by the columns collating function. (source fileformat2.html)

R-09681-58560-10305-15727-00297-35868-05335-61175

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)

R-09690-36749-32488-48064-52716-25618-00967-04296

In other words, the database-name. prefix on the table name of the UPDATE is not allowed within triggers. (source lang_update.html, checked-by: tcl/e_update.test)

R-09702-18252-10292-02056-28728-37972-55531-64507

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)

R-09704-29281-62509-09033-18405-10464-02206-26533

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)

R-09738-11588-38199-37460-01868-03727-01471-61458


(source lang_savepoint.html)

R-09748-03241-62835-60245-32173-07711-55769-04429

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)

R-09773-40602-32968-36782-04559-37578-19507-63398

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)

R-09782-32948-24767-08594-36498-62288-40921-54378

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)

R-09783-65036-25423-48067-42538-45414-00279-46435

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)

R-09798-06276-54780-63214-14309-15802-32530-00850

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)

R-09808-17554-50654-05359-25920-63839-21736-07612

SQLITE_LIMIT_SQL_LENGTH The maximum length of an SQL statement, in bytes. (source c3ref/c_limit_attached.html, checked-by: th3/req1/limit02.test)

R-09813-17279-59166-04895-48075-17845-31813-35638

Also, GLOB is case sensitive, unlike LIKE. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-09849-00220-60139-37223-30218-05088-34235-14106

A negative value for the zeroblob results in a zero-length BLOB. (source c3ref/bind_blob.html, checked-by: th3/req1/bind01.test)

R-09926-13037-28682-17032-17329-45107-57208-31581

There is a one-to-one mapping between rows in a table and entries in each index associated with that table. (source fileformat2.html)

R-09943-43999-40050-60099-27352-31262-44628-15476

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)

R-10030-07847-17306-25091-45900-44869-17247-42390

If a NOT NULL constraint violation occurs, the REPLACE conflict resolution replaces the NULL value with he 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)

R-10066-26552-54015-08012-45446-13573-10240-21333

If the lossless conversion of TEXT to INTEGER or REAL is not possible then the value is stored using the TEXT storage class. (source datatype3.html, checked-by: th3/req1/datatype3_01.test)

R-10099-10064-58361-57180-39744-05216-32972-43593

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)

R-10195-31023-11676-16507-03857-40935-22514-60833

If a 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)

R-10203-42688-05745-20246-57567-01031-33670-42087

The callback registered by this function replaces any existing callback registered using sqlite3_wal_hook(). (source c3ref/wal_autocheckpoint.html)

R-10231-33192-57225-15166-03458-30620-49896-31858

This interface can be used to retrieve a saved copy of the original SQL text used to create a prepared statement if that statement was compiled using either sqlite3_prepare_v2() or sqlite3_prepare16_v2(). (source c3ref/sql.html, checked-by: th3/mkth3.tcl, th3/req1/sql01.test)

R-10260-62465-16896-41827-00033-64414-58979-23233

PRAGMA reverse_unordered_selects; PRAGMA reverse_unordered_selects = boolean; (source pragma.html, checked-by: th3/req1/pragma27.test)

R-10284-11658-30925-56941-44506-24940-01613-45379

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)

R-10288-43169-38615-33402-21461-36827-14410-01457

For the purposes of the DEFAULT clause, an expression is considered constant provided that it does not contain any sub-queries or string constants enclosed in double quotes. (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-10346-40046-35521-21776-43630-65428-20399-28702

The CREATE TRIGGER statement is used to add triggers to the database schema. (source lang_createtrigger.html, checked-by: slt/slt_lang_createtrigger.test)

R-10393-27560-44275-02566-07675-36741-21342-01930

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)

R-10396-30188-46343-25997-25410-36538-31299-06809

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)

R-10466-53920-46827-22051-27556-17000-33700-37865

Calling sqlite3_wal_hook() replaces any previously registered write-ahead log callback. (source c3ref/wal_hook.html)

R-10470-30318-56877-28142-06718-49670-04430-59485

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)

R-10477-59572-35916-33197-44074-53826-19513-26308

Note that unlike that plain ROLLBACK command (without the TO keyword) the ROLLBACK TO command does not cancel the transaction. (source lang_savepoint.html)

R-10484-47921-51855-29245-64644-01052-63397-23881

Views are removed with the DROP VIEW command. (source lang_createview.html, checked-by: slt/slt_lang_createview.test)

R-10487-06498-43070-01372-57532-56331-23782-33348

If two or more tables in different databases have the same name and the database-name prefix is not used on a table reference, then the table chosen is the one in the database that was least recently attached. (source lang_attach.html, checked-by: th3/req1/attach01.test)

R-10498-57086-37452-22554-31064-17235-16247-62729

When nByte is non-negative, the zSql string ends at either the first '\000' or '\u0000' character or the nByte-th byte, whichever comes first. (source c3ref/prepare.html, checked-by: th3/req1/prepare01.test)

R-10543-26736-58011-26768-22566-64168-18081-13550

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)

R-10565-09557-60911-42161-01648-20022-48231-49571

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)

R-10645-12439-29307-46302-11314-15082-25631-53469

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)

R-10715-11594-42361-64533-62693-34754-22491-52002

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)

R-10717-02538-23214-42555-35648-10956-24290-47354

Each component query of a compound query (UNION, UNION ALL, EXCEPT or INTERSECT) is assigned its own selectid and reported on separately. (source eqp.html, checked-by: th3/req1/eqp01.test)

R-10722-45310-03105-41587-65268-38930-36590-56175

All intervening SAVEPOINTs are canceled, however. (source lang_savepoint.html)

R-10734-24248-12820-36089-32208-53594-64364-42192

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)

R-10777-25114-28148-35067-60781-11341-59885-20930

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)

R-10827-60271-29957-56948-24015-30184-30486-05573

If the journal mode could not be changed, the original journal mode is returned. (source pragma.html, checked-by: th3/req1/pragma23.test)

R-10872-29236-42160-60950-06300-37629-08228-11119

This option specifies a static memory buffer that SQLite can use for scratch memory. (source c3ref/c_config_getmalloc.html)

R-10872-35808-62525-46404-48063-22154-06728-34056

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)

R-10883-17697-39247-15529-29929-13310-12082-24783

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)

R-10886-33090-42835-40467-38387-59487-39282-25653

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)

R-10893-13770-29008-51080-40727-44407-18243-57719

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)

R-10900-57544-37938-07934-32518-44927-61812-27434

The rollback journal file can be deleted (source fileformat2.html)

R-10927-26133-64625-21951-56674-25631-48081-51767

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)

R-10933-37470-14937-54231-03343-64899-21190-46936

The index for "?NNN" parameters is the value of NNN. (source c3ref/bind_blob.html, checked-by: th3/req1/bind01.test)

R-10948-48115-30420-45129-26938-33308-29061-07454

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)

R-10964-23144-03179-07180-41128-15464-48410-22347

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)

R-10993-11647-55800-55293-06436-13332-42842-10882

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: th3/req1/pragma05.test)

R-11041-58701-63446-54854-64444-07239-52476-54830

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)

R-11061-58747-31587-59612-39335-16677-23352-15397

If N is less than 1 then a 1-byte random blob is returned. (source lang_corefunc.html, checked-by: th3/req1/func03.test)

R-11062-21931-47759-21146-52801-65238-28754-37817

szPage will always a power of two. (source c3ref/pcache_methods2.html)

R-11078-03945-63030-33506-24033-34573-31697-17195

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)

R-11105-02233-02526-56915-44997-17081-42713-55650

It must be harmless to invoke xMutexInit() multiple times within the same process and without intervening calls to xMutexEnd(). (source c3ref/mutex_methods.html)

R-11123-27815-09303-31333-40387-54915-57814-45751

If certain kinds of errors occur within a transaction, the transaction may or may not be rolled back automatically. The errors that cause the behavior include: SQLITE_FULL: database or disk full SQLITE_IOERR: disk I/O error SQLITE_BUSY: database in use by another process SQLITE_NOMEM: out or memory SQLITE_INTERRUPT: processing interrupted by application request (source lang_transaction.html)

R-11127-09633-57185-22901-21397-40062-06184-59885

If there is an error, *ppStmt is set to NULL. (source c3ref/prepare.html, checked-by: th3/req1/prepare01.test)

R-11129-23371-40000-09444-50753-04787-03077-31414

END TRANSACTION is an alias for COMMIT. (source lang_transaction.html)

R-11162-32742-04957-49790-62717-44478-27100-43420

Datatype conversions in comparisons of the form "x IN (SELECT y ...)" are handled is if the comparison were really "x=y". (source datatype3.html, checked-by: th3/req1/datatype3_05.test)

R-11203-26095-47421-44988-44413-41576-06585-21050

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)

R-11226-46663-42731-44808-54857-63929-35681-11721

The SQLITE_SOURCE_ID string contains the date and time of the check-in (UTC) and an SHA1 hash of the entire source tree. (source c3ref/c_source_id.html, checked-by: th3/req1/version01.test)

R-11241-54478-18941-45655-01844-39578-11562-47598

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)

R-11255-19907-56460-39957-30226-19999-22429-23256

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)

R-11290-60355-43377-26029-27960-65452-54790-61013

The top-level SELECT statement is always assigned the selectid value 0. (source eqp.html, checked-by: th3/req1/eqp01.test)

R-11295-04657-09653-04480-53801-04231-56338-07604

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)

R-11315-64212-00710-49784-05093-45690-30554-02549

The default busy callback is NULL. (source c3ref/busy_handler.html)

R-11321-47427-17901-35193-41209-48737-39207-23278

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)

R-11345-24891-48483-09798-42153-35485-11277-64815

The 4-byte big-endian integer at offset 28 into the header stores the size of the database file in pages. (source fileformat2.html)

R-11353-33501-27322-51182-17487-44106-28134-49701


(source lang_select.html, checked-by: tcl/e_select.test)

R-11370-04520-26477-32393-15829-52644-05616-39032

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)

R-11423-52711-44857-10860-28486-08502-59467-30884

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)

R-11479-62774-14648-38644-49524-53539-14021-51295

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)

R-11498-58022-52113-15294-58649-22171-38649-39142

In a well-formed b-tree page, the total number of bytes in fragments may not exceed 60. (source fileformat2.html)

R-11521-32715-49015-26965-23184-37142-58500-02249

The unary + is a no-op and will not slow down the evaluation of the test specified by the term. (source optoverview.html)

R-11549-19921-03928-49162-57832-06313-31858-02375

With synchronous=FULL in WAL mode, an additional sync operation of the WAL file happens after each transaction commit. (source pragma.html)

R-11566-63657-14865-04704-35153-27057-50201-14742

The 4-byte big-endian integer at offset 56 determines the encoding used for all text strings stored in the database. (source fileformat2.html)

R-11576-11990-36701-63648-24289-51988-09315-26987

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)

R-11620-22743-59737-64939-21707-40674-29550-48097

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)

R-11628-62147-05445-61752-17620-56103-14750-56419

No attempt is made to convert NULL or BLOB values. (source datatype3.html, checked-by: th3/req1/datatype3_01.test)

R-11684-02844-26168-40557-28007-15193-14492-18686

The explicit COMMIT command runs immediately, even if there are pending SELECT statements. (source lang_transaction.html)

R-11730-53816-33732-41455-13175-02323-60121-55502

The compound SELECT operators UNION, INTERSECT and EXCEPT perform implicit comparisons between values. (source datatype3.html, checked-by: th3/req1/datatype3_07.test)

R-11740-30529-09837-33143-12061-13377-09078-25577

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)

R-11741-40540-42615-46409-59010-22688-11320-56007

The SQLite core only provides implementations for these routines when it is compiled with the SQLITE_DEBUG flag. (source c3ref/mutex_held.html)

R-11836-25368-59503-10557-36932-45800-11418-22171

If the declared type for a column contains the string "BLOB" or if no type is specified then the column has affinity NONE. (source datatype3.html, checked-by: th3/req1/datatype3_01.test)

R-11848-39326-04026-39006-16097-08947-10502-17699

When secure-delete on, SQLite overwrites deleted content with zeros. (source pragma.html, checked-by: th3/cov1/pragma20.test)

R-11856-19836-24274-28109-29706-17487-59516-28752

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)

R-11896-08162-39829-09724-10165-05972-28450-60411

The "none" setting means that auto-vacuum is disabled. (source pragma.html, checked-by: th3/req1/pragma07.test)

R-11902-61139-20589-18768-62233-32075-51151-61981


(source lang_savepoint.html)

R-11920-30904-34388-20276-30838-60938-49360-56760

If the result is NULL, then sqlite3_column_bytes16() returns zero. (source c3ref/column_blob.html, checked-by: th3/req1/column01.test)

R-11975-28707-46522-06276-23691-04065-63160-37521

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)

R-11976-23534-61150-43568-11270-52721-42271-48852

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)

R-12066-60443-34830-42121-25260-11216-42763-03471

Calling sqlite3_close() with a NULL pointer argument is a harmless no-op. (source c3ref/close.html, checked-by: th3/cov1/main23.test)

R-12104-35971-65257-58163-03125-32650-03522-02366

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)

R-12122-63718-20895-59540-48059-45215-41359-12518


(source lang_transaction.html)

R-12123-54095-45651-21328-13666-03690-37485-08653

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)

R-12168-36613-28272-64664-28588-05948-62910-42845

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)

R-12183-43719-06718-33366-17178-17275-22858-03286

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)

R-12253-03857-23707-37833-05511-18068-12774-39997

If a memory allocation error occurs during the evaluation of any of these routines, a default value is returned. The default value is either the integer 0, the floating point number 0.0, or a NULL pointer. Subsequent calls to sqlite3_errcode() will return SQLITE_NOMEM. (source c3ref/column_blob.html, checked-by: th3/req1/column03.test)

R-12271-02651-64139-38097-45875-33970-39168-37355

If SQLite needs needs additional scratch memory beyond what is provided by this configuration option, then sqlite3_malloc() will be used to obtain the memory needed. (source c3ref/c_config_getmalloc.html)

R-12275-61338-03637-10461-60018-19416-13010-07977

If the table has previously held a row with the largest possible ROWID, 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)

R-12346-47970-23594-35934-64847-02438-62330-05438


(source lang_createvtab.html)

R-12374-37755-19006-43319-29109-21110-40176-02153

The locking-mode is either NORMAL or EXCLUSIVE. (source pragma.html, checked-by: th3/req1/pragma04.test)

R-12385-29357-06321-01436-47924-30729-53833-26197

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)

R-12452-54941-39354-45567-09766-62540-46508-43420

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)

R-12525-60165-32842-37850-04403-38425-48242-20323

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)

R-12526-56546-27211-20254-24569-61288-04911-18504

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)

R-12556-35327-19465-37938-14363-50325-55527-10605

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)

R-12572-62501-53672-53219-61722-28742-24509-13424

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)

R-12598-40983-37822-03408-00608-51890-59841-03948

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)

R-12619-24112-49797-05907-40465-10736-26377-62710

The optional conflict-clause 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)

R-12630-14897-26544-51860-33954-02416-09857-42810

Unlike regular SQLite tables which can store data in a variety of datatypes and formats, the R*Tree indices rigidly enforce these two storage types. (source rtree.html)

R-12645-39772-05350-58220-21808-12776-02132-01190

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)

R-12670-39947-34778-58945-43914-57818-35055-57037

Again, in this case the call to sqlite3_backup_step() can be retried later on. (source c3ref/backup_finish.html)

R-12691-50532-25744-05402-08971-51916-15594-38977

If the argument N is negative, then the number of cache pages is adjusted to use approximately N*1024 bytes of memory. (source pragma.html)

R-12723-08526-08318-37597-13416-02611-20506-59607

SQLITE_LIMIT_EXPR_DEPTH The maximum depth of the parse tree on any expression. (source c3ref/c_limit_attached.html, checked-by: th3/req1/limit02.test)

R-12782-61841-54063-57500-26369-54791-20214-34360

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)

R-12786-00766-63482-41386-10445-23868-47532-37384

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)

R-12793-43283-00395-32420-06808-58269-41877-63577

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)

R-12804-26213-16166-58523-53387-54270-64862-30854

The highest recorded value is returned in *pHighwater. (source c3ref/status.html)

R-12830-59321-61911-43156-38228-08390-44545-62549

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)

R-12881-55998-05997-62769-52407-41437-37652-18188

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)

R-12895-64156-28673-05493-20672-24033-21713-05965

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)

R-12918-22499-05371-58391-59731-39477-30796-49007

The database-names 'main' and 'temp' refer to the main database and the database used for temporary tables. (source lang_attach.html, checked-by: th3/req1/attach01.test)

R-12940-37052-20666-01661-57871-26003-21807-26945

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: th3/req1/limit02.test)

R-12968-32296-51820-14895-48060-40271-40241-44553

N bytes of data are copied from the buffer Z into the open BLOB, starting at offset iOffset. (source c3ref/blob_write.html)

R-12993-07777-64601-19102-35955-36137-03402-56962

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)

R-13053-11096-22952-42489-44628-35475-18449-44243

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)

R-13057-33448-09671-56974-58075-51862-56508-46386

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)

R-13091-00020-15519-35390-14824-01225-60609-32585

Note that the authorizer callback is invoked only during sqlite3_prepare() or its variants. (source c3ref/set_authorizer.html)

R-13160-27901-08319-02808-35967-30729-30833-45529

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)

R-13161-58512-18507-02027-33184-52817-40400-65254

The subquery and the outer query do not both have ORDER BY clauses. (source optoverview.html)

R-13183-30817-63475-03286-24149-37029-58658-28178

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)

R-13245-13613-20612-29669-51853-01593-36495-38547

SQLITE_BUSY means that the database engine was unable to acquire the database locks it needs to do its job. (source c3ref/step.html)

R-13264-56530-15604-47190-64669-54938-51022-12155

To find all elements of the index that are contained within the vicinity of Charlotte, North Carolina, one might do: SELECT id FROM demo_index WHERE minX>=-81.08 AND maxX=35.00 AND maxY (source rtree.html)

R-13279-06508-34532-04763-41016-09422-12015-14257

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)

R-13307-42286-48132-20191-27230-43917-16761-31093

The sqlite3_memory_used() routine returns the number of bytes of memory currently outstanding (malloced but not freed). (source c3ref/memory_highwater.html)

R-13324-20915-18608-14135-49913-18477-24470-37665

When two BLOB values are compared, the result is determined using memcmp(). (source datatype3.html, checked-by: th3/req1/datatype3_04.test)

R-13337-13961-14137-09012-22007-31627-17736-61931

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)

R-13345-31830-42625-35192-25815-10226-10074-63536

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)

R-13435-26311-61176-01189-39199-58705-21930-17615

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)

R-13439-14752-32196-09382-64767-42844-00603-31803

The CREATE VIEW command assigns a name to a pre-packaged SELECT statement. (source lang_createview.html)

R-13468-48578-37622-23620-58503-26592-02387-16439

A "row change" is a change to a single row of a single table caused by an INSERT, DELETE, or UPDATE statement. Rows that are changed as side effects of REPLACE constraint resolution, rollback, ABORT processing, DROP TABLE, or by any other mechanisms do not count as direct row changes. (source c3ref/changes.html)

R-13480-46087-00976-25355-37821-19976-64055-41594

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)

R-13547-45635-56676-46930-62295-21423-36076-50678

The default isolation level for SQLite is SERIALIZABLE. (source pragma.html)

R-13557-65369-19896-45420-61344-39587-53269-53393

The SQLITE_SEQUENCE table is created and initialized automatically whenever a normal table that contains an AUTOINCREMENT column is created. (source autoinc.html, checked-by: th3/req1/autoinc01.test)

R-13561-46814-58902-48141-34775-52925-09120-28270

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)

R-13591-51789-59523-18205-42201-39107-10748-36836

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)

R-13595-45863-41975-17982-37007-43143-15451-31635

Note that SQLite allows the parenthesized list of scalar values on the right-hand side of an IN or NOT IN operator to be an empty list but most other SQL database database engines and the SQL92 standard require the list to contain at least one element. (source lang_expr.html, checked-by: slt/in1.test, slt/in2.test, tcl/tkt-80e031a00f.test)

R-13748-40725-63284-41855-27070-22763-27401-30101

The current value of the requested counter is returned. (source c3ref/stmt_status.html)

R-13776-21310-53568-57098-48778-28371-47670-31301

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)

R-13780-64255-26273-51731-50371-55725-29943-17957

There can only be a single busy handler for a particular database connection any any given moment. If another busy handler was defined (using sqlite3_busy_handler()) prior to calling this routine, that other busy handler is cleared. (source c3ref/busy_timeout.html)

R-13793-11620-18643-36656-33877-44501-53404-27731

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)

R-13825-09904-57638-18756-48748-29351-18570-35078

After a BEGIN EXCLUSIVE, no other database connection except for read_uncommitted connections will be able to read the database and no other connection without exception will be able to write the database until the transaction is complete. (source lang_transaction.html)

R-13828-46633-29829-61952-44443-27481-59263-59633

Calls to sqlite3_close() return SQLITE_OK if the sqlite3 object is successfully destroyed and all associated resources are deallocated. (source c3ref/close.html)

R-13846-35797-43647-43739-38644-55287-36020-16236

The random() function returns a pseudo-random integer between -9223372036854775808 and +9223372036854775807. (source lang_corefunc.html, checked-by: th3/req1/func03.test)

R-13870-45783-04772-14716-53904-46370-14954-15973

The sqlite3_load_extension() interface attempts to load an SQLite extension library contained in the file zFile. (source c3ref/load_extension.html)

R-13876-13274-06329-28290-52708-34927-05709-26395

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)

R-13877-64542-39833-15687-62784-10394-38782-49019

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)

R-13903-46567-21188-22822-60227-64496-63410-06513

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)

R-13943-13592-05756-02149-18071-59821-47409-19193

A NULL result is considered untrue when evaluating WHEN terms. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-13958-53419-49614-06664-47934-29028-23296-04281

Supported unary prefix operators are these: - + ~ NOT (source lang_expr.html, checked-by: tcl/e_expr.test)

R-14014-59687-26564-37068-45971-48448-09846-38995

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)

R-14034-00929-27099-16044-59671-40921-25544-35067

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)

R-14066-27815-43543-12069-55137-11649-20472-34638

PRAGMA page_size; PRAGMA page_size = bytes; Query or set the page size of the database. (source pragma.html)

R-14068-49671-08903-14280-45288-40590-58798-59213

Parameters that are not assigned values using sqlite3_bind() are treated as NULL. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-14099-28081-41654-53120-44875-00301-46355-06140

If the commit hook returns non-zero, then the COMMIT is converted into a ROLLBACK. (source c3ref/commit_hook.html)

R-14168-07579-40145-07578-27946-11279-56601-46509

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)

R-14176-05188-04245-39693-06249-52193-26250-12502

It is possible to have the same database file attached multiple times using different names, and detaching one connection to a file will leave the others intact. (source lang_detach.html)

R-14184-13732-63564-17158-02009-26231-20937-39061

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)

R-14195-12074-64677-06793-17072-43123-33020-17925

PRAGMA recursive_triggers; PRAGMA recursive_triggers = boolean; Query, set, or clear the recursive trigger capability. (source pragma.html)

R-14208-23986-02817-62350-58798-64603-05852-18001

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)

R-14213-41276-38760-54552-34093-20752-64281-40652

If the function pointer is NULL, the sqlite3_log() interface becomes a no-op. (source c3ref/c_config_getmalloc.html)

R-14222-20715-36794-58646-49579-04398-47433-20385

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)

R-14279-33686-61113-43406-50629-18616-54985-30519

Both read-only and read/write queries will cause a ROLLBACK to fail. (source lang_transaction.html)

R-14302-38934-55936-51388-09326-06316-22131-13547

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)

R-14349-34154-22313-18444-03285-54966-26711-64366

Note that the order of the rules for determining column affinity is important. (source datatype3.html, checked-by: th3/req1/datatype3_01.test)

R-14374-42468-63596-09513-53214-31321-61248-26314

This option sets the threading mode to Multi-thread. (source c3ref/c_config_getmalloc.html)

R-14396-37867-24413-20088-54172-40989-25899-41989

The SQLITE_FCNTL_FILE_POINTER case is a short-circuit path which does not actually invoke the underlying sqlite3_io_methods. (source c3ref/file_control.html)

R-14428-50133-01194-47236-05116-05687-25228-52456

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)

R-14442-41305-19421-12764-11199-11923-26443-20423

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)

R-14450-37597-62750-52193-20411-23547-30776-32199

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_getmalloc.html)

R-14505-63184-58138-52966-27681-02252-30754-64236

An INTEGER or REAL value is less than any TEXT or BLOB value. (source datatype3.html, checked-by: th3/req1/datatype3_04.test)

R-14522-26183-36808-38782-13052-12335-19619-11308

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)

R-14553-34013-61751-37329-34569-35054-62588-04416

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)

R-14560-62209-22846-15269-26800-65188-24586-57276

The sqlite3_blob_bytes() interface returns the size of the BLOB in bytes. (source c3ref/blob.html, checked-by: th3/cov1/vdbeblob01.test)

R-14672-19530-25387-57734-27624-49837-27929-41109

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)

R-14744-61161-64598-20723-40374-11950-32585-46634

Bindings are not cleared by the sqlite3_reset() routine. (source c3ref/bind_blob.html, checked-by: th3/req1/bind01.test)

R-14785-56733-25459-22277-14451-32364-47758-09418

Extension loading must be enabled using sqlite3_enable_load_extension() prior to calling this API, otherwise an error will be returned. (source c3ref/load_extension.html)

R-14809-12532-29849-37931-55866-36288-34668-62105

Every column of every table has an associated collating function. (source datatype3.html, checked-by: th3/req1/datatype3_09.test)

R-14816-14138-45914-00386-55030-19688-47427-16370

The sqlite3_mutex_enter() and sqlite3_mutex_try() routines attempt to enter a mutex. (source c3ref/mutex_alloc.html)

R-14854-58090-42318-16758-11511-55845-43125-55221

The xShutdown method is only called from sqlite3_shutdown() so it does not need to be threadsafe either. (source c3ref/pcache_methods2.html)

R-14875-52970-09502-55318-65489-30403-63848-22858

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)

R-14900-25557-31284-25680-22043-43161-06380-24221

The schema-version and the user-version are big-endian 32-bit signed integers stored in the database header at offsets 40 and 60, respectively. (source pragma.html, checked-by: th3/req1/pragma28.test)

R-14926-50129-46614-17358-58969-23562-31943-57141

For the purposes of grouping rows, NULL values are considered equal. (source lang_select.html, checked-by: tcl/e_select.test)

R-14970-42377-34844-46496-15895-42662-06341-12505

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)

R-15060-13876-27196-24328-29262-37207-52735-33647

A 1-dimensional R*Tree thus has 3 columns. (source rtree.html)

R-15063-51342-39351-23162-57397-34240-32875-44138

A zero is returned if no matching parameter is found. (source c3ref/bind_parameter_index.html, checked-by: th3/req1/bind03.test)

R-15067-52851-39310-09608-48928-40262-32010-41531

The registration remains valid until it is replaced by a different module or until the database connection closes. (source c3ref/module.html)

R-15078-25200-47597-45134-52626-09709-11803-57181

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)

R-15111-17896-62926-21896-36187-36992-24278-56286

Numeric values (serial types 1 through 9) sort after NULLs and in numeric order. (source fileformat2.html)

R-15142-18077-19638-26452-28411-07428-50333-27294

A new R*Tree index is created as follows: CREATE VIRTUAL TABLE USING rtree(); (source rtree.html)

R-15162-34851-63939-05950-21084-00823-32030-36120

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)

R-15172-56782-14433-51557-38019-58913-08243-11771

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)

R-15181-32692-56132-34230-38418-33349-21648-47339

The last two forms change the journaling mode. (source pragma.html, checked-by: th3/req1/pragma23.test)

R-15199-61389-24637-25675-62796-22180-46893-15939

There are two basic forms of the CASE expression: those with a base expression and those without. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-15264-45364-33795-29086-26475-46082-16234-09444

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)

R-15265-60561-37978-57187-32005-16281-01684-16504

The second parameter is either the name of the database (i. (source c3ref/table_column_metadata.html)

R-15278-54456-28013-61400-54704-22962-00645-19316

The application can 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)

R-15279-42727-36622-43533-51632-55419-55302-44871

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)

R-15283-49521-12983-52199-46141-26319-45151-22196

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)

R-15326-32258-55998-27349-46389-10665-40357-65139

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)

R-15331-08345-58118-19144-46490-41902-30698-42442

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_getmalloc.html)

R-15334-58407-28961-30248-32119-35017-40136-56612

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)

R-15356-65223-28934-39981-61264-10821-14188-49484

SQLite does not use the lock-byte page. (source fileformat2.html)

R-15363-55230-31292-18565-56039-36923-37219-31589

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)

R-15400-09401-11917-03904-29330-15741-54444-34897

A keyword enclosed in square brackets is an identifier. (source lang_keywords.html, checked-by: th3/req1/keyword01.test)

R-15417-28014-30557-42534-17582-00197-65121-60035

Indices are not required for child key columns (source foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys07.test)

R-15465-20813-03488-35934-00721-06683-61343-58043

The maximum and minimum embedded payload fractions and the leaf payload fraction values must be 64, 32, and 32. (source fileformat2.html)

R-15494-33766-03817-21960-53465-64544-39793-36841

For indices that are automatically created by UNIQUE or PRIMARY KEY constraints, the name is "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. (source fileformat2.html)

R-15506-57666-56346-10655-27907-33619-59147-37222

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)

R-15514-65163-22430-27593-57969-12482-41561-35461

SQLite understands the following binary operators, in order from highest to lowest precedence: || * / % + - << >> & | < <= > >= = == != <> IS IS NOT IN LIKE GLOB MATCH REGEXP AND OR (source lang_expr.html, checked-by: tcl/e_expr.test)

R-15522-56042-47189-16162-53355-39499-48752-21999

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)

R-15548-18334-64551-32138-25458-60589-38835-29955

If the largest root b-tree page value is zero, then the database must not contain ptrmap pages. (source fileformat2.html)

R-15554-05778-32243-62840-23566-06701-05501-03594

SQLITE_STATUS_SCRATCH_USED This parameter returns the number of allocations used out of the scratch memory allocator configured using SQLITE_CONFIG_SCRATCH. The value returned is in allocations, not in bytes. Since a single thread may only have one scratch allocation outstanding at time, this parameter also reports the number of threads using scratch memory at the same time. (source c3ref/c_status_malloc_count.html)

R-15569-63625-32025-44445-56996-41662-23877-23571

If a CHECK constraint violation occurs, the REPLACE conflict resolution algorithm always works like ABORT. (source lang_conflict.html, checked-by: src/insert.c, th3/req1/conflict02.test)

R-15572-63310-25640-21443-38928-49206-01158-44169

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)

R-15591-29646-42277-29522-47431-15135-45139-14151

This routine returns 0 if pStmt is an SQL statement that does not return data (for example an UPDATE). (source c3ref/column_count.html, checked-by: th3/mkth3.tcl, th3/req1/datacnt01.test)

R-15607-52988-55821-17631-36260-55856-06121-21546

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)

R-15618-12639-40629-36536-35814-47765-39575-62705

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)

R-15620-41309-18590-43642-05731-59843-28363-36322

In this case the call to sqlite3_backup_step() can be retried later. (source c3ref/backup_finish.html)

R-15629-60483-22088-30931-50587-36197-35177-56236

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)

R-15639-02023-25709-58492-36578-59679-54928-11837

If no database-name is specified and there exists both a table or index and a collation sequence of the specified name, SQLite interprets this as a request to rebuild the indices that use the named collation sequence. (source lang_reindex.html, checked-by: tcl/e_reindex.test)

R-15639-28392-58947-52268-32213-59891-41102-62114

If a database name is specified, then only the named database is searched for the named object. (source lang_naming.html, checked-by: tcl/e_resolve.test)

R-15704-22093-19659-04811-31747-18777-12777-21799

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)

R-15707-53749-16663-50259-17040-65136-59107-02793

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)

R-15737-42560-39966-60421-02348-13704-23907-48839

Keyword arguments can optionally appear in quotes. (source pragma.html, checked-by: th3/req1/pragma01.test)

R-15741-50893-04622-59701-05174-07929-61978-12539

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)

R-15796-47513-29721-16055-11683-21050-32207-60873

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)

R-15800-25719-02234-49112-58438-56406-07161-16214

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)

R-15807-22461-03820-63759-43480-30184-16184-55723

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)

R-15818-17128-00123-39161-32371-64598-56479-09338

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)

R-15825-58263-40535-43132-40682-17971-55847-38484

The psow query parameter overrides the powersafe overwrite property of the database file being opened. (source uri.html)

R-15842-53296-08003-60856-35696-17823-54223-09480

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, checked-by: src/where.c)

R-15867-30493-08974-44645-42836-18647-48672-50550

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)

R-15888-36326-49147-46840-54698-34618-50911-39482

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)

R-15909-61171-23810-45611-13574-21954-09176-43834

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)

R-15958-50233-58629-08203-04879-28676-03150-11250

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)

R-15968-48708-39759-44208-63382-65413-21684-48201

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)

R-15997-27576-09912-47070-23601-24983-46411-48984

PRAGMA read_uncommitted; PRAGMA read_uncommitted = boolean; Query, set, or clear READ UNCOMMITTED isolation. (source pragma.html)

R-16028-39081-19377-46684-10718-53381-04734-64750

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)

R-16057-55834-34183-27727-54013-42481-60412-05224

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)

R-16074-54196-43824-25031-17914-10655-20694-13926

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)

R-16085-53730-63732-38499-15956-61706-03515-37986

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)

R-16127-35442-25332-57824-03233-02546-37060-55461

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)

R-16179-57541-27339-65229-35614-47877-55057-18753

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)

R-16185-00071-09955-21762-46377-47789-41533-03861

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)

R-16230-40037-23249-35634-11042-62086-60136-18681

The LIKE and GLOB optimizations consist of adding two virtual terms like this: column >= x AND column < y (source optoverview.html)

R-16258-28553-19423-42749-37896-58880-16399-16530

If the busy callback is NULL, then SQLITE_BUSY or SQLITE_IOERR_BLOCKED is returned immediately upon encountering the lock. (source c3ref/busy_handler.html)

R-16262-20798-18081-17023-40907-44361-41056-32016

If X is a string then characters indices refer to actual UTF-8 characters. (source lang_corefunc.html, checked-by: th3/cov1/func02.test)

R-16263-09274-39662-25002-11330-48229-57034-52902

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/mkth3.tcl)

R-16289-15808-59098-46795-28646-00170-42808-07295

If a numeric literal has a decimal point or an exponentiation clause, then it is a floating point literal. Otherwise is it is an integer literal. (source lang_expr.html)

R-16315-56881-31877-40762-35289-40185-03417-40758

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)

R-16335-41477-51529-00085-31320-00976-56017-05968

The implementation of the new function always causes an exception to be thrown. (source c3ref/overload_function.html)

R-16414-44626-57508-12770-26365-35758-32257-17918

strftime(format, timestring, modifier, modifier, ...) (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-16465-40078-63621-42444-05703-20205-45309-57719

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)

R-16527-30573-16737-00630-62330-59603-54641-29152

Each call to sqlite3_backup_step() sets two values inside the sqlite3_backup object: the number of pages still to be backed up and the total number of pages in the source database file. (source c3ref/backup_finish.html)

R-16571-11615-04832-08073-20760-06038-48883-17323

A value of 10 means the page is a leaf index b-tree page. (source fileformat2.html)

R-16584-60189-60940-01835-35282-37415-55139-16536

The LIKE operator does a pattern matching comparison. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-16618-15294-40098-25515-23421-58217-44729-28455

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)

R-16625-30785-18660-34070-49109-22249-51329-26220

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)

R-16667-09772-49719-31383-20699-54843-21151-14987

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)

R-16677-54172-01660-13905-64102-51935-20932-64314

All spaces following the first two keywords are converted into a single space. (source fileformat2.html)

R-16678-63672-23479-17788-13288-21597-25259-37744

If an INSERT occurs within a trigger or within a virtual table method, then this routine will return the rowid of the inserted row as long as the trigger or virtual table method is running. But once the trigger or virtual table method ends, the value returned by this routine reverts to what it was before the trigger or virtual table method began. (source c3ref/last_insert_rowid.html)

R-16717-50504-54717-12200-54209-43488-56382-57633

Each R*Tree index is a virtual table with an odd number of columns between 3 and 11. (source rtree.html)

R-16735-29088-33516-22402-46874-28284-28835-57919

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)

R-16748-44311-29408-30496-47489-38562-34902-17551

If the specified table is actually a view, an error code is returned. (source c3ref/table_column_metadata.html)

R-16775-34716-48016-59856-43563-01952-64923-08515

You cannot DELETE, INSERT, or UPDATE a view. (source lang_createview.html, checked-by: slt/slt_lang_createview.test)

R-16824-07538-50218-17384-27705-17061-18390-01878

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)

R-16827-00445-01454-02839-55616-25552-42712-08872

These routines should return true if the mutex in their argument is held or not held, respectively, by the calling thread. (source c3ref/mutex_held.html)

R-16876-26469-56495-43773-04643-04870-06914-01150

However, in many cases you can use an INSTEAD OF trigger on the view to accomplish the same thing. (source lang_createview.html)

R-16960-46772-37295-51769-03234-47143-37776-03273

The xSetSystemCall(), xGetSystemCall(), and xNestSystemCall() interfaces are not used by the SQLite core. (source c3ref/vfs.html)

R-16984-47079-59652-11585-17814-53725-42803-65209

If the SQLITE_ENABLE_ATOMIC_WRITE option is disabled or if xDeviceCharacteristics reports no suitable atomic write page sizes, then the default page size is the larger of SQLITE_DEFAULT_PAGE_SIZE and the sector size as reported by the xSectorSize method of the sqlite3_io_methods object, but not more than SQLITE_MAX_DEFAULT_PAGE_SIZE. (source pragma.html)

R-17004-26469-33978-15550-51185-63234-25288-10208

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)

R-17042-32466-08129-56782-39216-07667-22453-46462

In the current implementation, the update hook is not invoked when duplication rows are deleted because of an ON CONFLICT REPLACE clause. (source c3ref/update_hook.html)

R-17066-08509-20793-46689-03241-48208-02822-18117

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)

R-17100-46000-36927-33778-08378-49986-19867-19918

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)

R-17151-07205-10894-28299-62821-16887-02117-62221

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)

R-17155-65128-55367-02909-54957-13687-23759-15796

Note that number of bytes stored on the index page is never less than M. (source fileformat2.html)

R-17170-44824-25231-14155-44143-54372-37097-06690

The eTextRep argument determines the encoding of strings passed to the collating function callback, xCallback. (source c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test)

R-17203-10061-39568-47821-02948-38975-34395-48032

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)

R-17214-00187-14647-63723-32271-54121-20436-59365

The COLLATE clause optionally following each column name defines a collating sequence used for text entries in that column. (source lang_createindex.html, checked-by: th3/req1/createidx01.test)

R-17228-37124-21945-03605-09770-36410-30558-62639

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)

R-17269-58859-62979-20789-28373-02283-01402-32903

The pArg argument is passed through to the callback. (source c3ref/commit_hook.html)

R-17287-60737-33985-12645-22938-14534-06595-16406

Immediately following the wal-header are zero or more frames. (source fileformat2.html)

R-17313-07189-19129-06928-03198-35699-51824-58751

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)

R-17341-41375-54397-54408-61756-02302-26643-35471

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)

R-17379-32951-58399-57501-33498-60036-41846-10214

Any attempt to insert a duplicate entry will result in an error. (source lang_createindex.html, checked-by: th3/req1/createidx01.test)

R-17458-15700-03472-60284-42134-49579-06923-34319

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)

R-17482-00398-10630-63000-62255-53684-56492-08333

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)

R-17495-17419-60080-02439-41171-12294-54829-31710

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)

R-17497-43474-02755-40707-55508-06941-43855-44277

Likewise, registering a callback using sqlite3_wal_hook() disables the automatic checkpoint mechanism configured by this function. (source c3ref/wal_autocheckpoint.html)

R-17503-25110-05842-17616-27745-25701-57748-55330

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)

R-17527-22739-13874-05126-20619-29164-21106-56855

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)

R-17537-00183-53931-12298-10408-12793-18687-03447

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)

R-17564-54218-01993-46231-42657-60991-50837-12624

If the resetFlag is true, then the highest record value is reset after *pHighwater is written. (source c3ref/status.html)

R-17591-50446-37876-17822-10375-27592-36497-28987

Boolean values are stored as integers 0 (false) and 1 (true). (source datatype3.html, checked-by: th3/req1/datatype3_01.test)

R-17596-52174-25214-41225-30917-27450-40075-28590

A particular database will use either a rollback journal or a WAL, but not both at the same time. (source fileformat2.html)

R-17615-49737-42602-31197-05538-64484-08202-17390

A negative number implies no limit. (source pragma.html, checked-by: th3/req1/pragma26.test)

R-17628-54414-54605-31939-57279-20393-13350-52356

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)

R-17644-02150-10619-56225-58542-30426-53377-14747

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)

R-17644-24322-63248-40281-26514-10793-04355-46693

Notice that all other date and time functions can be expressed in terms of strftime(): FunctionEquivalent strftime() date(...) strftime('%Y-%m-%d', ...) time(...) strftime('%H:%M:%S', ...) datetime(...) strftime('%Y-%m-%d %H:%M:%S', ...) julianday(...) strftime('%J', ...) (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-17649-15849-35753-42057-40699-31210-64804-10043

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)

R-17683-59594-13579-14757-04762-40863-05270-49270

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)

R-17719-44813-04835-03337-09891-18871-23593-16128

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)

R-17719-64233-56665-24727-28694-41697-48581-47600

Each frame consists of a 24-byte frame-header followed by a page-size bytes of page data. (source fileformat2.html)

R-17746-39108-25168-47884-07203-13722-37711-19749

Pointers to the right of X refer to pages where all keys are greater than X. (source fileformat2.html)

R-17762-10110-24222-01374-10453-56278-15219-43086

SQLITE_STATUS_PARSER_STACK This parameter records the deepest parser stack. It is only meaningful if SQLite is compiled with YYTRACKMAXSTACKDEPTH. (source c3ref/c_status_malloc_count.html)

R-17768-43126-25682-30166-03658-34000-04918-35023

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)

R-17798-13675-27820-07837-10441-41691-34434-18481

The sqlite3_wal_hook() function is used to register a callback that will be invoked each time a database connection commits data to a write-ahead log (i. (source c3ref/wal_hook.html)

R-17798-50697-00916-29055-41532-21218-57202-15128

When one of the first three forms is called during trigger-program execution, the specified ON CONFLICT processing is performed (either ABORT, FAIL or ROLLBACK) and the current query terminates. (source lang_createtrigger.html)

R-17805-37710-17139-40895-40838-31681-06316-29590

However, SQLite will nest the loops in a different order if doing so will help it to select better indices. (source optoverview.html)

R-17813-59917-28416-42043-07798-63455-03406-14313

PRAGMA incremental_vacuum(N); The incremental_vacuum pragma causes up to N pages to be removed from the freelist. (source pragma.html, checked-by: th3/req1/pragma21.test)

R-17817-46062-61072-05424-12542-62157-01447-33721

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)

R-17842-50501-56682-60457-31874-28335-43678-55932

This option takes a single argument which is a pointer to an instance of the sqlite3_mem_methods structure. The argument specifies alternative low-level memory allocation routines to be used in place of the memory allocation routines built into SQLite. (source c3ref/c_config_getmalloc.html)

R-17846-38304-36602-38159-60525-20130-23266-48850

If a WHEN clause is supplied, the SQL statements specified are only executed for rows for which the WHEN clause is true. (source lang_createtrigger.html, checked-by: slt/slt_lang_createtrigger.test)

R-17847-41579-08261-19893-13376-57099-17968-14055

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)

R-17862-56189-57609-35079-43777-27903-54007-03395

The SQLITE_BUSY error is converted to SQLITE_IOERR_BLOCKED when SQLite is in the middle of a large transaction where all the changes will not fit into the in-memory cache. (source c3ref/busy_handler.html)

R-17875-35549-30610-25102-42674-55489-44332-17965

As long a connection is using a shared-memory wal-index, the locking mode can be changed freely between NORMAL and EXCLUSIVE. (source wal.html, checked-by: th3/req1/pragma05.test)

R-17878-35294-47697-18266-55769-35956-00477-22042

However, if there are any view definitions, or statements executed by triggers that refer to the table being renamed, these are not automatically modified to use the new table name. (source lang_altertable.html, checked-by: th3/req1/altertable01.test)

R-17899-04554-16139-08865-17180-48146-22421-25181

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)

R-17911-16445-24564-44587-44898-10566-48014-01820

sqlite> EXPLAIN QUERY PLAN SELECT count(*) FROM (SELECT max(b) AS x FROM t1 GROUP BY a) GROUP BY x; 1|0|0|SCAN TABLE t1 USING COVERING INDEX i2 (~1000000 rows) 0|0|0|SCAN SUBQUERY 1 (~1000000 rows) 0|0|0|USE TEMP B-TREE FOR GROUP BY (source eqp.html, checked-by: tcl/eqp.test)

R-17926-09424-52325-52888-31926-01436-23382-42237

The statistics gathered by this scan are stored in special database tables names shows names all begin with "sqlite_stat". (source optoverview.html)

R-17939-38828-17695-42161-08728-29310-38414-12197

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)

R-18043-40700-22598-52813-64197-51522-53393-10304

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)

R-18080-47271-18934-43786-64824-46921-37664-58593

If there is more than one PRIMARY KEY clause in a single CREATE TABLE statement, it is an error. (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-18085-46797-38544-57069-39269-06542-00638-19188

numeric arguments in parentheses that following the type name (ex: "VARCHAR(255)") are ignored (source datatype3.html, checked-by: th3/req1/datatype3_02.test)

R-18160-43138-45730-29033-18368-13452-34551-31953

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)

R-18160-48734-12487-09997-11031-61003-43897-08278

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)

R-18190-43830-34676-47582-56241-44977-21337-20567

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)

R-18219-48316-63080-50419-00617-04513-48558-33147

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)

R-18232-39104-31806-20551-06401-15021-42756-14177

The TEMP or TEMPORARY keyword is removed if it occurs after the initial CREATE keyword. (source fileformat2.html)

R-18347-31070-03027-11066-56518-02178-55511-27886

NULL values (serial type 0) sort first. (source fileformat2.html)

R-18401-29434-64954-06986-64183-65174-36377-46247

The ROLLBACK TO command reverts the state of the database back to what it was just after the corresponding SAVEPOINT. (source lang_savepoint.html)

R-18444-13968-40811-25945-54439-20224-30854-05072

If the progress callback returns non-zero, the operation is interrupted. (source c3ref/progress_handler.html, checked-by: th3/req1/progress01.test)

R-18465-63076-46355-46123-39901-27541-22994-57422

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)

R-18500-08619-10931-07451-20568-56201-09385-55546

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)

R-18544-33103-00053-07184-40428-23332-31709-31023

sqlite> EXPLAIN QUERY PLAN SELECT * FROM (SELECT * FROM t2 WHERE c=1), t1; 0|0|0|SEARCH TABLE t2 USING INDEX i4 (c=?) (~10 rows) 0|1|1|SCAN TABLE t1 (~1000000 rows) (source eqp.html, checked-by: tcl/eqp.test)

R-18567-63872-28950-34991-21095-45728-61145-64681

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)

R-18628-11938-58280-60424-32964-58816-64179-48454

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)

R-18658-48735-17951-17191-40214-20850-63941-45114

The third parameter passed to the logger is log message after formatting via sqlite3_snprintf(). (source c3ref/c_config_getmalloc.html)

R-18665-26680-08407-38690-15882-41528-44716-07525

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)

R-18669-12610-19021-20460-56494-30622-24671-33359

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)

R-18684-41029-50457-11697-46944-61670-11271-59779

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)

R-18692-17694-63404-11739-00590-02418-57066-37741

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)

R-18705-33393-57819-41139-38249-59845-61429-28312

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)

R-18711-35549-27220-03897-01638-65186-51204-23198

The ROLLBACK command without a TO clause rolls backs all transactions and leaves the transaction stack empty. (source lang_savepoint.html)

R-18741-16139-46901-23037-06510-07608-27753-13735

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)

R-18773-06579-40569-18123-18199-49078-54792-42080

SQLITE_RANGE is returned if the parameter index is out of range. (source c3ref/bind_blob.html, checked-by: th3/req1/bind01.test)

R-18814-23501-09117-45657-61449-22992-54979-37312

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)

R-18818-06259-05609-26467-03914-52420-50425-49000

A SAVEPOINT can be started either within or outside of a BEGIN...COMMIT. (source lang_savepoint.html)

R-18846-05946-40974-48701-32199-53032-10077-35779

With synchronous OFF (0), SQLite continues without syncing as soon as it has handed data off to the operating system. (source pragma.html)

R-18879-47479-26487-44670-60127-29624-08821-22011

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)

R-18885-42713-55126-22349-03815-15805-20030-42091

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)

R-18895-27365-20289-12607-60428-18477-59440-44133

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)

R-18913-19355-04042-04396-26693-02137-35105-64598

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)

R-18927-01951-35709-41382-23039-58065-29475-65248

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)

R-18962-08090-15768-27249-44223-08875-09432-04987

Hence, a cache created with bPurgeable false will never contain any unpinned pages. (source c3ref/pcache_methods2.html)

R-18964-51531-38235-16261-57269-07859-04237-25462

This function causes any pending database operation to abort and return at its earliest opportunity. (source c3ref/interrupt.html)

R-18968-56672-08189-06837-25504-50513-21713-31862

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)

R-18981-44563-59556-01794-47708-02337-53296-37760

The OFF journaling mode disables the rollback journal completely. (source pragma.html)

R-19003-27813-57127-49100-22413-58501-27554-18699

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)

R-19021-59629-04270-46349-53725-18119-32890-29092

SQLITE_STATUS_SCRATCH_OVERFLOW This parameter returns the number of bytes of scratch memory allocation which could not be satisfied by the SQLITE_CONFIG_SCRATCH buffer and where forced to overflow to sqlite3_malloc(). The values returned include overflows because the requested allocation was too larger (that is, because the requested allocation was larger than the "sz" parameter to SQLITE_CONFIG_SCRATCH) and because no scratch buffer slots were available. (source c3ref/c_status_malloc_count.html)

R-19047-46296-35390-06042-37580-10797-09391-38015

On windows, the first component of an absolute path is a drive specification (e. (source c3ref/open.html)

R-19069-01001-21275-64198-08959-57544-11845-18751

These routines are used to register a new virtual table module name. (source c3ref/create_module.html)

R-19114-56113-41752-64271-30879-46460-35912-30160

Different constraints within the same table may have different default conflict resolution algorithms. (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-19139-12267-31476-22597-30278-48901-50934-33461

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)

R-19162-55388-28844-29887-54254-48882-22034-22486

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)

R-19178-27645-63083-26050-05481-47319-52943-38968

Otherwise, no affinity is applied and both operands are compared as is. (source datatype3.html, checked-by: th3/req1/datatype3_05.test)

R-19186-55658-49729-13397-54658-17694-41016-19836

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)

R-19194-50107-23350-24777-39179-56094-65469-19806

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)

R-19245-12964-15266-21259-12378-18812-33916-24209

The DELETE journaling mode is the normal behavior. (source pragma.html, checked-by: th3/req1/pragma23.test)

R-19334-12811-52965-43642-11320-54818-13590-65507

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)

R-19352-60770-23949-55498-19812-32255-44652-11996

When an applicable constraint violation occurs, the ABORT resolution algorithm aborts the current SQL statement with an SQLITE_CONSTRAIT error and backs out any changes made by the current SQL statement; but changes caused by prior SQL statements within the same transaction are preserved and the transaction remains active. (source lang_conflict.html, checked-by: th3/req1/conflict01.test)

R-19353-43643-11289-35798-30332-46906-60350-15505

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)

R-19393-22085-63206-61334-35392-55321-46849-03619

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)

R-19404-45868-36670-49387-53766-10214-08555-10559

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)

R-19406-19221-39828-63725-16599-34636-45225-33176

The destructor will also be invoked if the call to sqlite3_create_module_v2() fails. (source c3ref/create_module.html)

R-19445-36510-42868-48881-64287-13454-25209-36891

time(timestring, modifier, modifier, ...) (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-19454-21689-24466-55871-29604-18048-60005-14723

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)

R-19480-30968-40912-48323-17771-07927-20882-34034

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)

R-19486-35828-58507-08873-52072-46615-25523-07720

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)

R-19508-26537-11706-47524-41549-27360-33937-41572

If you use the keyword CROSS in a join, then the two tables connected by that join will not be reordered. (source optoverview.html)

R-19509-40356-60366-52142-26522-07330-31595-37095

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)

R-19510-48080-33563-44598-63902-10104-47985-18507

If sqlite3_open_v2() is used and the "cache" parameter is present in a URI filename, its value overrides any behaviour requested by setting SQLITE_OPEN_PRIVATECACHE or SQLITE_OPEN_SHAREDCACHE flag. (source c3ref/open.html, checked-by: tcl/e_uri.test)

R-19515-61262-57142-56165-47391-12804-63366-22975

If there is no match, a NULL pointer is returned. (source c3ref/vfs_find.html, checked-by: th3/req1/vfs01.test)

R-19553-64528-24132-56992-22388-20387-05422-50188

Total() never throws an integer overflow. (source lang_aggfunc.html, checked-by: th3/req1/aggfunc01.test)

R-19619-42762-44736-08897-02902-26192-57996-46412

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)

R-19619-54598-52217-51985-41765-58210-14890-62978

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)

R-19628-13587-38733-35705-07447-40697-34819-47467

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)

R-19648-30943-40070-65065-35301-05411-03146-42916

This option takes three additional arguments that determine the lookaside memory allocator configuration for the database connection. (source c3ref/c_dbconfig_enable_fkey.html, checked-by: th3/req1/dbconfig01.test)

R-19660-56479-36342-33235-14845-36400-09046-33188

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)

R-19672-38383-43870-63614-05691-24053-06228-32918

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)

R-19673-40972-58319-61162-14300-46572-05681-35590

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)

R-19675-50792-48999-16201-33169-04003-56462-65180

PRAGMA index_list(table-name); This pragma returns one row for each index associated with the given table. (source pragma.html, checked-by: th3/req1/pragma15.test)

R-19696-22724-31246-18328-34316-54250-32558-13544

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)

R-19757-35036-22658-29796-35090-49616-44864-00036

The current value of the parameter is returned into *pCurrent. (source c3ref/status.html)

R-19785-02834-31233-04888-56980-35561-24739-27802

This pragma is a wrapper around the sqlite3_wal_autocheckpoint() C interface. (source pragma.html)

R-19803-45884-64369-17915-53923-43638-05068-02663

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)

R-19808-29370-64330-18475-42910-48751-21092-02221

The xDestroy() method is used to delete a cache allocated by xCreate(). (source c3ref/pcache_methods2.html, checked-by: th3/mkth3.tcl)

R-19812-36779-26037-25587-55568-01966-51571-26935

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)

R-19827-62289-58446-52993-02249-28252-12913-58361

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)

R-19920-11576-34548-21403-56992-25102-09000-41133

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)

R-19943-24538-24231-65109-02028-34287-34469-46541

Closing a BLOB shall cause the current transaction to commit if there are no other BLOBs, no pending prepared statements, and the database connection is in autocommit mode. (source c3ref/blob_close.html)

R-19950-45603-61367-58731-61290-49608-29406-34267

The first column of an SQLite R*Tree must always be an integer primary key. (source rtree.html)

R-19971-54976-54556-37696-16686-39038-59563-20085

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)

R-19982-00724-51550-61529-52295-40817-37605-44623

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)

R-20149-25884-15163-16334-64710-02284-04877-02507

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)

R-20205-17349-17235-26223-03175-26249-31726-44344

If the WHERE clause is not present, all records in the table are deleted. (source lang_delete.html, checked-by: tcl/e_delete.test)

R-20210-23164-18665-04349-57984-05045-09964-53374

Unregister a VFS with the sqlite3_vfs_unregister() interface. (source c3ref/vfs_find.html, checked-by: th3/req1/vfs01.test)

R-20262-06249-08007-38401-43127-56610-34465-06889

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)

R-20288-20462-40897-06475-02423-38114-51456-07200

The first form (with the "VALUES" keyword) creates a single new row in an existing table. (source lang_insert.html, checked-by: tcl/e_insert.test)

R-20339-64003-24275-14776-38996-63966-02497-20063

Format 4 causes SQLite to respect the DESC keyword on index declarations. (source fileformat2.html)

R-20391-43527-53623-61319-58031-07910-46932-20040

If the source database is modified during a backup operation, then the values are not updated to account for any extra pages that need to be updated or the size of the source database file changing. (source c3ref/backup_finish.html)

R-20409-33051-08329-62436-45384-49643-45094-34288

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)

R-20413-39093-25878-54576-60732-55561-33363-27302

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)

R-20419-58047-32048-57525-49522-20687-43753-47745

When an SQL table that includes an INTEGER PRIMARY KEY column (which aliases the rowid) then that column appears in the record as a NULL value. (source fileformat2.html)

R-20446-37715-39007-53706-23139-04675-09949-14226

If no WHEN clause is supplied, the SQL statements are executed for all rows. (source lang_createtrigger.html, checked-by: slt/slt_lang_createtrigger.test)

R-20458-17724-23008-35851-11607-14288-61601-02157

The "utc" is the opposite of "localtime". "utc" assumes that the string to its left is in the local timezone and adjusts that string to be in UTC. (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-20467-43422-30485-36826-60194-40272-32740-00331

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)

R-20474-44465-10719-25363-46434-31101-34097-17120

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)

R-20501-61796-04411-55847-12265-31156-46104-30221

A value of 13 means the page is a leaf table b-tree page. (source fileformat2.html)

R-20520-54086-20387-28345-20691-46445-65238-30953

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_getmalloc.html)

R-20522-24639-64843-46593-15271-56498-04629-60238

The sqlite3_strnicmp() API allows 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/strnicmp.html, checked-by: src/util.c)

R-20533-60939-10698-49029-55085-32598-43205-37289

A single record is output for the parent (compound query) identifying the operation, and whether or not a temporary b-tree is used to implement it. (source eqp.html, checked-by: th3/req1/eqp01.test)

R-20560-39162-53987-29912-13699-13892-53398-21192

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)

R-20609-23860-31620-63775-42539-11534-17004-18607

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)

R-20637-43463-07167-46903-44256-61988-15144-63319

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)

R-20643-25656-58463-39709-46255-05856-32679-34239

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/mkth3.tcl, th3/req1/datacnt01.test)

R-20659-43267-07276-59549-15108-29047-28907-35034

In other words, if the left-hand dataset consists of Nlhs rows of Mlhs columns, and the right-hand dataset of Nrhs rows of Mrhs columns, then the cartesian product is a dataset of Nlhs.Nrhs rows, each containing Mlhs+Mrhs columns. (source lang_select.html, checked-by: tcl/e_select.test)

R-20665-17792-14135-29123-51100-08894-37624-05824

The result of any binary operator is either a numeric value or NULL, except for the || concatenation operator which always evaluates to either NULL or a text value. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-20690-50594-54745-63542-12245-05150-52761-00851

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)

R-20753-15510-22939-07148-44219-41406-54417-64713

The sqlite3_stmt_busy(S) interface returns true (non-zero) if the prepared statement S has been stepped at least once using sqlite3_step(S) but has not run to completion and/or has not been reset using sqlite3_reset(S). (source c3ref/stmt_busy.html, checked-by: th3/cov1/vdbeapi03.test)

R-20764-08557-44636-37820-57025-55687-54503-45756

The 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)

R-20784-11852-57325-61888-34040-48421-29147-36386

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)

R-20790-14025-05441-59886-17616-40247-63857-04714

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)

R-20857-32692-20795-02101-46664-36777-53557-28223

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)

R-20915-35810-14572-42507-50726-14071-51730-17527

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)

R-20944-50040-32536-32451-12201-33674-47359-21324

The default file format is set by the SQLITE_DEFAULT_FILE_FORMAT compile-time option. (source pragma.html, checked-by: th3/req1/pragma22.test)

R-20958-54138-45241-50664-65336-36333-30654-63832

An attempt to write to an expired BLOB handle fails with an error code of SQLITE_ABORT. (source c3ref/blob_write.html)

R-20974-45876-55609-02198-26922-65375-59673-02037

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/mkth3.tcl)

R-20983-25183-16317-48719-00472-39133-57551-19276

If sqlite3_config() is called after sqlite3_initialize() and before sqlite3_shutdown() then it will return SQLITE_MISUSE. (source c3ref/config.html)

R-21003-54221-59589-12513-12600-39825-11085-16301

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)

R-21040-07025-18543-54373-08853-16375-22367-30048

sqlite> EXPLAIN QUERY PLAN SELECT t1.*, t2.* FROM t2, t1 WHERE t1.a=1 AND t1.b>2; 0|0|1|SEARCH TABLE t1 USING COVERING INDEX i2 (a=? AND b>?) (~3 rows) 0|1|0|SCAN TABLE t2 (~1000000 rows) (source eqp.html, checked-by: tcl/eqp.test)

R-21045-49823-30904-23854-46961-49739-55639-21354

This option takes a single argument which is a pointer to an sqlite3_pcache_methods2 object. This object specifies the interface to a custom page cache implementation. (source c3ref/c_config_getmalloc.html)

R-21062-30088-46553-38702-08225-06060-08730-53281

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)

R-21086-29159-05784-52048-16517-04809-46678-41234

The INDEXED BY phrase is an SQL extension found only in SQLite which can be used to verify that the correct indices are being used on a DELETE, SELECT, or UPDATE statement. (source lang_indexedby.html)

R-21148-64834-51953-28586-58289-58298-04009-03354

The "INSERT INTO table DEFAULT VALUES" form of the INSERT statement is not supported. (source lang_createtrigger.html)

R-21182-58169-20146-54960-02459-65291-16580-58190

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)

R-21228-58399-13607-54712-08787-36573-11741-23051

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)

R-21230-37464-43575-41237-19163-46428-41996-08800

The time string can be followed by zero or more modifiers that alter date and/or time. (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-21255-50161-25810-42393-31454-28236-31767-53292

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 NONE 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)

R-21274-02227-62864-03639-07150-27166-13487-20730

The sqlite3_interrupt(D) call is in effect until all currently running SQL statements on database connection D complete. (source c3ref/interrupt.html)

R-21289-11559-44144-51194-15224-24588-49349-52109

As with PRIMARY KEY constraints, 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)

R-21325-31343-27700-10954-05397-48364-24876-43339

The DESC keyword is ignored in indices for formats 1, 2, and 3. (source fileformat2.html)

R-21339-62938-10206-60125-33641-63547-58173-02852

SQLITE_LIMIT_VDBE_OP The maximum number of instructions in a virtual machine program used to implement an SQL statement. This limit is not currently enforced, though that might be added in some future release of SQLite. (source c3ref/c_limit_attached.html, checked-by: th3/req1/limit02.test)

R-21426-10262-16472-16411-19241-49098-31695-43338

The path component of the URI specifies the disk file that is the SQLite database to be opened. (source uri.html)

R-21475-50824-53732-01656-08042-04621-06593-41786

If Y is omitted then the default entry point of sqlite3_extension_init is used. (source lang_corefunc.html, checked-by: th3/cov1/func03.test)

R-21508-14355-30725-13403-38836-44113-60272-57161

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)

R-21527-28967-38710-01216-03543-44346-41120-54609

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)

R-21555-60916-58264-59419-46832-30971-06241-53598

No storage class conversions occur before the sort. (source datatype3.html, checked-by: th3/req1/datatype3_04.test)

R-21599-16038-23557-29825-04044-13537-53990-06867

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)

R-21743-40944-42989-54407-30660-21784-55083-06141

The sqlite3_mutex_notheld() interface should also return 1 when given a NULL pointer. (source c3ref/mutex_held.html)

R-21769-42523-56036-07125-49513-08938-03164-12762

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: th3/cov1/vdbeapi14.test)

R-21806-43221-13311-12534-07273-62377-06740-15345

The sqlite3_initialize() routine returns SQLITE_OK on success. (source c3ref/initialize.html)

R-21827-30701-03148-53639-55860-16366-16292-16032

The vfs query parameter causes the database connection to be opened using the VFS called NAME. (source uri.html)

R-21829-14563-51248-28780-63073-47174-17671-25024

When casting a BLOB value to INTEGER, the value is first converted to TEXT. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-21838-11078-10665-52699-19008-16494-17869-42876

Within the body of a trigger, the sqlite3_changes() interface can be called to find the number of changes in the most recently completed INSERT, UPDATE, or DELETE statement within the body of the same trigger. However, the number returned does not include changes caused by subtriggers since those have their own context. (source c3ref/changes.html)

R-21859-13901-61139-13430-32790-61483-02643-57592

The ANALYZE command gathers statistics about tables and indices and stores the collected information in a special tables in the database where the query optimizer can use them to help make better query planning choices. (source lang_analyze.html, checked-by: th3/req1/analyze01.test)

R-21926-12440-51056-61142-44683-61094-56845-29582

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)

R-22005-45192-24484-04557-61957-46368-17904-26970

The first column of the result is the rank of the column within the index. (source pragma.html, checked-by: th3/req1/pragma15.test)

R-22170-61870-30154-57457-53348-49651-07083-28271

The memory pointed to by the character pointers returned for the declaration type and collation sequence is valid only until the next call to any SQLite API function. (source c3ref/table_column_metadata.html)

R-22212-63356-49544-38225-38690-44409-41066-08853

Transactions can be deferred, immediate, or exclusive. (source lang_transaction.html)

R-22232-40047-05023-56174-19457-36430-27942-49450

The particular operator is stored in aConstraint[].op using one of the SQLITE_INDEX_CONSTRAINT_ values. (source c3ref/index_info.html)

R-22235-47006-02687-15500-56774-48140-19704-63768

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)

R-22253-05302-09833-31591-31790-52510-11766-44226

sqlite> EXPLAIN QUERY PLAN SELECT t1.*, t2.* FROM t1, t2 WHERE t1.a=1 AND t1.b>2; 0|0|0|SEARCH TABLE t1 USING COVERING INDEX i2 (a=? AND b>?) (~3 rows) 0|1|1|SCAN TABLE t2 (~1000000 rows) (source eqp.html, checked-by: tcl/eqp.test)

R-22258-07508-09637-27611-33814-52193-51771-46661

The default value for integer is 100. (source pragma.html)

R-22283-14179-18327-11516-19708-03741-18136-56509

Tables are removed using the DROP TABLE statement. (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-22309-26004-04913-07405-19734-55428-18120-53442

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)

R-22347-12719-38657-19900-45791-11174-27141-23723

When a configuration option is set, sqlite3_config() returns SQLITE_OK. (source c3ref/config.html)

R-22391-07186-37161-38876-45465-63159-33403-63078

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)

R-22419-13532-56049-65481-64760-14965-44554-54437

BINARY Strings are compared byte by byte using the memcmp() function from the standard C library. (source fileformat2.html)

R-22484-49535-05658-48568-12441-17149-15045-25439

Leading spaces are removed. (source fileformat2.html)

R-22517-03298-06877-11770-25908-54043-03696-50918

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)

R-22517-09812-56179-10540-44970-47912-40768-05667

SQLITE_STATUS_PAGECACHE_SIZE This parameter records the largest memory allocation request handed to 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)

R-22528-31592-23814-33593-53187-04400-51621-15631

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)

R-22564-11647-52151-33857-28940-09855-65445-38014

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)

R-22567-44039-44321-46904-30045-11816-43845-22039

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)

R-22628-64423-61675-18888-38519-55715-49755-10742

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 from sqlite3_malloc() before it returns. (source c3ref/result_blob.html, checked-by: th3/req1/result02.test)

R-22655-13879-23181-45430-34065-63005-59196-64005

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)

R-22662-28218-11402-23235-34288-43676-21619-60718

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)

R-22671-22821-00746-11610-44216-38779-63984-03906

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)

R-22671-54036-59271-48827-17148-12128-60554-20551

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)

R-22710-53328-59796-08773-22880-08291-09347-39531

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)

R-22724-45533-32532-12289-36170-43581-26380-53780

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)

R-22775-56496-41539-17618-40069-32534-05343-62688

If there is an ON clause specified, then the ON expression is evaluated for each row of the cartesian product as a boolean expression. All rows for which the expression evaluates to false are excluded from the dataset. (source lang_select.html, checked-by: tcl/e_select.test, tcl/e_select2.test)

R-22782-22472-63620-46521-58776-65513-25083-63478

Names are zero-terminated UTF-8 strings. (source c3ref/vfs_find.html, checked-by: th3/req1/vfs01.test)

R-22795-48828-40923-07115-03137-30466-52786-33478

If X is a BLOB then the indices refer to bytes. (source lang_corefunc.html, checked-by: th3/cov1/func02.test)

R-22840-54810-39242-43935-10407-48036-06084-53520

This function may only modify the contents of the BLOB; it is not possible to increase the size of a BLOB using this API. (source c3ref/blob_write.html)

R-22868-25880-64801-36236-02118-32586-25357-26503

The LIKE operator can be made case sensitive using the case_sensitive_like pragma. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-22874-32655-19107-54690-43718-02354-42963-28969

ORDER BY and LIMIT clauses may only occur at the end of the entire compound SELECT. (source lang_select.html, checked-by: tcl/e_select.test)

R-22934-25134-31918-65183-03263-52759-06599-24509

Comments are treated as whitespace by the parser. (source lang_comment.html, checked-by: src/tokenize.c)

R-22956-37754-14278-17642-05627-50863-58555-30245

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)

R-22958-57964-21518-29993-48758-46150-56113-34417

But 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)

R-22959-32721-56002-12308-34950-52043-10662-17468

12 4 A random nonce for the checksum (source fileformat2.html)

R-23019-08375-23742-45203-57540-44774-03255-16704

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)

R-23025-34321-53440-17551-64635-00032-03474-62946

The maximum page count cannot be reduced below the current database size. (source pragma.html, checked-by: th3/req1/pragma12.test)

R-23027-03515-05606-08970-61667-55431-59935-24913

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)

R-23027-35758-08796-19756-16363-24577-05722-25269

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)

R-23038-23996-21339-41009-49120-44197-27486-19934

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)

R-23075-39245-36315-44421-23373-63820-24651-07544

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: th3/req1/date01.test)

R-23110-47146-52080-06643-60978-41760-17507-36913

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)

R-23120-24122-52717-58793-54182-36500-02638-57419

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)

R-23135-52319-30822-28391-39834-31572-46589-08794

The implementation is not required to provide versions of these routines that actually work. (source c3ref/mutex_held.html)

R-23153-04437-57288-59301-62447-22408-58278-59491

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)

R-23155-55597-19897-49290-61770-15838-04803-37418

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)

R-23180-60923-05343-32377-50021-02687-34017-62191

This function returns the number of database rows that were changed or inserted or deleted by the most recently completed SQL statement on the database connection specified by the first parameter. (source c3ref/changes.html)

R-23182-54295-50785-24596-08451-02370-06326-41675

The cache parameter may be set to either "shared" or "private". (source c3ref/open.html, checked-by: tcl/e_uri.test)

R-23293-62447-32888-51584-58025-47542-61505-16122

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)

R-23299-15149-12260-14236-54625-56854-20927-10236

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)

R-23302-30956-02464-62581-38265-62787-52147-51200

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)

R-23317-28194-01172-55207-26392-36264-04886-28224

The following implementations are available in the SQLite core: SQLITE_MUTEX_OS2 SQLITE_MUTEX_PTHREADS SQLITE_MUTEX_W32 SQLITE_MUTEX_NOOP (source c3ref/mutex_alloc.html)

R-23317-43079-57684-22333-28404-22394-54055-23674

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)

R-23331-02158-03352-54918-44519-63240-29041-31988

The string "UTF-16" is interpreted as "UTF-16 encoding using native machine byte-ordering". (source pragma.html, checked-by: th3/req1/pragma16.test)

R-23332-64992-62836-09715-29451-35524-14907-15195

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: th3/cov1/vdbeapi14.test)

R-23336-07085-33379-01813-11813-48961-61224-20101

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)

R-23378-42536-56340-49562-54695-41894-41223-62715

The second is a copy of the database handle. (source c3ref/wal_hook.html)

R-23441-22541-28214-38824-50125-18016-21255-42245

The COLLATE operator has a higher precedence (binds more tightly) than any prefix unary operator or any binary operator. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-23445-46109-37360-43495-15091-19372-04158-40881

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)

R-23452-42564-31892-16470-45278-27764-45099-08550

If the optional database name is omitted, "main" is assumed. (source pragma.html, checked-by: th3/req1/pragma01.test)

R-23458-03780-07133-16857-18321-45188-49595-32402

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)

R-23479-00031-14881-27531-19387-40447-21321-20674

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)

R-23486-28813-15662-33687-07998-38651-35612-02946

The SQLITE_ prefix is omitted from any strings returned by sqlite3_compileoption_get(). (source c3ref/compileoption_get.html)

R-23498-38103-14789-32362-20893-18131-57271-11278

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)

R-23566-61685-32570-49548-46504-50893-18012-49598

The sqlite3_mprintf() and sqlite3_vmprintf() routines write their results into memory obtained from sqlite3_malloc(). (source c3ref/mprintf.html, checked-by: th3/req1/malloc01.test)

R-23592-00985-33350-36230-18562-60137-07464-16254

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 the magic number is 0x377f0682. (source fileformat2.html)

R-23593-12456-04896-01573-55353-57366-28643-60022

If there is more than one table specified as part of the join-source following the FROM keyword, then the contents of each named table are joined into a single dataset for the simple SELECT statement to operate on. (source lang_select.html, checked-by: tcl/e_select.test)

R-23635-54940-59306-62194-29541-32581-28293-36606

For indices that are automatically created by UNIQUE or PRIMARY KEY constraints, the sqlite_master.sql field is NULL. (source fileformat2.html)

R-23640-47263-12341-60168-43783-53275-58204-18225

The rollback journal file can be truncated to zero length (source fileformat2.html)

R-23648-58527-04335-61943-03061-32754-63941-35147

SQLite only understands upper/lower case for ASCII characters by default. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-23658-63678-27642-11273-33121-18173-42579-42965

The sqlite_master.name column will hold the name of the object. (source fileformat2.html)

R-23682-59820-57074-21944-19735-61329-41044-60872

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)

R-23702-41282-42393-06958-42086-21645-30380-61682

The path is optional if the authority is present. (source uri.html)

R-23774-64117-15302-61921-22939-28381-40174-39816

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)

R-23882-45353-30604-47614-45882-29623-34325-59956

The cell pointer array of a b-tree page immediately follows the b-tree page header. (source fileformat2.html)

R-23914-51476-03843-05689-25158-40099-03729-02958

A literal value can also be the token "NULL". (source lang_expr.html, checked-by: tcl/e_expr.test)

R-23926-36668-62940-27905-35471-64417-49022-40154


(source lang_select.html, checked-by: tcl/e_select.test)

R-23927-54081-32743-59723-35169-61192-28393-34691

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)

R-23929-31743-58027-02127-28995-37198-56222-58306

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)

R-23935-31469-05351-59076-27167-07827-26621-20596

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)

R-23979-26855-11433-13886-36819-17221-39687-26769

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)

R-23980-43280-61587-10591-51567-45451-02507-40247

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)

R-23980-48859-56951-38852-38346-56715-55568-02993

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)

R-23984-49501-37243-56289-03587-60124-22633-25227

PRAGMA ignore_check_constraints = boolean; This pragma enables or disables the enforcement of CHECK constraints. (source pragma.html, checked-by: th3/req1/pragma20.test)

R-24012-23124-00988-32330-56827-30847-27101-61766

The SQLITE_MUTEX_NOOP implementation is a set of routines that does no real locking and is appropriate for use in a single-threaded application. (source c3ref/mutex_alloc.html)

R-24016-17929-42002-59431-23117-37264-43384-47268

C-style comments can span multiple lines. (source lang_comment.html, checked-by: th3/req1/comment01.test)

R-24089-57979-14928-03351-49983-36558-42407-47450

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)

R-24124-56960-26974-01833-44587-40840-08627-58695

URI filename interpretation is enabled if the SQLITE_OPEN_URI flag is set in the fourth 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)

R-24153-28352-05918-29721-55341-26989-15412-17405

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)

R-24157-46062-13277-37526-03999-51751-53681-32386

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)

R-24176-11856-49416-35044-22347-11072-23258-18948

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)

R-24179-60523-60164-40067-19292-39680-45687-45747

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)

R-24188-24349-51458-56364-12806-43304-14352-46380

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)

R-24196-58892-33917-41463-35643-14618-41658-51125

If no errors are found, a single row with the value "ok" is returned. (source pragma.html)

R-24227-04807-65013-09510-28047-53461-17252-27305

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)

R-24309-18625-00401-07909-48413-47852-49350-61832

These special identifiers all describe the unique integer key (the rowid) associated with every row of every table. (source lang_expr.html)

R-24334-46836-37699-41209-48952-15160-39885-36508

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)

R-24369-11919-06769-52248-04505-21926-35359-24531


(source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-24401-52400-49114-60456-18821-28705-54480-01087

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)

R-24408-11841-16708-30331-61955-39086-27640-21297

An application can tell which course of action SQLite took by using the sqlite3_get_autocommit() C-language interface. (source lang_transaction.html)

R-24411-60193-43052-59187-49935-26782-54329-59494

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)

R-24420-43338-21659-30217-32361-58749-59788-18529

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)

R-24433-42760-21501-54800-20604-32904-26746-52498

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)

R-24450-46174-44304-25763-63471-62798-12121-54973

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)

R-24454-61742-57320-38040-08939-30630-11445-30109

The BINARY collating sequence is used for comparisons. (source lang_corefunc.html, checked-by: th3/req1/func03.test)

R-24470-31136-04101-59681-51092-46521-28491-41459

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)

R-24499-57071-23351-26477-16690-35822-52475-36418

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)

R-24505-23230-57666-22051-56312-29400-20176-42804

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)

R-24519-28304-27679-62184-02249-08056-49023-13978

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)

R-24543-02373-21907-00972-51733-48834-36106-39581

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)

R-24596-57909-32096-12351-64612-37660-33667-09663

If there are many OR terms in the WHERE clause or if some of the indices 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)

R-24597-58655-28641-06131-58977-21231-34227-31077

No tests are done for terms that are completely satisfied by indices. (source optoverview.html, checked-by: src/where.c)

R-24625-56801-43002-50418-06223-19456-53547-53426

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_getmalloc.html)

R-24641-64445-22439-28040-38903-58400-61759-51123

Note that number of bytes stored on the leaf page is never less than M. (source fileformat2.html)

R-24663-27339-41709-46831-61109-18753-41935-55210

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)

R-24676-09859-25258-06679-18327-03281-24955-00264

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)

R-24691-27369-29687-09464-65253-51469-13435-14358

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)

R-24728-13230-17441-17828-27985-11598-34826-53003

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)

R-24729-59665-16183-42028-35835-26299-53445-23334

SQLite is careful to deallocate every dynamic mutex that it allocates. (source c3ref/mutex_alloc.html, checked-by: th3/mkth3.tcl)

R-24731-45773-21654-50701-01955-60961-16210-17736

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)

R-24738-46982-10847-07410-11065-35020-61549-58241

Otherwise, it is invoked with two arguments only. (source lang_corefunc.html, checked-by: th3/req1/func02.test)

R-24784-09209-65529-37322-41810-39114-37590-65280

The authority may be omitted, may be blank, or may be "localhost". Any other authority results in an error. (source uri.html)

R-24831-43693-55364-04496-15994-32297-02839-53654

But 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)

R-24843-55391-00331-31917-58094-58865-54184-39062

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)

R-24844-01074-31075-35616-03763-50098-34519-03364

datetime(timestring, modifier, modifier, ...) (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-24854-24731-07056-48016-36151-48843-43846-53234

If prepared statement P does not have results ready to return (via calls to the sqlite3_column_*() of interfaces) then sqlite3_data_count(P) returns 0. (source c3ref/data_count.html, checked-by: th3/req1/datacnt01.test)

R-24874-01721-30373-30915-48096-44417-56853-33182

If sqlite3_collation_needed16() is used, the names are passed as UTF-16 in machine native byte order. (source c3ref/collation_needed.html)

R-24911-36108-02843-41555-24793-65003-42358-61703

The GLOB operator is always case sensitive. (source optoverview.html, checked-by: th3/cov1/pragma02.test)

R-24944-26191-56678-42757-36198-23285-36207-32806

The argument to sqlite3_mutex_alloc() is one of these integer constants: SQLITE_MUTEX_FAST SQLITE_MUTEX_RECURSIVE SQLITE_MUTEX_STATIC_MASTER SQLITE_MUTEX_STATIC_MEM SQLITE_MUTEX_STATIC_MEM2 SQLITE_MUTEX_STATIC_PRNG SQLITE_MUTEX_STATIC_LRU SQLITE_MUTEX_STATIC_LRU2 (source c3ref/mutex_alloc.html)

R-24949-48633-12038-32784-60403-63994-11753-48428

Thus with a deferred transaction, the BEGIN statement itself does nothing to the filesystem. (source lang_transaction.html)

R-24958-23411-18929-15714-30148-06066-52554-42233

Each sub-select is assigned a distinct, non-zero "selectid" value. (source eqp.html, checked-by: th3/req1/eqp01.test)

R-24973-48201-14782-42932-28549-08117-54672-27088

In practice, metadata is preserved between function calls for expressions that are constant at compile time. This includes literal values and parameters. (source c3ref/get_auxdata.html)

R-24984-42113-54448-54138-16961-63127-18743-03855

Any callback set by a previous call to sqlite3_rollback_hook() for the same database connection is overridden. (source c3ref/commit_hook.html)

R-25008-21688-65381-07984-00031-51738-33385-29636

The size of a page is a power of two between 512 and 65536 inclusive. (source fileformat2.html)

R-25048-46581-04940-52749-02967-51891-39439-41238

SQLite will never invoke xInit() more than once without an intervening call to xShutdown(). (source c3ref/pcache_methods2.html, checked-by: th3/mkth3.tcl)

R-25097-55426-57642-39132-22210-42180-07356-31230

If SQLite determines that invoking the busy handler could result in a deadlock, it will go ahead and return SQLITE_BUSY or SQLITE_IOERR_BLOCKED instead of invoking the busy handler. (source c3ref/busy_handler.html)

R-25108-07802-40508-32376-19441-31217-21410-63803

However, if there are pending write operations, the COMMIT command will fail with an error code SQLITE_BUSY. (source lang_transaction.html)

R-25136-65062-60246-57323-36202-59774-22241-57010

This option is used to enable or disable the enforcement of foreign key constraints. (source c3ref/c_dbconfig_enable_fkey.html)

R-25149-22012-48563-28153-37839-65089-07651-08185

The INSERT ... DEFAULT VALUES statement inserts a single new row into the named table. (source lang_insert.html, checked-by: tcl/e_insert.test)

R-25198-00929-53345-49403-12861-49451-38328-38359

PRAGMA foreign_key_list(table-name); This pragma returns one row for each foreign key that references a column in the argument table. (source pragma.html, checked-by: th3/req1/pragma17.test)

R-25343-19498-17466-42652-61214-37840-16481-55260

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)

R-25361-16150-63678-45550-40472-51042-22441-52100

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)

R-25384-39337-58415-17102-37697-27977-14467-00416

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)

R-25394-06637-63632-64734-15986-15167-14146-59945

These routine might also return NULL if a memory allocation error occurs. (source c3ref/column_database_name.html)

R-25459-18529-03655-35597-46929-35137-47473-63058

These routines return 0 if the statement is incomplete. (source c3ref/complete.html, checked-by: th3/cov1/complete01.test)

R-25460-65232-16560-61859-43199-38232-53443-46120

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)

R-25470-13199-56162-41417-58909-25088-16212-52540

The BLOB is closed unconditionally. Even if this routine returns an error code, the BLOB is still closed. (source c3ref/blob_close.html)

R-25473-20557-44472-04975-51987-58936-13072-57785

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)

R-25492-41572-18546-22299-27344-57797-39532-60300

If the SELECT yields no rows, then the value of the expression is NULL. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-25508-47517-53800-52553-37426-36808-15124-36675

Because the acquisition of locks is deferred until they are needed, it is possible that another thread or process could create a separate transaction and write to the database after the BEGIN on the current thread has executed. (source lang_transaction.html)

R-25540-36848-64613-55100-38595-19137-49959-42593

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)

R-25541-17189-03104-63416-46282-42879-07481-01224

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)

R-25558-37487-19096-36063-17437-04044-36041-27526

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)

R-25583-11663-64337-14085-59741-00588-27469-12431

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)

R-25587-45258-04258-19279-64153-15260-17086-46262

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)

R-25588-27181-18097-02154-44633-08776-21987-21638

The EXISTS operator always evaluates to one of the integer values 0 and 1. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-25610-13922-39970-12227-01507-27026-03886-01730

It looks for out-of-order records, missing pages, malformed records, and corrupt indices. (source pragma.html)

R-25613-37547-39472-02780-29297-59051-40019-17427

Indexes are removed with the DROP INDEX command. (source lang_createindex.html, checked-by: th3/req1/createidx01.test)

R-25616-08788-18594-15704-08007-00569-12211-26573

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)

R-25616-61116-19772-20982-08386-58484-18398-18419

The database connection can be changed between full and incremental autovacuum mode at any time. (source pragma.html, checked-by: th3/req1/pragma07.test)

R-25654-38196-54382-29664-57733-52949-37784-40820

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)

R-25698-53233-37700-31268-29379-58660-07035-56459

Thus for the example index above, if there is no WHERE clause term that constraints column c, then terms that constrain columns a and b can be used with the index but not terms that constraint columns d through z. (source optoverview.html)

R-25708-21270-49528-25970-15955-35686-26941-43710

A column with affinity NONE 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)

R-25715-37072-58552-52856-29858-64366-26989-17165

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_getmalloc.html)

R-25726-27770-20459-03461-13607-13171-18925-23787

SQLite will invoke the destructor function (if it is not NULL) when SQLite no longer needs the pClientData pointer. (source c3ref/create_module.html)

R-25787-28949-24920-53948-06133-34727-56080-32939

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)

R-25815-04054-00806-27320-41776-02444-29917-59413

The "%z" formatting option works like "%s" but with the addition that after the string has been read and copied into the result, sqlite3_free() is called on the input string. (source c3ref/mprintf.html, checked-by: th3/req1/malloc01.test)

R-25824-45489-43990-02774-35332-28137-18182-24527

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)

R-25857-01867-51039-59358-11204-13788-02264-02528

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)

R-25883-55063-43215-03328-35797-53686-57723-04298

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)

R-25894-51060-18040-53125-15120-62396-36354-30863

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: th3/cov1/vdbeblob01.test)

R-25950-00887-26391-00141-61376-60148-41906-53274

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)

R-25963-03527-53793-34841-03007-31919-23816-21204

The xInit() method is passed a copy of the sqlite3_pcache_methods2.pArg value. (source c3ref/pcache_methods2.html, checked-by: th3/mkth3.tcl)

R-26000-56589-64657-09406-12178-15033-38154-19492

The xShutdown() method may be NULL. (source c3ref/pcache_methods2.html, checked-by: src/pcache.c)

R-26026-19483-46131-60322-16678-61732-18178-30249

For the purposes of the previous sentence, a column name preceded by one or more unary "+" operators is still considered a column name. (source datatype3.html, checked-by: th3/req1/datatype3_09.test)

R-26030-41411-57646-19570-38371-36124-26436-49384

The highwater mark associated with SQLITE_DBSTATUS_CACHE_USED is always 0. (source c3ref/c_dbstatus_options.html, checked-by: th3/req1/dbstatus01.test)

R-26031-07851-20661-23903-48754-42738-42414-42677

URIs are processed as UTF8 text. (source uri.html)

R-26078-30979-29806-34785-43846-23819-01793-57552

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)

R-26107-59537-62588-20498-27365-04275-00036-56452

If it is unable to promote the lock, then the in-memory cache will be left in an inconsistent state and so the error code is promoted from the relatively benign SQLITE_BUSY to the more severe SQLITE_IOERR_BLOCKED. (source c3ref/busy_handler.html)

R-26117-01852-15491-47779-25813-50210-15791-48499

In this latter case, the integer at offset 64 is true for incremental_vacuum and false for auto_vacuum. (source fileformat2.html)

R-26121-50757-17122-03174-62750-30106-23545-12427


(source lang_indexedby.html)

R-26145-35631-18411-10408-27137-14285-36971-04977

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)

R-26176-60647-43928-09816-19858-42177-19549-07263

An exclusive transaction causes EXCLUSIVE locks to be acquired on all databases. (source lang_transaction.html)

R-26177-52471-27779-44415-45290-32639-49511-38944

The first argument is an integer code for the specific parameter to measure. (source c3ref/status.html)

R-26223-47623-19728-21792-34687-27643-09360-29816

Like other SQL identifiers, database names are case-insensitive. (source lang_naming.html, checked-by: tcl/e_resolve.test)

R-26226-51609-37600-59924-62338-40225-61693-64519

When the legacy_file_format pragma is issued with no argument, it returns the setting of the flag. (source pragma.html, checked-by: th3/req1/pragma22.test)

R-26228-33773-01538-19072-29962-47655-12853-04397

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)

R-26240-27972-41753-52481-56276-48994-27806-58856

As an example of the result table format, suppose a query result is as follows: Name | Age ----------------------- Alice | 43 Bob | 28 Cindy | 21 There are two column (M==2) and three rows (N==3). Thus the result table has 8 entries. Suppose the result table is stored in an array names azResult. Then azResult holds this content: azResult[0] = "Name"; azResult[1] = "Age"; azResult[2] = "Alice"; azResult[3] = "43"; azResult[4] = "Bob"; azResult[5] = "28"; azResult[6] = "Cindy"; azResult[7] = "21"; (source c3ref/free_table.html, checked-by: th3/req1/gettable01.test)

R-26245-27007-61091-63162-56268-13882-14164-49256

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)

R-26267-43414-63813-04870-32404-43287-64705-64465

In the case of an update, this is the rowid after the update takes place. (source c3ref/update_hook.html)

R-26346-36443-14203-01237-59463-02061-43306-07214

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)

R-26377-49195-21869-49397-37126-00993-02015-27234

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)

R-26383-00685-00003-12709-20041-02640-63629-60960

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)

R-26388-52100-18147-39797-05438-03656-60623-16408

The %Q option works like %q except it also adds single quotes around the outside of the total string. Additionally, if the parameter in the argument list is a NULL pointer, %Q substitutes the text "NULL" (without single quotes). (source c3ref/mprintf.html, checked-by: th3/req1/malloc01.test)

R-26406-03647-33657-03652-13422-62298-62842-50282

It is possible for the library compile-time C preprocessor symbol SQLITE_TEMP_STORE to override this pragma setting. (source pragma.html)

R-26427-33659-32322-40327-33016-33915-32615-17849

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)

R-26490-64257-21643-35537-33187-49961-28588-55610

But making modifications to this table will likely perturb the AUTOINCREMENT key generation algorithm. (source autoinc.html, checked-by: th3/req1/autoinc01.test)

R-26501-17306-17113-63025-42217-43181-46541-32131

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)

R-26505-44970-64433-10507-16326-14453-33346-35686

It is harmless, apart from the wasted memory, to make sz a little too large. (source c3ref/c_config_getmalloc.html)

R-26578-03501-48329-54809-40303-33325-20677-03881

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)

R-26601-01119-55361-00031-26734-63731-65122-53650

Subject to rules (11), (12) and (13), they may also contain ORDER BY, LIMIT and OFFSET clauses. (source optoverview.html)

R-26602-05678-16907-15766-43643-13869-48465-09322

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)

R-26684-40576-09126-53282-12439-40003-41887-60526

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)

R-26704-30334-42154-41889-16850-21412-27655-04243

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)

R-26801-64137-39079-48164-16524-44855-40563-04540

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)

R-26810-60950-31083-35442-30714-31340-57644-05934

If the authority section is present, then the path is always an absolute pathname. (source uri.html)

R-26835-10964-22323-42888-35777-38355-20607-28933

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_enable_fkey.html, checked-by: src/main.c, th3/req1/dbconfig01.test)

R-26835-34471-30842-38170-16771-41578-05053-31515

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)

R-26845-32976-14599-31607-31221-37786-17413-24156

Value "rwc" is equivalent to setting both SQLITE_OPEN_READWRITE and SQLITE_OPEN_CREATE. (source c3ref/open.html, checked-by: tcl/e_uri.test)

R-26867-15998-27811-15476-17855-30643-19823-37570

When no indices are available to aid the evaluation of a query, SQLite might create an automatic index that lasts only for the duration of a single SQL statement and use that index to help boost the query performance. (source optoverview.html)

R-26888-26313-07515-35775-03599-15989-59200-07369

The default setting is off, meaning that CHECK constraints are enforced by default. (source pragma.html, checked-by: th3/req1/pragma20.test)

R-26917-59594-53851-11147-17067-15964-43582-37189

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)

R-26947-19317-61341-19233-36872-20864-34826-22893

If the statement is a COMMIT or occurs outside of an explicit transaction, then you can retry the statement. (source c3ref/step.html)

R-26959-28969-15823-07414-35392-55670-52959-52462

As of version 3.6.18, without running ANALYZE, SQLite will choose option 2. (source optoverview.html)

R-26972-25540-17987-13345-11118-49972-58252-62199

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)

R-26983-26377-28520-42834-28942-17818-52547-06980

INTEGER PRIMARY KEY columns aside, both UNIQUE and PRIMARY KEY constraints are implemented by creating an index in the database (in the same way as a "CREATE UNIQUE INDEX" statement would). (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-26993-43540-10992-37102-45404-55683-60247-30594

Passing zero or a negative value as the nFrame parameter disables automatic checkpoints entirely. (source c3ref/wal_autocheckpoint.html)

R-27002-52307-56024-23951-62365-30891-30149-50327

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)

R-27108-11003-35381-33223-00139-25935-11742-39438

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)

R-27192-61982-03758-21332-41239-32834-09507-36997

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)

R-27219-49057-63143-35616-48690-21583-47587-41101

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)

R-27225-53936-31757-11046-62632-10831-21921-34667

A value of 2 means the page is an interior index b-tree page. (source fileformat2.html)

R-27225-65050-43681-51658-36819-05479-30302-31523

If the value of is NULL, then the result of the CAST expression is also NULL. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-27228-35217-15852-02871-02611-58321-58852-42304

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)

R-27233-36134-02415-56146-29406-58738-02461-00763

The subquery is not DISTINCT or the outer query is not a join. (source optoverview.html)

R-27247-61893-58255-11187-04893-04830-19499-51561

If the name of the table is unique across all attached databases and the main and temp databases, then the database-name prefix is not required. (source lang_attach.html, checked-by: th3/req1/attach01.test)

R-27268-61727-54719-17614-54419-52191-54345-55782


(source lang_altertable.html, checked-by: th3/req1/altertable01.test)

R-27280-34366-63015-08711-30594-32620-64348-44111

The first time the sqlite3_aggregate_context(C,N) routine is called for a particular aggregate function, SQLite allocates N of memory, zeroes out that memory, and returns a pointer to the new memory. (source c3ref/aggregate_context.html, checked-by: th3/req1/aggcntx01.test)

R-27301-09658-03082-11591-62753-46064-11323-29821

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)

R-27327-54431-40312-06060-63431-19500-57112-52669

The entry point is zProc. (source c3ref/load_extension.html)

R-27363-63308-55807-24434-61973-58824-33773-60814

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)

R-27383-10246-01655-25271-51755-59417-27078-62241

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)

R-27453-53261-48254-05507-57640-45000-03691-00000

The key to an index b-tree is a record composed of the columns that are being indexed followed by the rowid of the table row. (source fileformat2.html)

R-27458-04043-31882-50848-08148-11623-61104-53512

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)

R-27464-47829-21227-15011-05261-27187-45850-15598

This option takes single argument of type int, interpreted as a boolean, which enables or disables the collection of memory allocation statistics. (source c3ref/c_config_getmalloc.html)

R-27484-01467-40660-08782-16756-57898-53117-01697

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)

R-27484-38990-39416-37657-02655-32272-61477-41469

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)

R-27542-21820-48287-27325-53525-05675-63695-54951

The ANALYZE command scans all indices of database where there might be a choice between two or more indices and gathers statistics on the selectiveness of those indices. (source optoverview.html)

R-27599-07502-21530-13120-63753-37571-15799-15475

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)

R-27649-21314-13870-57957-53735-15830-08405-07126

However a left outer join is neither commutative nor associative and hence will not be reordered. (source optoverview.html)

R-27652-53388-13284-45406-16410-08171-15452-53884

PRAGMA default_cache_size; PRAGMA 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)

R-27702-51733-15398-16850-47606-12840-18480-45806

New VFSes are registered with sqlite3_vfs_register(). (source c3ref/vfs_find.html, checked-by: th3/req1/vfs01.test)

R-27741-36039-35312-26646-43562-16753-08652-02657

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)

R-27753-05999-58187-16156-08992-28399-17856-50930

The 5th parameter to the authorizer callback is the name of the database ("main", "temp", etc.) if applicable. (source c3ref/c_alter_table.html)

R-27775-64721-40407-04494-31964-21217-54345-17508

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)

R-27800-48033-09479-04735-22303-21367-59255-07249

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)

R-27809-56550-37281-65484-19482-39813-11020-02299

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)

R-27819-43026-21380-16418-25214-30821-40612-27368

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)

R-27847-27229-42495-29063-58716-22268-05238-18530

The first argument is the database connection object to be interrogated. (source c3ref/db_status.html, checked-by: th3/req1/dbstatus01.test)

R-27882-59129-50154-47424-02617-12665-50788-31727

The view to drop is identified by the view-name and optional database-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)

R-27896-13480-56358-14836-45881-39569-16238-21022

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)

R-27910-63456-49633-56474-25927-30250-35983-46521

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)

R-27925-06263-58551-32265-51230-19990-38380-59040

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/soft_heap_limit64.html, checked-by: th3/req1/softheaplimit02.test)

R-27935-58314-00156-50891-26988-61472-07043-33985

Any prior cache entry associated with newKey is guaranteed not to be pinned. (source c3ref/pcache_methods2.html)

R-27941-57764-10424-18721-07448-14003-34159-15666

The sqlite3_rollback_hook() interface registers a callback function to be invoked whenever a transaction is rolled back. (source c3ref/commit_hook.html)

R-27975-10951-36626-45634-17207-15426-09206-29636


(source lang_droptrigger.html, checked-by: tcl/e_droptrigger.test)

R-27994-60376-08852-47971-54191-53637-09431-08610

The same arbitrarily selected row is used for each non-aggregate expression. (source lang_select.html, checked-by: tcl/e_select.test)

R-28051-59567-56645-15588-46628-55433-20920-32934

Other processes can continue to read from the database, however. (source lang_transaction.html)

R-28054-53927-06304-60532-01730-48719-20616-01346

The default setting is determined by the SQLITE_SECURE_DELETE compile-time option. (source pragma.html, checked-by: th3/cov1/pragma20.test, th3/cov1/pragma21.test)

R-28154-50356-30058-06874-19427-46158-45979-22702

The file change counter is a 4-byte big-endian integer which is incremented whenever the database file is unlocked after having been modified. (source fileformat2.html)

R-28170-10886-01228-38547-37735-16350-02783-15797

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)

R-28220-46694-36270-42674-38857-47778-22952-56853

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)

R-28228-32357-57123-54703-49475-19797-57317-46170

Note that for serial types 0, 8, 9, 12, and 13, the value is zero bytes in length. If all columns are of these types then the body section of the record is empty. (source fileformat2.html)

R-28229-64777-06590-55758-54727-64377-65259-21401

If the nByte argument is less than zero, then zSql is read up to the first zero terminator. (source c3ref/prepare.html, checked-by: th3/req1/prepare01.test)

R-28262-47447-02372-41671-47406-00862-29752-13937

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)

R-28307-32767-23693-57600-42950-25827-15696-21088

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)

R-28308-37813-32671-42755-08562-58531-65045-64617


(source lang_select.html, checked-by: tcl/e_select.test)

R-28312-64704-30092-58113-01356-46939-35653-28661

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)

R-28346-31823-44337-58654-12319-45607-22371-22984

A call to either function replaces the existing collation-needed callback. (source c3ref/collation_needed.html)

R-28351-07091-05361-50500-02238-36187-02311-00737

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)

R-28354-25769-10832-05903-55122-04051-18142-34428

If the first parameter to sqlite3_realloc() is a NULL pointer then its behavior is identical to calling sqlite3_malloc(N) where N is the second parameter to sqlite3_realloc(). (source c3ref/free.html, checked-by: src/malloc.c, th3/req1/malloc02.test)

R-28453-47400-61335-60267-59373-07041-42359-06361

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)

R-28465-35432-54989-58142-09664-10793-19950-25889

When the temp_store setting is changed, all existing temporary tables, indices, triggers, and views are immediately deleted. (source pragma.html)

R-28489-56180-35816-28725-23682-13973-48787-26581


(source lang_attach.html, checked-by: th3/req1/attach01.test)

R-28530-22001-17760-49127-38466-18799-32025-16275

Content is not actually committed on the disk until the outermost transaction commits. (source lang_savepoint.html)

R-28545-50839-26009-50683-27316-18552-46767-09065

SQLite will only request a recursive mutex in cases where it really needs one. (source c3ref/mutex_alloc.html)

R-28634-61063-44778-38561-20362-05980-13176-50824

PRAGMA locking_mode; PRAGMA locking_mode = NORMAL | EXCLUSIVE (source pragma.html, checked-by: th3/req1/pragma04.test)

R-28659-11035-10621-07368-12698-03611-12155-24539

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)

R-28676-32830-52785-15539-23546-23390-27594-39349

The xMutexInit routine is called by SQLite exactly once for each effective call to sqlite3_initialize(). (source c3ref/mutex_methods.html)

R-28691-49464-13455-34259-09637-44341-17028-46530

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)

R-28740-04940-19074-59456-16824-11848-19165-57032

The time() function returns the time as HH:MM:SS. (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-28760-53843-47957-08431-27887-29261-48374-11570

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)

R-28818-00847-36702-14411-16104-05353-45723-35449

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)

R-28818-63526-62393-01881-62533-13491-06138-19891

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)

R-28853-08147-20510-38197-22369-16459-32849-06937

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)

R-28888-42274-08103-28138-34725-55152-28406-13778

SQLITE_STATUS_SCRATCH_SIZE This parameter records the largest memory allocation request handed to scratch 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)

R-28943-18933-32887-09323-29571-50162-11911-61413

The "INDEXED BY index-name" clause specifies that the named index must be used in order to look up values on the preceding table. (source lang_indexedby.html)

R-28989-00211-56037-13079-09434-49891-20969-08914

sqlite3_config() can be called as part of the implementation of an application-defined sqlite3_os_init(). (source c3ref/config.html)

R-28995-46979-25570-20018-47836-46368-43472-22663

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)

R-29005-40549-62573-61718-07162-40054-58592-42696

FTS4 uses term prefix indexes to speed up prefix queries. (source fts3.html)

R-29017-46238-05238-21536-25250-22199-46768-04510

If no metadata has been ever been set for the Nth argument of the function, or if the corresponding function parameter has changed since the meta-data was set, then sqlite3_get_auxdata() returns a NULL pointer. (source c3ref/get_auxdata.html)

R-29052-00975-25766-49663-50070-52826-19346-28533

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)

R-29082-45770-21240-41661-14924-48900-49346-30675

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)

R-29113-38283-27136-26759-43534-34900-28619-25538

Queries of the following forms will be optimized to run in logarithmic time assuming appropriate indices exist: SELECT MIN(x) FROM table; SELECT MAX(x) FROM table; (source optoverview.html)

R-29137-58191-04727-48044-60255-14464-15278-17646

SQLITE_STATUS_MALLOC_COUNT This parameter records the number of separate memory allocations currently checked out. (source c3ref/c_status_malloc_count.html)

R-29144-37270-15316-24457-48532-24353-08508-55125

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)

R-29161-24939-37010-28632-36605-59202-44014-09658

This is the number of sort operations that have occurred. (source c3ref/c_stmtstatus_counter.html)

R-29198-50701-28906-62015-01619-10608-18054-51120

When the commit hook callback routine returns zero, the COMMIT operation is allowed to continue normally. (source c3ref/commit_hook.html)

R-29213-61195-54301-03299-01569-39638-01555-01215

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)

R-29217-59451-19310-28828-11376-07138-52256-15331


(source lang.html, checked-by: th3/req1/lang01.test)

R-29263-18958-07673-24386-24101-32791-35483-64861

The default setting is synchronous=FULL. (source pragma.html)

R-29276-00741-11068-20150-45137-35653-26807-40835

When the locking-mode is set to EXCLUSIVE, the database connection never releases file-locks. (source pragma.html, checked-by: th3/req1/pragma04.test)

R-29289-63008-50100-53333-04708-14382-39555-39857

The SQLITE_FCNTL_PERSIST_WAL opcode is used to set or query the persistent Write AHead Log setting. (source c3ref/c_fcntl_chunk_size.html)

R-29319-62175-31242-39109-13345-46061-10840-60903

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)

R-29353-26294-62114-45133-33417-28665-47147-29185

PRAGMA fullfsync PRAGMA fullfsync = boolean; Query or change the fullfsync flag. (source pragma.html, checked-by: th3/req1/pragma11b.test)

R-29356-02391-20787-31753-20232-32348-21090-16703

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)

R-29387-20242-08784-06903-03129-29684-27650-40318

Some virtual table implementations might impose additional restrictions. (source lang_createvtab.html)

R-29466-27412-45786-34057-43817-35684-25480-06167

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)

R-29487-60664-46502-00172-20406-63443-24870-58948

If there is no explicitly declared INTEGER PRIMARY KEY column, then the output parameters are set as follows: data type: "INTEGER" collation sequence: "BINARY" not null: 0 primary key: 1 auto increment: 0 (source c3ref/table_column_metadata.html)

R-29497-04603-39486-29131-04048-03697-44723-21949

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)

R-29512-54644-05780-17564-45452-02840-21704-61078

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)

R-29538-34987-07238-64188-64158-06889-50248-62239

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)

R-29555-61994-05019-56778-12354-29013-03139-17266

Note that if X and Y.Z are column names, then +X and +Y.Z are considered expressions for the purpose of determining affinity. (source datatype3.html, checked-by: th3/req1/datatype3_05.test)

R-29588-44058-56045-00722-36389-33824-35706-30523

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)

R-29600-32407-54811-33651-22955-26262-16018-30636

sqlite3_free() is used to free idxPtr if and only if needToFreeIdxPtr is true. (source c3ref/index_info.html)

R-29604-30395-11418-33165-02079-38209-02467-57208

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)

R-29629-55858-55328-41166-17171-44417-01732-51851

Type is associated with individual values, not with the containers used to hold those values. (source c3ref/column_decltype.html)

R-29639-49338-45805-35258-41039-23584-19093-35749

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)

R-29649-49812-55856-43048-16547-37449-39759-10169

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)

R-29691-21352-53312-54436-56868-51235-26976-62729

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)

R-29702-55194-05446-48408-53607-29729-56782-07687

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)

R-29704-26647-58862-58935-31533-13851-11315-20283

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)

R-29717-44395-08942-06738-40999-59485-13734-40908

The SQLITE_FCNTL_SYNC_OMITTED opcode is generated internally by SQLite and sent to all VFSes in place of a call to the xSync method when the database connection has PRAGMA synchronous set to OFF. (source c3ref/c_fcntl_chunk_size.html)

R-29740-29379-09735-48719-34134-53325-08131-24362

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)

R-29748-45567-07187-24756-39474-12329-09927-01777

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)

R-29753-05667-59108-06137-58483-55469-25582-30166

The text of query parameters is appended to the filename argument of the xOpen method of the VFS. (source uri.html)

R-29765-45832-49120-26582-31576-30942-45829-65039

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)

R-29779-04281-26216-55813-25026-31775-44460-23073

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)

R-29804-27366-08727-59986-31864-09983-14088-09844

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)

R-29830-14325-45586-46074-54512-52450-29043-42603

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)

R-29855-60809-01544-19871-54336-63942-18466-34966

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)

R-29868-13536-10966-03336-45139-07308-57583-25685

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)

R-29884-43993-19357-13132-02641-29383-22289-61508

sqlite> EXPLAIN QUERY PLAN SELECT (SELECT b FROM t1 WHERE a=0), (SELECT a FROM t1 WHERE b=t2.c) FROM t2; 0|0|0|SCAN TABLE t2 (~1000000 rows) 0|0|0|EXECUTE SCALAR SUBQUERY 1 1|0|0|SEARCH TABLE t1 USING COVERING INDEX i2 (a=?) (~10 rows) 0|0|0|EXECUTE CORRELATED SCALAR SUBQUERY 2 2|0|0|SEARCH TABLE t1 USING INDEX i3 (b=?) (~10 rows) (source eqp.html, checked-by: tcl/eqp.test)

R-29897-28851-11131-17538-15635-12313-50588-15022

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)

R-29901-08836-51888-40758-53445-49475-03703-08720

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/mkth3.tcl)

R-29907-62378-42519-29973-48919-58819-22759-58497

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)

R-29987-53326-32227-44761-37373-28199-35279-34751

The leftmost column of the result set has the index 0. (source c3ref/column_blob.html, checked-by: th3/req1/column01.test)

R-29989-03153-00644-12353-52386-44408-44979-16456

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)

R-30008-03647-27202-20831-29850-54434-32362-14140

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)

R-30082-38996-55894-31210-19025-03289-36793-27218

The non-equals operator can be either != or <>. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-30083-58938-31645-59750-38554-41419-43937-22175

The index of the column is stored in aConstraint[].iColumn. (source c3ref/index_info.html)

R-30104-14201-52849-13140-57489-26582-19257-15267

Additional application-specific collating functions can be added to SQLite using the sqlite3_create_collation() interface. (source fileformat2.html)

R-30130-35580-22710-51488-33023-50540-34126-23356

If SQLite is compiled with the SQLITE_MUTEX_APPDEF preprocessor macro defined (with "-DSQLITE_MUTEX_APPDEF=1"), then no mutex implementation is included with the library. In this case the application must supply a custom mutex implementation using the SQLITE_CONFIG_MUTEX option of the sqlite3_config() function before calling sqlite3_initialize() or any other public sqlite3_ function that calls sqlite3_initialize(). (source c3ref/mutex_alloc.html)

R-30133-51826-26548-49870-21915-40330-05872-49293

If sqlite3_close() is called on a database connection that still has outstanding prepared statements or BLOB handles, then it returns SQLITE_BUSY. (source c3ref/close.html, checked-by: th3/cov1/main23.test)

R-30135-06439-12622-19657-03902-02051-33050-20191

The wal_autocheckpoint pragma can be used to invoke this interface from SQL. (source c3ref/wal_autocheckpoint.html)

R-30183-02411-51653-12439-28601-35292-29991-26637

Simply setting the locking-mode to NORMAL is not enough - locks are not be released until the next time the database file is accessed. (source pragma.html, checked-by: th3/req1/pragma04.test)

R-30189-54097-58322-43687-36717-28803-52946-09131

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)

R-30203-16177-21836-43860-61302-22339-06718-16250

If a WHERE clause is supplied, then only those rows for which the result of evaluating the WHERE clause as a boolean expression is true are deleted. (source lang_delete.html, checked-by: tcl/e_delete.test)

R-30224-53949-52765-04057-07963-58169-00243-05425

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)

R-30248-02140-43435-09276-30517-50982-49513-41085

The first three columns contain an integer value. (source eqp.html, checked-by: th3/req1/eqp01.test)

R-30269-25284-41363-48378-16742-02348-00072-11353

The default value of the fullfsync flag is off. (source pragma.html, checked-by: th3/req1/pragma11b.test)

R-30289-14071-27809-01913-29667-24551-37789-33756

The mode query parameter determines if the new database is opened read-only, read-write, or read-write and created if it does not exist. (source uri.html)

R-30311-39793-14973-30919-34186-11921-51287-47112

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)

R-30323-21917-40561-21411-57538-63013-10240-64875

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)

R-30347-18702-41681-51017-11561-03801-56644-21815

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)

R-30358-48480-02487-45285-44102-55038-52936-37421

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)

R-30374-63100-15715-29897-06518-00278-46226-59168

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)

R-30391-20943-57014-62404-57876-35219-41861-22105

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)

R-30433-25443-23879-51033-37593-48703-34224-12115

An underscore ("_") in the LIKE pattern matches any single character in the string. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-30441-22868-56259-01619-42877-06616-24361-33172

Whenever a prepared statement runs, it first checks the schema cookie to make sure the value is the same as when the statement was prepared and if the schema cookie has changed, the statement aborts in order to force the statement to be reprepared. (source fileformat2.html)

R-30470-29835-03618-00817-05721-31518-05673-45416

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)

R-30481-56627-22651-35996-10349-58660-54475-15242

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)

R-30526-43432-10994-07089-02178-39041-60976-54446

The locking mode of temp and in-memory databases cannot be changed. (source pragma.html, checked-by: th3/req1/pragma04.test)

R-30536-43680-50770-40258-41910-12712-43265-49124


(source lang_createtrigger.html)

R-30575-11662-27588-39588-65312-47718-51779-38548

But virtual terms never generate code that is tested against input rows. (source optoverview.html, checked-by: src/where.c)

R-30582-29746-05981-37310-62755-30295-44870-62832

If the callback on a commit hook function returns non-zero, then the commit is converted into a rollback. (source c3ref/commit_hook.html)

R-30617-11336-33984-38056-06680-32424-07593-35065

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/mkth3.tcl)

R-30625-54804-33917-43286-23352-47567-28997-28451

If the fourth parameter is negative, 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)

R-30638-59954-59281-20323-32142-07020-22821-14638

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)

R-30687-15230-29813-38800-06728-37939-57957-31201

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)

R-30809-57812-61495-62022-11490-25278-56613-15778

The final callback parameter is the rowid of the row. (source c3ref/update_hook.html)

R-30814-53756-49698-58904-46011-12554-22448-40537

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. Scratch memory controlled by SQLITE_CONFIG_SCRATCH and 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)

R-30879-62015-53996-61326-18041-63884-46339-47880

And the declared type of "STRING" has an affinity of NUMERIC, not TEXT. (source datatype3.html, checked-by: th3/req1/datatype3_02.test)

R-30955-38324-06638-08685-16466-65436-15533-06365

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)

R-30964-04756-41013-33290-38906-18403-44827-12997

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)

R-31029-02789-51389-40070-25151-19392-18984-32450

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)

R-31035-48105-55236-17512-32062-12366-10110-52557

If no arguments are given, all attached databases are analyzed. (source lang_analyze.html, checked-by: th3/req1/analyze01.test)

R-31057-17911-60541-63483-60128-04884-16403-39905

Note that the *ppBlob variable is always initialized in a way that makes it safe to invoke sqlite3_blob_close() on *ppBlob regardless of the success or failure of this routine. (source c3ref/blob_open.html)

R-31067-37494-56120-35098-11105-54623-54147-27483

Triggers are removed using the DROP TRIGGER statement. (source lang_createtrigger.html)

R-31074-37730-44024-06868-31899-04779-58492-60283

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)

R-31076-23575-44085-04825-53567-12397-07773-16537

Casting a value to a with no affinity causes the value to be converted into a BLOB. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-31093-59126-54996-31086-46526-58121-23400-49196

The default suggested cache size is 2000 pages. (source pragma.html, checked-by: th3/req1/pragma09.test)

R-31163-29022-10663-19494-01661-06524-11639-30452

The "E" character that begins the exponentiation clause of a floating point literal can be either upper or lower case. (source lang_expr.html)

R-31231-36717-57726-13439-19567-41766-26823-60811

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)

R-31275-44060-31786-28874-63587-64128-53792-58628

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)

R-31295-24696-44210-39757-63794-35429-55817-16527

Let M be ((U-12)*32/255)-23. If P is greater than X then the number of byte stored on the b-tree page is the smaller of M+((P-M)%(U-4)) and X. (source fileformat2.html)

R-31305-35170-11464-64098-34506-16219-33057-18056

After the header and zero padding are zero or more page records. (source fileformat2.html)

R-31312-33516-05278-47140-12669-18608-41834-55008

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)

R-31327-09584-58286-37804-26894-23464-47071-52660

The final column, "detail", contains a text value which carries most of the useful information. (source eqp.html, checked-by: th3/req1/eqp01.test)

R-31338-54830-28259-56420-63783-19909-54858-57072

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)

R-31386-03131-57152-48354-62931-03354-07372-50774

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)

R-31406-45734-45366-20105-37202-23050-60311-59562

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)

R-31407-09838-16507-11461-46420-27815-09445-39948

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)

R-31429-26731-64278-54113-60568-28690-01644-07279

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)

R-31442-26915-27818-62289-58213-54460-29931-06977

The default built-in lower() function works for ASCII characters only. (source lang_corefunc.html, checked-by: th3/cov1/func02.test)

R-31453-41389-40618-59449-38915-45174-40720-02932

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)

R-31495-11906-44188-55003-62019-53005-39571-59325

If a database 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)

R-31509-21858-22614-04075-64482-13479-08451-58532

The "order" option may be set to either "DESC" or "ASC" (in upper or lower case). (source fts3.html)

R-31518-37056-56231-07788-10281-54147-06570-65506

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)

R-31526-56213-47195-27280-32450-14597-41051-28661

The specific value of 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_STAT3 compile-time option is enabled. (source c3ref/prepare.html, checked-by: th3/req1/prepare04.test)

R-31536-32008-60945-18932-27030-19997-64437-42960

Literal values may be integers, floating point numbers, strings, BLOBs, or NULLs. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-31537-00101-65351-40298-33316-64699-39889-60990

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)

R-31556-18768-05780-57111-46292-61960-56108-12651

SQLite will never require a scratch buffer that is more than 6 times the database page size. (source c3ref/c_config_getmalloc.html)

R-31559-52189-63274-09210-03777-15240-18014-01548

Inner joins can be freely reordered. (source optoverview.html)

R-31567-38587-20789-38106-63049-52268-08688-06103

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)

R-31579-59686-01381-52027-49305-56500-23555-06857

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)

R-31593-10574-02886-51329-22797-44153-32978-49793

If the second parameter to sqlite3_realloc() is zero or negative then the behavior is exactly the same as calling sqlite3_free(P) where P is the first parameter to sqlite3_realloc(). (source c3ref/free.html, checked-by: src/malloc.c, th3/req1/malloc02.test)

R-31691-16963-10105-28468-37479-63350-48516-19894

If it is zero, the BLOB is opened for read access. (source c3ref/blob_open.html)

R-31754-06763-34474-63406-27990-08804-20195-47233

The min/max-value pair columns are always stored as 32-bit floating point values. (source rtree.html)

R-31757-07599-53600-28407-17941-01600-55959-20235

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)

R-31764-59173-05200-42928-33270-18898-11058-33059

julianday(timestring, modifier, modifier, ...) (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-31775-48204-44006-26750-02620-57678-37164-54735

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)

R-31795-57643-34892-44323-47602-12322-63634-37934

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)

R-31812-49659-31326-36358-44931-00819-19755-27412

The size of a blob may not be changed by this interface. (source c3ref/blob_open.html)

R-31839-40105-47825-07965-38954-04263-02531-41060

Both forms of the pragma return the maximum page count. (source pragma.html, checked-by: th3/req1/pragma12.test)

R-31842-04164-45925-20128-62976-05013-64077-31889

The zeroblob(N) function returns a BLOB consisting of N bytes of 0x00. (source lang_corefunc.html, checked-by: th3/cov1/func04.test)

R-31855-18665-44731-17316-60627-29707-46771-04515

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)

R-31881-13880-39891-17539-21926-06368-53167-38054

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)

R-31882-08811-51062-63000-47445-51971-26333-04918

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)

R-31883-14373-53297-17557-08649-10879-14648-40339

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)

R-31884-19145-46591-63123-39712-55381-35148-20037

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)

R-31927-36837-42025-09498-11039-63316-34985-48115

This option takes two arguments that determine the default memory allocation for the lookaside memory allocator 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_getmalloc.html)

R-31969-57825-42101-14521-32158-26846-01551-49036

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: th3/req1/pragma05.test)

R-31984-08010-07046-54406-16085-56792-07633-10679

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)

R-32023-34269-07081-56751-59037-09134-01490-38261

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)

R-32076-12237-46595-29546-24176-12469-16826-41322

However, if three additional indices where added that contained columns b, c, and d as their left-most columns, then the OR-clause optimization might apply. (source optoverview.html)

R-32076-61231-62705-03238-04533-28632-50823-60259

If the payload size P is less than or equal to U-35 then the entire payload is stored on the b-tree leaf page. (source fileformat2.html)

R-32090-20403-62451-54879-55700-60084-08956-01962

Autocommit mode is re-enabled by a COMMIT or ROLLBACK. (source c3ref/get_autocommit.html)

R-32101-19135-54459-01785-29001-54232-54152-02071

The sqlite3_result_zeroblob() interfaces set the result of the application-defined function to be a BLOB containing all zero bytes and N bytes in size, where N is the value of the 2nd parameter. (source c3ref/result_blob.html, checked-by: th3/req1/result01.test)

R-32157-42167-08368-62832-45024-59083-51380-54169

The normal configuration for SQLite running on workstations is for atomic write to be disabled, for the maximum page size to be set to 65536, for SQLITE_DEFAULT_PAGE_SIZE to be 1024, and for the maximum default page size to be set to 8192. (source pragma.html)

R-32172-42404-39492-45133-11034-45047-00308-58009

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)

R-32195-19465-48930-47525-56822-22090-53999-25366

The schema version is used by SQLite each time a query is executed to ensure that the internal cache of the schema used when compiling the SQL query matches the schema of the database against which the compiled query is actually executed. (source pragma.html)

R-32235-53300-57293-28888-55345-58030-49173-41178

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)

R-32266-59420-04967-20715-46228-25200-01200-16446

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)

R-32326-44592-25744-64223-64465-06212-39042-00138

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)

R-32333-58476-07670-32465-34848-10846-33271-03352

Triggers are automatically dropped when the table that they are associated with (the table-name table) is dropped. (source lang_createtrigger.html)

R-32365-09043-50030-24839-64719-45976-15708-15010

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)

R-32369-26304-55789-00588-64019-11696-17983-36545

If the transaction is immediate, then RESERVED locks are acquired on all databases as soon as the BEGIN command is executed, without waiting for the database to be used. (source lang_transaction.html)

R-32456-02561-42254-10799-22639-60003-18000-44521

Only copies of SQLite newer than version 3.3.0 (released on 2006-01-10) are able to understand the newer descending index file format. (source lang_createindex.html)

R-32466-09954-62617-02818-57995-33430-52392-53656

Thus, when called from the top level, this function returns the number of changes in the most recent INSERT, UPDATE, or DELETE that also occurred at the top level. (source c3ref/changes.html)

R-32521-20590-49288-35397-47504-42377-60996-54301

The time string is followed by zero or more modifiers. (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-32562-20566-46417-07999-12317-06673-44579-53773

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)

R-32633-52682-08562-36271-43194-24127-51342-52899

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/mkth3.tcl)

R-32684-32018-63194-42027-35826-10339-13815-57050

Attempts to insert something other than an integer into the first column, or something other than a floating point value into the other columns, will result in an error. (source rtree.html)

R-32693-16572-08453-15229-49794-25574-60503-63674

If SQLite is compiled with the SQLITE_ENABLE_ATOMIC_WRITE option, then the default page size is chosen to be the largest page size less than or equal to SQLITE_MAX_DEFAULT_PAGE_SIZE for which atomic write is enabled according to the xDeviceCharacteristics method of the sqlite3_io_methods object for the database file. (source pragma.html)

R-32706-07403-21974-02831-34123-06843-55643-09070

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)

R-32737-17936-16355-61809-23249-50193-59951-04545

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)

R-32768-47925-14881-49153-08372-50935-16619-06911

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)

R-32792-60226-60844-50115-44778-21229-22761-46890

The ESCAPE clause cannot appear on the LIKE operator. (source optoverview.html, checked-by: th3/cov1/where03.test)

R-32806-65233-63423-39928-44686-28712-07931-12350

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)

R-32809-14620-63808-12852-40065-57653-46928-34414

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)

R-32877-33942-42689-20785-21547-49318-20926-11856


(source lang_droptable.html)

R-33025-54904-06000-56378-59479-50332-62998-62315

sqlite> EXPLAIN QUERY PLAN SELECT c, d FROM t2 ORDER BY c; 0|0|0|SCAN TABLE t2 (~1000000 rows) 0|0|0|USE TEMP B-TREE FOR ORDER BY (source eqp.html, checked-by: tcl/eqp.test)

R-33035-16498-10379-54790-22685-33042-10966-12535

If a memory allocation fails, then SQLITE_NOMEM is returned. (source c3ref/complete.html, checked-by: th3/cov1/complete01.test)

R-33038-09382-52096-22256-12094-15064-07280-37767

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_enable_fkey.html, checked-by: src/main.c)

R-33044-60878-17914-17978-29807-58518-12841-10754

an implicit DELETE FROM does cause any configured foreign key actions to take place. (source lang_droptable.html)

R-33075-33190-25707-00729-29148-31049-04309-45993

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)

R-33124-58846-63098-57444-60113-38939-22033-09777

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)

R-33140-21501-29804-63127-48240-59602-40241-17867

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)

R-33158-44470-62921-30043-30800-41524-35337-30163


(source lang_transaction.html)

R-33205-04339-37109-01769-40581-52916-62625-52614

RTRIM Like BINARY except that spaces at the end of the string are elided prior to comparison. (source fileformat2.html)

R-33207-46321-53026-17702-02411-39856-40381-40284

PRAGMA secure_delete; PRAGMA database.secure_delete; PRAGMA secure_delete = boolean PRAGMA database.secure_delete = boolean Query or change the secure-delete setting. (source pragma.html, checked-by: th3/cov1/pragma20.test, th3/cov1/pragma21.test)

R-33211-38833-64331-54724-35381-31821-05246-63257

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)

R-33315-53384-19536-00039-42426-59902-48545-24529

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)

R-33316-19795-08370-35100-15159-39307-16097-56767

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/mkth3.tcl)

R-33323-30666-12361-11802-51105-01670-21986-27778

In SQLite, every row of every table has an 64-bit signed integer ROWID. (source autoinc.html, checked-by: th3/req1/autoinc01.test)

R-33326-45252-38720-14593-54555-59144-23018-05599

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)

R-33352-16228-19462-25047-13980-23357-27400-59118

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)

R-33368-33178-21159-57347-39405-35254-59100-49447

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/mkth3.tcl)

R-33375-48073-08624-20696-10672-49467-44015-42343

The parameter N is the number of virtual machine instructions that are evaluated between successive invocations of the callback X. (source c3ref/progress_handler.html, checked-by: th3/req1/progress01.test)

R-33393-31741-20908-00667-39287-64680-56276-36828

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)

R-33401-06099-44102-08352-15092-58623-33401-34005

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)

R-33414-20006-38430-38330-20007-08440-33108-23538

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)

R-33467-37360-23138-22301-18230-32640-26995-05257

Aggregate functions may only be used in a SELECT statement. (source lang_expr.html)

R-33496-49460-40885-47410-47365-30809-19419-02033

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)

R-33509-39458-36310-35502-14516-21374-43920-49454

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)

R-33528-20612-64279-03791-45165-25207-10127-32608

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)

R-33553-19363-35042-00573-64070-53843-36958-05658

The subquery does not use OFFSET. (source optoverview.html)

R-33570-18895-27619-21793-53436-58897-32599-21994

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)

R-33571-01024-54903-50358-23256-27428-52218-13521

The page header size is 20 to 40 bytes depending on the host architecture. (source c3ref/c_config_getmalloc.html)

R-33626-44500-44579-55445-20026-07899-19169-03498

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)

R-33626-48418-46855-58211-38849-29467-54588-01790

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)

R-33638-42108-26905-16665-62411-42905-33144-33922

PRAGMA legacy_file_format; PRAGMA legacy_file_format = boolean This pragma sets or queries the value of the legacy_file_format flag. (source pragma.html, checked-by: th3/req1/pragma22.test)

R-33670-36097-38044-00457-34720-22769-46022-27724

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)

R-33693-50180-37638-14993-01835-21324-19267-11438

The REGEXP operator is a special syntax for the regexp() user function. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-33707-40199-39350-00147-14640-22092-62266-02343

But special processing applies to the ON and USING clauses of an OUTER join: specifically, the constraints in an ON or USING clause do not apply if the right table of the join is on a null row, but the constraints do apply in the WHERE clause. (source optoverview.html)

R-33710-56344-23353-36559-53018-17291-08260-37097

In order to use foreign key constraints in SQLite, the library must be compiled with neither SQLITE_OMIT_FOREIGN_KEY or SQLITE_OMIT_TRIGGER defined. (source foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys05.test)

R-33750-29536-47450-45123-25964-11560-21995-55948

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)

R-33784-64667-60793-40024-61675-59572-30053-23850

This function is used to write data into an open BLOB handle from a caller-supplied buffer. (source c3ref/blob_write.html)

R-33788-46243-41692-58767-41171-41314-21464-32804

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)

R-33828-11557-55616-28971-39910-43977-11271-02017

The SQLITE_MUTEX_OS2, SQLITE_MUTEX_PTHREADS, and SQLITE_MUTEX_W32 implementations are appropriate for use on OS/2, Unix, and Windows. (source c3ref/mutex_alloc.html)

R-33841-62945-13926-63288-41300-28246-26461-11874

Thus, for example, the data 2001-03-31 modified by '+1 month' initially yields 2001-04-31, but April only has 30 days so the date is normalized to 2001-05-01. (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-33883-28833-60318-48575-53923-47015-06615-40154

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)

R-33917-24086-34361-61973-51178-03721-35954-00662

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)

R-33948-22286-15597-10485-25275-41982-01072-17156

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)

R-33950-57093-23380-64554-61801-30987-12746-10574

All indices and triggers associated with the table are also deleted. (source lang_droptable.html, checked-by: slt/slt_lang_droptable.test)

R-33977-57271-59293-02679-37541-34864-44396-22637

The left-most column is column 0 for these routines. (source c3ref/column_database_name.html)

R-33986-09410-10698-48479-39272-65303-00860-07768

Each row in a table with a primary key must feature a unique combination of values in its primary key columns. (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-34009-51042-01012-14502-52205-32655-22973-26621

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)

R-34021-38482-31030-34652-01469-03047-61601-46080

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)

R-34023-52929-12261-02515-22772-45177-48508-47679

The query string is optional. (source uri.html)

R-34075-04410-42312-11647-26206-31374-51327-10937

The sqlite3_result_value() interface sets the result of the application-defined function to be a copy the unprotected sqlite3_value object specified by the 2nd parameter. (source c3ref/result_blob.html, checked-by: th3/req1/result03.test)

R-34109-39108-27898-16254-24563-58797-32171-17937

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)

R-34157-58791-17713-05180-07871-57125-61990-17595

The second column of the result is the rank of the column within the table. (source pragma.html, checked-by: th3/req1/pragma15.test)

R-34234-52126-13891-36855-21265-08475-46071-60317

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)

R-34264-15842-51908-27355-58812-13180-15279-38051

The legacy_file_format pragma can be used to cause SQLite to create new database files using format 1. (source fileformat2.html)

R-34271-33106-55360-31605-05941-37144-32278-15012

PRAGMA automatic_index; PRAGMA automatic_index = boolean; Query, set, or clear the automatic indexing capability. (source pragma.html, checked-by: th3/req1/pragma08.test)

R-34280-42283-63975-25394-58653-47378-35851-53437

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)

R-34293-31480-01160-31597-61187-16604-15204-31151

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)

R-34326-56357-56903-53526-53046-15549-19745-22986

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)

R-34354-51417-57740-57504-01542-51579-51443-23369

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)

R-34391-24921-52036-19820-43252-56353-24608-07545

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)

R-34400-33772-12568-07085-14602-53889-15876-12187

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)

R-34407-33329-56662-13063-42233-50984-46328-08443

The sqlite3_vsnprintf() routine is a varargs version of sqlite3_snprintf(). (source c3ref/mprintf.html, checked-by: th3/req1/malloc01.test)

R-34526-35712-49832-15543-35160-30600-56964-59649

By default, the error code is SQLITE_ERROR. (source c3ref/result_blob.html, checked-by: th3/req1/result01.test)

R-34526-60085-48903-55535-08092-19931-63844-27321

The first time this routine is invoked (either internally or by the application) the PRNG is seeded using randomness obtained from the xRandomness method of the default sqlite3_vfs object. (source c3ref/randomness.html)

R-34561-00264-36299-40120-12079-02627-14730-26524

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)

R-34614-52552-60710-47749-45454-53290-65494-24106

The sqlite3_status() routine returns SQLITE_OK on success and a non-zero error code on failure. (source c3ref/status.html)

R-34616-57962-62200-63763-25892-01209-38424-05918

Cache sharing is enabled and disabled for an entire process. (source c3ref/enable_shared_cache.html)

R-34648-44875-03220-54825-01081-20056-64407-58283

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)

R-34706-05629-19212-06603-14274-22035-31068-37221

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)

R-34730-53445-15838-11944-46041-12438-53750-14468

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)

R-34751-04246-20772-53163-23654-34620-17677-07511

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)

R-34751-18293-04541-58685-13120-57905-41689-08740

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)

R-34773-62253-14389-56183-06695-27653-47306-47953

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)

R-34814-22035-19752-61012-44426-48112-33201-20182

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)

R-34816-32505-14191-41651-46944-10844-62255-46096

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)

R-34837-12462-62420-33748-07267-00170-63881-53119

The first argument to the callback is a copy of the third argument to sqlite3_update_hook(). (source c3ref/update_hook.html)

R-34918-27009-22149-14301-56506-15307-06517-16770

The INDEXED BY and NOT INDEXED clauses are not supported for UPDATE and DELETE statements. (source lang_createtrigger.html)

R-34933-01612-63826-59975-42480-58884-65014-06327

The names returned are the original un-aliased names of the database, table, and column. (source c3ref/column_database_name.html)

R-34979-54336-33279-53576-25867-30233-28350-04331

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)

R-34998-49915-07664-55575-37059-29902-40579-47714

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)

R-35002-09502-01413-09334-58784-32407-44903-62982

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)

R-35003-32738-64790-42236-58307-21158-57428-12443

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)

R-35040-63004-09413-17967-18828-35998-50185-50384

The "weekday" modifier advances the date forward to the next date where the weekday number is N. (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-35049-22776-26849-33887-63149-61153-21714-11740

The "unixepoch" modifier (11) only works if it immediately follows a timestring in the DDDDDDDDDD format. (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-35088-43392-22185-31834-16686-27011-41097-22750

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)

R-35092-12727-62894-63814-26795-55319-59085-22626

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)

R-35109-49139-58862-12127-06342-61829-38093-58472

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)

R-35129-58141-36157-07998-30656-14308-25733-01656

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)

R-35207-17153-24168-38567-05624-25103-19340-37227

The sqlite3_wal_autocheckpoint() interface and the wal_autocheckpoint pragma can be used to cause this interface to be run whenever the WAL reaches a certain size threshold. (source c3ref/wal_checkpoint.html)

R-35210-63508-42678-48683-05229-58965-46588-04293

The sqlite3_libversion_number() function returns an integer equal to SQLITE_VERSION_NUMBER. (source c3ref/libversion.html, checked-by: src/main.c, th3/mkth3.tcl)

R-35229-17830-32159-37744-59002-46141-27438-26089

A string constant is formed by enclosing the string in single quotes ('). (source lang_expr.html, checked-by: tcl/e_expr.test)

R-35268-31914-29013-65007-60500-40286-59986-01540

The value returned by sqlite3_memory_highwater(1) is the high-water mark prior to the reset. (source c3ref/memory_highwater.html)

R-35272-30329-38196-23593-15037-30954-61861-19508

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)

R-35290-16460-32571-10958-08768-45451-01146-58774

Foreign key constraints are immediate by default. (source foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys12.test)

R-35311-10820-21037-47746-53186-51250-62481-54055

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)

R-35325-25517-01545-24178-13996-21143-53189-45296

An uncorrelated subquery is evaluated only once and the result reused as necessary. (source lang_expr.html)

R-35362-38850-39624-46125-42742-24667-28362-39621

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)

R-35371-58843-38332-21753-13618-41551-34238-06657

The ATTACH DATABASE statement adds another database file to the current database connection. (source lang_attach.html, checked-by: th3/req1/attach01.test)

R-35432-12723-65442-31241-11453-58408-64788-62219

But for the static mutex types, the same mutex is returned on every call that has the same type number. (source c3ref/mutex_alloc.html)

R-35443-03595-46720-21224-13105-18323-15585-18563

Ifnull() must have exactly 2 arguments. (source lang_corefunc.html, checked-by: th3/cov1/func01.test)

R-35460-03740-02108-04893-51916-60089-58945-40785

Registering a NULL function disables the callback. (source c3ref/commit_hook.html)

R-35460-15084-48819-65267-56905-57683-08445-26619

If X is the integer -9223372036854775807 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)

R-35466-18578-55307-04198-11840-65176-35973-23959

The column from the dataset on the left-hand side of the join operator is considered to be on the left-hand side of the comparison operator (=) for the purposes of collation sequence and affinity precedence. (source lang_select.html, checked-by: tcl/e_select.test)

R-35503-60218-20246-16465-03448-36808-43658-06556

When SQLite compares two strings, it uses a collating sequence or collating function (two words for the same thing) to determine which string is greater or if the two strings are equal. (source datatype3.html, checked-by: th3/req1/datatype3_09.test)

R-35553-21226-59052-33659-22709-48132-34010-52118

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)

R-35578-00141-38753-46256-55352-15453-36811-08133

The ROLLBACK will fail with an error code SQLITE_BUSY if there are any pending queries. (source lang_transaction.html)

R-35620-55265-30366-61678-07542-39367-03113-47688

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)

R-35647-22698-14151-02154-35973-15621-42359-11519

When a new database is created, SQLite assigned a default page size based on information received from the xSectorSize and xDeviceCharacteristics methods of the sqlite3_io_methods object of the newly created database file. (source pragma.html)

R-35698-25375-34264-35367-42002-17994-39861-33131

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)

R-35711-48727-49492-05161-09107-16114-44571-60110

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)

R-35739-57436-25800-46947-32358-09819-57778-06393

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)

R-35743-17022-41139-35720-26988-59582-39883-26611

This 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_getmalloc.html)

R-35764-28041-14003-29144-25311-37428-61666-13825

The result of the expression is the value of the only column in the first row returned by the SELECT statement. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-35765-61623-59690-19582-04854-45693-22489-08520

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)

R-35802-14059-47020-23527-06222-22948-08783-35470

Nor is the update hook invoked when rows are deleted using the truncate optimization. (source c3ref/update_hook.html)

R-35812-46755-23531-40873-62145-48640-15024-41940

The default journal size limit is -1 (no limit). (source pragma.html, checked-by: th3/req1/pragma26.test)

R-35840-33204-13129-04501-28754-46758-55672-28059

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)

R-35856-58769-58714-05667-00872-44195-43278-26599

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)

R-35865-29619-35015-08784-17694-42068-56782-50747

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)

R-35880-12325-57817-26418-36971-18732-46777-12474

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)

R-35921-30782-30597-38751-45197-16333-41298-65365

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)

R-36018-21755-34988-08386-62029-36954-65009-29361

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)

R-36040-20870-02674-16594-11243-04854-63578-01477

If no column-list is specified then the number of values must be the same as the number of columns in the table. (source lang_insert.html, checked-by: tcl/e_insert.test)

R-36097-50928-12790-61017-20060-26535-57569-32056

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)

R-36106-21007-52258-21932-23201-34100-21259-49882

The behavior is undefined if the mutex is not currently entered by the calling thread or is not currently allocated. SQLite will never do either. (source c3ref/mutex_alloc.html, checked-by: th3/mkth3.tcl)

R-36195-31555-35544-12860-62754-30693-28143-39954

The usual INSERT, UPDATE, and DELETE commands work on an R*Tree index just like on regular tables. (source rtree.html)

R-36207-45800-36494-05185-06408-25656-62834-28052

The INDEXED BY phrase always follows the name of a table that SQLite will be reading. (source lang_indexedby.html)

R-36239-04077-08470-54931-40517-19628-02448-15955

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)

R-36265-51196-56439-27074-26615-17035-18675-11586

All mathematical operators (+, -, *, /, %, <<, >>, &, and |) cast both operands to the NUMERIC storage class prior to being carried out. (source datatype3.html, checked-by: th3/req1/datatype3_06.test)

R-36327-17224-30714-13238-62239-10610-34314-51642

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)

R-36328-16367-14145-21377-30808-40796-28392-26990

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: th3/req1/pragma05.test)

R-36338-64112-59318-08203-11484-65439-59164-45202

If one or more ON INSERT, ON DELETE or ON UPDATE triggers are defined on a view, then it is not an error to execute an INSERT, DELETE or UPDATE statement on the view, respectively. (source lang_createtrigger.html)

R-36394-12461-27768-64371-31765-36302-25885-56308

SQLite will always use the table b-tree key rather than the NULL value when referencing the INTEGER PRIMARY KEY column. (source fileformat2.html)

R-36399-45840-38419-49366-05932-18953-07682-47549

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)

R-36476-47203-56638-47160-44339-35126-05623-44628

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)

R-36545-62345-61603-06376-33533-12580-59655-26356

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)

R-36570-50350-22690-62620-40069-12741-59912-39682

Transactions can be started manually using the BEGIN command. (source lang_transaction.html)

R-36608-10930-24220-22579-46351-14737-62834-54918

The arguments can be just about any text as long as it has balanced parentheses. (source lang_createvtab.html)

R-36610-45292-54097-28024-65527-46641-42678-27744

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)

R-36620-34941-18970-44416-30193-42757-18271-60128

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)

R-36651-49821-06866-46556-29729-37304-36967-33618

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)

R-36683-37460-43350-37564-45639-65227-52319-20851


(source lang_select.html, checked-by: tcl/e_select.test)

R-36697-25556-10113-60762-16879-48954-19862-42086

The third through sixth parameters to the callback are zero-terminated strings that contain additional details about the action to be authorized. (source c3ref/set_authorizer.html)

R-36754-20545-04159-27572-44208-64137-08044-49180

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)

R-36771-43788-02791-24277-51964-58842-02729-58792

In other words, the database-name. prefix on the table name is not allowed within triggers. (source lang_delete.html, checked-by: tcl/e_delete.test)

R-36822-49898-51267-28801-22242-39926-43860-26511

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)

R-36834-48950-59089-31267-28729-41659-26952-44127

On the other hand, the virtual terms themselves never causes tests to be performed on input rows. (source optoverview.html)

R-36859-05333-15357-38800-46653-01342-64657-49103

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/mkth3.tcl)

R-36994-20318-04731-18352-40957-64726-24710-37361

When faced with the choice of using an index to satisfy WHERE clause constraints or satisfying an ORDER BY clause, SQLite does the same work analysis described above and chooses the index that it believes will result in the fastest answer. (source optoverview.html)

R-36996-21017-11130-54775-34081-21546-00217-47155

If the fifth argument has the value SQLITE_TRANSIENT, then SQLite makes its own private copy of the data immediately, before the sqlite3_bind_*() routine returns. (source c3ref/bind_blob.html, checked-by: th3/req1/bind01.test)

R-37014-01401-21089-17070-29691-04562-53032-12534

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: th3/cov1/vdbeapi14.test)

R-37019-57602-33488-54627-46176-35899-62282-07201

Nor does REPLACE increment the change counter. (source lang_conflict.html, checked-by: th3/req1/conflict02.test)

R-37051-49391-21174-04435-43019-60258-26390-24659

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 localtime utc (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-37099-37053-38363-03939-37447-24344-49731-34436

Similarly, if URI filenames are not recognized when the database connection is first opened, they will not be recognized by ATTACH. (source uri.html)

R-37111-22855-42072-00494-43554-65197-44250-55427

The declared type of each column is determined by the expression affinity of the corresponding expression in the result set of the SELECT statement, as follows: Expression Affinity Column Declared Type TEXT "TEXT" NUMERIC "NUM" INTEGER "INT" REAL "REAL" NONE "" (empty string) (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-37127-14782-63396-43128-39237-20363-34771-13214

A call to this routine stores N bytes of randomness into buffer P. (source c3ref/randomness.html)

R-37265-56925-55777-11363-20675-46285-52171-25062

For conversions between TEXT and REAL storage classes, SQLite considers the conversion to be lossless and reversible if the first 15 significant decimal digits of the number are preserved. (source datatype3.html, checked-by: th3/req1/datatype3_01.test)

R-37271-65264-45647-61848-25356-06624-30160-41691

Compute the current unix timestamp. SELECT strftime('%s','now'); (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-37283-61388-33413-37250-53520-10226-00265-15596

All these names are aliases for one another and work equally well in any context. (source autoinc.html, checked-by: th3/req1/autoinc01.test)

R-37284-06965-27563-13787-56362-60751-57097-13652

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)

R-37286-42536-47612-10625-41273-62615-36449-24349

/* 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)

R-37287-38238-38896-00540-17030-60706-04523-55035

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)

R-37304-39405-25413-14317-50314-46541-26352-18136

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)

R-37338-25090-02456-18897-36801-31063-06233-22705

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)

R-37342-04007-10606-64148-39195-51101-42464-04051

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)

R-37348-06800-27428-45095-32676-47345-13290-00044

Each SCAN or SEARCH record includes the following information: The name of the table data is read from. Whether or not an index or automatic index is used. Whether or not the covering index optimization applies. Which terms of the WHERE clause are used for indexing. The estimated number of rows that SQLite will visit. (source eqp.html, checked-by: th3/req1/eqp01.test)

R-37412-09436-16826-17483-13770-41037-63628-17339

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)

R-37434-19929-01541-26191-03532-28681-18224-01267

Abs(X) returns NULL if X is NULL. (source lang_corefunc.html, checked-by: src/func.c, th3/cov1/func01.test)

R-37497-42412-17450-21022-09662-57031-07761-02196

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)

R-37514-35566-00640-25084-57688-04377-16048-30214

A value of 1 means UTF-8. (source fileformat2.html)

R-37639-55938-19671-37883-10811-32762-31289-05215

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)

R-37688-43700-53103-62151-49236-10303-34051-45197

Use the sqlite3_blob_bytes() interface to determine the size of the opened blob. (source c3ref/blob_open.html)

R-37736-42616-04169-53390-00856-45033-53695-63004

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)

R-37773-10272-55463-21527-23891-50096-65319-03368

For a table or view, the tbl_name column is a copy of the name column. (source fileformat2.html)

R-37783-42715-27194-59163-53660-14941-49401-50024

Any %HH escape sequences in the query parameters are resolved prior to being appended to the xOpen filename. (source uri.html)

R-37795-21752-00915-21672-38602-04515-27824-24579

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_getmalloc.html)

R-37808-62273-24906-47503-60125-44409-00514-33279

Note that triggers are automatically dropped when the associated table is dropped. (source lang_droptrigger.html, checked-by: slt/slt_lang_droptrigger.test, tcl/e_droptrigger.test)

R-37810-60222-47752-18821-24220-18386-52831-63855

Compute the number of seconds since a particular moment in 2004: SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56'); (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-37812-47407-44151-24694-62524-58711-37886-57014

Once an encoding has been set for a database, it cannot be changed. (source pragma.html, checked-by: th3/req1/pragma16.test)

R-37910-23168-39063-40634-50772-23998-34303-02455

The sqlite_version() function returns the version string for the SQLite library that is running. (source lang_corefunc.html, checked-by: th3/req1/func04.test)

R-37916-47407-25841-44869-57866-03917-48046-05809

The MATCH operator is a special syntax for the match() application-defined function. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-37997-42187-51725-59091-37072-50205-56712-26602

The difference between the effect of a RESTRICT action and normal foreign key constraint enforcement is that the RESTRICT action processing happens as soon as the field is updated - not at the end of the current statement as it would with an immediate constraint, or at the end of the current transaction as it would with a deferred constraint. (source foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys16.test)

R-38001-03952-19465-11266-52684-12379-01508-27794

VACUUM only works on the main database. It is not possible to VACUUM an attached database file. (source lang_vacuum.html, checked-by: tcl/e_vacuum.test)

R-38041-14597-46944-18257-28355-58230-62762-00771

At most integer errors will be reported before the analysis quits. (source pragma.html)

R-38061-31091-04513-48389-43218-44173-18039-63201

An implicit transaction (a transaction that is started automatically, not a transaction started by BEGIN) is committed automatically when the last active statement finishes. A statement finishes when its prepared statement is reset or finalized. An open sqlite3_blob used for incremental BLOB I/O counts as an unfinished statement. The sqlite3_blob finishes when it is closed. (source lang_transaction.html)

R-38083-64261-20639-49699-39897-18481-13344-23243

In other words, calls to xUnpin() on a cache with bPurgeable set to false will always have the "discard" flag set to true. (source c3ref/pcache_methods2.html)

R-38091-32352-01038-12567-23855-46288-57631-62410

The maximum parameter number is set at compile-time by the SQLITE_MAX_VARIABLE_NUMBER macro. (source lang_expr.html)

R-38128-34102-03228-01716-42650-19152-18652-04810

The sqlite3_wal_autocheckpoint(D,N) is a wrapper around sqlite3_wal_hook() that causes any database on database connection D to automatically checkpoint after committing a transaction if there are N or more frames in the write-ahead log file. (source c3ref/wal_autocheckpoint.html)

R-38176-56274-44779-06953-35503-33902-10868-27976

In a database with ptrmap pages, the first ptrmap page is page 2. (source fileformat2.html)

R-38200-45242-44126-59333-52626-62279-09263-45295

The sqlite3_load_extension() interface returns SQLITE_OK on success and SQLITE_ERROR if something goes wrong. (source c3ref/load_extension.html)

R-38219-53002-00313-45584-37253-57007-40981-19888

If no unused ROWID can be found after a reasonable number of attempts, the insert operation fails with an SQLITE_FULL error. (source autoinc.html, checked-by: src/vdbe.c, th3/cov1/vdbe23.test)

R-38231-04283-23015-05260-16076-53485-61686-35085


(source pragma.html, checked-by: th3/req1/pragma01.test)

R-38242-53217-63508-42050-45799-27349-00700-51305

"SEARCH" indicates that only a subset of the table rows are visited. (source eqp.html, checked-by: th3/req1/eqp01.test)

R-38255-01123-17984-58641-36613-29376-16056-55612

If the filename is ":memory:", then a private, temporary in-memory database is created for the connection. (source c3ref/open.html)

R-38260-37719-07465-52549-18983-56456-60761-04524

The VFS is required to either truncate or zero the header of the wal-index when the last connection to it closes. (source fileformat2.html)

R-38280-09593-30369-45602-60348-43330-18334-07571

After at least "ms" milliseconds of sleeping, the handler returns 0 which causes sqlite3_step() to return SQLITE_BUSY or SQLITE_IOERR_BLOCKED. (source c3ref/busy_timeout.html)

R-38293-42495-20916-29854-03664-36898-47028-10197

Prior savepoints, even savepoints with matching savepoint-names, are unchanged. (source lang_savepoint.html)

R-38301-00721-48932-04797-00505-10966-18723-46077

This option takes a single argument which is a pointer to an instance of the sqlite3_mem_methods structure. The sqlite3_mem_methods structure is filled with the currently defined memory allocation routines. (source c3ref/c_config_getmalloc.html)

R-38308-24406-60432-36844-44723-02085-25022-07693

SQLite attempts to use an index to satisfy the ORDER BY clause of a query when possible. (source optoverview.html)

R-38336-05023-13605-39367-03302-30111-01531-40111

Hence explicitly specifying FOR EACH ROW is optional. (source lang_createtrigger.html)

R-38341-46511-60647-36550-00452-63449-13223-34323

The subquery does not use aggregates or the outer query does not use LIMIT. (source optoverview.html)

R-38392-49970-12862-30349-17432-31139-60846-54763

If the action code is SQLITE_READ and the callback returns SQLITE_IGNORE then the prepared statement statement is constructed to substitute a NULL value in place of the table column that would have been read if SQLITE_OK had been returned. (source c3ref/set_authorizer.html)

R-38451-09192-26052-24924-43013-39485-54924-09528

For TEMP tables, the database name is "temp". (source c3ref/blob_open.html)

R-38462-47168-00802-29232-37957-12454-50485-62719

The number of system calls for filesystem operations is reduced, possibly resulting in a small performance increase. (source pragma.html, checked-by: th3/req1/pragma05.test)

R-38469-41807-12081-19845-13469-50948-11932-49175

If it is not NULL, SQLite will invoke the destructor function given by the 4th parameter to sqlite3_set_auxdata() on the metadata when the corresponding function parameter changes or when the SQL statement completes, whichever comes first. (source c3ref/get_auxdata.html)

R-38470-19236-05585-14334-15897-63539-60552-16628

As with all other SQLite APIs, those whose names end with "16" return UTF-16 encoded strings and the other functions return UTF-8. (source c3ref/column_database_name.html)

R-38485-20010-44949-34877-39366-11397-10597-42284

If a table contains a column of type INTEGER PRIMARY KEY, then that column becomes an alias for the ROWID. (source autoinc.html, checked-by: th3/req1/autoinc01.test)

R-38513-43475-55678-22086-42456-40584-55564-45510

A call to xRelease(X,M) invalidates all savepoints where N>=M. (source vtab.html)

R-38515-45264-03335-50980-08297-28344-12265-07348

An UPDATE statement is used to modify a subset of the values stored in zero or more rows of the database table identified by the qualified-table-name specified as part of the UPDATE statement. (source lang_update.html, checked-by: slt/slt_lang_update.test, tcl/e_update.test)

R-38536-04510-23157-49681-06132-47285-44686-09674

The quote(X) function returns the text of an SQL literal which is the value of its argument suitable for inclusion into an SQL statement. (source lang_corefunc.html, checked-by: th3/cov1/func02.test)

R-38577-07276-49824-55947-21917-12317-50155-56118

If the query string is present, then all query parameters are passed through into the xOpen method of the underlying VFS. (source uri.html)

R-38590-62769-37174-11350-15307-56847-39156-23447

The first parameter to the authorizer callback is a copy of the third parameter to the sqlite3_set_authorizer() interface. (source c3ref/set_authorizer.html)

R-38595-30726-57286-21229-43510-46199-10154-57516

If the value N is out of range or if the N-th parameter is nameless, then NULL is returned. (source c3ref/bind_parameter_name.html, checked-by: th3/req1/bind04.test)

R-38620-19499-44951-35069-39820-53253-57753-11041

In a CASE with a base expression, the base expression is evaluated just once and the result is compared against the evaluation of each WHEN expression from left to right. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-38631-09167-64430-21786-18965-57371-16775-28797

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 INTEGER PRIMARY KEY can still be used to look up entries even when "NOT INDEXED" is specified. (source lang_indexedby.html)

R-38703-23957-40779-17616-06734-29926-07107-33116

Calling sqlite3_exec() or sqlite3_step() recursively does not create a new trigger context. (source c3ref/changes.html)

R-38733-58637-45405-53712-01337-38389-24626-21824

This error code promotion forces an automatic rollback of the changes. (source c3ref/busy_handler.html)

R-38735-12540-01712-42619-26101-33703-41022-22731

As of SQLite version 3.1, an alternative to using the VACUUM command to reclaim space after data has been deleted is auto-vacuum mode, enabled using the auto_vacuum pragma. (source lang_vacuum.html, checked-by: tcl/e_vacuum.test)

R-38759-38789-04186-61984-59919-00444-32947-07826

Operators IS and IS NOT have the same precedence as =. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-38828-57497-43339-57489-42530-28213-54283-40875

When a SAVEPOINT is the outer-most savepoint and it is not within a BEGIN...COMMIT then the behavior is the same as BEGIN DEFERRED TRANSACTION. (source lang_savepoint.html)

R-38854-22809-21718-24832-56511-15160-58520-63196

sqlite> CREATE INDEX i4 ON t2(c); sqlite> EXPLAIN QUERY PLAN SELECT c, d FROM t2 ORDER BY c; 0|0|0|SCAN TABLE t2 USING INDEX i4 (~1000000 rows) (source eqp.html, checked-by: tcl/eqp.test)

R-38914-26427-29082-17331-29986-21952-39833-10934

The total_changes() function returns the number of row changes caused by INSERT, UPDATE or DELETE statements since the current database connection was opened. (source lang_corefunc.html, checked-by: th3/cov1/func05.test)

R-38971-13593-63134-41706-45438-37598-45923-53388

Note that a declared type of "FLOATING POINT" would give INTEGER affinity, not REAL affinity, due to the "INT" at the end of "POINT". (source datatype3.html, checked-by: th3/req1/datatype3_02.test)

R-38973-52184-38987-24216-42448-05561-19819-59369

If the optional ESCAPE clause is present, then the like() function is invoked with three arguments. (source lang_corefunc.html, checked-by: th3/req1/func02.test)

R-38980-08445-54197-34551-31600-64664-60502-04654

NOCASE does not implement a general purpose unicode caseless comparison. (source fileformat2.html)

R-38989-21359-13709-49366-18905-24783-41677-06526

The szExtra parameter will a number less than 250. (source c3ref/pcache_methods2.html)

R-39007-61103-30910-33462-31784-00148-35571-18839

sqlite> CREATE INDEX i3 ON t1(b); sqlite> EXPLAIN QUERY PLAN SELECT * FROM t1 WHERE a=1 OR b=2; 0|0|0|SEARCH TABLE t1 USING COVERING INDEX i2 (a=?) (~10 rows) 0|0|0|SEARCH TABLE t1 USING INDEX i3 (b=?) (~10 rows) (source eqp.html, checked-by: tcl/eqp.test)

R-39009-25596-33829-41361-38484-11658-48369-57903

The result of the CASE expression is the evaluation of the THEN expression that corresponds to the first WHEN expression that evaluates to true. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-39020-65330-19381-32057-25425-01859-32299-49676

The COLLATE clause of the column definition is used to define alternative collating functions for a column. (source datatype3.html, checked-by: th3/req1/datatype3_09.test)

R-39051-42271-46025-06225-43154-22193-07696-21282

The second form attempts to modify the maximum page count. (source pragma.html, checked-by: th3/req1/pragma12.test)

R-39073-45389-04336-35554-15796-29115-57398-44032

If M is -1 in the initial journal header, then the number of page records that follow is computed by computing how many page records will fit in the available space of the remainder of the journal file. (source fileformat2.html)

R-39086-42574-52066-34566-03603-26293-15630-13712

The third argument to xCreate(), bPurgeable, is true if the cache being created will be used to cache database pages of a file stored on disk, or false if it is used for an in-memory database. (source c3ref/pcache_methods2.html)

R-39088-19376-30403-42071-52241-63734-59003-40185

The sqlite3_value object returned by sqlite3_column_value() is unprotected. (source c3ref/value.html, checked-by: th3/req1/value01.test)

R-39089-10219-02970-26628-53332-63736-48500-08755

The s1 value spans all 32-bit integer terms of the sequence whereas s0 omits the final term. (source fileformat2.html)

R-39102-06737-24985-23293-11650-43037-27447-02296

If an INSERT or UPDATE statement attempts to modify the table content so that two or more rows feature identical primary key values, it is a constraint violation. (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-39150-60222-54489-42043-19266-00482-07233-17932

On a cache where bPurgeable is false, SQLite will never invoke xUnpin() except to deliberately delete a page. (source c3ref/pcache_methods2.html, checked-by: th3/mkth3.tcl)

R-39195-30238-53519-57204-01366-19450-10206-11311

Each SQL index, whether explicitly declared via a CREATE INDEX statement or implied by a UNIQUE constraint, corresponds to an index b-tree in the database file. (source fileformat2.html)

R-39221-43493-49031-48260-11050-48204-23096-55403

The sqlite3_mutex_leave() routine exits a mutex that was previously entered by the same thread. (source c3ref/mutex_alloc.html)

R-39231-33076-05727-00102-39639-63072-44132-27548

The string literal must not begin with a wildcard; if the right-hand side begins with a wildcard character then this optimization is attempted. (source optoverview.html)

R-39265-04070-30004-05781-22531-14920-64985-48690

If no matching expression can be found in the result columns of any constituent SELECT, it is an error. (source lang_select.html, checked-by: tcl/e_select.test)

R-39267-61563-33014-32733-63659-35111-46114-30200

PRAGMA page_count; Return the total number of pages in the database file. (source pragma.html, checked-by: th3/req1/pragma12.test)

R-39269-29928-36357-12002-42710-02565-26398-36645

If write-ahead log is disabled, this pragma is a harmless no-op. (source pragma.html)

R-39279-48828-00404-43812-37996-18739-13104-15317

The order of values in the record is the same as the order of columns in the SQL table definition. (source fileformat2.html)

R-39306-34499-18719-46784-37464-42022-47591-11853


(source lang_expr.html)

R-39332-27982-27049-48904-10655-02053-00990-04758

The subquery does not use LIMIT or the outer query does not use aggregates. (source optoverview.html)

R-39344-59787-27284-27797-42731-63207-63468-60655

For example: X'53514C697465' (source lang_expr.html, checked-by: tcl/e_expr.test)

R-39350-14264-06804-50075-43758-39518-52551-62265

These routines open an SQLite database file as specified by the filename argument. (source c3ref/open.html)

R-39368-64333-53302-20010-22332-46980-48834-46750

In a compound SELECT, all the constituent SELECTs must return the same number of result columns. (source lang_select.html, checked-by: tcl/e_select.test)

R-39412-46882-37101-45160-49245-06434-49198-35151

An application-defined function is permitted to call other SQLite interfaces. (source c3ref/create_function.html, checked-by: th3/req1/createfunc06.test)

R-39414-35489-25303-10592-22636-36530-45454-18784

The infix GLOB operator is implemented by calling the function glob(Y,X) and can be modified by overriding that function. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-39448-56079-43024-42660-00434-04264-13777-54050

The filename argument sqlite3_open16() is converted from UTF16 native byte order into UTF8 prior to processing. (source uri.html)

R-39456-25960-61970-07605-46947-47119-46570-46917

To convert the results of an SQL expression to a boolean value, SQLite first casts the result to a NUMERIC value in the same way as a CAST expression. A NULL or zero value (integer value 0 or real value 0.0) is considered to be false. All other values are considered true. (source lang_expr.html)

R-39464-12723-18801-15682-15503-09131-15880-06935

The return value from sqlite3_column_blob() for a zero-length BLOB is a NULL pointer. (source c3ref/column_blob.html, checked-by: th3/req1/column01.test)

R-39464-36566-10218-24417-22703-07867-12954-27805

The first time the database is written, an exclusive lock is obtained and held. (source pragma.html, checked-by: th3/req1/pragma04.test)

R-39556-50570-30565-00761-35102-37425-01790-22325

The progress handler is also disabled by setting N to a value less than 1. (source c3ref/progress_handler.html, checked-by: th3/req1/progress01.test)

R-39564-36305-13838-22783-16141-24782-64457-11535

The sqlite_compileoption_used() SQL function is a wrapper around the sqlite3_compileoption_used() C/C++ function. (source lang_corefunc.html, checked-by: src/func.c, th3/cov1/ctime02.test)

R-39578-54133-12312-25444-39025-43860-65200-11026

The SQLITE_FCNTL_OVERWRITE opcode is invoked by SQLite after opening a write transaction to indicate that, unless it is rolled back for some reason, the entire database file will be overwritten by the current transaction. (source c3ref/c_fcntl_chunk_size.html)

R-39608-49000-51968-24842-19070-08094-34539-25072

This pragma sets or queries the database connection locking-mode. (source pragma.html, checked-by: th3/req1/pragma04.test)

R-39614-35715-21681-03013-09842-54185-10366-26621

When the WHERE is 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)

R-39616-20555-02533-15918-45822-50476-08959-13235

Both GLOB and LIKE may be preceded by the NOT keyword to invert the sense of the test. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-39618-23133-00956-24239-08311-25501-36268-36512

If the page_size pragma is used to specify a new page size just prior to running the VACUUM command and if the database is not in WAL journal mode then VACUUM will change the page size to the new value. (source pragma.html)

R-39625-59133-51160-16821-08966-29861-61919-63168

A USING or ON clause may not be added to a join that specifies the NATURAL keyword. (source lang_select.html, checked-by: tcl/e_select.test)

R-39686-09170-04857-28511-29699-61322-31549-05185

Six static mutexes are used by the current version of SQLite. (source c3ref/mutex_alloc.html)

R-39692-12488-54491-44352-04912-13609-39585-46004

Deferred foreign key constraints are not checked until the transaction tries to COMMIT. (source foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys12.test, th3/req1/foreignkeys14.test)

R-39719-17021-25795-58953-42832-28593-26146-38577

The sqlite3_commit_hook(D,C,P) and sqlite3_rollback_hook(D,C,P) functions return the P argument from the previous call of the same function on the same database connection D, or NULL for the first call for each function on D. (source c3ref/commit_hook.html)

R-39746-16618-18331-39876-26719-11435-38479-45574

It is not possible to change the text encoding of a database after it has been created and any attempt to do so will be silently ignored. (source pragma.html, checked-by: th3/req1/pragma16.test)

R-39820-63916-52284-08869-62783-08328-31879-24797


(source lang_createtrigger.html, checked-by: tcl/e_expr.test)

R-39822-07822-55219-05739-15484-26699-12744-24448

In this case the new table is created in the named database. (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-39822-14939-20605-05288-51207-58465-58259-08970

If the transaction has already been rolled back automatically by the error response, then the ROLLBACK command will fail with an error, but no harm is caused by this. (source lang_transaction.html)

R-39910-14723-21123-44064-38823-12161-58690-10248

A comma (",") is used as the separator if Y is omitted. (source lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test)

R-39953-32650-33822-21964-37555-46603-34734-31598

Note that calling sqlite3_busy_timeout() will also set or clear the busy handler. (source c3ref/busy_handler.html)

R-40026-10531-12029-61961-20483-43769-01249-19476

If SQLite is compiled with the SQLITE_ENABLE_UPDATE_DELETE_LIMIT compile-time option, then the syntax of the DELETE statement is extended by the addition of optional ORDER BY and LIMIT clauses: (source lang_delete.html, checked-by: tcl/e_delete.test)

R-40045-04159-18257-36948-62852-01097-02415-08499

SQLite ensures that *pzErrMsg is NULL before calling the xEntryPoint(). (source c3ref/auto_extension.html, checked-by: th3/req1/autoext01.test)

R-40079-54503-52433-22063-65278-03713-13772-01502

The BETWEEN operator is logically equivalent to a pair of comparisons. "x BETWEEN y AND z" is equivalent to "x>=y AND x<=z" except that with BETWEEN, the x expression is only evaluated once. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-40080-57388-03533-29871-29950-16728-34071-16269

The estimatedCost value is an estimate of the cost of doing the particular lookup. (source c3ref/index_info.html)

R-40123-37571-51972-63569-14797-25863-34192-34067

PRAGMA writable_schema = boolean; When this pragma is on, the SQLITE_MASTER tables in which database can be changed using ordinary UPDATE, INSERT, and DELETE statements. (source pragma.html)

R-40134-11040-10708-03922-57956-18242-63459-36005

If SQLite is compiled with the SQLITE_ENABLE_STAT3 option, then additional histogram data is collected and stored in sqlite_stat3. (source lang_analyze.html, checked-by: th3/req1/analyze01.test)

R-40137-26050-25715-27051-43009-42599-25608-04347

If the mode option is set to "rw", then the database is opened for read-write (but not create) access, as if SQLITE_OPEN_READWRITE (but not SQLITE_OPEN_CREATE) had been set. (source c3ref/open.html, checked-by: tcl/e_uri.test)

R-40197-14811-29578-36290-28063-57666-21739-57478

The dropped table is completely removed from the database schema and the disk file. (source lang_droptable.html)

R-40212-32858-03884-52961-15925-53384-61113-63305

Therefore, auto-vacuuming must be turned on before any tables are created. (source pragma.html, checked-by: th3/req1/pragma07.test)

R-40228-05483-58480-12139-54798-33124-01021-28688

When this flag is on, new SQLite databases are created in a file format that is readable and writable by all versions of SQLite going back to 3.0.0. (source pragma.html, checked-by: th3/req1/pragma22.test)

R-40235-17052-28075-57665-18059-48204-40601-49682

The update hook is not invoked for rows that are deleted by the REPLACE conflict resolution strategy. (source lang_conflict.html, checked-by: th3/req1/conflict02.test)

R-40244-56906-37355-29196-11093-05053-42353-15016

If the 5th parameter to sqlite3_exec() is not NULL and no errors occur, then sqlite3_exec() sets the pointer in its 5th parameter to NULL before returning. (source c3ref/exec.html, checked-by: th3/req1/exec01.test)

R-40266-43440-47498-36146-03230-38014-28903-04203

Whenever the database schema changes, the statement must be reprepared. (source fileformat2.html)

R-40275-54363-02570-13891-25879-32462-51713-20144

If no COLLATE clause is specified, the default collation sequence is BINARY. (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-40298-31327-08313-07924-25737-24102-08430-39905

The LIKE optimization might occur if the column named on the left of the operator is indexed using the built-in BINARY collating sequence and case_sensitive_like is turned on. Or the optimization might occur if the column is indexed using the built-in NOCASE collating sequence and the case_sensitive_like mode is off. These are the only two combinations under which LIKE operators will be optimized. (source optoverview.html, checked-by: th3/cov1/where03.test)

R-40318-26723-38949-62709-27455-61275-20452-62962

BLOB values (even serial types 12 and larger) sort last and in the order determined by memcmp(). (source fileformat2.html)

R-40355-56314-02785-21892-27630-10277-00128-03405

When the callback is invoked, the first argument passed is a copy of the second argument to sqlite3_collation_needed() or sqlite3_collation_needed16(). The second argument is the database connection. The third argument is one of SQLITE_UTF8, SQLITE_UTF16BE, or SQLITE_UTF16LE, indicating the most desirable form of the collation sequence function required. The fourth parameter is the name of the required collation sequence. (source c3ref/collation_needed.html)

R-40361-64162-53893-43519-22401-31532-23705-29102

Autocommit mode is on by default. (source c3ref/get_autocommit.html)

R-40383-06816-10485-50532-53566-05766-27128-48276

The sqlite3_compileoption_used() function returns 0 or 1 indicating whether the specified option was defined at compile time. (source c3ref/compileoption_get.html)

R-40390-09039-54106-21086-56168-24022-18205-41129

These functions add, remove, or modify a collation associated with the database connection specified as the first argument. (source c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test)

R-40416-50415-37533-65510-36358-17565-47393-05373

SQLite will also add one of the following flags to the xOpen() call, depending on the object being opened: SQLITE_OPEN_MAIN_DB SQLITE_OPEN_MAIN_JOURNAL SQLITE_OPEN_TEMP_DB SQLITE_OPEN_TEMP_JOURNAL SQLITE_OPEN_TRANSIENT_DB SQLITE_OPEN_SUBJOURNAL SQLITE_OPEN_MASTER_JOURNAL SQLITE_OPEN_WAL (source c3ref/vfs.html, checked-by: th3/mkth3.tcl)

R-40463-24712-34752-07038-54630-26227-29776-31431

SQLITE_DBSTATUS_CACHE_MISS This parameter returns the number of pager cache misses that have occurred. (source c3ref/c_dbstatus_options.html)

R-40472-60438-03331-36186-60982-36973-59940-12981

Columns that do not appear in the list of assignments are left unmodified. (source lang_update.html, checked-by: slt/slt_lang_update.test, tcl/e_update.test)

R-40502-12262-42819-60807-51435-51687-55446-47633

If SQLITE_IOERR_XXX, SQLITE_NOMEM, or SQLITE_READONLY is returned, then there is no point in retrying the call to sqlite3_backup_step(). These errors are considered fatal. (source c3ref/backup_finish.html)

R-40541-16535-13486-20808-32771-40014-56894-53399

This pragma returns the names of compile-time options used when building SQLite, one option per row. (source pragma.html, checked-by: th3/req1/pragma13.test)

R-40541-54897-33607-37262-17474-57290-09312-25628

For the purposes of this API, a transaction is said to have been rolled back if an explicit "ROLLBACK" statement is executed, or an error or constraint causes an implicit rollback to occur. (source c3ref/commit_hook.html)

R-40564-64233-62609-55740-51668-02472-22352-36166

No affinities are applied to any values as the result of a GROUP by clause. (source datatype3.html, checked-by: th3/req1/datatype3_07.test)

R-40597-22164-08785-17254-28069-60974-16591-44156

The result of avg() is NULL if and only if there are no non-NULL inputs. (source lang_aggfunc.html, checked-by: slt/slt_lang_aggfunc.test, th3/req1/aggfunc01.test)

R-40598-36595-56877-54174-64761-50948-11892-46483

For each affected row, the named columns are set to the values found by evaluating the corresponding scalar expressions. (source lang_update.html, checked-by: slt/slt_lang_update.test, tcl/e_update.test)

R-40630-02268-40288-03121-46855-38283-56768-00095

If used within a SELECT that uses the "query by rowid" or "linear scan" strategies, then the snippet and offsets both return an empty string, and the matchinfo function returns a blob value zero bytes in size. (source fts3.html, checked-by: tcl/fts3snippet.test)

R-40701-42164-20552-62513-02587-07019-30036-47578

sqlite> EXPLAIN QUERY PLAN SELECT a FROM t1 UNION SELECT c FROM t2; 1|0|0|SCAN TABLE t1 (~1000000 rows) 2|0|0|SCAN TABLE t2 (~1000000 rows) 0|0|0|COMPOUND SUBQUERIES 1 AND 2 USING TEMP B-TREE (UNION) (source eqp.html, checked-by: tcl/eqp.test)

R-40729-56447-32753-40044-54162-25797-56212-55799

Duplicate rows are removed from the results of INTERSECT and EXCEPT operators before the result set is returned. (source lang_select.html, checked-by: tcl/e_select.test)

R-40745-32628-44360-54833-19873-28133-21062-02308

However xMutexAlloc() may use SQLite memory allocation for a fast or recursive mutex. (source c3ref/mutex_methods.html)

R-40798-35269-51954-12592-52405-01125-52034-02657

Warning: misuse of this pragma can easily result in a corrupt database file. (source pragma.html)

R-40808-28254-51888-63340-48062-19796-43934-20830

The default encoding for the database will be UTF-8 if sqlite3_open() or sqlite3_open_v2() is called and UTF-16 in the native byte order if sqlite3_open16() is used. (source c3ref/open.html)

R-40812-03570-58737-26450-04451-50021-12578-43661

If no negative ROWID values are inserted explicitly, then automatically generated ROWID values will always be greater than zero. (source autoinc.html, checked-by: src/vdbe.c, th3/cov1/vdbe23.test)

R-40822-33276-58156-53336-07099-39057-58220-02470

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 (source rtree.html)

R-40827-27357-46487-27198-26867-15174-62736-47681

If foreign key constraints are enabled when a table is renamed, then any REFERENCES clauses in any table (either the table being renamed or some other table) that refer to the table being renamed are modified to refer to the renamed table by its new name. (source lang_altertable.html, checked-by: th3/req1/altertable01.test)

R-40858-03003-08666-12472-31051-52566-61637-28947

The fourth parameter to sqlite3_open_v2() is the name of the sqlite3_vfs object that defines the operating system interface that the new database connection should use. (source c3ref/open.html)

R-40874-07817-64808-61349-14164-22324-19538-25900

In those routines that have a fourth argument, its value is the number of bytes in the parameter. To be clear: the value is the number of bytes in the value, not the number of characters. (source c3ref/bind_blob.html, checked-by: th3/req1/bind01.test)

R-40889-53063-14595-07766-43270-52852-15594-05105

It is not permissible to add a WHERE clause or do any arithmetic on the result. (source optoverview.html)

R-40912-17796-52858-33167-65116-31464-10604-52940

Only an effective call of sqlite3_initialize() does any initialization. All other calls are harmless no-ops. (source c3ref/initialize.html)

R-40919-40941-56960-24730-25939-05503-19815-62200


(source lang_select.html, checked-by: tcl/e_select.test)

R-40921-47946-20610-64910-18137-09746-01061-06361

Another limitation of the histogram data is that it only applies to the left-most column on an index. (source optoverview.html)

R-40949-19585-05483-44375-20599-28045-28956-60873

The fifth byte through the last usable byte are used to hold overflow content. (source fileformat2.html)

R-41004-58299-09133-05321-11963-32065-55865-10893

The parameter P is passed through as the only parameter to the callback function X. (source c3ref/progress_handler.html, checked-by: th3/req1/progress01.test)

R-41025-56247-28274-26451-36451-44569-58431-11817

Otherwise, the affinity is NUMERIC. (source datatype3.html, checked-by: th3/req1/datatype3_01.test)

R-41040-47502-07753-07518-58818-60449-29305-32446

Autocheckpointing is enabled by default with an interval of 1000 or SQLITE_DEFAULT_WAL_AUTOCHECKPOINT. (source pragma.html)

R-41050-23052-29095-23436-46083-00331-23025-31647

The first (query) form will return the synchronous setting as an integer. (source pragma.html)

R-41062-34431-24503-40012-23472-27163-07838-01416

Parent and child keys must have the same cardinality. (source foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys11.test)

R-41103-34171-63381-59793-03319-04831-02307-39561

If an error occurs while evaluating the SQL statements passed into sqlite3_exec(), then execution of the current statement stops and subsequent statements are skipped. (source c3ref/exec.html, checked-by: th3/req1/exec01.test)

R-41108-63135-59113-45543-59580-27259-39094-46915

The subquery does not use LIMIT or the outer query does not have a WHERE clause. (source optoverview.html)

R-41132-04368-54784-12197-53730-05205-63815-61247

Comments do not nest. (source lang_comment.html, checked-by: th3/req1/comment01.test)

R-41134-27890-19387-23998-27179-40954-57167-14106

When you change the cache size using the cache_size pragma, the change only endures for the current session. (source pragma.html, checked-by: th3/req1/pragma09.test)

R-41155-30776-45495-01405-38282-55666-24776-00512

Any command that changes the database (basically, any SQL command other than SELECT) will automatically start a transaction if one is not already in effect. (source lang_transaction.html)

R-41161-50390-16822-36301-43678-58977-40657-30512

If this parameter is -1, then the SQL function or aggregate may take any number of arguments between 0 and the limit set by sqlite3_limit(SQLITE_LIMIT_FUNCTION_ARG). (source c3ref/create_function.html, checked-by: th3/req1/createfunc02.test)

R-41163-31141-41973-37775-18210-20451-39077-27354

The default transaction behavior is deferred. (source lang_transaction.html)

R-41183-50724-01751-26515-20432-60241-55721-62765

The returned string is valid until the prepared statement is destroyed using sqlite3_finalize() or until the statement is automatically reprepared by the first call to sqlite3_step() for a particular run or until the same information is requested again in a different encoding. (source c3ref/column_database_name.html)

R-41190-61687-46022-39115-32410-29963-50753-29517

The 4th form changes the journaling mode for a specific database connection named. (source pragma.html, checked-by: th3/req1/pragma23.test)

R-41220-51800-40113-04594-39111-44246-00162-60024

This option sets the threading mode to Serialized. (source c3ref/c_config_getmalloc.html)

R-41246-06467-15697-52258-02048-61500-49466-56999

The multi-argument max() 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)

R-41378-26734-12834-24584-64948-40708-19586-57868


(source lang_select.html, checked-by: tcl/e_select.test)

R-41381-35999-48332-52888-17487-39096-22671-62741

If the third parameter to sqlite3_result_error() or sqlite3_result_error16() is non-negative then SQLite takes that many bytes (not characters) from the 2nd parameter as the error message. (source c3ref/result_blob.html, checked-by: th3/req1/result01.test)

R-41411-18837-33884-40601-61407-45364-54319-00196

If the keywords PRIMARY KEY are added to a column definition, then the primary key for the table consists of that single column. (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-41417-64456-42642-02544-40631-11378-24048-47614

The WAL journaling mode uses a write-ahead log instead of a rollback journal to implement transactions. (source pragma.html, checked-by: th3/req1/pragma24.test)

R-41419-14702-29369-41005-61187-50816-54940-05790

The sqlite3_result_toobig() interface causes SQLite to throw an error indicating that a string or BLOB is too long to represent. (source c3ref/result_blob.html, checked-by: th3/req1/result01.test)

R-41434-12448-15402-26393-34010-17750-11581-13699

If the join-op 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 corresponds to no rows at all in the composite dataset (if any). (source lang_select.html, checked-by: tcl/e_select.test)

R-41435-15049-20553-57196-01541-07225-45251-60631

When temp_store is DEFAULT (0), the compile-time C preprocessor macro SQLITE_TEMP_STORE is used to determine where temporary tables and indices are stored. (source pragma.html)

R-41438-41245-47933-47570-18885-03208-62677-50789

This can result in a table that contains data that is in violation of the CHECK constraint. (source lang_altertable.html, checked-by: th3/req1/altertable01.test)

R-41444-49665-13532-29136-56203-03908-49213-31629

Other integer type names like "INT" or "BIGINT" or "SHORT INTEGER" or "UNSIGNED INTEGER" causes the primary key column to behave as an ordinary table column with integer affinity and a unique index, not as an alias for the rowid. (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-41470-32236-05158-07794-46704-63040-13347-49238

The aConstraint[] array only reports WHERE clause terms that are relevant to the particular virtual table being queried. (source c3ref/index_info.html)

R-41499-47058-04189-19670-59283-14956-02456-13763

The leftmost column is number 0. (source c3ref/column_name.html)

R-41519-43313-49943-13325-32316-49786-47625-55988

If N is out of range, sqlite3_compileoption_get() returns a NULL pointer. (source c3ref/compileoption_get.html)

R-41531-51083-45051-37425-19674-01432-09098-10672

Every new database connection defaults to having the auto-checkpoint enabled with a threshold of 1000 or SQLITE_DEFAULT_WAL_AUTOCHECKPOINT pages. (source c3ref/wal_autocheckpoint.html)

R-41554-07046-26036-24381-44399-09525-65119-51842

The sqlite3_db_filename(D,N) interface returns a pointer to a filename associated with database N of connection D. (source c3ref/db_filename.html, checked-by: th3/cov1/attach04.test)

R-41640-10889-37891-53855-47925-09375-30702-30304

The filename returned by this function is the output of the xFullPathname method of the VFS. (source c3ref/db_filename.html, checked-by: th3/cov1/attach04.test)

R-41650-20872-58221-16141-48271-22021-38019-62849

No regexp() user function is defined by default and so use of the REGEXP operator will normally result in an error message. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-41671-45444-43968-05404-57044-18687-11501-21021

The format string supports the most common substitutions found in the strftime() function from the standard C library plus two new substitutions, %f and %J. (source lang_datefunc.html, checked-by: th3/req1/date01.test)

R-41709-11359-63668-44709-26300-11660-01495-57429

Subverting this mechanism by using "PRAGMA schema_version" to modify the schema-version is potentially dangerous and may lead to program crashes or database corruption. (source pragma.html, checked-by: th3/req1/pragma28.test)

R-41719-58677-16610-62099-11420-34570-29798-59249

Any SQL statement variables that had values bound to them using the sqlite3_bind_*() API retain their values. (source c3ref/reset.html, checked-by: th3/req1/clearbind01.test)

R-41778-26203-39333-15071-00697-32758-59991-57440

SQLITE_LIMIT_ATTACHED The maximum number of attached databases. (source c3ref/c_limit_attached.html, checked-by: th3/req1/limit02.test)

R-41784-13339-39195-36557-35011-50589-62735-17221

Tip: If the command "PRAGMA foreign_keys" returns no data instead of a single row containing "0" or "1", then the version of SQLite you are using does not support foreign keys (either because it is older than 3.6.19 or because it was compiled with SQLITE_OMIT_FOREIGN_KEY or SQLITE_OMIT_TRIGGER defined). (source foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys05.test)

R-41795-40039-43827-16838-58364-41518-15809-62342

These three ways of committing a transaction correspond to the DELETE, TRUNCATE, and PERSIST settings, respectively, of the journal_mode pragma. (source fileformat2.html)

R-41800-47981-37638-39991-16437-19048-26206-01107

This 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_getmalloc.html)

R-41837-07814-38752-23130-22847-42887-22849-22070

If the interrupted SQL operation is an INSERT, UPDATE, or DELETE that is inside an explicit transaction, then the entire transaction will be rolled back automatically. (source c3ref/interrupt.html)

R-41898-06686-16828-22027-00966-49217-22358-47285

If the SELECT yields more than one result row, all rows after the first are ignored. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-41898-15939-51576-48964-07633-48670-39877-19524

The sqlite3_value_text16be() and sqlite3_value_text16le() interfaces extract UTF-16 strings as big-endian and little-endian respectively. (source c3ref/value_blob.html, checked-by: th3/req1/value02.test, th3/req1/value03.test)

R-41915-30283-17084-09200-05336-25843-01576-43126

Serial Type Codes Of The Record Format Serial TypeContent SizeMeaning 00 NULL 11 8-bit twos-complement integer 22 Big-endian 16-bit twos-complement integer 33 Big-endian 24-bit twos-complement integer 44 Big-endian 32-bit twos-complement integer 56 Big-endian 48-bit twos-complement integer 68 Big-endian 64-bit twos-complement integer 78 Big-endian IEEE 754-2008 64-bit floating point number 80 Integer constant 0. Only available for schema format 4 and higher. 90 Integer constant 1. Only available for schema format 4 and higher. 10,11   Not used. Reserved for expansion. N≥12 and even (N-12)/2 A BLOB that is (N-12)/2 bytes in length N≥13 and odd (N-13)/2 A string in the database encoding and (N-13)/2 bytes in length. The nul terminator is omitted. (source fileformat2.html)

R-41966-43200-49529-11929-45151-33494-57348-62129

Use "main" for the main database (the database that was opened by the original sqlite3_open(), sqlite3_open16(), or sqlite3_open_v2() interface call) and use "temp" for database that holds TEMP tables. (source pragma.html, checked-by: th3/req1/pragma23.test)

R-41969-26805-23474-17997-34431-40001-19681-04714

If the application crashes in the middle of a transaction when the OFF journaling mode is set, then the database file will very likely go corrupt. (source pragma.html, checked-by: th3/req1/pragma25.test)

R-41970-42722-40683-07259-21331-17616-49232-32709

This pragma queries or sets the write-ahead log auto-checkpoint interval. (source pragma.html)

R-42037-15614-06254-40391-55101-11302-16506-13295

The DROP INDEX statement removes an index added with the CREATE INDEX statement. (source lang_dropindex.html, checked-by: slt/slt_lang_dropindex.test)

R-42037-37826-09680-08362-57128-46753-57920-34709

The default match() function implementation raises an exception and is not really useful for anything. (source lang_expr.html, checked-by: tcl/e_expr.test)

R-42049-24001-08911-07479-20981-30990-05153-14571

A subsequent call to xRollbackTo(X,R) means that the state of the virtual table should return to what it was when xSavepoint(X,R) was last called. (source vtab.html)

R-42059-47211-64082-08084-07412-31027-38938-26624

If the argument N is positive then the suggested cache size is set to N. (source pragma.html)

R-42089-41020-28633-04847-35892-58431-48484-20358

If no transaction is active (other than the implied transaction that is created on every command) then the ROLLBACK resolution algorithm works the same as the ABORT algorithm. (source lang_conflict.html, checked-by: th3/req1/conflict01.test)

R-42117-40023-28532-25670-04588-08261-64907-07819

Otherwise, the UPDATE affects only those rows for which the result of evaluating the WHERE clause expression as a boolean expression is true. (source lang_update.html, checked-by: slt/slt_lang_update.test, tcl/e_update.test)

R-42136-40354-42275-03158-50011-22774-46135-65161

The sqlite3_update_hook(D,C,P) function returns the P argument from the previous call on the same database connection D, or NULL for the first call on D. (source c3ref/update_hook.html)

R-42168-23975-08359-11434-07624-62565-20004-56753

Built-in functions may be overloaded by new application-defined functions. (source c3ref/create_function.html, checked-by: th3/req1/createfunc01.test, th3/req1/createfunc05.test)

R-42196-45693-64496-49282-35220-26786-47093-56372

The collating function callback is invoked with a copy of the pArg application data pointer and with two strings in the encoding specified by the eTextRep argument. (source c3ref/create_collation.html, checked-by: th3/req1/createcoll01.test)

R-42207-04347-65478-63733-46803-43649-38770-36227

In other words, if the pattern is like this: column LIKE x% column GLOB x* then the original LIKE or GLOB tests are disabled when the virtual terms constrain an index because in that case we know that all of the rows selected by the index will pass the LIKE or GLOB test. (source optoverview.html)

R-42243-62806-04242-02019-64725-25394-01618-23361

The call to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the invalided savepoints will be rolled back or released without first being reinitialized by a call to xSavepoint(). (source vtab.html)

R-42264-30503-59734-27182-09604-54439-24686-19729

The SQLITE_MAX_TRIGGER_DEPTH and SQLITE_LIMIT_TRIGGER_DEPTH settings determine the maximum allowable depth of trigger program recursion. For the purposes of these limits, foreign key actions are considered trigger programs. (source foreignkeys.html, checked-by: tcl/e_fkey.test, th3/req1/foreignkeys24.test)

R-42315-53658-63706-40087-63101-17320-03632-52756

This routine sets a busy handler that sleeps for a specified amount of time when a table is locked. (source c3ref/busy_timeout.html)

R-42316-09582-63519-16650-16131-27933-31807-16513

If there is no explicit DEFAULT clause attached to a column definition, then the default value of the column is NULL. (source lang_createtable.html, checked-by: tcl/e_createtable.test)

R-42333-10376-25894-44230-56156-46004-61943-25934

The incremental_vacuum pragma has no effect if the database is not in auto_vacuum=incremental mode or if there are no pages on the freelist. (source pragma.html, checked-by: th3/req1/pragma21.test)

R-42363-29104-39854-61131-26966-39533-29446-04460

SQLITE_LIMIT_VARIABLE_NUMBER The maximum index number of any parameter in an SQL statement. (source c3ref/c_limit_attached.html, checked-by: th3/req1/limit02.test)

R-42365-56839-53807-17537-34270-55327-08082-62618

This option takes a single argument which is a pointer to an instance of the sqlite3_mutex_methods structure. The sqlite3_mutex_methods structure is filled with the currently defined mutex routines. (source c3ref/c_config_getmalloc.html)

R-42393-33810-20509-47326-15941-02937-41283-04621

If Z is not initially a string, it is cast to a UTF-8 string prior to processing. (source lang_corefunc.html, checked-by: th3/req1/func03.test)

R-42401-19613-44791-55246-19167-45900-28933-57755

If offset iOffset is less than N bytes from the end of the BLOB, SQLITE_ERROR is returned and no data is read. (source c3ref/blob_read.html, checked-by: th3/cov1/vdbeblob01.test)

R-42402-58065-33107-31674-12712-01620-50339-46912

The second integer in the array is the number of leaf page pointers to follow. (source fileformat2.html)

R-42412-59321-17229-61863-37154-26359-45547-07737

Tip: I