Commit Graph

10924 Commits

Author SHA1 Message Date
drh 3cdce92c38 Remove an unreachable branch. Improvements to comments.
FossilOrigin-Name: c5677ecd5cd2637d92a831ec6bd5b002f8d75626
2016-03-21 00:30:40 +00:00
drh 9f6168b6a3 Change the Vdbe.aMem array so that it is zero-based instead of one-based.
FossilOrigin-Name: e07b0c47eb5a39623f5fe0e66b939bba0906691c
2016-03-19 23:32:58 +00:00
drh bb9b5f2608 Fix a register allocation bug in the VDBE code generator for
PRAGMA integrity_check;

FossilOrigin-Name: 88439a866b3b16ad7c308ebe59198662a05e7eeb
2016-03-19 00:35:02 +00:00
drh b99185f278 Fix more test-case errors in the Apple configuration.
FossilOrigin-Name: 6631e1e655604a7d1fb45b4d151938d4a13b47f3
2016-03-18 00:19:48 +00:00
drh 108e5a9a6c Fix some test cases so that they work under the Apple configuration.
FossilOrigin-Name: 399c60764d3fdec49dab1745c30930ca1dbafe70
2016-03-17 23:56:23 +00:00
drh 9493cafe6f Fix harmless compiler warnings that arise with -DSQLITE_OMIT_LOAD_EXTENSION
FossilOrigin-Name: 65ba2f0b465a1493de6e467f55e0300ac3fb08e1
2016-03-17 23:16:37 +00:00
drh de845c2f5a A more compact implementation of the code generator for the
IS and IS NOT operators.

FossilOrigin-Name: 8607e3ac7a9d44372a4a66da21bbb3d28ae2528a
2016-03-17 19:07:52 +00:00
drh f71a366407 Some pragmas can be reused without an automatic reprepare.
FossilOrigin-Name: db1ce7e13e656fcd2766f1b1f225cbfefe8f73ad
2016-03-16 20:44:45 +00:00
drh e459bd4986 Fix a comment on the freelist_count and data_version pragmas.
FossilOrigin-Name: 10a3e2a01db9f80452a2a3369fd25b6fd9798274
2016-03-16 20:05:57 +00:00
drh 3f77389bb4 Avoid a few unnecessary fstat()s on journal files.
FossilOrigin-Name: dbf84705913c0845ca4e75eb30c91536c754efeb
2016-03-16 19:10:46 +00:00
drh 892ffcc7fc Fix the query planner so that it is able to use the integer primary key
from an index as part of a multi-column constraint.

FossilOrigin-Name: 96ea9909429f0b3b4a67002e8340ae3f7dc0b73f
2016-03-16 18:26:54 +00:00
drh 32f57d4c37 Add the SQLITE_OMIT_CODEC_FROM_TCL compile-time option.
FossilOrigin-Name: 45f7f0c80bd91a0c7ff859c27fd9e82e551bd83e
2016-03-16 01:03:10 +00:00
drh c5db1d4b4c Rearrange some internal fields in the sqlite3_stmt object to avoid a harmless
TSAN warning.

FossilOrigin-Name: e0b116edd64a55c971c368685aa343cb6beed0f1
2016-03-16 00:36:19 +00:00
drh 98968b22c5 Change the OP_IntegrityCk opcode to accept the list of root pages as an
intarray argument in P4.  Slightly smaller and faster.

FossilOrigin-Name: 15e4a272df46cbad8e71b21551dc06a126d64d46
2016-03-15 22:00:39 +00:00
mistachkin b7b91068ee In the Win32 VFS, use SQLITE_FCNTL_LAST_ERRNO instead of (the older) SQLITE_LAST_ERRNO.
FossilOrigin-Name: 9463762c437488970a87093ef13131c39b2adadc
2016-03-15 19:10:39 +00:00
drh 0ff47e9e1b Implement FROM-clause subqueries as co-routines whenever they are guaranteed
to be the outer-most loop of the join.

FossilOrigin-Name: c7bae50bdccb5bcf3bc22e8ac5bb6725ef13db39
2016-03-15 17:52:12 +00:00
drh ffbb02a361 Do not allow the use of WAL mode with nolock=1 because it does not work.
FossilOrigin-Name: 74f5d3b07f6e5e977858c73957c6f9337ae3ca3e
2016-03-11 23:07:30 +00:00
drh ecdf20d3a4 Use #ifdefs to remove code that is unreachable in some configurations, replacing
it with an assert().

FossilOrigin-Name: f96ec84d605fd73c323344a753acf35b76307af9
2016-03-10 14:28:24 +00:00
drh 69c355bd9a Slight simplification to the query optimizer logic associated with IN (SELECT).
FossilOrigin-Name: 2c55c3c2950cafdc256ab540f60dc4609b9c354b
2016-03-09 15:34:51 +00:00
drh 90730c9e68 When optimizing expressions of the form "x IN (SELECT ...)" make sure that
the subquery is not correlated.  Fix for ticket [5e3c886796e5512].

FossilOrigin-Name: 1ed6b06ea3c432f920fb2b66b6042be906c5d21c
2016-03-09 15:09:22 +00:00
drh 7c621fb967 Automatically disable SQLITE_ENABLE_EXPLAIN_COMMENTS if SQLITE_OMIT_EXPLAIN
is defined.

FossilOrigin-Name: 8d4b6b2b519a80f831d64345ac26db825b0e2ebe
2016-03-09 13:39:43 +00:00
drh bacbbccd16 In the query planner, make sure OOM errors are reported up into
whereLoopAddVirtual() so that it shuts down appropriately.

FossilOrigin-Name: a13c59d08bcbc6f26ce6ac761a892eff8f035201
2016-03-09 12:35:18 +00:00
drh d93b2b840d Simplifications to the memjournal.c logic to facilitate testing.
FossilOrigin-Name: 8baa2c2c7698e03418531482a8314a5d7ae2c7d3
2016-03-09 04:17:17 +00:00
drh 769b4c95ca Move the write failure test in memjrnlCreateFile() to just after the
actual write, thus reducing the number of instances of the test by one.

FossilOrigin-Name: 7f00d80c63b15376391f661d872f2b29a970702d
2016-03-09 03:44:32 +00:00
drh c1fb2b87bd Update a comment in btree.c to account for WITHOUT ROWID tables. No code
changes.

FossilOrigin-Name: fa20dcb03b92be3bb32f8e3d6f88681ace3f6c84
2016-03-09 03:29:27 +00:00
drh 2f1e02e8a7 Change a branch made obsolete by recent parser enhancements into an assert().
FossilOrigin-Name: ee486ef742557244f532e8d3b3604ff04e024b8a
2016-03-09 02:12:44 +00:00
drh 273021d71a Add an #ifdef and an ALWAYS() for coverage.
FossilOrigin-Name: 069337a922867ad0d023f5bf36e13ea46e047000
2016-03-09 02:03:03 +00:00
drh d1cca3b721 Change an unreachable branch in the virtual table query planner into
an assert().

FossilOrigin-Name: 73b97b9ec3c39ab2828ae6353b5d7e04a27996c9
2016-03-08 23:44:48 +00:00
drh 3349d9bea9 Improved comments on virtual table query planning. Added many new
WHERETRACE() macros.

FossilOrigin-Name: 4c89c2534abcf67bc486d5a900a84a6c4f59537e
2016-03-08 23:18:51 +00:00
drh c629e63a55 In memjournal.c, reuse the same sqlite3_file object for both the in-memory
phase and the on-disk phase.

FossilOrigin-Name: e7fbbdc25c0991d4e58d78a5fcb7386e1aa7f3af
2016-03-08 17:59:19 +00:00
dan 7ed4020890 Modify the memjournal.c code to make it a bit smaller.
FossilOrigin-Name: d99ac4154812065eef26c298de52954d7ee0bd75
2016-03-08 17:44:08 +00:00
drh 33b104af08 Drop support for SQLITE_EXTRA_DURABLE. The new SQLITE_DEFAULT_SYNCHRONOUS
compile-time option is a more general replacement.

FossilOrigin-Name: f6d3156ba9af1da517dd77c1df03fa7869888463
2016-03-08 16:07:59 +00:00
drh c2ae2073d9 Make the SQLITE_DEFAULT_SYNCHRONOUS and SQLITE_DEFAULT_WAL_SYNCHRONOUS
values zero-based to agree with PRAGMA synchronous.

FossilOrigin-Name: 592d2104361500e5002783ba329a2609389c57b9
2016-03-08 15:30:01 +00:00
drh e243de5cf5 If SQLITE_DEFAULT_WAL_SYNCHRONOUS is not the same value as
SQLITE_DEFAULT_SYNCHRONOUS and the application has not run
"PRAGMA synchronous", then set synchronous to the 
SQLITE_DEFAULT_WAL_SYNCHRONOUS setting when entering WAL mode for
the first time.

FossilOrigin-Name: 5791407b523abd24e832fc2361b3e9f01ee2f36a
2016-03-08 15:14:26 +00:00
drh 50a1a5aaca Add compile-time options SQLITE_DEFAULT_SYNCHRONOUS and
SQLITE_DEFAULT_WAL_SYNCHRONOUS used to specify the default synchronous
settings for all database connections.

FossilOrigin-Name: 1fefa967aa93372d232b96b1e0232b7b855d6d00
2016-03-08 14:40:11 +00:00
drh 6702f761ea Fix ATTACH to use the symbolic name PAGER_SYNCHRONOUS_FULL rather than
an integer literal.

FossilOrigin-Name: c4e192a0e5a408e198dbacb2752859a00d2b572f
2016-03-08 14:16:23 +00:00
drh 0dba3304f6 Fix comments on pager flag settings to include synchronous=EXTRA.
FossilOrigin-Name: 3a65a1fc0fd2408c6984153801ec5dcd5211c897
2016-03-08 13:56:02 +00:00
drh 6de32e7cdb Simplified error detection in the xBestIndex processing.
FossilOrigin-Name: 82ca2131b670505578628687746135ac413d156b
2016-03-08 02:59:33 +00:00
drh 8426e36c8f Add the ALLBITS macro as a shorthand for "(Bitmask)(-1)".
FossilOrigin-Name: 91bd619d27e4d91510a187bbb88de961a31c8a2e
2016-03-08 01:32:30 +00:00
drh 599d576456 Add a NEVER() to the code generator. Change the parameter name "mExtra"
to "mPrereq" in the query planner, to more closely reflect its meaning.

FossilOrigin-Name: 721ae51e443647291f3a8f7f2128aa410fee2682
2016-03-08 01:11:51 +00:00
drh fb826b8c13 Changes so that some assert()s in the virtual table query planner are
correct even following an OOM error.

FossilOrigin-Name: 9805f6f85211dcb5a0ab3ceca204e6f2e48530ea
2016-03-08 00:39:58 +00:00
drh 237b2b7111 Avoid a NULL pointer dereference following an OOM while generating code
for IN operators on virtual tables.

FossilOrigin-Name: c924008692e35f1f5144830af08d6de051dd21dd
2016-03-07 19:08:27 +00:00
drh 8c71a98ce1 Add the SQLITE_CONFIG_STMTJRNL_SPILL option for sqlite3_config().
FossilOrigin-Name: b6c4202432dc96f8f1740f52d0bf872116357fcc
2016-03-07 17:37:37 +00:00
dan 104ead923e Fix a problem in the previous commit affecting queries with three or more tables joined together to the right of a LEFT or CROSS JOIN operator.
FossilOrigin-Name: d8d89d69a490a708b83147945f74134ae0e4b387
2016-03-05 21:32:14 +00:00
dan 115305ff00 Change the way SQLite invokes the xBestIndex method of virtual tables so that N-way joins involving virtual tables work as expected.
FossilOrigin-Name: ffc65968ede2c402e616147e6e3d737e6f9de21d
2016-03-05 17:29:08 +00:00
drh c2f18adde5 Remove the unused journal.c source file (its function have been subsumed into
memjournal.c).  Refactor some of the names in memjournal.c.  No functional
changes.

FossilOrigin-Name: 5f2a262d3f6b1531001326faf1d3b3d92c20a30a
2016-03-05 15:35:09 +00:00
drh 65a7e769e7 Work around (incorrect) ASAN warnings in memjournal.c.
FossilOrigin-Name: 4de09777dad6188b7e897473700af3c9655e8547
2016-03-05 15:03:31 +00:00
drh 07eab3b87f Fix an integer size mismatch problem in test_bestindex.c
FossilOrigin-Name: 2e35eb6b7464455467c868adfbcaad4da16d3207
2016-03-05 14:19:32 +00:00
drh 14bfd99143 Fix an incorrect #ifdef on sqlite3LogEstToInt().
FossilOrigin-Name: dca7b23354a6b08c926b6ed3f7345d942a409862
2016-03-05 14:00:09 +00:00
drh 6f17c09fcf Fix an assert() in sqlite3VarintLen(), even though it is impossible to hit
in SQLite due to the way sqlite3VarintLen() is used.

FossilOrigin-Name: 251424c5869f43012fc1e1a545de362036b883db
2016-03-04 21:18:09 +00:00