Commit Graph

12467 Commits

Author SHA1 Message Date
dan 76ccd89d13 If SQLITE_TEST_REALLOC_STRESS is defined, extend the op-code array used by virtual-machine programs by one element at a time, instead of doubling its size with each realloc().
FossilOrigin-Name: 4c291827224b84487a38e7ccba2edabc0f15b5ba
2014-08-12 13:38:52 +00:00
drh 61ffea5490 Fix typos in the VxWorks code of os_unix.c.
FossilOrigin-Name: 19682e8fdc4a3b7884dba3e4387763e435ec16e6
2014-08-12 12:19:25 +00:00
dan 793bd861fe Add a test to ensure that the problem fixed by [a179e41e40] does not recur.
FossilOrigin-Name: 31356f2cae26278660e6bd360ad35e57261d977c
2014-08-12 09:36:08 +00:00
drh fcf2a7757e Fix an assert() statement in the SELECT code generator that was
incorrect following an OOM error.

FossilOrigin-Name: a179e41e40dba4c19a488985f77777acd27b689d
2014-08-12 01:23:07 +00:00
mistachkin f0740a947d Modify GetVersionEx Win32 VFS fix for use with the test suite.
FossilOrigin-Name: fd2221768b45d9006bbb2919a4977cf2791826d6
2014-08-11 17:51:23 +00:00
drh e5e20d354d Further clarification and typo fixes for the previous comment change.
FossilOrigin-Name: 87ef9e2f293afd89901fed6be45b0f0052df6846
2014-08-11 17:41:53 +00:00
drh c96c7e3c15 Clarify the comment explaining the meaning of the SQLITE_WIN32_GETVERSIONEX
macro in the Windows VFS.

FossilOrigin-Name: 69714287dbbdbf4ef2a2c5e99ed740ae7d27e051
2014-08-11 17:40:30 +00:00
mistachkin 91d1249748 Fix for #ifdef issue with GetVersionEx in the Win32 VFS.
FossilOrigin-Name: 1a0d466dd48163c86de4774035fe4a30c1c55311
2014-08-11 17:38:38 +00:00
drh 9f959b07de Add a few more requirements tests.
FossilOrigin-Name: b5652439d5d770f0edeb80c8f55fa7cc515482e3
2014-08-11 17:37:27 +00:00
drh ddb17cae38 Updates to evidence marks and requirements. No changes to code.
FossilOrigin-Name: 62d38308b519a5362f559b296a0cf1acccf8f673
2014-08-11 15:54:11 +00:00
drh 490fe86f1a Fix harmless compiler warnings.
FossilOrigin-Name: 52b03f045edf6fc29f9ba9a5cac53a59f0feb0eb
2014-08-11 14:21:32 +00:00
drh 91be7dc320 Changes that will perhaps enable SQLite to work better on VxWorks.
FossilOrigin-Name: de27c742c0dcda20b51339598bf6094a8dcf5fb9
2014-08-11 13:53:30 +00:00
drh e8a537eea7 Update requirements marks. No changes to code.
FossilOrigin-Name: 7556bd9aa5db1b9cd92d0e48effcda9fe96f3128
2014-08-08 18:26:20 +00:00
drh ee5141de47 Improvements to the way the query planner handles sorting costs, so that
very large sorting costs do not overwhelm the loop costs.

FossilOrigin-Name: bdaa6947371a60a31b6a13267b0ba6e46df2a8ce
2014-08-08 17:49:55 +00:00
dan e2c278513d Fix a buffer overrun in the previous commit.
FossilOrigin-Name: 43c59c85436dc8001c81f4aac7f5231b13d741cb
2014-08-08 17:25:33 +00:00
dan 50ae31e6f6 Because SQLite internally calculates query plan costs using a logarithmic scale, very large estimated sorting costs can cause all other estimated costs to be rounded down to zero. In these cases break ties between plans with the same total cost by comparing the costs with sorting excluded. This is an alternative fix for the same problem as addressed by [2af630c572].
FossilOrigin-Name: 299b9570279ded7158d22349ef93384286a5c755
2014-08-08 16:52:28 +00:00
drh 3c19bbea0a The SQLITE_IOERR_BLOCKED extended error code is not longer used, so remove
assert() statements and documentation for that error code.  Also make other
documentation improvements.

FossilOrigin-Name: 36b7c5cefcad6bad044806092593c84876fee8bc
2014-08-08 15:38:11 +00:00
drh 1d8ba02445 Reworking the documentation on integer result codes. This is a comment
and documentation change only.  There are no changes to code.

FossilOrigin-Name: 54f1df7b63166f14b2f0d5955c546820e5cbdec9
2014-08-08 12:51:42 +00:00
drh b562f63c1b When the estimated sorting cost overwhelms the estimated lookup cost, ensure
that lookup costs are still taken into account when selecting a lookup
algorithm.

FossilOrigin-Name: 2af630c5720a4d71f22a952af29346a09bd8dfd0
2014-08-07 20:42:33 +00:00
drh f2a90306ca Clarify the computation of compatible isOrdered by in the plan solver of
the query planner.

FossilOrigin-Name: b5e8fd575a80334160de0aac8084ed5cd28816a5
2014-08-07 20:37:01 +00:00
drh b28ce65f45 Remove the extraneous debugging printf() from the previous check-in.
FossilOrigin-Name: 8f04d2c0084afa6381e78847c9aa296498d448cb
2014-08-07 20:25:37 +00:00
drh ddef5dc044 When the estimated cost to do a sort overwhelms the estimated cost to do
individual table lookups, make sure that the table lookup costs are still
taken into consideration when selecting the lookup algorithm.

FossilOrigin-Name: ec5d84ba69c100d9565425ed74040a49e410ea03
2014-08-07 16:50:00 +00:00
drh 858b638d1f A couple more harmless compiler warnings eliminated.
FossilOrigin-Name: bcf6d775f90f4d1ba018a1b965f2f710df130f01
2014-08-06 18:50:51 +00:00
drh e8f2c9dc71 Fix two more harmless compiler warnings. Make sure the fts3_unicode2.c file
is in sync with mkunicode.tcl.

FossilOrigin-Name: a2a60307ea68a3230952a56cb65369ba0a208967
2014-08-06 17:49:13 +00:00
drh 5402710b0b Fix harmless compiler warnings. In the command-line shell, report if the
".system" command returns a non-zero result.

FossilOrigin-Name: 1202e9771f6d699dbf5268368108a3527d06d799
2014-08-06 14:36:53 +00:00
drh ede7ae31f1 Fix an obsolete comment in the func.c source file. No changes to code.
FossilOrigin-Name: 5c6bb57d90bad32785d6d9cdf110a825bbc5ec73
2014-08-06 11:58:40 +00:00
drh 2abe6a281c On the windows VFS, do not try to make InterlockedCompareExchange an
overloadable function, since sometimes it is a macro.

FossilOrigin-Name: ab1a751e1304749bef5bc5c833f9abed8950f7d0
2014-08-06 11:57:54 +00:00
mistachkin 17835a5443 In the Win32 VFS, work around InterlockedCompareExchange() being a macro on some platforms (e.g. x64).
FossilOrigin-Name: 7be244ce129d6502f3a3e3f3e8a1dd61ef71d878
2014-08-06 03:06:01 +00:00
drh bc5cf3813e Fix typos in the opcode documentation. Comment changes only. No changes
to code.

FossilOrigin-Name: 717245d48714c08156c9b7636aaa6c3a402bad66
2014-08-06 01:08:07 +00:00
drh 0c4de2d96d A simpler fix for ticket [3a88d85f36704eebe1] - one that uses less code.
The error message is not quite as good, but as this error has apparently
not previously occurred in over 8 years of heavy use, that is not seen as
a serious problem.

FossilOrigin-Name: 0ad1ed8ef0b5fb5d8db44479373b2b93d8fcfd66
2014-08-06 00:29:06 +00:00
drh 1cfc9aa993 Ensure that aggregate functions are not used when evaluating a default
value for a table column.
Candidate fix for ticket [3a88d85f36704eebe134f7].

FossilOrigin-Name: 29ba812825bf06ef230f2480bba0579653f0a52d
2014-08-05 21:31:08 +00:00
drh 42191f6248 Add the ability to evaluate IN operators as a sequence of comparisons as
an alternative to the long-standing algorithm of building a lookup table.
Use the new implementation in circumstances where it is likely to be faster,
such as when the RHS of the IN changes between successive evaluations.

FossilOrigin-Name: 952868216854e8355edf57af62bd1a6bcb70ce61
2014-08-05 19:16:22 +00:00
drh 2c5e35ffd1 Rename the internal Schema.flags field to Schema.schemaFlags.
FossilOrigin-Name: 5ae80b3c8f032528359c8c762505ce24da8db96f
2014-08-05 11:04:21 +00:00
drh 4336b0e64a Improved VdbeCoverage() macros. A few minor simplifications to generated
VDBE code.

FossilOrigin-Name: 01f60027ad1841051fa493a646141445f8971357
2014-08-05 00:53:51 +00:00
drh 2c3ea0694f Part of the change in the previous check-in was incorrect and can result
in an incorrect UPDATE for WITHOUT ROWID tables.  This check-in fixes the
problem.

FossilOrigin-Name: ee5f6eae57a656d09a4b3f7fbef664b2c696ddb4
2014-08-04 21:26:58 +00:00
drh 7248a8b2b9 Further enhancements to IN-operator processing.
FossilOrigin-Name: 7fdf26da1d2f40b80f9e44ff6f5af22ace8f95f3
2014-08-04 18:50:54 +00:00
drh a976979b6e Refinements to the enhanced IN-operator logic.
FossilOrigin-Name: 92ba2821468ecbfac2469161d81c873de67b2243
2014-08-04 16:39:39 +00:00
drh bb53ecb1db Enhancements to the code generator for the IN operator that result in much
faster queries in some cases, for example when the RHS of the IN operator
changes for each row of a large table scan.

FossilOrigin-Name: 436e884215e2b33ca3fbb555362237b12827c07a
2014-08-02 21:03:33 +00:00
mistachkin 16d511a664 Remove (newly) incorrect preprocessor check to fix build on WinRT.
FossilOrigin-Name: ba7826542908eac2e14789d183d0b3e35b143fed
2014-08-02 20:44:13 +00:00
drh 4c259e9f40 A better comment on the generated code for the NULL-in-RHS-of-IN detection
logic.

FossilOrigin-Name: 9bc1c730a366e75b760b58e7a343d39165b2a469
2014-08-01 21:12:35 +00:00
drh 6be515ebe0 Improved detection and handling of NULL values on the RHS of a IN operator.
FossilOrigin-Name: 468e730036edac22cfeb9ea3515aa16e6bcd6650
2014-08-01 21:00:53 +00:00
drh e21a6e1dfe Remove an unnecessary OP_Null in the IN-operator logic. Attempt to clarify
comments explaining the IN-operator code, though it is not clear that the
comments are correct even yet - more work to be done.

FossilOrigin-Name: c11e55fabbc718cb324ecd3540453c25db98f50c
2014-08-01 18:00:24 +00:00
drh 5c3e9cf9de Clean up the IN operator code generation logic to make it easier to reason
about.  In the process, improve code generation to omit some unused OP_Null
operations.

FossilOrigin-Name: 7c6fbcfe6ed5739e8e4639b7b123fbf9828cbfc0
2014-08-01 15:51:36 +00:00
drh e80c9b9ad5 The idea of coding IN operator with a short list on the RHS as an OR expression
turns out to be helpful.  If the list is of length 1 or 2, the OR expression
is very slightly faster, but the ephemeral table approach is clearly better for
all list lengths greater than 2.  Better to keep the code simple.

FossilOrigin-Name: e13175d3579e1045165bab091b3b28951d691704
2014-08-01 15:34:36 +00:00
drh 3a85625d87 Begin making changes to the IN operator in an attempt to make it run faster
and to make the code easier to understand.

FossilOrigin-Name: ee0fd6aaf94cda1dce3fe752bfe3b0f83e0043f1
2014-08-01 14:46:57 +00:00
drh cefc87fca5 Enhance the PRAGMA integrity_check command to detect UNIQUE and NOT NULL
constraint violations.

FossilOrigin-Name: 9abcf2698c09f4f6a44a68e74f9f6b538f3253d6
2014-08-01 01:40:33 +00:00
drh 5f1d1d9c87 Refactoring: Change "pIndex->onError!=OE_None" to use a macro:
"IsUniqueIndex(pIndex)".  Easier to understand that way.

FossilOrigin-Name: e75b26ee357bb3d3c1a539b05d633ebf314726d7
2014-07-31 22:59:04 +00:00
drh 37e08081f3 Omit a pointless OP_Null when processing a value-list RHS of an IN operator
where the LHS is a rowid.

FossilOrigin-Name: 1361450a9dfe9476e8df98f370a3695752252245
2014-07-31 20:16:08 +00:00
mistachkin 202cb64189 Optimizations to the OS sub-type checking in the Win32 VFS.
FossilOrigin-Name: 1e5489faff093d6a8e538061e45532f9050e9459
2014-07-31 18:54:01 +00:00
dan f6296cafc5 Add a missing call to "test_sqlite3_log" to multiplex.test.
FossilOrigin-Name: 0708f9df23a325349f658741358c5994b5c4c873
2014-07-31 18:14:37 +00:00