1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-14 00:22:38 +03:00
Commit Graph

504 Commits

Author SHA1 Message Date
danielk1977
80b3c54851 Fix a crash in flattenSubquery(). (CVS 5388)
FossilOrigin-Name: 9c8b97ef593c17740640a01a7338164d7fbe070e
2008-07-10 17:59:12 +00:00
drh
93a960a0a8 Remove unused code. Test coverage enhancements. Modify the algorithm used
to select column names for VIEWs of joins so that the constructed column
names omits the underlying table names. (CVS 5386)

FossilOrigin-Name: 636cd723296a8b1709011fdd99b236ffddf3f1b0
2008-07-10 00:32:42 +00:00
drh
e49b146f30 Additional test coverage in select.c and expr.c. (CVS 5381)
FossilOrigin-Name: c6cf08477cc4d622a05ad6706cb9418cf7eea432
2008-07-09 01:39:44 +00:00
drh
a9671a22b3 Remove obsolete code from select.c, including the "affinity" parameter
to the sqlite3Select() module. (CVS 5380)

FossilOrigin-Name: cbd3c1585b7a8f8042aa1448fe1be87de056c41a
2008-07-08 23:40:20 +00:00
drh
f089aa459e Completely rework the sqlite3SetString() primitive so that it honors the
SQLITE_LIMIT_LENGTH and avoids the use of strlen(). (CVS 5374)

FossilOrigin-Name: 8ed04b1e26a55306e4baf3e93fb084514134d603
2008-07-08 19:34:06 +00:00
drh
0880a74633 Improved testing of the min/max optimization. (CVS 5373)
FossilOrigin-Name: fa07c360b708324c47c8e9931f1e2b1b24e4faf8
2008-07-08 18:05:26 +00:00
danielk1977
49fc1f60b0 Prevent the flattening optimization from transforming a to a query with an illegal ORDER BY clause. (CVS 5372)
FossilOrigin-Name: 6c2adade34fdbe344cf73f6bac951e0c37dd003b
2008-07-08 17:43:56 +00:00
danielk1977
1f9caa41a0 Fix a memory leak that can occur following a malloc failure. (CVS 5339)
FossilOrigin-Name: cec4eba1a105396c5fd5d2b664456f6d6be3f215
2008-07-02 16:10:45 +00:00
danielk1977
524cc21ed6 Call the authorizer callback the same number of times whether or not the query flattening occurs. (CVS 5338)
FossilOrigin-Name: 8b88b64bb37df4e38cbfe31a14c219688b26e2af
2008-07-02 13:13:51 +00:00
danielk1977
4914cf92e3 Fix errors in in.test. Also add a few tests to selectB.test. (CVS 5337)
FossilOrigin-Name: 8f9d1abb315a3d4aa3a580fd5cf3ae572cc330f4
2008-07-01 18:26:49 +00:00
danielk1977
5e7ad50858 Fix another memory leak related to UNION ALL and sub-selects. (CVS 5336)
FossilOrigin-Name: 56109b9a1f600ab3f16769aba0d47dcf782bbc95
2008-07-01 17:39:27 +00:00
danielk1977
eca7e01a71 Fix a memory leak to do with the recent UNION ALL sub-select optimization. (CVS 5333)
FossilOrigin-Name: 6ee71f4ddb4fa934f58c87dad2d30560af2e55d7
2008-07-01 16:05:25 +00:00
danielk1977
4b86ef1d87 Fix a problem with LIMIT and OFFSET clauses on the parent query when optimizing a UNION ALL sub-select. (CVS 5332)
FossilOrigin-Name: a79786a961dba8f4ffaddbe55e6467c14b12f7d6
2008-07-01 14:39:35 +00:00
danielk1977
f23329a221 Optimize sub-selects and views that use UNION ALL. This optimization isn't very well tested yet. (CVS 5331)
FossilOrigin-Name: 3ef468e7046b2091b5b6880fe19261ef1ee2887b
2008-07-01 14:09:13 +00:00
danielk1977
daf79acb68 Call the query flattener while processing the parent query. Previously, it was called while processing the sub-queries. (CVS 5330)
FossilOrigin-Name: 6fcb3bffe26ae1c21c72ce9019f1db1c118094a4
2008-06-30 18:12:28 +00:00
drh
6fccc35a91 Remove unused variable. Fix a compiler warning. (CVS 5319)
FossilOrigin-Name: 0b01ec5cf7725a02d4c12167df125cef578f6219
2008-06-27 00:52:45 +00:00
drh
66ba23ce86 Tweaks to the IN expression code generator. Fix an an unrelated bug
in the compound SELECT code generator. (CVS 5318)

FossilOrigin-Name: a4005782690f022e982df4873779a029b28b9306
2008-06-27 00:47:28 +00:00
danielk1977
0cdc022e88 Fix handling of "x IN (...)" and "x NOT IN (...)" expressions when the set contains an SQL NULL value. (CVS 5314)
FossilOrigin-Name: d45a97be71fa61ab4a692bd807ab762130f7f5b9
2008-06-26 18:04:03 +00:00
drh
0acb7e4849 The compound-select merge optimization passes quick.test with no errors. (CVS 5299)
FossilOrigin-Name: 8bbfa97837a74ef0514e0c92ea2a6576f02cc361
2008-06-25 00:12:41 +00:00
drh
f6e369a119 Fix a problem in sqlite3ExprIsInteger() causing failures on select1-4.9.2.
Other bug fixes in compound-merge.  The compound-merge is still disabled
in this check-in using "#if 0" due to additional bugs. (CVS 5295)

FossilOrigin-Name: 95037e6dbf4ed0ffd38790f3270dcaa4c1ae64ed
2008-06-24 12:46:30 +00:00
drh
92b01d53c2 The compound-select merge optimization is mostly working with this check-in.
But there are still a few problems and so the optimization is disabled by
and "#if 0".  This check-in is to synchronize with the other changes happening
in parallel. (CVS 5291)

FossilOrigin-Name: e2ba324cbcac0ba35bbde50048677e085abb092b
2008-06-24 00:32:35 +00:00
drh
b21e7c70f7 Fix a bug in the KEYINFO handling within select.c. Change the OP_Move
opcode to take a count and to move multiple registers.  Initial code for
the compound-select merge optimization is added but is incomplete
and is commented out. (CVS 5272)

FossilOrigin-Name: 663a590e3086145a57af7569d8f798b6b6a8b76c
2008-06-22 12:37:57 +00:00
drh
16ee60fff9 Add new Compare and Jump codes to the virtual machine. Use them in the
implementation of aggregate queries. (CVS 5257)

FossilOrigin-Name: 083113652ff8f69b18cf1611710fdbbe5fbd9fef
2008-06-20 18:13:25 +00:00
drh
e00ee6eb37 Change the SRT_Subroutine mode into SRT_Coroutine. Use co-routines in
the INSERT processing logic. (CVS 5255)

FossilOrigin-Name: 6b9d92fc3f265ef75c9182e537812490bb818950
2008-06-20 15:24:01 +00:00
drh
2eb95377ef Remove the subroutine return stack from the VDBE. Return addresses
for subroutines are now stored in registers. (CVS 5191)

FossilOrigin-Name: ef1956eebcaf5aca51af8c3b406b1fd4b1f391a7
2008-06-06 15:04:36 +00:00
drh
e265b08458 Fix harmless compiler warnings. (CVS 5073)
FossilOrigin-Name: 227a6f67c21c87a7cf98f84b9d57a6dc9da93ebb
2008-05-01 17:03:49 +00:00
drh
dafc0ce818 Additional work on ticket #3015. The previous fix (check-in (4919)) did
not appear to work in all cases and it disabled indexing in some places
where it should not have.  New test cases added to help insure that the
current fix is better. (CVS 5026)

FossilOrigin-Name: 0d2e258e1a3276e55903ba2ded987f8d8a18cacd
2008-04-17 19:14:02 +00:00
drh
191b54cb5d Fix a code generator bug caused by the new CSE optimization. Add test cases
to prevent a recurrence. (CVS 5011)

FossilOrigin-Name: d04246a46399e839e70b1bd57e209f80143f0d5b
2008-04-15 12:14:21 +00:00
drh
08c88eb0d3 First cut at optimizing single-row updates to use a one-pass algorithm. (CVS 4973)
FossilOrigin-Name: fba97f7874d723111e873d1470fc1a95e64f922d
2008-04-10 13:33:18 +00:00
drh
da250ea599 Fix the CSE mechanism so that it takes into account column affinity
changes that might be imposed by comparison operators. (CVS 4949)

FossilOrigin-Name: 91cc646e2b0c1d62a1989405cc9384a2c22d98d0
2008-04-01 05:07:14 +00:00
drh
e55cbd7228 Avoid duplicate OP_Column opcodes by remembering prior results.
This is similar to CSE, but only applies to columns. (CVS 4943)

FossilOrigin-Name: c29ee0fed23dcdbd9dde6b1e42b603100ea2389c
2008-03-31 23:48:03 +00:00
danielk1977
a686bfcfa5 In setQuotedToken(), only make a malloced copy if the argument contains one or more " characters. (CVS 4941)
FossilOrigin-Name: b266924b8975b69bdb9ab45cf462e41436f89cc2
2008-03-31 17:41:18 +00:00
danielk1977
9882d99993 Allow creation of ephemeral pseudo-tables - pseudo-tables that copy a pointer to a row when inserted instead of copying the row data. (CVS 4924)
FossilOrigin-Name: 1a58a87023f7780aee813ac64dda1a80021002a7
2008-03-27 17:59:01 +00:00
drh
995ae279b3 Comment change on the previous check-in. No changes to code. (CVS 4918)
FossilOrigin-Name: 72ae456239eb9f75b744f6733c4441b380bd1be1
2008-03-26 12:50:14 +00:00
drh
ad27e76110 Make sure an imbalance in the number of columns on a compound SELECT is
detected and reported as an error before it can cause an assertion fault
or array-bounds overflow in the code generator.
Oops: part of the fix for ticket #3015 got included with this
check-in by mistake. (CVS 4917)

FossilOrigin-Name: 50de87dc808820a70d3a99277f532e418a2f97e2
2008-03-26 12:46:23 +00:00
drh
e14006d0de Modify the {quote: IdxDelete} opcode so that it takes an array of registers rather
than a record formed using {quote: MakeRecord.}  This avoids a needless packing
and unpacking of the record to be deleted. (CVS 4916)

FossilOrigin-Name: ee381b43563e1b0637ee74389d076dff77deddf9
2008-03-25 17:23:32 +00:00
danielk1977
cd3e8f7ce9 Use a vdbe memory cell to allocate the space required for vdbe cursors. (CVS 4912)
FossilOrigin-Name: 047153648155654b0cd70b811935209d2e21776c
2008-03-25 09:47:35 +00:00
drh
3f913576e5 Add the SQLITE_OMIT_DECLTYPE compile-time option. Remove more code when
SQLITE_ENABLE_COLUMN_METADATA is not defined. (CVS 4906)

FossilOrigin-Name: 8ef26646cff9be75c584a9abfcfffcfdb49b3969
2008-03-22 01:07:17 +00:00
drh
bb4957f858 Initial implementation of per-connection limits and the sqlite3_limit() API.
The sqllimits1.test script crashes.  SQLITE_LIMIT_PAGE_COUNT and
SQLITE_LIMIT_VDBE_OP are currently ignored. (CVS 4897)

FossilOrigin-Name: 60c77882b2de9f6a45f8bd87c9c6a0cc613f8373
2008-03-20 14:03:29 +00:00
mlcreech
3a00f907a9 Various renames & cleanups to limit exported symbols on amalgamation build (CVS 4819)
FossilOrigin-Name: 9c6694bb61a8ecdbfb2d05e5e05a8cc97b792240
2008-03-04 17:45:01 +00:00
drh
c52e355de1 Do not apply the query flattening optimization when the outer query is an
aggregate and the inner query contains an ORDER BY clause.  Ticket #2943. (CVS 4791)

FossilOrigin-Name: 6d33cbd99cb0db680767ceb31ec6345e90a805bc
2008-02-15 14:33:03 +00:00
danielk1977
a7a8e14bf2 Where possible, avoid freeing buffers allocated for vdbe memory cells in case they can be reused. (CVS 4783)
FossilOrigin-Name: 990237e27e417aff3dbf05784b716c21f3761a3a
2008-02-13 18:25:27 +00:00
drh
1ece7325bb Do not release registers used to hold the results of a compound select
after just the first select has run.  Ticket #2927.  For now, we will
never release the registers used to hold the result set, since the same
register set will be used for each select.  This is not an unacceptable
register leak and it is the safest approach. (CVS 4778)

FossilOrigin-Name: e9fcb793998be07eaea01404407087b71c29853d
2008-02-06 23:52:36 +00:00
drh
ca4241140c Error messages says "no such view" instead of "no such table" when
trying to DROP a VIEW that does not exist. (CVS 4750)

FossilOrigin-Name: 50815a82e0ec9a5c1399f5fe6ef416434b55a821
2008-01-25 15:04:48 +00:00
danielk1977
cdf3020ca3 Fix a segfault that may follow a malloc failure during compilation of an INSTEAD OF trigger. (CVS 4749)
FossilOrigin-Name: c6635a71dbb2a06d56a0cfce7f0383325e12dc01
2008-01-24 14:27:44 +00:00
danielk1977
ac559264e3 Fix another segfault that can occur following a malloc failure in the SQL compiler. (CVS 4748)
FossilOrigin-Name: 9d98a3f0dded4ee7ed53872f48ee8592ff077f92
2008-01-23 17:13:40 +00:00
danielk1977
15cdbebe08 Fix a couple of segfaults that could occur after a malloc() failure in the SQL compiler. (CVS 4747)
FossilOrigin-Name: 6bd8db3839d57a738cae2196679819186968b40e
2008-01-23 15:44:51 +00:00
drh
d2b3e23bc3 Testing coverage enhancements to sqlite3_get_table() and to the SELECT
code generator. (CVS 4746)

FossilOrigin-Name: 45c59802f6d35c7745b96c578ab43d5a336fe822
2008-01-23 14:51:49 +00:00
drh
a05a722f23 Cleanup and simplification of constraint processing. Simplifications
to the VM for better test coverage. (CVS 4729)

FossilOrigin-Name: d9ebe9d78c558af050c44ac4437ce0ef8193a4a8
2008-01-19 03:35:58 +00:00
drh
d847eaad91 Reuse registers better in the inner loop of a SELECT statement. (CVS 4719)
FossilOrigin-Name: 5ba4e5adf638c6812a2813961ea30a11a670409c
2008-01-17 17:15:56 +00:00