1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-12 13:01:09 +03:00
Commit Graph

678 Commits

Author SHA1 Message Date
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
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
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
42fbf32108 Dequote column names generated by the query flattener.
FossilOrigin-Name: 5526e0aa3ccb24988a4f351ac994907b6e89018a
2012-10-15 16:24:07 +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
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
053a128f55 Tighter VDBE code for the WHERE_DISTINCT_ORDERED case of DISTINCT keyword
handling.

FossilOrigin-Name: 94b48064db3cbb43e911fdf7183218b08146ec10
2012-09-19 21:15:46 +00:00
drh
e1a022e48b Make sure the KeyInfo.aSortOrder array is always allocated so that we never
have to test for KeyInfo.aSortOrder==0 in performance-critical loops.

FossilOrigin-Name: 45793f0b844fee7445bc9269b403f89a58f77150
2012-09-17 17:16:53 +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
dan
67c70142d9 Fix a case where SQLite was failing to detect a syntax error in queries like "SELECT ... FROM (<select-1> UNION ALL <select-2>)" when <select-1> and <select-2> return different numbers of result columns.
FossilOrigin-Name: 200a81358c3117401d2258dd06bb8d2ea4f0ef51
2012-08-28 14:45:50 +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
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
drh
fb0a60819b Merge the nested aggregate query enhancements into trunk.
FossilOrigin-Name: d4cd6017c9875947a05b1dc36538d4272fb18739
2012-08-24 01:07:52 +00:00
drh
030796df8d Further improvements to the processing of nested aggregate queries.
FossilOrigin-Name: 3c3ffa901f5ce8a523028ff15563ce3e0f55a641
2012-08-23 16:18:10 +00:00
drh
c041c16ce1 Mark parameters to sorter interfaces as const where appropriate.
FossilOrigin-Name: d8da26f1f43610ac83af2a5d0e170be5abaf7aaa
2012-07-24 19:46:38 +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
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
a2acb0d769 Add a testcase() macro to ensure that the sqlite3AuthCheck() call inside
the query flattener really is effective.

FossilOrigin-Name: a134e6e739cbb27701b092b33033244feb164cdf
2012-04-11 23:22:37 +00:00
dan
8c2e0f02ba Modify selectColumnsFromExprList() to avoid ever incorrectly returning SQLITE_NOMEM.
FossilOrigin-Name: e7cb6b73ac079d0751b3f9429d0f6a35ca8ec853
2012-03-31 15:08:56 +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
63296052a1 Fix an obscure bug that causes a crash when parsing certain invalid SQL
statements.

FossilOrigin-Name: c8c7846fb990199dcc0774a69e8257510bc36f2d
2012-02-23 17:35:28 +00:00
drh
7a95789c0c For queries of the form "SELECT p, max(q) FROM t1", the value of column p
returned is the one on the same row that holds the maximum value of q.

FossilOrigin-Name: adb29232b659c5332b6841776372407fcc350b08
2012-02-02 17:35:43 +00:00
drh
a3cc3c9616 Fix a possible segfault after an OOM fault. This has been in the code for ages
but only expressed itself following the previous check-in.

FossilOrigin-Name: a3553b8a035b70e76a5a325b9e9f379f84de3955
2012-02-02 03:11:40 +00:00
drh
7b113bab79 Add support for multiple rows of VALUES in an INSERT statement.
FossilOrigin-Name: eb3b6a0ceb8bfb9fd59ff5fec420f863a9b5c4e4
2012-01-28 15:22:22 +00:00
mistachkin
14a55b7122 Fix typo in comment.
FossilOrigin-Name: 199edb6869977ccd7abf886af5cf9b344c857d1e
2012-01-18 01:09:57 +00:00
drh
630d296c57 Update comments describing the flattening optimization in select.c.
FossilOrigin-Name: dab4c137a852222f11179fa2ade52d17a4206dd2
2011-12-11 21:51:04 +00:00
drh
4b3ac73c2f Minor cleanups of the compound-subquery flattening logic. New test cases
added for joins the compound subquery.

FossilOrigin-Name: 5061d85ff934db3c217c97acbbbed3286d9e02aa
2011-12-10 23:18:32 +00:00
drh
1acc6cbe00 Allow UNION ALL compounds to be promoted up to replace a simple wrapper
SELECT even if the compounds are joins.

FossilOrigin-Name: 3d4b4f4fb7c1d9f1c742fef884383e9f50f8630e
2011-12-10 17:17:17 +00:00
drh
678a9aa7bd Import the experimental parse-tree explainer, with fixes, from the
tree-explain branch.

FossilOrigin-Name: bcbc7152d49107afa926c8950360c61a6cf3d244
2011-12-10 15:55:01 +00:00
drh
a5eec8c8c3 Merge the latest trunk changes into tree-explain branch.
FossilOrigin-Name: 1a360da0f8314f232c224c71829646bc7558892b
2011-12-10 14:44:31 +00:00
drh
ec86c724ac Take out the OP_JumpOnce opcode. Revert compound SELECT to use OP_IfNot,
which is the correct behavior.  Mark trigger registers as initially
invalid.

FossilOrigin-Name: 6a9fb47d5060fe641915f5f99cc9265409a4583b
2011-12-09 17:27:51 +00:00
drh
b8475df809 Make no assumptions about the initial state of VDBE registers.
FossilOrigin-Name: 521d72bdf67b4b1972331307345a18c231a6e1d6
2011-12-09 16:21:19 +00:00
dan
1d8cb21fdb Modify the OP_Once opcode so that it works correctly in trigger sub-programs. This is a candidate fix for [7bbfb7d442].
FossilOrigin-Name: 557c69055a300b4082830b5f4803091dca1c3140
2011-12-09 13:24:16 +00:00
drh
4e2a9c3272 Additional detail added to the tree-explain output for SELECT statements.
FossilOrigin-Name: 7b457ea4551ba411a4747d74fb78b795cc8d9ee6
2011-12-07 22:49:42 +00:00
drh
04b8342b83 More compact notation for the parse-tree view.
FossilOrigin-Name: 0eb3f8b1e3a196811fb54a5e2645debe6119610a
2011-12-07 15:33:14 +00:00
drh
a84203a074 Improvements to the data-structure explain subsystem. Most queries now
give a reasonably detailed graph of their parse tree.

FossilOrigin-Name: 0aa7d3d2346bdddcc4e1e25ee26d13c8594885e5
2011-12-07 01:23:51 +00:00
drh
7e02e5e6b5 Begin adding the data-structure explaining subsystem. All is contained within
FossilOrigin-Name: 79ae51c5b1b20ed0a425a87e65a32a096a80b7e1
2011-12-06 19:44:51 +00:00
drh
cdc6955716 Do not reuse temp registers originally allocated to a subroutine within
the main body of the program logic, since if the subroutine is called
while the reused temp registers are in use, their values will get clobbered.
Candidate fix for ticket [3a77c9714e63330]

FossilOrigin-Name: 092d53315e50be42b51ef7b3069c82c32a129b6a
2011-12-06 13:24:59 +00:00
drh
b07028f71c Add assert() statements and eliminate needless variable assignments in order
to get the clang scan-build utility to report zero problems against the
SQLite core.  Clang's static analysis did find one real problem - but it was
in the command-line shell, not in the SQLite core.

FossilOrigin-Name: 60fee9574b0125705787e33c16f116cf188c8323
2011-10-14 21:49:18 +00:00
drh
338ec3e18e Add a couple of asserts trying to make the operation of
sqlite3SelectNew() clearer.

FossilOrigin-Name: b21b1c7bc490b193da8d8a277489eb875a507e30
2011-10-11 20:14:41 +00:00
drh
a464c23429 Remove unreachable branches from the previous change. Add additional
test cases.

FossilOrigin-Name: cf51ef8ab8a610ddf64f66970dd689fe1df405b8
2011-09-16 19:04:03 +00:00
drh
7157e8eac1 Further streamlining of the subquery materializer. New test cases for
ticket [002caede898a]

FossilOrigin-Name: ff8b76b25b42497a7374de56c6a8f34cbe70cd6a
2011-09-16 16:00:51 +00:00