Commit Graph

7905 Commits

Author SHA1 Message Date
drh 6f2bfad24b Update the NGQP to make use of STAT3 information if it is available.
FossilOrigin-Name: ff134e6ee95d41b0e59e03bba7e94bc15b04ff8c
2013-06-03 17:35:22 +00:00
drh 3b1d808fab Honor the orderByConsumed boolean returned from virtual table query planner.
FossilOrigin-Name: aaf7f5896d3523531e1a9a1b90c4ad326f0c8fc7
2013-06-03 16:56:37 +00:00
drh 5298630631 Fix to the logic that disables constraints on virtual tables.
FossilOrigin-Name: 62d382406b28c1347e13114f42215939ddfd7a9d
2013-06-03 16:03:16 +00:00
drh 3a5ba8b1b7 Fix an issue that was causing ORDER BY DESC to come out in ascending order.
FossilOrigin-Name: 029840124022387a8f6d2e1a685a003688d0ef3a
2013-06-03 15:34:48 +00:00
drh 21f7ff7d22 Set the WHERE_UNIQUE flag on loops that can only run once.
FossilOrigin-Name: 510f4d8ecf6eb284f14b91951e7236505bd71203
2013-06-03 15:07:23 +00:00
drh 75b9340520 The NGQP might not find a solution if INDEXED BY constraints on the query
are set wrong.  If that is the case, print a "no query solution" error
and abort before trying to use the non-existant solution.

FossilOrigin-Name: 42511a7e12a70cf3436d25e4d069e5d309dfd678
2013-05-31 20:43:57 +00:00
drh 79a13bfd1e Do not search using ON clause constraints of LEFT JOINs to the right of
the table.

FossilOrigin-Name: 723f901a63313b64a9f10516711fb6136526b79b
2013-05-31 20:28:28 +00:00
drh a1f4124cf8 Make sure a unique cursor number is allocated for automatic indices.
FossilOrigin-Name: 433d1aecd399590b767ebf07b32023fb718a6574
2013-05-31 20:00:58 +00:00
drh 0edc94dcc7 Do not attempt to generate code in the NGQP if there have been prior errors,
since with prior errors some of the expressions might not be fully 
named resolved.

FossilOrigin-Name: 665e4291c6e78f11d7181c18c5f2418d1adfcb1c
2013-05-31 19:14:56 +00:00
drh 76f4cfb2e6 Fix a problem with code generation on LEFT JOIN of tables without an index.
FossilOrigin-Name: 0b1bee92a0d25f409d5a95f484b05ddf10ae945f
2013-05-31 18:20:52 +00:00
drh e22501721f Another virtual table fix in NGQP.
FossilOrigin-Name: 2f2ce4167728399cc30bef045aab500940af978c
2013-05-31 18:13:50 +00:00
drh 7e47cb8b75 Fix problems in the virtual table logic for NGQP.
FossilOrigin-Name: 23af28e24b8f7ffacd006978b25bab990a43b8c5
2013-05-31 17:55:27 +00:00
drh 8030dc7b1f Remove the definitions of objects that are no longer used: WhereCost,
WherePlan, and WhereBestIdx.

FossilOrigin-Name: 816f8add7e60de2ef8df4fdac090c244f8dbda39
2013-05-31 15:50:39 +00:00
drh ae70cf1816 Allow tracing of whereLoopInsert() when the 0x8 bit is set on ".wheretrace".
Remove the use of sqlite_query_plan from where2.test.  Fix a bug in the
code generator for OR clause optimizations.

FossilOrigin-Name: 707f0323264c35be14847a6adc49a0dc5eaf4ad2
2013-05-31 15:18:46 +00:00
drh 84f1414b1a Enhance the shell to provide more flexibility when entering numeric arguments
on dot-commands.  In particular, allow hex arguments to .wheretrace.

FossilOrigin-Name: b9578c371ee569dca6a0964019959a93407c8ef9
2013-05-31 14:31:11 +00:00
drh 0afb423fd3 Futher enhancements to the ORDER BY optimizer.
FossilOrigin-Name: d8efa5f8b60bc4c8df8bfad077f87f76f7ee9bf6
2013-05-31 13:36:32 +00:00
drh d044d209f3 Improved detection of unnecessary ORDER BY clauses.
FossilOrigin-Name: 58805eb36b9975706e2c4e382689519454e9a504
2013-05-31 12:43:55 +00:00
drh 53b52f7f2e Fix the constructAutomaticIndex() routine so that it works with NGQP.
FossilOrigin-Name: 5e1e61399513b4a95fd93df2377a2603f1670063
2013-05-31 11:57:39 +00:00
drh dc3cd4b020 Improvements to the ORDER BY suppressor in the NGQP.
FossilOrigin-Name: 24a2e9ddcecd3926817d77abbb75d068ee7140ad
2013-05-30 23:21:20 +00:00
drh 1b0f026dbb Incremental check-in with various NGQP fixes. Many tests still fail.
FossilOrigin-Name: a51d8c92496436488e1a6eabd85785e8fedf2736
2013-05-30 22:27:09 +00:00
drh 6fa978dade Futher simplifications to the NGQP. Fix some test cases to use
EXPLAIN QUERY PLAN rather than the (now obsolete) sqlite_query_plan
global variable.

FossilOrigin-Name: ae985db4fa08b5efbef5a834e852f0b05101264b
2013-05-30 19:29:19 +00:00
drh 7ba39a921a Cut over the NGQP query planner. Remove lots of legacy code.
This check-in compiles but does not work.  The test suite gets incorrect
answers and crashes.

FossilOrigin-Name: 001539df4b74dc1cbceb010a91407003ab4d8735
2013-05-30 17:43:19 +00:00
drh e1e9766dee Merge recent trunk changes into the NGQP branch.
FossilOrigin-Name: aebe1f2603ee04d792af73aaf59625bda99d5cd1
2013-05-30 11:48:36 +00:00
drh ee0231ef52 Updates to the Codec interface to support codecs on attached databases and
to allow rekeying in the middle of a transaction.  These changes are only 
applicable if SQLite is compiled with SQLITE_HAS_CODEC.

FossilOrigin-Name: d5b084e9d8cfe9c0c339aca076d472bb50aa764c
2013-05-29 17:48:28 +00:00
drh def3367e50 Add the percentile() SQL function as a loadable
extension in the ext/misc directory.

FossilOrigin-Name: a64d760d9290b1be78cdda7ae66d4f02c3b3fa53
2013-05-28 20:25:54 +00:00
drh cda73feaa2 Finish removing the sqlite3.inTrans field. In the previous check-in, it was
merely commented out because I failed to select File->Save on my text editor.

FossilOrigin-Name: 2f97e38a6611cb17c24d74332d3ac3777dc0dd3e
2013-05-28 17:30:52 +00:00
drh 4580d759fb Remove the obsolete and unused sqlite3.inTrans field.
FossilOrigin-Name: c3381cd4957013d46075996c3b865177c888d2a8
2013-05-28 17:25:48 +00:00
drh f7b5496e8e Many small harmless comment changes. Removal of obsolete comments and
fixing misspelled words.  No changes to code.

FossilOrigin-Name: a0d5cc9315dc6e9ef7dee4c3dfabf4e562d64376
2013-05-28 12:11:54 +00:00
drh 88da644f2c Update the NGQP to record which loops need be run in reverse order to
satisfy ORDER BY clauses.

FossilOrigin-Name: 211f7a5374fe20a02535edc8b799a8a7136ff6b3
2013-05-27 17:59:37 +00:00
drh 3bd26f0543 Record in the WhereLoop object the set of virtual table constraints that
need not be separately checked.

FossilOrigin-Name: b49fa74561f38c945be6149693678fd6518c2de4
2013-05-24 14:52:03 +00:00
drh 7c4ac9860c Merge the latest trunk changes into the NGQP branch.
FossilOrigin-Name: 7c8f992c04504a132686ad0652efdff19e43480d
2013-05-24 13:55:23 +00:00
drh 40b521f847 Set _XOPEN_SOURCE to 600 so that fchmod() will (hopefully) work on FreeBSD.
FossilOrigin-Name: 61a10452399db28cd5ea4ba9d416b87a34c2eddb
2013-05-24 12:47:26 +00:00
drh c2bed0a2c9 Fix harmless compiler warnings in the shell.
FossilOrigin-Name: 9e2c17c5358b156b588542dbba38da7fedf5302b
2013-05-24 11:57:50 +00:00
dan 3719f5f600 Avoid unnecessary calls to FCNTL_SIZE_HINT. Return an error to the user if the file-control invoked by "PRAGMA mmap_size" returns a value other than SQLITE_OK or SQLITE_NOTFOUND.
FossilOrigin-Name: 40cfde8b4a59a09e52e62f9f029f8d3b32eb15fa
2013-05-23 10:13:18 +00:00
drh 34e258c942 Cause the mmap_size PRAGMA to immediately change the mmap space if the
database connection is already active.  In particular, reducing mmap_size
will immediately free up process address space.

FossilOrigin-Name: 761177927cb51e4f5e66061ca39cf37edbe8346b
2013-05-23 01:40:53 +00:00
drh ef86637655 Use the NGQP plan for EXPLAIN QUERY PLAN output. This change causes 207
errors in veryquick.test, many of which are benign.

FossilOrigin-Name: f783e8e6b10de44029c7c5f57e4648a4a677ca1b
2013-05-22 20:49:02 +00:00
drh 0f133a4832 Allow the rowid at the end of an index to be used in a constraint on that index.
FossilOrigin-Name: 9bf0524df7ca2e7fcd92b2878a8457264b3c7f6e
2013-05-22 17:01:17 +00:00
drh a50ef114f4 Improvements to ORDER BY handling in the NGQP. Fix an "exit" mistakenly
left in a test script during the previous check-in.

FossilOrigin-Name: 12c709b4369c7d94d7fb743d0d0da7a9350a3d16
2013-05-22 02:06:59 +00:00
drh d15cb17174 Enhanced "wheretrace" output in the NGQP solver routine.
FossilOrigin-Name: 04dfb85a2a7025d4b5056b73fa8477691323919f
2013-05-21 19:23:10 +00:00
drh 23f98daabb Work toward improving the NGQP's ability to optimize out ORDER BY clauses.
FossilOrigin-Name: 67367f1e1f0c3eb6be65eea9873910aa62b49884
2013-05-21 15:52:07 +00:00
drh 81ec8c910b Merge in all trunk changes up through the 3.7.17 release.
FossilOrigin-Name: 14ab6675e5eab3761256a06dad23d2b11220788a
2013-05-20 15:14:42 +00:00
drh e8601c6561 Fix a bug in SQLITE_TRACE_SIZE_LIMIT that was introduced by
check-in [1a1cf5aa86734c8].  That check-in was to remove harmless
compiler warnings.  So once again, we have introduced a real bug
into SQLite by attempting to eliminate a harmless compiler warning.

FossilOrigin-Name: cec2bcb45aa3f0438e19381ac863f0f876a1d1ad
2013-05-17 17:15:34 +00:00
dan 5b15b75ada In test file test_syscall.c, include sqliteInt.h before any tcl or system include files. This ensures that the magical defines in sqliteInt.h really do enable large file support (and set things up so that sizeof(off_t)==8).
FossilOrigin-Name: 0f355bb17f256c6322e63a95835a67949aa48fb3
2013-05-17 16:41:15 +00:00
dan ede01a97d3 In os_unix.c and os_win.c, initialize the default mmap-limit of a new file descriptor to the current global default mmap-limit, not the current global maximum allowable mmap-limit.
FossilOrigin-Name: 1def4ea3a02afc19648f4cd928b247f8fa55da80
2013-05-17 12:10:52 +00:00
mistachkin 6e8752d487 Fix compilation with SQLITE_OMIT_WAL on Win32.
FossilOrigin-Name: 6d45a79fb18dcd305cc41c525060e42f2402bd77
2013-05-16 12:41:49 +00:00
dan 617dc8602d In sqlite3_close_v2(), do not attempt to roll back a transaction if there exist active statement objects. Any open transaction will be rolled back when the last of these statement objects is finalized.
FossilOrigin-Name: d11e76072a17fe833b87595d9d79f2c4b0b09cb3
2013-05-16 11:57:28 +00:00
drh 58a450c041 Treat identifiers in the HAVING clause the same as in the WHERE clause.
Only consider AS names from the result set to match if there are no other
matches.  Continuation of the fix for [2500cdb9be05].  This check-in
fixes a bug found by [http://www.sqlite.org/sqllogictest/ | SqlLogicTest]
during release testing for version 3.7.17.

FossilOrigin-Name: 9ffff3d05226bbd01a0745dd0a511776358253c0
2013-05-16 01:02:45 +00:00
drh 6fdd3d8aa0 The sqlite3ExprCollSeq() function can no longer be called while parse
the schema, so remove the code path inside of sqlite3ExprCollSeq() that
dealt with that case.

FossilOrigin-Name: 867b3e3b29a357f68e48f0898bf323c5dd0575a4
2013-05-15 17:47:12 +00:00
dan 91cf9ba339 Merge latest trunk changes with this branch.
FossilOrigin-Name: 47dd65a890955f333d431e275f3f4d95d34a5ba5
2013-05-15 15:42:14 +00:00
dan 911ce41818 When loading a database schema that contains an index definition that includes a COLLATE clause for which the collation sequence is unavailable, do not assume that that index uses BINARY instead. Fix for [0fc59f908b].
FossilOrigin-Name: 6dae62c4e505a9a1a22c2771ef3e1921407c4748
2013-05-15 15:16:50 +00:00