1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-06 15:49:35 +03:00
Commit Graph

1199 Commits

Author SHA1 Message Date
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
0a8a406e9b Some errors in veryquick resolved. Many more to go.
FossilOrigin-Name: 972443b4eb282d45507da06c75e2cd46dd72326b
2012-12-07 18:38:16 +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
drh
e6f1e760d5 Remove obsolete comments from the definition of the CollSeq object.
FossilOrigin-Name: 7b6951016f5bf4c21f843f09769ba176c709e785
2012-12-06 01:03:15 +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
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
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
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
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
dan
aedf9ee73a Merge the shared-cache related fixes from the shared-cache-fix branch to the trunk.
FossilOrigin-Name: 698ec7769d4feea1782401479c61ce67d2113fd4
2012-10-05 17:44:51 +00:00
drh
79e72a50aa Consolidate all occurrences of the "no such collation sequence" error message
into a single spot.

FossilOrigin-Name: 8ea67522fb03134f355ecb776b70c6917241cab2
2012-10-05 14:43:40 +00:00
dan
41fb5cd103 Shared-cache mode fixes for views and virtual tables.
FossilOrigin-Name: 2b370dea704b59262c604af0efcef5660b194454
2012-10-04 19:33:00 +00:00
drh
a9e3fc05f5 Fix some corner case behavior in the new ORDER BY optimization logic.
Remove the SQLITE_OrderByIdx bit from the 
SQLITE_TESTCTRL_OPTIMIZATIONS mask, since enabling it caused many
TH3 tests to fail when the NO_OPT configuration parameter was engaged,
and since there really isn't any need to turn that optimization off.
The SQLITE_OrderByIdxJoin bit remains.

FossilOrigin-Name: 98b633717a1c9a08f6a1d00bc6bc891564ae7e9b
2012-09-27 23:27:23 +00:00
drh
7e5418e4a4 Add more bits to the bit vector that is used to disable optimizations for
built-in test.  Add specific bit patterns to disable ORDER BY using an
index in general and for joins.  Use macros to test for bits in the 
disabled-optimization bit vector, in order to make the code clearer.

FossilOrigin-Name: d2fcba1e143beca8c45724d2108870657c269e17
2012-09-27 15:05:54 +00:00
drh
46c35f9b20 Further refactoring of the ORDER BY related query-planning logic in order
to make it easier to extend to support optimizing out ORDER BY on joins.
No actual behavior changes, yet.

FossilOrigin-Name: 96496ddae12a239b30a1fc997fbea43e3a75bfe7
2012-09-26 23:17:01 +00:00
drh
46ec5b63e2 Change the internal sqlite3WhereBegin() to report that the ORDER BY clause
is satisfied by indices using the WhereInfo.nOBSat field of the returned
structure.

FossilOrigin-Name: 22989f3588531efd555cc29d6c576e7a34b7edc4
2012-09-24 15:30:54 +00:00
drh
e8e4af7697 Consolidate more of the DISTINCT processing logic into a single spot in the
code.  Reduce the number of OP_Column operations needed to perform a
WHERE_DISTINCT_ORDERED.

FossilOrigin-Name: 79e922f7ae29bbe06d639d648fbd72523cf9a28e
2012-09-21 00:04:28 +00:00
drh
634d81dee0 Continuing incremental enhancements of SELECT code generation:
Remove the Select.affinity field.  Use SelectDest.affSdst instead.

FossilOrigin-Name: cf40b7b5ebdacc3215d769aadacce8c9e7e9dfbb
2012-09-20 15:41:31 +00:00
drh
2c79733f3c Refactoring of DISTINCT code. Change the name of the local variable
"distinct" to "distinctTab".  Generate cleaner code w/o unnecessary P4
and P5 values on the OP_Null for WHERE_DISTINCT_ORDERED.

FossilOrigin-Name: 0cda241a2bcb3c6f2ae6c48f522780bc4eddfc02
2012-09-20 14:26:22 +00:00
drh
ae651d614e Add comments to the WHERE_DISTINCT_* macros. No changes to code.
FossilOrigin-Name: 82320501904f65030622a67836ba30f412169056
2012-09-19 17:31:15 +00:00
drh
de9a7b8a94 Add the ability to disable the covering-index-scan optimization at compile-time,
start-time, or at run-time.  Add test cases to check this configurability.

FossilOrigin-Name: ccb8ecc30c8e6c7760131250297c2e452bbac43b
2012-09-17 20:44:46 +00:00
drh
f4af1089ab Remove obsolete bits from the bitvector that defines disabled optimizations
in the SQLITE_TESTCTRL_OPTIMIZATIONS verb of sqlite3_test_control().

FossilOrigin-Name: 4c21ee2d26466f83dec525153e2b1506bd956701
2012-09-17 19:12:39 +00:00
drh
4261096124 Remove an unnecessary parameter from sqlite3Utf8Read() resulting in a slight
performance increase.

FossilOrigin-Name: 8b962c94a2f829f71efdd0ca770469b02feea3e1
2012-09-17 18:56:32 +00:00
drh
5f08526937 Factor out the code that generates a co-routine for evaluating the SELECT
on the RHS of an INSERT statement so that the same code can potentially
be reused in other places.

FossilOrigin-Name: a93ee09cdc15987848bf9023e69892ce9a5f989e
2012-09-15 13:29:23 +00:00
drh
6ec6549158 Improved alignment of fields in the Expr object gives an 8-byte size
reduction on 64-bit machines.

FossilOrigin-Name: 6b252a0d1a78db7bf2d650bafc214ea4064eef9e
2012-09-13 19:59:09 +00:00
drh
d815f17dab Reduce the size of the Table object by 16 bytes on 64-bit machines, mostly
by avoiding intermixing pointer fields with integer fields.

FossilOrigin-Name: 1cb9aedfcf81f0086fa741cb29a062ee87724a5e
2012-09-13 14:42:43 +00:00
drh
a371ace426 Change boolean fields in the Column object from unsigned characters into
bits in a single bit mask variable.

FossilOrigin-Name: 4163f5f194741bc2bdf141973912661c6aac70f1
2012-09-13 14:22:47 +00:00
mistachkin
d5578433ff Fix all known instances of 'repeated the' style typos in comments. No changes to code.
FossilOrigin-Name: 9b19b847533f944f289d93dcdba29c0d67bf251c
2012-08-25 10:01:29 +00:00
drh
d40e208726 Move field WhereLevel.pCovidx inside the union to WhereLevel.u.pCovidx.
FossilOrigin-Name: b722143d075979ba3d92b7b29e576ce2307187d1
2012-08-24 23:24:15 +00:00
dan
0efb72c969 Fix a problem to do with multi-or queries and automatic indexes.
FossilOrigin-Name: a3e26038a1d9f3331239f777c67d1920d904aab0
2012-08-24 18:44:56 +00:00
dan
bfca6a4066 Experimental change to support the covering index optimization for queries with OR terms in the WHERE clause that search a single index more than once.
FossilOrigin-Name: 1dc8c7c741a82bb98a07f3fdb8142d8bc8d8a98b
2012-08-24 10:52:35 +00:00
drh
030796df8d Further improvements to the processing of nested aggregate queries.
FossilOrigin-Name: 3c3ffa901f5ce8a523028ff15563ce3e0f55a641
2012-08-23 16:18:10 +00:00
dan
428c218c90 When reusing pages as part of creating a new index, allocate the leaves from each free-list trunk page in ascending order, instead of trying to maximize localization for each individual allocation. This increases the chance that pages will be written to disk in ascending order by a large CREATE INDEX statement, improving overall performance.
FossilOrigin-Name: d045f8b2d44e388d8c4549ff02d4ca7eff4e2038
2012-08-06 18:50:11 +00:00
drh
2b596da8b7 Refactor field names in the SelectDest object to make them distinct and easier
to grep for.

FossilOrigin-Name: b589f1efb3907a68058bf2ee981dca126d083e83
2012-07-23 21:43:19 +00:00
drh
ed68801b20 Add the sqlite3_close_v2() interface (from the deferred-close branch) that
allows close operations to happen out-of-order in bindings to
garbage-collected langauges.

FossilOrigin-Name: fb8893abeefabe9de44e34dcf4327764481189f5
2012-06-21 15:51:42 +00:00
mistachkin
20b1ff0760 Fix spelling typo.
FossilOrigin-Name: 6131a0002fea5d6f3b416a63a466bf2b69d1e12d
2012-06-21 15:12:30 +00:00
drh
d1b0afc30c Fix the SQLITE_ZERO_MALLOC compile-time option so that it works on windows.
FossilOrigin-Name: b80bc52f8964569f948c5671e9d58e4d199a08dc
2012-06-21 14:25:17 +00:00
drh
bae591a960 Merge the latest trunk changes into shared-schema branch. Also fix a C99-ism
in that branch.

FossilOrigin-Name: 42338e9e6979bb497823527f8f39e96f63623c59
2012-06-05 19:20:03 +00:00
drh
4245c405ea The sqlite3_close() interface returns SQLITE_OK even if there are outstanding
sqlite3_stmt and sqlite3_backup objects.  The connection becomes a zombie.
Resource deallocation is deferred until the last sqlite3_stmt or 
sqlite3_backup object closes.  This is intended to help SQLite play nicer
with garbage collectors.

FossilOrigin-Name: e276a02b7f54e804caa553dca99023416a415e1c
2012-06-02 14:32:21 +00:00
drh
1b28b89319 Link the NDEBUG macro to SQLITE_DEBUG so that when SQLITE_DEBUG is defined,
NDEBUG is automatically undefined an dwhen SQLITE_DEBUG is undefined
NDEBUG is automatically defined.

FossilOrigin-Name: 07935d10d341fe6265cfd3b09e2c4ef4005c4826
2012-05-29 19:25:20 +00:00
drh
3a8c4be7d4 Candidate fix for the nested aggregate query problem of ticket
[c2ad16f997ee9c8e].

FossilOrigin-Name: f3dd1fafd4718558de1f06139419a8c560d727f5
2012-05-21 20:13:39 +00:00
drh
a51009b251 Convert the NameContext object from using u8 booleans to using individual
bits in a single u8 as its booleans.  This change might become a basis for
a fix for [c2ad16f997ee9c].

FossilOrigin-Name: 722260969306778029b738402f22e3c154dd77a1
2012-05-21 19:11:25 +00:00
drh
81028a455d The former sqlite3ResetInternalSchema() routine was really two different
routines, selected by parameter, each with a confused mission.  So split
this routine up into three separate smaller routines, calling each
separately as needed.  Hopefully this will make further refactoring and
schema reset collateral damage containment easier.

FossilOrigin-Name: aa0c3493d3647d7efe527067e9fcccefda8e3008
2012-05-15 18:28:27 +00:00
dan
bba02a95d9 When a connection disconnects from a shared-cache database, only delete the in-memory schema if there are no other connections.
FossilOrigin-Name: 46f4eb5430d7bc9a339cdf7124ff4bd518eaa39b
2012-05-15 17:15:34 +00:00
drh
374fdce485 Improved handling of aggregate subqueries within an aggregate query.
FossilOrigin-Name: 430bb59d798286a86c351de92c429345f016b3f0
2012-04-17 16:38:53 +00:00
drh
89d5d6a2a7 Fix the application-defined function logic so that functions with a variable
number of parameters can be replaced or deleted correctly.  Also refactor
some of the function-finder code for clarity of presentation.

FossilOrigin-Name: 09d5581c81fb6a9bf6a369d0abf5ef6b54637576
2012-04-07 00:09:21 +00:00
drh
f68686ae52 When a named CHECK constraint fails, include the name of the constraint
in the error message.

FossilOrigin-Name: 1b75f301affac654bee24fa247046ea0782d3c4d
2012-03-30 15:48:48 +00:00
drh
a748fdcc43 Evaluate typeof(X) and length(Y) where X is any column and Y is a blob column
without actually loading X and Y from disk.

FossilOrigin-Name: b899dbeb60752843287e2c6ad3577e1d00f0d587
2012-03-28 01:34:47 +00:00
drh
421377e67a Add the sqlite3_db_readonly() interface. This is still tentative, pending
a closer look at other ideas to accomplish the same thing.

FossilOrigin-Name: 254f99ea9ff1534948bdb179e69ab0c940c87ec1
2012-03-15 21:28:54 +00:00