Commit Graph

8353 Commits

Author SHA1 Message Date
drh 62a66e7034 Do not report missing collating functions while parsing the schema.
Also remove a stray comment.

FossilOrigin-Name: e313edca0472f07e9b872b92120d80b4bc177328
2012-12-07 22:54:41 +00:00
drh 953f7611da Fix a long-standing issue with the distinct-as-aggregate optimization that
only expressed when the new collating-sequence logic is turned on.

FossilOrigin-Name: 0aaf52a339808386984c30cca0c0c35ac2e70e7e
2012-12-07 22:18:54 +00:00
drh bd13d34b08 Fix the processing of ORDER BY clauses with COLLATE terms on compound
queries.  52 veryquick test failures remain.

FossilOrigin-Name: 49654453ad157693414c1f86fa3afa0918acffd4
2012-12-07 21:02:47 +00:00
drh 7a66da1395 Many more tests are passing. Only about 100 failures remain in veryquick.
FossilOrigin-Name: f9fa7581c0371fe0feb4e97487741ade18595810
2012-12-07 20:31:11 +00:00
dan 4b2f358938 Ensure the VerifyCookie sub-routine has been run before the database is accessed in an obscure case. Fix for ticket [d6b36be38].
FossilOrigin-Name: 2d5f37c99a9e5377409697f5392a1ca55970964e
2012-12-07 19:28:26 +00:00
drh 0a8a406e9b Some errors in veryquick resolved. Many more to go.
FossilOrigin-Name: 972443b4eb282d45507da06c75e2cd46dd72326b
2012-12-07 18:38:16 +00:00
drh 4b17cf5855 Veryquick now row to completion without segfaulting or asserting. But there
are still lots of errors.

FossilOrigin-Name: 7fafab12e4c0c832c421975f8329c3214403d281
2012-12-07 14:02:14 +00:00
drh ae80ddea9f Remove the Expr.pColl field and compute the collating sequence as it is needed.
This fixes the test script "shared9.test", though there is still a memory leak.
And there are other problems.  Consider this a work-in-progress.

FossilOrigin-Name: fd011cb22f2d899d94ec7ce22641d7a8f5e19972
2012-12-06 21:16:43 +00:00
dan f78baafe41 Apply the same restrictions on constant refactoring to statements within a trigger program as top-level statements. Candidate fix for [ae3c5670b6].
FossilOrigin-Name: 0c31a46801746191d1a53332d75beda880fe1fd7
2012-12-06 19:37:22 +00:00
drh 696b33e622 Add the SQLITE_FCNTL_TEMPFILENAME file control that asks the underlying VFS
to return a new temporary filename.  Per request from NSS team at Mozilla.

FossilOrigin-Name: 1a63b1d5fa5d79f96eddbda6d94bc10248863710
2012-12-06 19:01:42 +00:00
drh e6f1e760d5 Remove obsolete comments from the definition of the CollSeq object.
FossilOrigin-Name: 7b6951016f5bf4c21f843f09769ba176c709e785
2012-12-06 01:03:15 +00:00
drh 7f5febc729 Make sure memory is freed using a routine that is compatible with the
routine used to allocate the memory.  The SQLITE_MEMDEBUG compile-time
option enforces this.

FossilOrigin-Name: 9f6c68856b694373b7ffb124abd996e519ba5921
2012-12-05 14:31:13 +00:00
dan 44c4fcb9d8 Since errors are ignored anyway, use sqlite3OsFileControlHint() instead of OsFileControl() to invoke the SQLITE_FCNTL_BUSY_HANDLER file-control.
FossilOrigin-Name: bdceca2738eb3e8acc44d0384cf2a3a969ee8170
2012-12-05 11:30:28 +00:00
dan 3de0f18476 If the atomic-write property is enabled, a transaction may be committed in journal_mode=DELETE mode without ever actually creating a journal file on disk. In this case, do not attempt to unlink() the journal file when committing the transaction.
FossilOrigin-Name: 11aa47b0a837858b644c304638e1cbbf482de2f0
2012-12-05 10:01:35 +00:00
drh 68c804b9ab Fix a harmless compiler warning.
FossilOrigin-Name: 12693deba9b8a47ad02ca4e32d5fba6006b0401c
2012-12-04 11:03:11 +00:00
drh d483dfa4b4 Improvements to the 'tcl' shell output mode. Escape doublequotes,
set separator to space when mode is set, and skip separator after final 
column.

FossilOrigin-Name: 487ba753139c256b911f16aee9586144faea846f
2012-12-04 00:59:05 +00:00
mistachkin a359b5eea4 Fix an out-of-order function declaration when compiled with MEMDEBUG.
FossilOrigin-Name: 6d31557837fef2c8fad6f009ac6dd97dd4af0a54
2012-12-04 00:37:58 +00:00
mistachkin 585dcb251b Improvements to the 'tcl' shell output mode. Escape double quotes, set separator to space when mode is set, and skip separator after final column.
FossilOrigin-Name: 41fd9dd29034b2269e4b7f2626350124d37b5303
2012-12-04 00:23:43 +00:00
drh 5f53aac2e7 Remove an unreachable condition. Replace it with an assert().
FossilOrigin-Name: 7d5fc1a339cf4f3597ab6a5f3e7101884d2d7673
2012-12-03 19:42:39 +00:00
drh fc5e546641 Make sure that the optimization that set the maximum column that will be used
on a particular query does not mistakenly change an opcode other than
OP_OpenRead or OP_OpenWrite.  In particular, make sure it does not overwrite
the P4 field of an OP_SorterOpen.

FossilOrigin-Name: b0c1ba655d69c0c46c16ea2aef4e6c9a3e6ce3fb
2012-12-03 17:04:40 +00:00
drh 4d15a0d6d5 Do not exist the command-line shell if a ".read" command invokes a script that
contains two errors.  But reported on the mailing list.

FossilOrigin-Name: 2e5e65152758bc37439584ccba4c1b1c5ceb24f8
2012-12-01 20:21:22 +00:00
drh dac07e14c8 Add the SQLLOG capability to trunk.
FossilOrigin-Name: f0843f885ab3337f83fe3b304aab80bb7b5dd0a3
2012-11-27 21:22:54 +00:00
drh 7d1f0c79cf Get SQLLOG working on windows. Fix a couple of compiler warnings.
FossilOrigin-Name: b3809c937b230b34e5bc6ce4909c04ceef72fb85
2012-11-27 16:39:31 +00:00
dan 71ba10d3c9 Fix problems in test_sqllog.c. Clarify the experimental SQLITE_CONFIG_SQLLOG interface. Handle at least the more likely error conditions in test_sqllog.c.
FossilOrigin-Name: 429c5b2056d7b7c644ca53bc97b8e0b9cb89ab04
2012-11-27 10:56:39 +00:00
dan ac45593931 Add an option to register global hooks used for logging all SQL executed by an application.
FossilOrigin-Name: cd501bbccf3e62b002317592cc331770b32c129a
2012-11-26 19:50:41 +00:00
mistachkin 55fbc86981 In winDelete, determine that a file does not exist by checking for a last error of ERROR_FILE_NOT_FOUND or ERROR_PATH_NOT_FOUND.
FossilOrigin-Name: 692ad3c02b1af83f0419283fab9b800e361cdf31
2012-11-21 02:10:20 +00:00
drh 6d405c2cb7 Have the windows implementation of xDelete return SQLITE_IOERR_DELETE_NOENT
if the file to be deleted does not exist.  The unix implementation was
previously modified to behave this way.  The current changes simply brings
the two implementations into alignment.

FossilOrigin-Name: d4c36d4991b048133efb21b251ab57fa66764d9d
2012-11-20 15:06:57 +00:00
drh 6033e15aa2 Use preprocessor macros to automatically detect whether or not
posix_allocate() is available.  (It is generally available on Linux
but not on Mac.)  Ticket [5eaa61ea1881040b17449ca043b6f8fd9ca55dc3]

FossilOrigin-Name: 597333f1024092b94bcd8772541e19a0f707bd40
2012-11-13 11:08:49 +00:00
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