1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-14 00:22:38 +03:00
Commit Graph

354 Commits

Author SHA1 Message Date
drh
e096205a7f New debugging pragmas: PRAGMA vdbe_debug=ON is short-hand for the sql_trace,
vdbe_listing, and vdbe_trace pragmas.  PRAGMA vdbe_debug enables tracing of
sqlite3VdbeAddOp() calls.  None of this is active unless compiled with
SQLITE_DEBUG.

FossilOrigin-Name: ae565ff3e0836b0cb45cc0ba7f27fa8cb2d21d77
2013-01-29 19:14:31 +00:00
drh
7fe18b4105 Fix the activate_extensions pragma so that it is a no-op when the required
argument is omitted.

FossilOrigin-Name: 6195ebd83323eaad92a0aa095cce1094bf8e2ba6
2013-01-16 20:33:02 +00:00
drh
384b7fe221 Enhance the table_info pragma so that the pk column shows the order of the
columns in a multi-column primary key.

FossilOrigin-Name: 3076a89015071e9b40e728bd55160e3a6ed98820
2013-01-01 13:55:31 +00:00
drh
83e0dba311 Remove an unreachable branch operation from the foreign_key_check pragma.
FossilOrigin-Name: b5a8f3160b5dc1397312add3c5410e7e0a12b75e
2012-12-20 00:32:49 +00:00
drh
7d22a4d710 Added test cases for PRAGMA foreign_key_check. Fixed a bug that appears
when the column order of the child and parent differ.

FossilOrigin-Name: 25411f83f99803e39feee368703fd20b4ade8eeb
2012-12-17 22:32:14 +00:00
drh
4b4b473a1e Add to the foreign_key_check pragma an extra output column "parent" that
contains the name of the parent table for the constraint that failed.

FossilOrigin-Name: 97f7f7377259ecf562019f62ebed0897cfae236e
2012-12-17 20:57:15 +00:00
drh
9148defa61 Enhance the error message for "foreign key mismatch" to include the names of
the child and parent tables.  Begin adding test cases for 
PRAGMA foreign_key_check.  Make sure PRAGMA foreign_key_check gets all
necessary table locks.

FossilOrigin-Name: 0f9963526c299757ff95c153fb05a67cddb6af28
2012-12-17 20:40:39 +00:00
drh
613028b34e "PRAGMA foreign_key_check" with no argument checks the foreign keys on all
tables.

FossilOrigin-Name: 57d47423a65d183cb1efcb95b28cb143e788b953
2012-12-17 18:43:02 +00:00
drh
a7c2f3e760 Fix an issue with child keys that are not INTEGER PRIMARY KEY
referencing INTEGER PRIMARY KEY in the parent.

FossilOrigin-Name: 603b695bf094b9da905f877a13dcb134463db92a
2012-12-17 18:05:54 +00:00
drh
6c5b915fcb Prototype for PRAGMA that checks all foreign key constraints on a table.
FossilOrigin-Name: 01c980e9bbdf82e0b37667b6403c19ed8c73ee62
2012-12-17 16:46:37 +00:00
drh
5a05be1b68 Attempt to suppress warnings generated by Coverity.
FossilOrigin-Name: 7b1a6e6cb5099076bf19db142b17c99044a869cd
2012-10-09 18:51:44 +00:00
dan
80bb6f8217 Add SQLITE_FCNTL_BUSYHANDLER. Invoked to provide access to the busy-handler callback to custom VFS implementations.
FossilOrigin-Name: 1262d2f471214a3417dd02159a7aa2355b18f789
2012-10-01 18:44:33 +00:00
drh
cec320fb0e Merge the "PRAGMA busy_timeout" change into trunk.
FossilOrigin-Name: 1a679a1ef3b4f2d898c8cd83432d2b4c12bd93fa
2012-09-27 12:11:25 +00:00
drh
e8e4af7697 Consolidate more of the DISTINCT processing logic into a single spot in the
code.  Reduce the number of OP_Column operations needed to perform a
WHERE_DISTINCT_ORDERED.

FossilOrigin-Name: 79e922f7ae29bbe06d639d648fbd72523cf9a28e
2012-09-21 00:04:28 +00:00
drh
a371ace426 Change boolean fields in the Column object from unsigned characters into
bits in a single bit mask variable.

FossilOrigin-Name: 4163f5f194741bc2bdf141973912661c6aac70f1
2012-09-13 14:22:47 +00:00
drh
c0c7b5ee74 Have PRAGMA busy_timeout return 0 if the busy handler has been changed
or cancelled.

FossilOrigin-Name: 7be5bc36798d30f50658b70fc0bd31af897f3a87
2012-09-07 18:49:57 +00:00
drh
f360396c47 Add an experimental busy_timeout pragma to facilitate access to the
sqlite3_busy_timeout() interfaces for programmers that are working from
behind a language wrapper that does not expose that interface.

FossilOrigin-Name: 22ebc668516bc3dd5782d6d3d42dc7fd2eed7d79
2012-09-07 16:46:59 +00:00
dan
5885e76269 If a specific database is nominated as part of a "PRAGMA integrity_check" or "PRAGMA quick_check" command, search for problems in the nominated database only. i.e. "PRAGMA main.quick_check" now only scans the main database, not all attached databases as before.
FossilOrigin-Name: 4353e40b74f577f224f190c429bfe03cf6a5c6d6
2012-07-16 10:06:12 +00:00
drh
cc71645bf7 Merge the changes need to compile on WinRT into trunk.
FossilOrigin-Name: 61360ca6ca3448477d5c662d3642beef6dd2079e
2012-06-06 23:23:23 +00:00
drh
81028a455d The former sqlite3ResetInternalSchema() routine was really two different
routines, selected by parameter, each with a confused mission.  So split
this routine up into three separate smaller routines, calling each
separately as needed.  Hopefully this will make further refactoring and
schema reset collateral damage containment easier.

FossilOrigin-Name: aa0c3493d3647d7efe527067e9fcccefda8e3008
2012-05-15 18:28:27 +00:00
mistachkin
a112d140ae Add experimental support for resolving relative database file paths using a fixed user-defined directory.
FossilOrigin-Name: 7354ae8fd3eccee2cf9f6501da5b1a014c31556f
2012-03-14 00:44:01 +00:00
drh
70708600b5 Add #ifdef SQLITE_ENABLE_ZIPVFS around those bits of code that are only
used by ZIPVFS.

FossilOrigin-Name: 3130275c64a60c5cfacbd11123305e6d99ea866d
2012-02-24 14:33:28 +00:00
drh
8d93684874 If the SQLITE_FCNTL_PRAGMA file control returns something other than
SQLITE_NOTFOUND, then skip the rest of Pragma code generation.

FossilOrigin-Name: 9e6d340f557c2f2c8a07300ac60357af9906a7fa
2012-02-24 00:03:12 +00:00
drh
92c700dbb7 If the SQLITE_FCNTL_PRAGMA file-control returns anything other than
SQLTIE_NOTFOUND and SQLITE_OK, then treat the result as an error.

FossilOrigin-Name: 5643618108a8aafba67ed4004039b862bb5e5da8
2012-02-22 19:56:17 +00:00
drh
e4d25e9cfb Make benign any malloc failures inside the sqlite3_file_control() call within
PRAGMA parsing.  Add a couple simple tests for SQLITE_FCNTL_PRAGMA.

FossilOrigin-Name: a1f29fa653b788f563967f55c3d20e64cbe3f549
2012-02-22 18:21:20 +00:00
drh
3fa9730273 Change the SQLITE_FCNTL_PRAGMA file-control so that it can return a string
value.

FossilOrigin-Name: fd8d7440277b17f57a6dc0a210f42adf1fa2dcd2
2012-02-22 16:58:36 +00:00
drh
06fd5d63a4 Begin adding support for SQLITE_FCNTL_PRAGMA.
FossilOrigin-Name: 5be07904baf6e5b8b99ca6f4bb6ddec973e59cd4
2012-02-22 14:45:19 +00:00
drh
38d9c612ed Futher pedantic fixes to the sqlite3_uri_boolean() interface.
FossilOrigin-Name: 77b3430de69e23ba3feda3d618fe4880dd465023
2012-01-31 14:24:47 +00:00
drh
908c005c72 Bring the documentation and implementation of sqlite3_uri_boolean() into
closer agreement.  Ticket [5f41597f7c9c]

FossilOrigin-Name: 7b053d699ffa1da9c50f1a19edb052c0f014058a
2012-01-30 18:40:55 +00:00
drh
33f111dc72 Remove the undocumented PRAGMA omit_readlock hack.
FossilOrigin-Name: 96900c47e4fc6ed55cefc10d55d3d8d16bcb1d31
2012-01-17 15:29:14 +00:00
drh
c02372ce6f Refactor sqlite3OsFileControlNoFail() into sqlite3FileControlHint().
FossilOrigin-Name: 722735a4f316630c907149f08d3d7dccc0facd9a
2012-01-10 17:59:59 +00:00
dan
6f2f19a154 Add function sqlite3OsFileControlNoFail(), which is the same as sqlite3OsFileControl() except that it does not simulate OOM errors. This saves adding calls to the BenignMalloc() functions around each of the invocations of sqliteOsFileControl() that ignore the return code.
FossilOrigin-Name: af59b182d797642e5ec3ddf291cf62662a136bd1
2012-01-10 16:56:39 +00:00
drh
09419b4bae Add the sqlite3_db_release_memory() interface and the shrink_memory pragma.
FossilOrigin-Name: 3f58e7c8895d1252eff56282c08b1a6f1194452c
2011-11-16 19:29:17 +00:00
drh
e73c91496f Minor changes needed to restore full branch test coverage.
FossilOrigin-Name: bc10a753579b65ba4604867204b7b3d8383f3ac7
2011-11-09 16:12:24 +00:00
drh
3b42abb35b A negative value N for the cache_size pragma adjusts the number of cache
pages to use approximately N kibibytes of memory.

FossilOrigin-Name: b3faa680aedc94ed8aa2819228c0d304b181cc51
2011-11-09 14:23:04 +00:00
drh
c522731b88 An improved fix for the page_count and quick_check problem previously
patched at [150592b4b4d8637]

FossilOrigin-Name: c3cb7f4fad725d5fa4d5acd9da63fc4538ce8e13
2011-10-13 17:09:01 +00:00
drh
5d16a9a6c6 Make sure the page_count and quick_check pragmas work properly even when
their names are capitalized.  Fixes a problem reported on the mailing list.

FossilOrigin-Name: 150592b4b4d86372e70332d4f69e41a04c4c54c3
2011-10-13 14:41:22 +00:00
drh
9471406cf2 Fix a typo in a comment for PRAGMA journal_mode. Also amplify that same
comment.

FossilOrigin-Name: c8ff2a484005ca48c52407db9f4a9a7d9f747158
2011-10-10 12:04:14 +00:00
drh
c7dc9bf88e Fix the build when using SQLITE_OMIT_PRAGMA.
FossilOrigin-Name: 051f4635bf1e9618b108c4177b8ecc5762ed08e7
2011-06-03 13:02:57 +00:00
drh
81cc516352 Add the ability to limit filenames to 8+3 using the
SQLITE_ENABLE_8_3_NAMES compile-time option together with a URI
parameter of "8_3_names=1".

FossilOrigin-Name: 96d609856025919571f781207dfa6a24b1732e8d
2011-05-17 20:36:21 +00:00
drh
959b6a95ee Merge the scheme-parse-refactor changes into trunk: (1) added
sqlite3SchemaMutexHeld() asserts, (2) Use -1 instead of 0 to mean
"all" in sqlite3ResetInternalSchema(), and other cosmetic changes.

FossilOrigin-Name: 5db4511d8a77b74be3503a7c34257ef6b07541f5
2011-04-05 13:12:28 +00:00
drh
8d129422ed Fix the P4_TRANSIENT constant so that it works correct - so that it really
makes a copy of the string for the P4 argument.  Use P4_TRANSIENT wherever
appropriate.  Change P4_STATICs of schema names to P4_TRANSIENT.

FossilOrigin-Name: bf664b206bf6f5c1941da1986dfe2c0d1831d5e4
2011-04-05 12:25:19 +00:00
drh
2120608e0f Add a description of access rules for the Schema object and lots of asserts
to verify that the access rules are followed.

FossilOrigin-Name: ae8374af057b6e6546e9265148cfffe32fcb0849
2011-04-04 18:22:02 +00:00
drh
c7792fa052 Begin a series of changes designed to reduce the scope and frequency of
invalidating schemas.  Design goals are that the internal schema should
never be deleted out from under a prepared statement that is running and
that all prepared statements should be expired if the schema is invalidated.
At the same time, minimize the number of schema invalidations.  This change
merely revises the sqlite3ResetInternalSchema() function to use -1 as the
wildcard for "all" rather than 0, so that we can reset the main schema
independently of all the others.

FossilOrigin-Name: 6a8ad6e31e0d2b8a5ace38faf0efd805155ee5f3
2011-04-02 16:28:52 +00:00
drh
d50ffc416f Fix additional cases of possible signed integer overflow, especially with
regard to negation.

FossilOrigin-Name: 2d5800bd8cfc7d7f5578a71b1aeaa74b2ec4b372
2011-03-08 02:38:28 +00:00
drh
30aa3b93b6 Cleanup to the OP_Checkpoint opcode.
FossilOrigin-Name: f611a5a879b7dec1ed1d8bf32413c8a6b81c3172
2011-02-07 23:56:01 +00:00
drh
87fa53ee8d Merge in the blocking-checkpoint enhancement, including the new
sqlite3_wal_checkpoint_v2() interface and the
PRAGMA wal_checkpoint(full) statement.

FossilOrigin-Name: bac7342c368a7c4f5f2878e08d9581dcbf57dd58
2011-02-02 16:34:08 +00:00
drh
60ac3f426c Fix the max_page_count pragma so that it will not set to a value smaller
than the current database size, as the documentation requires.  Also,
remove all occurances of atoi() from the core.

FossilOrigin-Name: 2031974b606ef713b5f34522b2221470d98687c5
2010-11-23 18:59:27 +00:00
drh
27f9aba18c Merge the checkpoint_fullfsync pragma and the superlock demonstration into
the checkpoint-v2 experimental branch.

FossilOrigin-Name: ebf74015f09fe241c1c6902dc8954f2b59ab41ec
2010-11-19 18:51:31 +00:00
drh
c97d84638e Add the checkpoint_fullfsync pragma which enables F_FULLFSYNC on checkpoint
operations only, not during ordinary commit fsyncs.

FossilOrigin-Name: a069867301de3ca2e1753bd4d2e426d27365be4c
2010-11-19 18:23:35 +00:00