Commit Graph

8353 Commits

Author SHA1 Message Date
drh bf539c4d5c Begin an experimental refactoring to estimate the average number of bytes
in table and index rows and to use that information in query planner.
Begin by renaming WhereCost to LogEst and making that type and its
conversion routines available outside of where.c.

FossilOrigin-Name: 66c4a251d61582b47d5cbe50cbca160a9209bd06
2013-10-05 18:16:02 +00:00
drh 6919b07556 In the index_list pragma, make sure the "r" column is the same on output
as it was on input in the sqlite_stat1 table.

FossilOrigin-Name: de78250ad2a6210dd4f03045248f7192d64427f2
2013-10-05 02:56:25 +00:00
drh 03e1754e31 Merge trunk changes.
FossilOrigin-Name: c6ac80ed8d5240dd30783d62d9f133e159809dec
2013-10-04 20:39:44 +00:00
drh d3037a4123 Further refinements of the index scanning speed logic.
FossilOrigin-Name: e5d9371da92b4cc2c1df177cf40e0ced4d4c7421
2013-10-04 18:29:25 +00:00
dan 5988572876 If an "INSERT INTO ... SELECT" can use the xfer optimization, pass the OPFLAG_BULKCSR hint to btree cursors used to update indices. This results in a tighter key packing.
FossilOrigin-Name: 087af29ee2e1572f8668dd0152a14d7f9796a530
2013-10-04 18:17:18 +00:00
drh fdaac671b8 Improved estimates of the relative speed of index scans based on declared
datatypes of columns in the table.  Add "r" column to PRAGMA index_info,
showing the estimated relative scan rate.

FossilOrigin-Name: 07462bb6059f023c22a6c84a4a02afbd84e69255
2013-10-04 15:30:21 +00:00
drh d9e3cad2f8 Progress toward using the iScanRatio information on indices. Many tests
are still failing.

FossilOrigin-Name: 6c352edbba85a15ca356b5e131f4b3b2723d1774
2013-10-04 02:36:19 +00:00
drh 5f33f37580 Make sure the count(*) optimization works correctly even when partial
indices are present.  Ticket [a5c8ed66cae].

FossilOrigin-Name: 9f2f4c0a50808910ad01c8c4352367f25747be08
2013-10-04 00:00:12 +00:00
drh c28c4e5009 Experimental branch allowing different postulated scan rates for each index.
FossilOrigin-Name: d59d97b0a8d70dc31d45db61bbc11ebb5375a224
2013-10-03 19:21:41 +00:00
drh d100f6912d The sqlite3FixInit() routine cannot fail. So change the return type from "int"
to "void".

FossilOrigin-Name: 500c5932fe3f5fcd0940522f7839d581c555e0eb
2013-10-03 15:39:44 +00:00
drh f63936e805 Rework the PRAGMA implementation to only call sqlite3ReadSchema() from a single
place, based on a flag in the pragma table, rather than separately from each
case which needs the schema.

FossilOrigin-Name: 8338232a111be16d6c2ab57176d0a23a001f02ad
2013-10-03 14:08:07 +00:00
dan 46539d7cfa Return an error if an attempt is made to create a trigger with an SQL variable embedded within it. If such a variable reference is found within a trigger definition loaded from the sqlite_master table, silently replace it with a NULL.
FossilOrigin-Name: f35f6ae3da77dbdf5f7a4a9927475659fc6e0ca6
2013-10-03 12:29:38 +00:00
drh 582d47d27a Remove unnecessary memset() calls from test code.
FossilOrigin-Name: eec3187bc68ddebdbc2113f77c7f5cd32e9be61f
2013-10-03 11:27:56 +00:00
drh e75fb06146 Bring some file format comments in btreeInt.h up to date.
FossilOrigin-Name: 012d54d0d2b40888d08915082592ba75d70891c1
2013-10-01 20:29:30 +00:00
drh 4384e98e6e Change the ".dump" command in the command-line shell so that it COMMITs
if there are database corruption errors but invokes ROLLBACK on any other
kind of error.

FossilOrigin-Name: 473234632ff7617680ab151076153f5c1088e55b
2013-10-01 15:30:05 +00:00
drh 24b7fe9004 Fix a minor typo in a comment in where.c.
FossilOrigin-Name: 9c9fa151e9a3bdab0264c08b66cbcc89d61bfca5
2013-09-30 19:33:06 +00:00
drh 8b8d28dd5a Update and modernize an obsolete comment associated with VACUUM. No
changes to code.

FossilOrigin-Name: 94c914e3fa632f88a0d0c14537f81aa46759e2be
2013-09-30 11:01:28 +00:00
dan 5d1dcff095 Obtain the required shared-cache write-lock when executing "DELETE FROM tbl" statements. Fix for [1e1321ee98].
FossilOrigin-Name: 1f8f4fdf3ff2b8de27e167a44a19b0f479f5ee1a
2013-09-26 15:21:16 +00:00
dan 56c517aa5f Fix a faulty assert() in sqlite3BtreeBeginTrans() that may fail in shared-cache mode.
FossilOrigin-Name: 1e1321ee985370c2b7e5bd64286bb4d7704b5a30
2013-09-26 11:04:33 +00:00
mistachkin bbff218016 Merge updates from trunk.
FossilOrigin-Name: 435ce3b3fc0cffb4d7e6f2694c3100066e19f9ed
2013-09-24 19:07:48 +00:00
drh 7fa2092571 Clear the current time value on prepared statements when the prepared statement
is reset.

FossilOrigin-Name: cebd6fc551d26aea0f28cd7d25338fe0b72aae88
2013-09-17 23:36:33 +00:00
mistachkin dcf31a14bf Readability improvements to the Win32 RC file.
FossilOrigin-Name: e64590625774228b5602a66cfb087cf74e2b438b
2013-09-16 20:46:34 +00:00
mistachkin e62d373031 Minor consistency fixes to the Win32 RC file.
FossilOrigin-Name: 619c5211b91aef98794e2e0a6f03832619fc83c0
2013-09-16 19:27:36 +00:00
drh 95a7b3e36d The date and time functions use the exact same notion of "now" for every
invocation within the same call to sqlite3_step().

FossilOrigin-Name: daf6ba413cb3cb6065774ba07495eab4a28b49b0
2013-09-16 12:57:19 +00:00
mistachkin b8af6a285c Fix Windows SDK compiler warning.
FossilOrigin-Name: d5fc3f1dabc7227230dcabdd808357f63432357b
2013-09-13 23:27:39 +00:00
drh 77ff23f9c7 Fix the "const" qualifiers on the pragma name table.
FossilOrigin-Name: b74e6be818fa7d19f1af6d86ad1d2ecba334b01b
2013-09-13 21:03:45 +00:00
drh 55e85ca5f5 Add the soft_heap_limit pragma.
FossilOrigin-Name: c326356f9a18bff5cf36bd59331e2cc207e349fa
2013-09-13 21:01:56 +00:00
drh d49c358e39 Tweak the new PRAGMA name parser to achieve full branch test coverage.
FossilOrigin-Name: c82e05c4b8e000684d95ac8417afaef5e4d633e6
2013-09-13 19:00:06 +00:00
drh aecd80215c Remove one unreachable branch and add asserts() to dupedExprStructSize().
New asserts verify that removed branch is unused and that constants that are
ORed together in the output do not overlap.

FossilOrigin-Name: 86ad358b5a7567857f2f998fbb8266b7de9ec87e
2013-09-13 18:15:15 +00:00
drh a496fa7c02 Adjust the query planner to take into account WHERE clause terms that do not
drive indices.  Add the unlikely() and likelihood() functions used to give
hints to the query planner about the selectivity of WHERE clause terms.

FossilOrigin-Name: bc446449a19171c0fa0681973b06bc80d3c0517f
2013-09-13 17:47:57 +00:00
drh 9ccd8659ff Change the PRAGMA parser to use a binary search for the pragma name.
Also:  Minor performance enhancement to sqlite3DbFree() and to the
token dequoter.

FossilOrigin-Name: 870c030b4e1854e6e0d39907fadbd82774c16f56
2013-09-13 16:36:46 +00:00
drh ebb6a65d16 Refactor the ExprSetIrreducible() macro into ExprSetVVAProperty(*,EP_NoReduce).
This is a naming change only.  The logic is the same.

FossilOrigin-Name: 695aee46e9bdf15159ab52db7f522b30c91aed0f
2013-09-12 23:42:22 +00:00
drh 6e1b167454 Fix typo in a macro name: "GlogUpperToLower" should be "GlobUpperToLower"
FossilOrigin-Name: 73634ca463f46027bfa8ea23f18abaa530460e24
2013-09-12 23:12:08 +00:00
drh a4c3c87e3d Merge in the Expr.flags expansion to 32-bits. Use an extra bit to help
optimize the sqlite3ExprSkipCollate() routine.

FossilOrigin-Name: 4c84d1b4c20f18921dd705bf67e8225975b83e86
2013-09-12 17:29:25 +00:00
drh c5cd124900 Increase the number of bits available in Expr.flags. Other tweaks aimed at
making expression processing more robust.

FossilOrigin-Name: 579a512538528cf4bb4381ba393c5d9e7310086b
2013-09-12 16:50:49 +00:00
mistachkin a9cb5be49a For error log messages generated by the Win32 native allocator, make sure the correct format specifier is used for the value returned by GetLastError().
FossilOrigin-Name: 75a8a8c1b39725d36db627536d0c69401f8e0815
2013-09-12 02:09:05 +00:00
mistachkin 36ca5359dc Fix a couple more harmless compiler warnings.
FossilOrigin-Name: 59708674f66e06c9c31c1a24f2f1c51f0bf4fa3e
2013-09-12 01:47:57 +00:00
drh 4a1f4ff53b Remove two obsolete fields from the sqlite3 object.
FossilOrigin-Name: 117fa5fbc9bed1a7b982c8ddc21b7e228905ccb4
2013-09-12 01:33:53 +00:00
mistachkin 61b7060c4f Fix harmless compiler warning.
FossilOrigin-Name: 2b510614dc6d878bd49eb428f167014f7f2e2568
2013-09-12 00:54:59 +00:00
drh 7d9e7d8287 Improvements to likelihood processing so that commuting an unindexed term in
the WHERE clause does not change the query plan.

FossilOrigin-Name: 6e6bded055cdbc902731687c86d92c39a3ba5904
2013-09-11 17:39:09 +00:00
drh 09328c00d6 Additional unlikely() test cases. Logic tweaks to support test coverage.
FossilOrigin-Name: 5d00cce74a7aefaf30022ae971ab1e0451e0ad6e
2013-09-11 14:34:58 +00:00
drh aae0f9e462 Change the name of the two-argument unlikely() function to likelihood().
Add test cases.

FossilOrigin-Name: 29a359b8d7f90e6fa2b28ce2a112284fd3870494
2013-09-11 11:38:58 +00:00
drh abfa6d52ed Tweaks to the index selection logic.
FossilOrigin-Name: 52d52688644f635a50a60ff17b160f3affa8fa6c
2013-09-11 03:53:22 +00:00
drh 36fabb6297 Merge trunk fixes into the unlikely-func branch.
FossilOrigin-Name: a51d751553b14aa26912c516f60727551deb8e60
2013-09-10 01:53:18 +00:00
drh 1d2b3c1f8a Deterministically initialize the PRNG used as a tie-breaker in the ANALYZE
command, so that the analysis is always the same given the same database.
This simplifies testing.

FossilOrigin-Name: 48ed8b565b84c8fa7898c2f9817c01f7e9c9182e
2013-09-10 01:41:25 +00:00
drh 0259bc3da2 Make sure that the transitive constraint optimization does not cause
WHERE clause terms to be disabled prematurely.  We are unable to find a test
case that fails because of this, but it seems prudent to make this
preventative change nevertheless.

FossilOrigin-Name: d6e361d7fb8013d616af91ef2c10038c97d1be5f
2013-09-09 19:37:46 +00:00
drh add5ce303f Continuing refinements of the logic to take WHERE clause terms not used for
indexing into account when computing the number of output rows from each
table.

FossilOrigin-Name: b65dc53415f42d8402d0ec7f4bedf59d7b39b486
2013-09-07 00:29:06 +00:00
mistachkin 9a5cbbc4a5 Merge updates from trunk.
FossilOrigin-Name: 8922be1a3e0269552e12b87fe1e5141c38a8d3f8
2013-09-06 22:27:55 +00:00
mistachkin 9a5b271908 When converting from a BLOB value in the tointeger() and toreal() SQL functions, make sure that endianness of the machine does not matter.
FossilOrigin-Name: 94c4cdc50d2753c859e494d53cebd09edd2e5663
2013-09-06 20:30:53 +00:00
drh fde1e6bc37 Enhance the plan solver to take into account the number of output rows when
computing the set of paths to retain for the next cycle.

FossilOrigin-Name: 1a46a7242313da96420985fa52e1de3f84533e5b
2013-09-06 17:45:42 +00:00