Commit Graph

8353 Commits

Author SHA1 Message Date
drh 0d08b93673 Remove a surplus local variable
FossilOrigin-Name: 91bc840eea2099273bd2c5d41a8410d628986643
2013-07-02 15:25:22 +00:00
dan 51576f4791 Fix a minor typo in a comment in where.c.
FossilOrigin-Name: 4a9d51e792d7c4297bd18af7b7c757c93a3a1cd1
2013-07-02 10:06:15 +00:00
drh cdc2e43d8e Add a missing test that prevented double LEFT JOINs with transitive
constraints from working correctly.  Fix for ticket [868145d012].

FossilOrigin-Name: 72919ec34f0d663d551c1070285ad93b932bcb74
2013-07-01 17:27:19 +00:00
drh 9443342ee9 Further minor comment corrections and enhancements in where.c.
FossilOrigin-Name: 0d68d4d018e73dcbbc08786071aac6228fca1a8c
2013-07-01 11:05:50 +00:00
drh be4fe3afc0 Make a trivial comment fix in where.c.
FossilOrigin-Name: 0ffaab3b9c97f4dba0f0ca6e146c8dc2775f7b1c
2013-07-01 10:38:35 +00:00
drh d0a64dc75a Fix an issue in the command-line shell with CSV import of rows with
empty columns.

FossilOrigin-Name: 60b65e5ee3828c2a814bf035b57b3e8681af9397
2013-06-30 20:24:26 +00:00
drh 12cd6cfd6e Fix the build of the command-line shell on windows. Windows uses "_pclose"
rather than "pclose" as the pointer to the function that closes a popen pipe.

FossilOrigin-Name: b003b2b2b6ddbfc6ec508b47904e6d095c5f6940
2013-06-29 15:40:22 +00:00
drh 8d56e2059c Issue the new SQLITE_WARNING_AUTOINDEX warning on the SQLite log whenever
an automatic index is created.

FossilOrigin-Name: 338826ef3f8a209b14f8d42370855cab9ac9ed45
2013-06-28 23:55:45 +00:00
drh 986b38792f Add the SQLITE_DEFAULT_AUTOMATIC_INDEX compile-time option, which if set to
zero turns automatic indices off by default.  Increase the estimated cost
of an automatic index.  Additional minor refactoring of the automatic
index code.

FossilOrigin-Name: 459b3179023c2c45994ea4acbf34ed5f87cf3c18
2013-06-28 21:12:20 +00:00
dan c0537fe59b Allow read transactions to be freely opened and closed by SQL statements run from within the implementation of user-functions if the user-function is called by a SELECT statement that does not access any database tables (e.g. "SELECT user_function();").
FossilOrigin-Name: f308c4851726b4b75636f714466f2314f56e3ec0
2013-06-28 19:41:43 +00:00
drh 40aa936f7f Add a bit to the SQLITE_TESTCTRL_OPTIMIZATIONS option for sqlite3_file_control()
that will disable the use of SQLITE_STAT3 information in the query planner.

FossilOrigin-Name: 60c19b86797fb8a37f175545929883ebeff7f307
2013-06-28 17:29:25 +00:00
drh 9d5a579c35 Fix an issue with the OmitNoopJoin optimization and add test cases that
are specifically for that optimization.

FossilOrigin-Name: 5480d124b74c9adaacc4fa9cb81560865b44f3e1
2013-06-28 13:43:33 +00:00
drh 1713afb025 Refactor the Vdbe.noIO field as Vdbe.bIsReader. The meaning is inverted.
FossilOrigin-Name: 59f98c5c241e5a61cd5b6d0e69b55a6b44c5cafc
2013-06-28 01:24:57 +00:00
drh 4f7d3a5f06 Refactor names of fields in the sqlite3 object: "activeVdbeCnt" becomes
"nVdbeActive".  Related fields becomes "nVdbeRead", "nVdbeWrite", and
"nVdbeExec".

FossilOrigin-Name: 14f796963474350e7aee8d3757acd3315fe78e4f
2013-06-27 23:54:02 +00:00
drh 9e92a47bdf Make sure that sqlite3_stmt_readonly reports false for
PRAGMA journal_mode and PRAGMA wal_checkpoint.  Ticket [a589ec069e3].
Also keep track of whether a prepared statement does no reading or
writing.

FossilOrigin-Name: 1937fd8eec2c1da95a782d9dc63926d846b06bdc
2013-06-27 17:40:30 +00:00
drh 5bde816599 If the filename argument to the ".import" command in the command-line shell
begins with '|' then treat it as an input pipe rather than a file.

FossilOrigin-Name: 4c02b344f5c6f6fb1c61b79d51063a1e0e2d75c0
2013-06-27 14:07:53 +00:00
drh 4c56b99f2e Improved handling of backslash escapes on double-quoted arguments to
dot-commands in the command-line shell.

FossilOrigin-Name: 656a1fe5dd670e6ce7173ed3ce3392c0151641a0
2013-06-27 13:26:55 +00:00
drh 340f582ec3 The undocumented and unsupported ".selftest" command in the command-line
shell utility is now only available if compiled with SQLITE_DEBUG.  Also
fix a windows compiler warning in that command.

FossilOrigin-Name: e88fd5b22198edfc6f91390194bdde07ca06ba35
2013-06-27 13:01:21 +00:00
dan f73819af05 Add extended error code SQLITE_BUSY_SNAPSHOT - returned in WAL mode when a read-transaction cannot be upgraded to a write-transaction because it is reading from a snapshot other than the most recently committed.
FossilOrigin-Name: 361c22969aa75340ed696e00e3dc5d17d5493bee
2013-06-27 11:46:27 +00:00
drh db95f68b14 Update the ".import" command of the command-line shell so that it can
accept field values that span multiple lines and so that it issues
error messages if the input text does not strictly conform to RFC4180.

FossilOrigin-Name: 93f632152e464a89322a0130adaf9f342411bf7d
2013-06-26 22:46:00 +00:00
drh 989a6dbef1 Add the SQLITE_STMTSTATUS_VM_STEPS option for sqlite3_stmt_status().
FossilOrigin-Name: bd4267f17bbf5d01fb3f12a5a06e94fcbcbd785c
2013-06-26 13:22:28 +00:00
drh 692b9a43dd Omit tables from the FROM clause of a join if their presence makes no difference
in the final output.

FossilOrigin-Name: 6505e2ab0200736c525b5cfcf1cb62c0bd4d18ee
2013-06-26 11:49:45 +00:00
drh 2c036cff3d Fix an uninitialized variable detected by valgrind. Unclear whether or not
this should apply to trunk.

FossilOrigin-Name: 19ab4811d542ba781aeb6a4eb3c74642677225e1
2013-06-26 00:34:13 +00:00
drh bf159fa21b Add a new (experimental) sqlite3_stmt_status() verb that returns the number
of VM steps.

FossilOrigin-Name: f1366bab737a3ac2ea20a0ec014cc306d7ded8a5
2013-06-25 22:01:22 +00:00
drh 1031bd9958 Add the ability to disable the omit-join-table optimization for testing
purposes.

FossilOrigin-Name: d929df9b1ba214c27d8c437099a53ee9b07aa169
2013-06-22 15:44:26 +00:00
drh 0057a74675 Merge in the latest changes from trunk. Simplify the implementation of the
tointeger() and toreal() functions.  Fix test cases and put unambiguous
labels on all testcase names.

FossilOrigin-Name: 9b837b0508fbfb395f0a0d8e4bd127730c80ffc5
2013-06-21 19:29:33 +00:00
mistachkin f5fe3ae9e6 Merge updates from trunk.
FossilOrigin-Name: fa2a91e6c631864846484d13cffdc51856953cd1
2013-06-21 18:32:11 +00:00
drh bc71b1d453 Only eliminate inner loops of a JOIN if they are the RHS of a LEFT JOIN
and if they give no more than a single result.  This appears to give correct
answers in all cases.

FossilOrigin-Name: d7a25cc79794817504ca1a4262008a68b2a4dece
2013-06-21 02:15:48 +00:00
drh fd636c7541 Attempt to disable inner loops of a join that do not generate output.
This does not work, since the inner loops might run zero times and thus
inhibit all output.  Needs to be enhanced to work only for LEFT JOINs
or when we know that the inner loop will always run at least once.

FossilOrigin-Name: ca839723a21bb13d3e0666a672c15c6f3a267c2f
2013-06-21 02:05:06 +00:00
drh 6457a353bc Modify the query planner interface so that it always passes in the result set.
This is the first step toward adding an optimization that will omit tables
from a join that do not contribute to the result.

FossilOrigin-Name: 2c2577e69ccb47f1af674a755e71221e2ca0b322
2013-06-21 00:35:37 +00:00
drh 472eae8a4d Add a NEVER() macro and an explanation comment around an unreachable branch
in the STAT3 logic.

FossilOrigin-Name: 604c3c5de6fd8f8a569aa9ed981055a5b0123ba1
2013-06-20 17:32:28 +00:00
drh 3a41df11bc Pull in the posix_fallocate() change from trunk.
FossilOrigin-Name: d94db3fd921890ab1d6414ab629410ae50779686
2013-06-20 14:17:39 +00:00
drh b01e5b59a2 Disable posix_fallocate() for all systems, all the time, unless the
HAVE_POSIX_FALLOCATE compile-time macro is supplied.

FossilOrigin-Name: b674462243138fcee192ef05d434665e30c681c4
2013-06-20 14:07:37 +00:00
drh 48779e590c Merge in trunk changes to os_unix.c that allow the code to build on
unix platforms that lack posix_fallocate().

FossilOrigin-Name: bf5764067ab848e19e5971cbdf892c633495e325
2013-06-19 23:48:35 +00:00
drh 74f91d4462 Add in the cost of doing a table lookup on OR searches. Make test case
changes to deal with difference in STAT3 behavior.

FossilOrigin-Name: d97898e8e3990ae8c1882c9102b57692d8810730
2013-06-19 18:01:44 +00:00
drh 2daffdf0b5 Only default HAVE_POSIX_FALLOCATE on for linux, and then only if it is not
previously defined.

FossilOrigin-Name: 2b2ade92788be623af6f57e37d98994be2cec142
2013-06-19 14:49:14 +00:00
drh 7fb1b30118 Only enable posix_fallocate by default on linux and mac.
FossilOrigin-Name: b9b30d4f9845d212e2d3206abbf2795099e5d71d
2013-06-19 14:28:34 +00:00
drh ad01d892a7 Additional compiler warning fixes.
FossilOrigin-Name: 8d2ae8e2f343f82f6fba6d0e89cee7f15b444aa3
2013-06-19 13:59:49 +00:00
drh e8ae583ebd Fix a harmless uninitialized variable warning.
FossilOrigin-Name: 9d3ef3bd2c6281784a537a22a87279f420649935
2013-06-19 13:32:46 +00:00
drh dbb80234da Simplify and add invariants to the WhereLoop merging logic inside of
whereLoopInsert().

FossilOrigin-Name: 8f27f35f288434b9e7bc503c608f1e2b590ade4d
2013-06-19 12:34:13 +00:00
drh c7f0d229a7 Fix compiler warnings. Fix a harmless off-by-one error in the solver.
FossilOrigin-Name: 10021941d0258951b916e788881df140113f0597
2013-06-19 03:27:12 +00:00
drh 4a5acf8e5c Adjustments to testcase() macros for improved testability.
FossilOrigin-Name: 4fbb0c4d26c54aaefbe5397cde2a0b9d2ce3885f
2013-06-18 20:06:23 +00:00
drh 81186b4392 Remove some redundant and unreachable code.
FossilOrigin-Name: 4c6d58d75d51e1ce829aec214617c3a89e784a2d
2013-06-18 01:52:41 +00:00
drh 7963b0e853 Add more testcase() macros. Fix a memory leak following OOM in the
virtual table analysis logic.

FossilOrigin-Name: b61402af690ac08b68974f3c807096b0cffd9bc0
2013-06-17 21:37:40 +00:00
drh 93ec45d560 Simplifications to the NGQP. Add the queryplantest makefile target. Add
testcase() macros in the NGQP.

FossilOrigin-Name: eaf1f1b405ec2c498092527fae00e5dbe9e176c1
2013-06-17 18:20:48 +00:00
drh 75bf6b984a Use automatic indices on subqueries of the FROM clause when appropriate.
FossilOrigin-Name: e8f124284ee0d0e373dc4431668630f1e17015c1
2013-06-17 14:18:21 +00:00
drh 613ba1ea9c Fix compiler warnings.
FossilOrigin-Name: 3e8ac46918c68723bd199dbec8b0901457d524a9
2013-06-15 15:11:45 +00:00
drh f003076032 Comment tweaks in where.c. No changes to code.
FossilOrigin-Name: cecc5fdd5d8fbad7d9e8c275b9ba9ade3dbee8ef
2013-06-14 13:27:01 +00:00
drh b8916be945 Add a new ORDER BY optimization that bypasses ORDER BY terms that are
constrained by == and IS NULL terms of the WHERE clause.

FossilOrigin-Name: b920bb70bb009b7c54e7667544c9810c5ee25e19
2013-06-14 02:51:48 +00:00
drh 6d38147c19 An index might be useful for ORDER BY if any indexed column is in the
ORDER BY clause, not just the first indexed column.

FossilOrigin-Name: ade473b5ae3fe2162b0ec29731d8e864a9301e07
2013-06-13 17:58:08 +00:00