Commit Graph

7675 Commits

Author SHA1 Message Date
drh 0fbb50ee15 When available, use posix_fallocate() rather than ftruncate() to allocate
space for mmap()ed -shm files, since posix_fallocate() gives an error if
no disk space is available whereas ftruncate() is silent and leaves the system
vulnerable to a SIGBUS upon first write to the mmap()ed region.
Ticket [5eaa61ea1881040b17449ca043b6f8fd9ca55dc3]

FossilOrigin-Name: 356259617cfad04492a02912fdf781f54a2b4494
2012-11-13 10:54:12 +00:00
drh b43081675d Only log unlink() errors if the error is something other than
SQLITE_IOERR_DELETE_NOENT.  The error is still reported up the stack, it
is simply not added to the sqlite3_log().

FossilOrigin-Name: 5a3b07f0f5dfae7eea870303f52f37d6a17f1da2
2012-11-09 21:40:02 +00:00
dan 9fc5b4a539 Change os_unix.c to propagate ENOENT errors back to sqlite as SQLITE_IOERR_DELETE_NOENT. Have SQLite ignore these where they are benign and propagate them back to the caller where they may indicate a file-system malfunction of some description.
FossilOrigin-Name: bed9c172ce624ab7b5b9de9ad42444891717ad9a
2012-11-09 20:17:26 +00:00
drh ada796bbaa Disable the table selection rule that tried to prevent full table scans from
migrating to the outer loop unless they were optimal.  The new scaling of 
outer-loop costs by cost of inner loops obviates the need for that step.  And,
in fact, that step causes problems with the new inner-loop cost accounting.

FossilOrigin-Name: 51bfd63b7f9fe53831570ad124c932cb3582b104
2012-11-09 18:22:26 +00:00
drh 782d68a4cd Try to take into account the cost of inner loops when selecting which table
of a join to use for the outer loop.

FossilOrigin-Name: 942556342a332b04a11169bb04f387d741ef9488
2012-11-09 17:59:26 +00:00
mistachkin 70cb28fc0e Adjust the SQLITE_DBSTATUS_STMT_USED calculation to take the modified usage of sqlite3VdbeClearObject() into account.
FossilOrigin-Name: 82eb7eadb8c76b3af8c811d791f87a634c35935f
2012-11-06 20:39:11 +00:00
drh 46f7d98c0c In test_quota.c, provide a work-around for the missing _chsize_s() function
in mingw.

FossilOrigin-Name: 6b4979e86c05f2da2c5fff67ea7feec5fa56756a
2012-11-06 18:41:41 +00:00
drh 24aeee17a1 Add the INSTR() SQL function.
FossilOrigin-Name: a4c181cbcf9b8baa6e07501a93ef81603d91ba7d
2012-11-05 13:51:58 +00:00
drh 6e83a57f43 Proposed fix for ticket [bfbf38e5e9].
FossilOrigin-Name: 18ae030dad30303129186738c27cdc4ba06362b9
2012-11-02 18:48:49 +00:00
drh e8abb4cad3 Fix an out-of-date comment. No changes to code.
FossilOrigin-Name: 10cc12b16b2f1ae4e6b3a84cef5a44564d282e9c
2012-11-02 18:24:57 +00:00
drh da998c8ec0 Make sure that the optimizer never tries to create an automatic
index on a coroutine subquery.

FossilOrigin-Name: f83aa0de8470748b3cd0bff232aeea3baf8dae53
2012-10-30 15:31:31 +00:00
drh 980db4b67c Fix a typo in the header comment for the OpenPseudo opcode.
FossilOrigin-Name: 4f1061230e0e5a66038a4db99f1ee6203e4d2b9f
2012-10-30 14:44:14 +00:00
drh a575967793 Make it possible to disable the subquery-by-coroutine optimization using
sqlite3_test_control().  Remove an always-false conditional.

FossilOrigin-Name: 564631f3e45f8f8a8db69f1e0df0d1dadbad8a2c
2012-10-30 14:39:12 +00:00
drh 21172c4cc0 Add an optimization that attempts to run a subquery as a coroutine rather
than manifesting it into a temporary table.

FossilOrigin-Name: 7af3acbbd49a2114fcdada9ec907c68ba9b053bd
2012-10-30 00:29:07 +00:00
drh 6e227bf3e0 Make the multiplexor and the IntArray extensions callable from C++.
FossilOrigin-Name: cbd8fddf3b4cde840279502e1e9b151bb4bd42f0
2012-10-29 14:27:26 +00:00
dan d4e97e8aad Fix a 32-bit integer overflow problem that could cause an error in a CREATE INDEX statement that writes more than 16GB of data.
FossilOrigin-Name: e24ba5bee4424e99d0859ef652164ae1397a2378
2012-10-26 19:22:45 +00:00
drh 447b289ec8 Make sure the automatic index optimization is checked even if the
covering index scan optimization was previously selected.

FossilOrigin-Name: ac1d5d8a553d8ba76a332eed9d563ce7f04a7a37
2012-10-26 18:40:01 +00:00
drh 537dddf0cd Add QNX-specific performance tweaks to the unix VFS. (Cherry-pick merge of
[b02849e7bde458].)

FossilOrigin-Name: 63a7dd75e61afb3d05a1434f66ad6a5f08352aad
2012-10-26 13:46:24 +00:00
drh cb103b9274 Make sure all virtual table cursors have been closed on a prepared statement
prior to unlinking the perpared statement from its database connection.

FossilOrigin-Name: f7c5abe8739090db0738d2c7002a0d71f76c927e
2012-10-26 00:11:23 +00:00
dan e62c0694de Fix a bug in fts3 causing it to return SQLITE_NOMEM when NEAR, OR and some auxiliary functions were used together. Also a segfault in vtab.c that could follow an OOM condition.
FossilOrigin-Name: 33f4f9817e8b3cb97ce02a4c49bd586332da37b2
2012-10-25 19:25:39 +00:00
mistachkin 6d81d75d86 Fix typo in usage text for the command-line shell. Also, in the same usage text, make the file name argument to -init uppercase for consistency.
FossilOrigin-Name: a6d906cfeb9b181fd5b88df3650bab7ee1a24c0b
2012-10-25 15:43:28 +00:00
drh 98d312fc3e Improvements to the command-line argument parsing in the
command-line shell.  Command-line options can now occur either before
or after the database name and first command and are still accepted and
processed.  Command-line options are processed even if no database name
is given (and :memory: is assumed).

FossilOrigin-Name: 317c80cba3688a97ade9cde622cc3bd94cf3436a
2012-10-25 15:23:14 +00:00
drh d55e07296b Implementation of the INSTR() SQL function, as found in SQL Server, MySQL,
and Oracle.

FossilOrigin-Name: 49ccae964f3a8ae5aab87f56503121e09424545f
2012-10-25 03:07:29 +00:00
mistachkin 5f070c7bc8 More warning fixes.
FossilOrigin-Name: 51a6a797e1d61c4361b87cdf3467bfd3ce161cc3
2012-10-18 10:35:19 +00:00
mistachkin e1b461bd10 Fix harmless compiler warnings.
FossilOrigin-Name: 018e09c70347b9e0c76246ae65d57ef5d29a965a
2012-10-18 09:39:16 +00:00
dan 1e3e41858f Add a test for the problem fixed by [bf44d73d3e].
FossilOrigin-Name: db9b1fa5973d79e29885817d5aedc3a886c2589a
2012-10-17 16:20:36 +00:00
dan ce5c42be28 Change the way the tcl crash-test code works to avoid triggering an assert() in os_unix.c.
FossilOrigin-Name: b8b7b8f9e97a5c34f0f199b46347e0bf85005a4d
2012-10-17 15:28:26 +00:00
drh c0a23e5c9c Remove an incorrect "#ifndef SQLITE_OMIT_AUTOVACUUM" from pager.
FossilOrigin-Name: bf44d73d3e4ec403947d361d2fa150cc240c4d45
2012-10-17 13:15:02 +00:00
drh 281bbe2a95 Enable optimization of IN operators on constraints to virtual tables.
FossilOrigin-Name: aa650746b19e4a6a373f7e47effff3ab2f48e78c
2012-10-16 23:17:14 +00:00
dan 07973a6581 Hold the mutex on the shared-cache for the duration of a VACUUM operation.
FossilOrigin-Name: 629a42d47a0d8f73de900f469845ce800bdb8959
2012-10-15 18:02:57 +00:00
drh 42fbf32108 Dequote column names generated by the query flattener.
FossilOrigin-Name: 5526e0aa3ccb24988a4f351ac994907b6e89018a
2012-10-15 16:24:07 +00:00
dan 7eb0575287 Fix a failing assert() in wal.c.
FossilOrigin-Name: 8745530b9a877db77fe2ca3ea9c6bc99ce033055
2012-10-15 11:28:24 +00:00
drh aa2db79a2e Mark an always-true conditional as such.
FossilOrigin-Name: ae025cae2266a91d4226bbdb66f82b9d7714750a
2012-10-13 20:55:12 +00:00
dan b483eba051 Ensure that when the source of a backup is a database that is zero bytes in size, the final destination database consists of at least one page. Truncating it to zero bytes is equivalent to zeroing the schema cookie and change counter, which can cause problems for existing clients.
FossilOrigin-Name: af5c9ee4a453f71c03f24ad08824ced6c1b97afb
2012-10-13 19:58:11 +00:00
drh f7c7031f52 Define the sqlite3PagerWalFramesize() function even if SQLITE_OMIT_WAL is used.
FossilOrigin-Name: 96247853ef3d556a13b899b4c907b9fa2c78d513
2012-10-10 12:14:09 +00:00
dan 06a2d82566 Move a couple of WAL-related function declarations in sqliteInt.h and pager.h into "#ifndef SQLITE_OMIT_WAL" blocks. Otherwise, the amalgamation fails to build using some compilers with SQLITE_OMIT_WAL (static function declared but not defined).
FossilOrigin-Name: f7437153b90b25a1b77294a0f8d1b0bd4bd08c08
2012-10-10 09:46:29 +00:00
drh 90abfd086f Merge the fix for ticket [d02e1406a58ea02] into trunk.
FossilOrigin-Name: dd34bec389359845b86f4cc4906ab440f92dcab9
2012-10-09 21:07:23 +00:00
drh 5a05be1b68 Attempt to suppress warnings generated by Coverity.
FossilOrigin-Name: 7b1a6e6cb5099076bf19db142b17c99044a869cd
2012-10-09 18:51:44 +00:00
drh 5a55826bcd Avoid an assertion fault and/or freeing memory while it is still in use when
an error occurs during virtual table construction.

FossilOrigin-Name: a02599ad85d02470c9effa51c02dbda7796bfa16
2012-10-09 14:36:47 +00:00
drh 2f546ee914 Bring some comments up to date in the query planner, and especially the
ORDER BY optimizer.  Also add testcase() macros.

FossilOrigin-Name: bb5c0f1c92b48631d4a12cd4f321b53cd07885c8
2012-10-09 09:26:28 +00:00
drh 86257fff87 Remove an unused variable. Fix code that occurs before a variable
declaration.

FossilOrigin-Name: 01dc032b5bbd9c9ebb1965f176ca5d732cda85ea
2012-10-09 01:39:25 +00:00
drh 69a76bad73 Replace an always-false conditional with an assert().
FossilOrigin-Name: 981b9943e4b2b660690ec1ac145abdd3c74f8dd2
2012-10-09 01:23:25 +00:00
drh c31c7c1c6e Changes to facilitate full test coverage.
FossilOrigin-Name: 28d1eb40bfc4c993010ce670ee10780ca2ae5c9c
2012-10-08 23:25:07 +00:00
drh 3a17ea7ab6 Merge ORDER BY optimization refactoring and repair into trunk.
FossilOrigin-Name: c027a9af9137f3346dbb5c5e100a087c2e89797b
2012-10-08 21:51:58 +00:00
drh 2fad815c52 All test cases (veryquick.tcl and min.rc) pass. A few branch operations in
ORDER BY optimization logic are untested by min.rc.

FossilOrigin-Name: 8314fd6078a3a71aea9d6386ff277cfeb592b4ba
2012-10-08 21:01:15 +00:00
drh 6b9e565e54 Further tweaks to the ORDER BY optimizer, to fix a bug and to get the
optimizer to recognize some additional cases.

FossilOrigin-Name: bcb4f262476193cfb17818d8c62bab528dddeef9
2012-10-08 20:27:35 +00:00
drh 0a4c741cab Bug fixes in the ORDER BY optimizer.
FossilOrigin-Name: 301bbee4045aa169e29fb4fb75743b71eb4760a1
2012-10-08 19:41:38 +00:00
drh 8e4af1b997 Continued refactoring of the ORDER BY optimization logic. This check-in
is close to working, but it still has issues.  A few test cases fail.

FossilOrigin-Name: adbdc663f3d22ff03f21040a811d585cf2218626
2012-10-08 18:23:51 +00:00
mistachkin 31d72112fa Manually define the Win32 file-mapping APIs for WAL if SQLITE_WIN32_FILEMAPPING_API is defined.
FossilOrigin-Name: 1c2c0a2880dd0ee8862352e307142b8de7e80d13
2012-10-08 14:36:42 +00:00
mistachkin f1dacbfc5b Manually define the Win32 file-mapping APIs for WAL if SQLITE_WIN32_FILEMAPPING_API is defined.
FossilOrigin-Name: 585e2070eef3bc273f23d8e384a1261ee5fff5bd
2012-10-07 00:52:22 +00:00