1
0
mirror of https://github.com/sqlite/sqlite.git synced 2026-10-26 21:59:27 +03:00
Commit Graph

9576 Commits

Author SHA1 Message Date
drh
e40ed78c1c Fix the virtual table IN optimizer so that it work even if the virtual table
implementation leaves the sqlite3_index_info.aConstraintUsage[].omit flag
clear for an equality constraint that it intends to use.

FossilOrigin-Name: d6e045f89c5a4b500b1da7ea1224b132909bafc6
2012-12-14 15:36:17 +00:00
dan
4ac391fc05 Attempt to further generalize the min/max optimization so that, if an appropriate index exists, it can be used by any aggregate query that contains only a single aggregate of the form max(colname) or min(colname) and does not contain a GROUP BY clause.
FossilOrigin-Name: 7280e14cd8f55896451847b432171e8750a07c81
2012-12-13 16:37:10 +00:00
drh
32055c2499 Allow the error message from "PRAGMA integrity_check" to be longer than
20,000 bytes.

FossilOrigin-Name: 120c82d56ecb574f46db01679317b8062d8779ed
2012-12-12 14:30:03 +00:00
drh
39ac5de6c5 Fix a typo in a comment that is used to generate
documentation.  No changes to code.

FossilOrigin-Name: e38adb60a7952ca9e28e496b4e4658c724a368d2
2012-12-11 19:10:37 +00:00
drh
be707b396a When an arithmetic operation with two integer operands must give a
floating-point answer due to overflow, make sure the answer is not
rounded back to integer by affinity.

FossilOrigin-Name: bd7aeeb691fee69dd6a562138a7aba8e8e192272
2012-12-10 22:19:14 +00:00
dan
de7ced37fe Remove a reference to JumpOnce from a comment in vdbe.c. No code changes.
FossilOrigin-Name: ee662c039d67f118008485d95603c5a43fcac75f
2012-12-10 09:08:17 +00:00
drh
04229acebc Factor some work out of the index loop of the bestBtreeIndex() routine for
a small performance increase.

FossilOrigin-Name: 92c9ab56b1c67b9468bec57ab1d2c483a69a2810
2012-12-08 22:14:29 +00:00
drh
468ef9a87e Refactor collating-sequence handling as a fix for ticket [71e333e7d2e642].
The Expr.pColl field is removed from the Expr object.  The COLLATE operator
now becomes a separate instance of Expr in the expression tree.  The code
generator looks up the correct collating function as needed, rather than
referring to Expr.pColl.

FossilOrigin-Name: 8542e6180d4321d45b34f33e481658908ce1430d
2012-12-08 21:51:24 +00:00
drh
261d8a51e2 Adjustments to the collating-sequence refactoring to facilitate full-coverage
testing and to fix some minor issues found by TH3.

FossilOrigin-Name: cdbfa664839a409589ec7cebfc9111235d2f3b38
2012-12-08 21:36:26 +00:00
drh
fb76f5a00c Make sure WHERE clause constraints A=B and B=A work the same even with
COLLATE clauses.

FossilOrigin-Name: b3f53668115f0a12a01167c2a75eecc735416024
2012-12-08 14:16:47 +00:00
drh
0ca10dfbed Fix the header comment on the OP_Compare operator.
FossilOrigin-Name: 2722f4074fd8d189b7bd2b9107484b66500e5e9b
2012-12-08 13:26:23 +00:00
drh
2d8e920339 Duplicating check constraint expressions prior to code generation is no
longer required, and so it is removed.

FossilOrigin-Name: 1a9db8dc2f3c5cb089801d56122cdf5c3a618163
2012-12-08 04:10:44 +00:00
drh
580c8c1816 Veryquick passes all tests now.
FossilOrigin-Name: 7b96115e81deab0aa0472839cf787ba3f2fc64a7
2012-12-08 03:34:04 +00:00
drh
d91eba9673 Recognize TK_COLLATE operators that have been transformed into TK_REGISTER.
Skip both TK_COLLATE and TK_AS operators when looking for the top of an
expression.

FossilOrigin-Name: f66c1db2965054f38125218202b6a6ec62d57666
2012-12-08 00:52:14 +00:00
drh
85d641f948 Improved error messages when column integers in an ORDER BY clause are
out of range.

FossilOrigin-Name: bd960d937f8d6521c8ec4b7bd8a77a498dd432d4
2012-12-07 23:23:53 +00:00
drh
8e049633aa For an ORDER BY on a compound SELECT, take the collating sequence from the
left-most term of the compound.

FossilOrigin-Name: 8e724b383da1314909c9a05e9d941a26a9f50b95
2012-12-07 23:10:40 +00:00
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