]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
11 years agoMerge latest trunk enhancements and fixes into the orderby-planning branch.
drh [Fri, 2 May 2014 13:09:06 +0000 (13:09 +0000)] 
Merge latest trunk enhancements and fixes into the orderby-planning branch.

FossilOrigin-Name: 84862d3a095629d20c8e7b8a16f4dc26cd41ab6d

11 years agoAdd a comment explaining why WhereLoop cost adjustments are omitted for
drh [Fri, 2 May 2014 00:09:40 +0000 (00:09 +0000)] 
Add a comment explaining why WhereLoop cost adjustments are omitted for
skip-scan loops.

FossilOrigin-Name: 3bc43594aaeee9225c0590677fcce480bedcb37b

11 years agoFix an obscure problem to do with temp register allocation that could occur if more...
dan [Thu, 1 May 2014 20:26:48 +0000 (20:26 +0000)] 
Fix an obscure problem to do with temp register allocation that could occur if more than one simple SELECT within a compound SELECT uses a partial sort.

FossilOrigin-Name: 427409ae106cdab7892a6b50fe30c5f52de5addc

11 years agoAdd #ifdefs for test coverage. Add a testcase().
drh [Thu, 1 May 2014 20:24:21 +0000 (20:24 +0000)] 
Add #ifdefs for test coverage.  Add a testcase().

FossilOrigin-Name: be2702ce35c713b33c9b7689643b45fb0de6af2a

11 years agoUpdate a test case in wal2.test that explicitly corrupts a checksum in the wal file...
dan [Thu, 1 May 2014 10:19:16 +0000 (10:19 +0000)] 
Update a test case in wal2.test that explicitly corrupts a checksum in the wal file to account for the fact that the first byte of said checksum may initially be 0xFF.

FossilOrigin-Name: 2b935bdea1452505f36dc8c7aad49e6c42f4eceb

11 years agoFix a problem in calculating the costs of "OR" scans.
dan [Wed, 30 Apr 2014 18:11:55 +0000 (18:11 +0000)] 
Fix a problem in calculating the costs of "OR" scans.

FossilOrigin-Name: 9bbca48b42e4fe16f2188e18dc736da30a96435c

11 years agoModify the way the costs of various query plans are estimated. If the user supplies...
dan [Wed, 30 Apr 2014 15:22:25 +0000 (15:22 +0000)] 
Modify the way the costs of various query plans are estimated. If the user supplies a likelihood() value (or equivalent) on an indexed WHERE constraint, use it to estimate the number of index rows visited.

FossilOrigin-Name: 90e36676476e8db00658772e6c938242f766d306

11 years agoAdd text to the header comment of whereLoopAddBtree() describing how the costs of... experimental-costs
dan [Wed, 30 Apr 2014 15:00:16 +0000 (15:00 +0000)] 
Add text to the header comment of whereLoopAddBtree() describing how the costs of various b-tree loops are estimated.

FossilOrigin-Name: 05e6e16cb28c9ffb4596bd2ef81f687c5403ecbb

11 years agoUpdate a couple of test cases to account for the fact that this branch prefers an...
dan [Wed, 30 Apr 2014 14:53:21 +0000 (14:53 +0000)] 
Update a couple of test cases to account for the fact that this branch prefers an index scan and partial sort over a full-table scan and full external sort.

FossilOrigin-Name: 9b975bf33cd8fc28c64183a9642bf9fb436a4746

11 years agoFix a couple of out-of-date comments in where.c.
dan [Wed, 30 Apr 2014 14:47:01 +0000 (14:47 +0000)] 
Fix a couple of out-of-date comments in where.c.

FossilOrigin-Name: eefeda32d54efbbdf7d20b719299eda48b891fae

11 years agoImproved rendering of LogEst values corresponding to real values near 0.0
drh [Wed, 30 Apr 2014 14:22:38 +0000 (14:22 +0000)] 
Improved rendering of LogEst values corresponding to real values near 0.0
in the tool/logest.c utility program.

FossilOrigin-Name: 32910c8c595858245bb7ecfe3aa0f90eeae641af

11 years agoFix long-standing typos in comments.
drh [Wed, 30 Apr 2014 13:19:09 +0000 (13:19 +0000)] 
Fix long-standing typos in comments.

FossilOrigin-Name: b9f91317c34d07769a95dc2f905a6ccabceb64a3

11 years agoTest that the default values used when sqlite_stat1 data is not available are calcula...
dan [Tue, 29 Apr 2014 19:01:57 +0000 (19:01 +0000)] 
Test that the default values used when sqlite_stat1 data is not available are calculated correctly. Fixes for the same.

FossilOrigin-Name: e2d42f909de85a0586389f2dc0e654f7af2e351a

11 years agoMerge trunk changes into this branch.
dan [Tue, 29 Apr 2014 16:46:24 +0000 (16:46 +0000)] 
Merge trunk changes into this branch.

FossilOrigin-Name: d74299f037f3a6a4b3bce8b4d1c76c407c1f3b3e

11 years agoIgnore likelihood() values on indexed IPK lookups.
dan [Tue, 29 Apr 2014 16:10:22 +0000 (16:10 +0000)] 
Ignore likelihood() values on indexed IPK lookups.

FossilOrigin-Name: 5bb7757a7b32a74482d3e93e9c9eea02273fe981

11 years agoFix a test case so that it updates sqlite_stat1 consistently.
dan [Tue, 29 Apr 2014 12:01:35 +0000 (12:01 +0000)] 
Fix a test case so that it updates sqlite_stat1 consistently.

FossilOrigin-Name: 2dc5a0b55567f13f0528ed17242e680cde2f2a29

11 years agoDo not reduce the number of rows scanned at all for "IS NOT NULL" constraints. Fix...
dan [Mon, 28 Apr 2014 20:11:20 +0000 (20:11 +0000)] 
Do not reduce the number of rows scanned at all for "IS NOT NULL" constraints. Fix a bug in calculating the number of rows visited by scans of partial indicies.

FossilOrigin-Name: a8ae93f0cffa116df0ba34d46a53f49d42dace41

11 years agoThe trunk assumes that an open range constraint on an indexed term (col>?) term match...
dan [Mon, 28 Apr 2014 19:34:06 +0000 (19:34 +0000)] 
The trunk assumes that an open range constraint on an indexed term (col>?) term matches 1/4 of the indexed rows, and that a closed constraint (col BETWEEN ? AND ?) matches 1/64. Change this branch to do the same.

FossilOrigin-Name: 4047ac75e2a8f0b330255501c42e4f04e5ab500d

11 years agoAdd the sqlite3_rtree_query_callback() API to the RTree virtual table.
drh [Mon, 28 Apr 2014 17:56:19 +0000 (17:56 +0000)] 
Add the sqlite3_rtree_query_callback() API to the RTree virtual table.
(Cherrypick from the sessions branch.)

FossilOrigin-Name: af2cbe64adab5f9e3b0f3da00d06428088589d7f

11 years agoUpdate unordered.test to take into account for the fact that SQLite now prefers a...
dan [Mon, 28 Apr 2014 15:11:25 +0000 (15:11 +0000)] 
Update unordered.test to take into account for the fact that SQLite now prefers a full-table scan over a non-covering index scan that visits a large percentage of the table rows.

FossilOrigin-Name: 20f468dfbcb247e51446fad411a6e6cc0d130411

11 years agoAdd an extra column to a table in analyze9.test to give the planner a little more...
dan [Mon, 28 Apr 2014 12:08:23 +0000 (12:08 +0000)] 
Add an extra column to a table in analyze9.test to give the planner a little more reason to select an index.

FossilOrigin-Name: 1b95544f84bf83c28cc15f6d0690fdf8a6bb3941

11 years agoUpdate test script analyze3.test to account for the fact that SQLite now prefers...
dan [Mon, 28 Apr 2014 10:00:59 +0000 (10:00 +0000)] 
Update test script analyze3.test to account for the fact that SQLite now prefers a full-table scan over a non-covering index scan that visits a large percentage of the table rows.

FossilOrigin-Name: 35f46a55d866b9a87c1321aab8e0cfe86ccadb93

11 years agoModify internal function whereLoopAdjustCost() so that it does not prefer a skip...
dan [Mon, 28 Apr 2014 09:35:31 +0000 (09:35 +0000)] 
Modify internal function whereLoopAdjustCost() so that it does not prefer a skip-scan over a regular index scan even if the regular scan uses a subset of the WHERE terms used by the skip-scan.

FossilOrigin-Name: 88a5758dcce891eb7be15432ebdc9f80071d413b

11 years agoFix an error in estimating of the number of rows visited by a range scan.
dan [Mon, 28 Apr 2014 08:49:54 +0000 (08:49 +0000)] 
Fix an error in estimating of the number of rows visited by a range scan.

FossilOrigin-Name: d491de62fce69d93e89f65f7713972f7c2c451f7

11 years agoFix an sqlite3_stmt_status() problem caused by recent changs on this branch.
dan [Sat, 26 Apr 2014 20:21:14 +0000 (20:21 +0000)] 
Fix an sqlite3_stmt_status() problem caused by recent changs on this branch.

FossilOrigin-Name: dee204092421a239f9f60ab83c3a5b3e24d1baea

11 years agoUpdate requirements marks to fix typos in the requirements text.
drh [Sat, 26 Apr 2014 19:23:14 +0000 (19:23 +0000)] 
Update requirements marks to fix typos in the requirements text.
No changes to code.

FossilOrigin-Name: f5a263658187250044afc1a74000e6f6962733ca

11 years agoAllow the xfer optimization to proceed if the DEFAULT on the very first
drh [Sat, 26 Apr 2014 17:52:08 +0000 (17:52 +0000)] 
Allow the xfer optimization to proceed if the DEFAULT on the very first
column of the two tables is different.  This is a refinement of the
fix for ticket [f67b41381a].

FossilOrigin-Name: 349f483499dd685a8da94923b6bd810a52e5e236

11 years agoAvoid transfering records between tables unless the default values for all columns...
dan [Sat, 26 Apr 2014 14:07:57 +0000 (14:07 +0000)] 
Avoid transfering records between tables unless the default values for all columns are the same. Fix for [f67b41381a].

FossilOrigin-Name: f8c4c495e6de1f124d205383d4bafa46accbff5c

11 years agoIf the user provides likelihood() data for a WHERE clause term used as part of an...
dan [Fri, 25 Apr 2014 20:22:45 +0000 (20:22 +0000)] 
If the user provides likelihood() data for a WHERE clause term used as part of an index key, have the planner use it when calculating the expected number of rows visited by the loop.

FossilOrigin-Name: c51efaa5d29ee0a91b9e6a83a8dd82530670811a

11 years agoAdd test cases to ensure correct operation of joins with a virtual table
drh [Fri, 25 Apr 2014 17:37:16 +0000 (17:37 +0000)] 
Add test cases to ensure correct operation of joins with a virtual table
that include DISTINCT and ORDER BY clauses.  Verification for ticket
[388d01d4bb8f9].

FossilOrigin-Name: 5ada136f43ce744ae8c349eff39838eb44611b6e

11 years agoStore values loaded from the stat1 table as logarithmic values in memory.
dan [Fri, 25 Apr 2014 15:01:01 +0000 (15:01 +0000)] 
Store values loaded from the stat1 table as logarithmic values in memory.

FossilOrigin-Name: 1bd74c49ddab6f53bb6eaa57907eff44c2580dd6

11 years agoMake sure ORDER BY clauses on joins that involve virtual tables and that
drh [Fri, 25 Apr 2014 14:42:17 +0000 (14:42 +0000)] 
Make sure ORDER BY clauses on joins that involve virtual tables and that
have a DISTINCT clause work correctly.  This is a candidate fix for
ticket [388d01d4bb8f9].  Test cases for that ticket will be checked in
separately.

FossilOrigin-Name: 171138122690faafde0dcab0201b90bdf02d3637

11 years agoWhen VDBE_PROFILE is enabled, ignore negative opcode times, which sometimes
drh [Fri, 25 Apr 2014 12:35:31 +0000 (12:35 +0000)] 
When VDBE_PROFILE is enabled, ignore negative opcode times, which sometimes
occur, perhaps due to context swaps.

FossilOrigin-Name: 4e88042f9d3e678914da96c0eb276f3d8fca5a94

11 years agoChanges to the way the planner calculates the costs of various table and index scans...
dan [Thu, 24 Apr 2014 20:04:49 +0000 (20:04 +0000)] 
Changes to the way the planner calculates the costs of various table and index scans. Some test cases still failing.

FossilOrigin-Name: c5a6ec0a880652dc8f4593d9f7acd58ddc3dc5f3

11 years agoImproved header comment on the vdbesort.c module. No changes to code.
drh [Thu, 24 Apr 2014 16:25:25 +0000 (16:25 +0000)] 
Improved header comment on the vdbesort.c module.  No changes to code.

FossilOrigin-Name: bf09ce24d054bc68c226064f5f28d97e0e648a13

11 years agoReopen the orderby-planning branch and merge in the latest trunk enhancements
drh [Thu, 24 Apr 2014 15:06:25 +0000 (15:06 +0000)] 
Reopen the orderby-planning branch and merge in the latest trunk enhancements
and fixes.

FossilOrigin-Name: 6077ddcd93318e24b9756adaaf293ba9fb3cedf7

11 years agoComment tweaks on the test case for the [b75a9ca6b0] bug fix.
drh [Mon, 21 Apr 2014 13:36:54 +0000 (13:36 +0000)] 
Comment tweaks on the test case for the [b75a9ca6b0] bug fix.

FossilOrigin-Name: 65d2544af9adc1e2f1d193e57f8be0422fb0d5eb

11 years agoAvoid discarding an ORDER BY clause in the case where an identical GROUP BY clauses...
dan [Mon, 21 Apr 2014 13:21:56 +0000 (13:21 +0000)] 
Avoid discarding an ORDER BY clause in the case where an identical GROUP BY clauses uses an index to group, but not sort, the rows. Fix for [b75a9ca6b0].

FossilOrigin-Name: de9a490f594183f337a2ec9e0f87792eac83548b

11 years agoClean up the proper-subset cost adjustment logic to make it more compact
drh [Fri, 18 Apr 2014 22:20:31 +0000 (22:20 +0000)] 
Clean up the proper-subset cost adjustment logic to make it more compact
and easier to read and so that full branch test coverage is more easily
obtained.

FossilOrigin-Name: 9a5d38c79d2482a23bcfbc3ff35ca4fa269c768d

11 years agoAdd the SQLITE_RUNTIME_BYTEORDER compile-time option to force SQLite to check
drh [Fri, 18 Apr 2014 00:49:29 +0000 (00:49 +0000)] 
Add the SQLITE_RUNTIME_BYTEORDER compile-time option to force SQLite to check
the processor byte-order at run-time.  Add additional compile-time byte order
checks for ARM, PPC, and SPARC.

FossilOrigin-Name: 2c5363873a6f990a0abaacac6303acd46b48befc

11 years agoAdd the SQLITE_TESTCTRL_BYTEORDER test control to interrogate SQLite's notion
drh [Fri, 18 Apr 2014 00:06:02 +0000 (00:06 +0000)] 
Add the SQLITE_TESTCTRL_BYTEORDER test control to interrogate SQLite's notion
of the processor byte order and whether the byte order is known at compile-time
or determined at run-time.

FossilOrigin-Name: 9c6961967ae00e563ebe2859eaf2639a79f2cb01

11 years agoMake sure the undocumented sqlite_rename_parent() function does not
drh [Mon, 14 Apr 2014 19:48:25 +0000 (19:48 +0000)] 
Make sure the undocumented sqlite_rename_parent() function does not
crash even if it is invoked with NULL arguments.
Ticket [264b970c4379fd4b94]

FossilOrigin-Name: c6fa8d0d82805be230f672eabccdfa5680d4ddfd

11 years agoRemove the unused second argument from sqlite3ExprCachePop(). Add an
drh [Sun, 13 Apr 2014 19:28:15 +0000 (19:28 +0000)] 
Remove the unused second argument from sqlite3ExprCachePop().  Add an
ALWAYS() on an always-true conditional in sqlite3VdbeResolveLabel().

FossilOrigin-Name: ab23abf392175d3e256ff619b13abbbe732a49ed

11 years agoMake sure column cache elements are cleared correctly when jumping over
drh [Sun, 13 Apr 2014 19:15:49 +0000 (19:15 +0000)] 
Make sure column cache elements are cleared correctly when jumping over
code for key generation in a partial index.
Fix for ticket [2ea3e9fe6379fc3f6].

FossilOrigin-Name: 3122b8364082be783821da01d4af2af6a9586327

11 years agoModify the OR-clause handling so that it can safely deal with OR-clause
drh [Thu, 10 Apr 2014 02:24:48 +0000 (02:24 +0000)] 
Modify the OR-clause handling so that it can safely deal with OR-clause
with 17 or more terms.  Fix for ticket [10fb063b1179be53ea0b53bb].

FossilOrigin-Name: a67b5312f63909737c052fe58ab5772d45530d49

11 years agoPerformance improvements when reading large blobs, especially if
drh [Fri, 4 Apr 2014 18:49:19 +0000 (18:49 +0000)] 
Performance improvements when reading large blobs, especially if
SQLITE_DIRECT_OVERFLOW_READ is defined.

FossilOrigin-Name: 2312eb6a9eb31051db4e0baf19e033ba39adc7b1

11 years agoMerge changes to the query planner that strive to ensure that any index
drh [Fri, 4 Apr 2014 18:20:35 +0000 (18:20 +0000)] 
Merge changes to the query planner that strive to ensure that any index
usage that is a proper subset of some other index usage always has a slightly
higher cost.

FossilOrigin-Name: 683dd379a293b2f330e1e4cd746f190527fe48ee

11 years agoEnsure the "PRAGMA journal_mode=WAL" works coming from any other journal_mode
drh [Fri, 4 Apr 2014 14:12:52 +0000 (14:12 +0000)] 
Ensure the "PRAGMA journal_mode=WAL" works coming from any other journal_mode
with ATTACH-ed databases.

FossilOrigin-Name: e54330b43127e46fc6494748cbb353a6fc91cfd7

11 years agoUse OP_Copy instead of OP_SCopy when moving results out of a subquery,
drh [Thu, 3 Apr 2014 16:29:31 +0000 (16:29 +0000)] 
Use OP_Copy instead of OP_SCopy when moving results out of a subquery,
to prevent the subquery results from changing out from under the outer
query.  Fix for ticket [1e64dd782a126f48d78].

FossilOrigin-Name: d5513dfa23baa0b0a095aaf17d19aacd30dcef61

11 years agoFix a typo in the "Synopsis:" comment for the OP_VFilter opcode.
drh [Thu, 3 Apr 2014 14:31:00 +0000 (14:31 +0000)] 
Fix a typo in the "Synopsis:" comment for the OP_VFilter opcode.

FossilOrigin-Name: 48ecdd4aff03741f96c070dced69c3c273b652cb

11 years agoIn the command-line shell, run set writable_schema before running the
drh [Thu, 3 Apr 2014 00:32:13 +0000 (00:32 +0000)] 
In the command-line shell, run set writable_schema before running the
".clone" command.

FossilOrigin-Name: 9d2ae6342c8afa904bec591ebe134ff7f536b71c

11 years agoRemove an unnecessary conditional, replacing it with an assert(). overflow-pgno-cache
drh [Tue, 1 Apr 2014 01:24:34 +0000 (01:24 +0000)] 
Remove an unnecessary conditional, replacing it with an assert().
Improvements to comments.

FossilOrigin-Name: 834bf1c367e1ccd498c7f9f843be2d2aa11ffb3c

11 years agoFix a compiler warning when SQLITE_DIRECT_OVERFLOW_READ is defined.
drh [Mon, 31 Mar 2014 23:57:41 +0000 (23:57 +0000)] 
Fix a compiler warning when SQLITE_DIRECT_OVERFLOW_READ is defined.
Minor performance enhancement and size reduction.

FossilOrigin-Name: 96385dc460545807a5c8fcf6280a971700f84866

11 years agoMerge in the latest changes and fixes from trunk.
drh [Mon, 31 Mar 2014 22:03:32 +0000 (22:03 +0000)] 
Merge in the latest changes and fixes from trunk.

FossilOrigin-Name: f6211540c9d66a08dc580dd733e4f4a98968ae30

11 years agoRemove an unnecessary conditional. query-plan-experiments
drh [Mon, 31 Mar 2014 20:05:20 +0000 (20:05 +0000)] 
Remove an unnecessary conditional.

FossilOrigin-Name: 7473c4dfc10a47594affa6f4e071a08dc8838c0c

11 years agoAlso make sure an index that is a proper subset of some other index has a
drh [Mon, 31 Mar 2014 19:49:00 +0000 (19:49 +0000)] 
Also make sure an index that is a proper subset of some other index has a
higher cost than that other index.  Add test cases.

FossilOrigin-Name: b7830d232b073a197aa1092e78cb24e88cb10fd3

11 years agoMake sure that an index that covers a proper superset of the WHERE clause
drh [Mon, 31 Mar 2014 18:24:18 +0000 (18:24 +0000)] 
Make sure that an index that covers a proper superset of the WHERE clause
terms of some other index has a lower cost than the other index.

FossilOrigin-Name: ea8b0910040198751551b0b960e6b783913607df

11 years agoAvoid a (harmless) buffer overread that is possible on an OOM when
drh [Mon, 31 Mar 2014 13:42:42 +0000 (13:42 +0000)] 
Avoid a (harmless) buffer overread that is possible on an OOM when
MEMSYS5 is engaged.

FossilOrigin-Name: b3296267fb67b9f59719a37093253062edde3746

11 years agoExperiments in picking better query plans, especially when the usage of one
drh [Sat, 29 Mar 2014 21:16:07 +0000 (21:16 +0000)] 
Experiments in picking better query plans, especially when the usage of one
index is a subset of another.

FossilOrigin-Name: 8f869ca7a6eaa9ca7a08102290e6c606735f9090

11 years agoFix a compiler warning and an after-OOM memory leak.
drh [Fri, 28 Mar 2014 19:47:19 +0000 (19:47 +0000)] 
Fix a compiler warning and an after-OOM memory leak.

FossilOrigin-Name: 58f7ca29303c280229f86d01f418e1de5f5aebba

11 years agoMerge the latest changes from trunk.
drh [Fri, 28 Mar 2014 18:35:39 +0000 (18:35 +0000)] 
Merge the latest changes from trunk.

FossilOrigin-Name: 3047a25f1c41e83f0b4772f7c36fbfec0f12dc7e

11 years agoDisable the wal64k.test script for non-unix systems since it depends on
drh [Fri, 28 Mar 2014 14:41:35 +0000 (14:41 +0000)] 
Disable the wal64k.test script for non-unix systems since it depends on
unix-only features.

FossilOrigin-Name: 27deb6e49bcc76714dbdc61b34748603155ac770

11 years agoFix a harmless compiler warning.
drh [Fri, 28 Mar 2014 12:56:57 +0000 (12:56 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: a4e47150f32b3a4120b1f89ccc66d633d829e3bb

11 years agoEnhance the sqlite3VdbeRecordCompare() routines so that if they encounter
drh [Fri, 28 Mar 2014 03:12:48 +0000 (03:12 +0000)] 
Enhance the sqlite3VdbeRecordCompare() routines so that if they encounter
database corruption, they will set the UnpackedRecord.isCorrupt field and
return 0.  The sqlite3BtreeMovetoUnpacked() routine detects this and returns
SQLITE_CORRUPT, causing the corruption to be reported back to the top-level.

FossilOrigin-Name: 7fa85eaaaf6d211378620d728a759fdfe30a15b0

11 years agoInstead of allocating a single large buffer at the beginning of each sort operation...
dan [Thu, 27 Mar 2014 19:25:02 +0000 (19:25 +0000)] 
Instead of allocating a single large buffer at the beginning of each sort operation, start with a small buffer and extend it using realloc() as required.

FossilOrigin-Name: 81987c8ceb64f051528a6ca42673821d9ab7c0ff

11 years agoMinor cleanup of the code in the query planner that computes the costs
drh [Thu, 27 Mar 2014 18:36:34 +0000 (18:36 +0000)] 
Minor cleanup of the code in the query planner that computes the costs
estimates for the various plans.  There are no changes to the costs at this
time.  But the code is slightly more readable now and that might facilitate
future enhancements.

FossilOrigin-Name: 9b4d7226bcee38be5ac68a54bee03b4179cb69fc

11 years agoUse xFetch() to access temporary files in vdbesort.c. Use a single large allocation...
dan [Thu, 27 Mar 2014 17:23:41 +0000 (17:23 +0000)] 
Use xFetch() to access temporary files in vdbesort.c. Use a single large allocation instead of many small allocations when accumulating records in vdbesort.c. This is an interim commit - it allocates a buffer the size of the page-cache every time data is sorted.

FossilOrigin-Name: f4ac1bf28c4ba395ccab8f1c9df72614a61095a7

11 years agoEnhance the logest.c utility with new operators: "dup", "inv", "log", and
drh [Thu, 27 Mar 2014 14:05:38 +0000 (14:05 +0000)] 
Enhance the logest.c utility with new operators: "dup", "inv", "log", and
"nlogn".  Provide help on an invalid input.

FossilOrigin-Name: b4bd2a062c4baf5f622d61b7411f00de5904ef56

11 years agoMerge the latest trunk changes and the fix for the crash on a corrupt
drh [Thu, 27 Mar 2014 00:09:00 +0000 (00:09 +0000)] 
Merge the latest trunk changes and the fix for the crash on a corrupt
database.

FossilOrigin-Name: 0b35346c32dba14963c85ec178f2b46aa2bbf6dc

11 years agoAdd an extra test case for the potential buffer overread patched by [28ddecff04].
dan [Wed, 26 Mar 2014 15:14:59 +0000 (15:14 +0000)] 
Add an extra test case for the potential buffer overread patched by [28ddecff04].

FossilOrigin-Name: f585f5d7a0f9bf8c590388654a3638231eba8892

11 years agoAdd a test case to verify that the previous change avoids excess buffer
drh [Wed, 26 Mar 2014 15:05:56 +0000 (15:05 +0000)] 
Add a test case to verify that the previous change avoids excess buffer
overread in sqlite3VdbeRecordCompare().

FossilOrigin-Name: 2b28e8d582cf10936fa1faca04a16ca2eeead66f

11 years agoEarlier detection of corruption in sqlite3VdbeRecordCompare() in order to
drh [Wed, 26 Mar 2014 14:51:07 +0000 (14:51 +0000)] 
Earlier detection of corruption in sqlite3VdbeRecordCompare() in order to
avoid a potential buffer overread.

FossilOrigin-Name: 28ddecff044dbc2dff50a7d8406ab67dfe06587f

11 years agoAdd an assert() and a comment to clarify the operation of the
drh [Wed, 26 Mar 2014 12:02:38 +0000 (12:02 +0000)] 
Add an assert() and a comment to clarify the operation of the
vdbeRecordCompareInt() routine.

FossilOrigin-Name: 851abdb8fd9b5a8a6ce21db53d30dbac3c430cc7

11 years agoAdjust the repeat counts on several tests in speedtest1 so that the relative
drh [Tue, 25 Mar 2014 20:28:38 +0000 (20:28 +0000)] 
Adjust the repeat counts on several tests in speedtest1 so that the relative
time spent on the test is roughly the same regardless of --size.

FossilOrigin-Name: 7922809ee0d3978ce9221fbb7df63aa0684d0c4d

11 years agoMerge enhancements and fixes from trunk.
drh [Tue, 25 Mar 2014 18:29:12 +0000 (18:29 +0000)] 
Merge enhancements and fixes from trunk.

FossilOrigin-Name: e005f2d6dd9faf38cc8fdb9428b5aa6192a6adae

11 years agoAdd another performance test case to speedtest1. This case is another
drh [Tue, 25 Mar 2014 17:45:49 +0000 (17:45 +0000)] 
Add another performance test case to speedtest1.  This case is another
ORDER BY test but this time without LIMIT.

FossilOrigin-Name: 9ab7ffd59209aef0ffbf384b3902a93fd3b86a6d

11 years agoFix a problem in the code added by [707ea170b3] causing vdbesort.c to sort unstably.
dan [Tue, 25 Mar 2014 17:07:48 +0000 (17:07 +0000)] 
Fix a problem in the code added by [707ea170b3] causing vdbesort.c to sort unstably.

FossilOrigin-Name: d3e640afe611b6ae0b7f2cff5b00900d7e4d5ee3

11 years agoRemove the sequence values from sorter records used by ORDER BY as well.
dan [Tue, 25 Mar 2014 15:04:07 +0000 (15:04 +0000)] 
Remove the sequence values from sorter records used by ORDER BY as well.

FossilOrigin-Name: c3ae3697832a00d4d5758988a8766bdbb691e6b8

11 years agoAdd an ORDER BY test case to speedtest1.c
drh [Tue, 25 Mar 2014 14:54:36 +0000 (14:54 +0000)] 
Add an ORDER BY test case to speedtest1.c

FossilOrigin-Name: 588122641e57e957813d329ea071e13ccbde5acd

11 years agoDetect when a VdbeCursor is still pointing at a valid row but that row has
drh [Tue, 25 Mar 2014 11:00:21 +0000 (11:00 +0000)] 
Detect when a VdbeCursor is still pointing at a valid row but that row has
moved, and invalidated the return from prior sqlite3BtreeDataFetch() or
sqlite3BtreeKeyFetch() calls.

FossilOrigin-Name: e6798871ce94961135762669af418cd78540c121

11 years agoOmit the sequence value from sorter records used by GROUP BY queries that cannot...
dan [Mon, 24 Mar 2014 20:19:07 +0000 (20:19 +0000)] 
Omit the sequence value from sorter records used by GROUP BY queries that cannot use an index.

FossilOrigin-Name: 3f90abddc31ac20739778c235a834c33f7057997

11 years agoAvoid unnecessary moving of content between registers during an ORDER BY.
drh [Mon, 24 Mar 2014 18:08:15 +0000 (18:08 +0000)] 
Avoid unnecessary moving of content between registers during an ORDER BY.

FossilOrigin-Name: 4f472accf072d9cb64f209923924b26f21b13d27

11 years agoRemove unused variables Parse.nColCache and Parse.iColCache.
dan [Mon, 24 Mar 2014 16:30:06 +0000 (16:30 +0000)] 
Remove unused variables Parse.nColCache and Parse.iColCache.

FossilOrigin-Name: 4d7551ce464c8038147e81667368924f2a7485a6

11 years agoFix arithmetic operators so that they do not change the affinity of their
drh [Mon, 24 Mar 2014 15:00:15 +0000 (15:00 +0000)] 
Fix arithmetic operators so that they do not change the affinity of their
input operands.  Ticket [a8a0d2996a].

FossilOrigin-Name: 221f8f944703108e47d789fa8ce6c00fe2abcbb6

11 years agoAvoid attempting to mmap memory from an offset that is not a multiple of the system...
dan [Mon, 24 Mar 2014 11:23:17 +0000 (11:23 +0000)] 
Avoid attempting to mmap memory from an offset that is not a multiple of the system page size on systems with page sizes larger than 32KB.

FossilOrigin-Name: db7d62c8d58eb1e8654a762c9b199ae4e2759038

11 years agoRemove an unnecessary temporary register allocation.
dan [Mon, 24 Mar 2014 09:34:58 +0000 (09:34 +0000)] 
Remove an unnecessary temporary register allocation.

FossilOrigin-Name: 5d506743f541b022cde04a9606baa4680cdfd70b

11 years agoRemove a pointless OP_Once operation in ORDER BY clauses with LIMIT.
drh [Mon, 24 Mar 2014 02:20:53 +0000 (02:20 +0000)] 
Remove a pointless OP_Once operation in ORDER BY clauses with LIMIT.

FossilOrigin-Name: e6c59d23316c83b318b1a94d9b28a5d321737fa5

11 years agoFurther enhancements to geneverated VDBE code for ORDER BY.
drh [Mon, 24 Mar 2014 01:43:50 +0000 (01:43 +0000)] 
Further enhancements to geneverated VDBE code for ORDER BY.

FossilOrigin-Name: e7188fad87ec82d36a39b80ccaf8006bf45a9bcd

11 years agomerge fixes from trunk
drh [Sun, 23 Mar 2014 18:47:00 +0000 (18:47 +0000)] 
merge fixes from trunk

FossilOrigin-Name: faf7f9caf526ab33a6fdb9c89b45a0483510db21

11 years agoUse only a single OP_MakeRecord instead of two when constructing entries
drh [Sun, 23 Mar 2014 17:45:03 +0000 (17:45 +0000)] 
Use only a single OP_MakeRecord instead of two when constructing entries
to go onto a sorter.

FossilOrigin-Name: d696cdedacd39075aa7fc407ab7c7e50f01d9f39

11 years agoAvoid a possible use of an uninitialized variable following an I/O or OOM
drh [Sun, 23 Mar 2014 16:29:23 +0000 (16:29 +0000)] 
Avoid a possible use of an uninitialized variable following an I/O or OOM
error.

FossilOrigin-Name: 641408a1395bfc911ca619ef9e5f073b913d856b

11 years agoClear the sort-order flags on the KeyInfo object associated with the
drh [Sat, 22 Mar 2014 02:19:53 +0000 (02:19 +0000)] 
Clear the sort-order flags on the KeyInfo object associated with the
OP_Compare/OP_Jump of the block-sort logic, in order to make the OP_Jump
fully testable.

FossilOrigin-Name: 9b2838f23e5f52369eeb078f60bd231cc54362f8

11 years agoIncrease the version number to 3.8.5.
drh [Sat, 22 Mar 2014 01:52:17 +0000 (01:52 +0000)] 
Increase the version number to 3.8.5.

FossilOrigin-Name: 9760879d086b61476890927f01806a93798d4eee

11 years agoFix the ORDER BY optimization logic so that it will do a block-sort on
drh [Sat, 22 Mar 2014 00:27:14 +0000 (00:27 +0000)] 
Fix the ORDER BY optimization logic so that it will do a block-sort on
a partial DESC ORDER BY.  This enhancement uncovered a memory leak in
pushUntoSorter() which is also fixed.

FossilOrigin-Name: c36f74611cf17ad2ff198a2ac2054d7ab451a72c

11 years agoAdd the ability to use indices for the first few terms of an ORDER BY clause,
drh [Fri, 21 Mar 2014 20:58:42 +0000 (20:58 +0000)] 
Add the ability to use indices for the first few terms of an ORDER BY clause,
then sort in batches to handle the later terms.

FossilOrigin-Name: fa06a6fed9f48322d9b89721799ba12c46efa898

11 years agoChange the names of SRT_DistTable and SRT_Table used by CTE to more
drh [Fri, 21 Mar 2014 19:56:09 +0000 (19:56 +0000)] 
Change the names of SRT_DistTable and SRT_Table used by CTE to more
meaningful SRT_DistFifo and SRT_Fifo, respectively.  Simplify the
IgnorableOrderby() macro in the process.

FossilOrigin-Name: 45d8cc678d128f1dda6469864215a8ed9de4366a

11 years agoAvoid leaking memory in an obscure case where the flattener adds an ORDER BY clause...
dan [Fri, 21 Mar 2014 19:27:54 +0000 (19:27 +0000)] 
Avoid leaking memory in an obscure case where the flattener adds an ORDER BY clause to the recursive part of a recursive query.

FossilOrigin-Name: 1f413aca00015100224273480e1ce39a76bf93ab

11 years agoMerge the OFFSET-on-query-without-FROM fix from trunk.
drh [Fri, 21 Mar 2014 18:45:19 +0000 (18:45 +0000)] 
Merge the OFFSET-on-query-without-FROM fix from trunk.

FossilOrigin-Name: 71e9ae72c272dc86720b2bfe719f57de437c400b

11 years agoFix the OFFSET clause so that it works correctly on queries that lack
drh [Fri, 21 Mar 2014 18:16:23 +0000 (18:16 +0000)] 
Fix the OFFSET clause so that it works correctly on queries that lack
a FROM clause.  Ticket [07d6a0453d4ed8].

FossilOrigin-Name: 179ef81648b0ad557df78b7712f216b876b6fb65

11 years agoNew test case for block-sorting.
drh [Fri, 21 Mar 2014 15:24:07 +0000 (15:24 +0000)] 
New test case for block-sorting.

FossilOrigin-Name: e70cfa28aa393661ccc742ecd5e672d807bdd0a9