drh
c4e84b7295
A testcase() macro added to help ensure that the fix to the omit-noop-join
...
optimization from yesterday does not regress.
FossilOrigin-Name: 224628b1039b996499e0d806fc0215f175da6f1059eb1b9ac491ac11126971ab
2024-09-06 10:35:36 +00:00
drh
934e796e43
Ensure that the WhereInfo.revMask bitmap is adjusted when tables are removed
...
from the FROM clause by the Omit-Noop-Join optimization of
[0cd82ee9a8413cf1]. Fix for the issue described by
[forum:/forum/8a1e467e905b8d27|format post 8a1e467e905b8d27].
FossilOrigin-Name: 22ca5a2ffb89ccb5f337993b5a95e27c449c39014284156eabc33da012a8759c
2024-09-05 23:22:55 +00:00
drh
bb4d2edf10
Fix a bug in the parsing of some corner-case JSON PATH strings that contain
...
escaped double-quotes.
FossilOrigin-Name: 60ac55c4b76355aaf7cbde38bf1f6082ff5612bf4ffc49ab69d00fd4e3d64e64
2024-09-04 16:01:44 +00:00
drh
d281889ac8
Improved error messages on percentile functions. More tests cases for
...
percentile and for ordered-set aggregates.
FossilOrigin-Name: e1bca168e70335fa2f9537632fd16e374c566a564fab4974c0b8f61cb63d08ce
2024-09-02 11:17:04 +00:00
drh
a955ec806a
Change the name of the enabling compile-time macro to
...
SQLITE_ENABLE_ORDERED_SET_AGGREGATES.
FossilOrigin-Name: 3b1cdddf8339cc339ec74cd8be2bfa42e62b500048a444eb9e5d9817bc4702ae
2024-09-02 09:40:37 +00:00
drh
b5df31d15f
More internal documentation improvements.
...
FossilOrigin-Name: 8b91b74931c36e1955ef933a07d8ec40c8b54c882efe7084d179168867c5244f
2024-09-01 23:56:14 +00:00
drh
1c30df3598
The WITHIN GROUP (ORDER BY ...) syntax is now a compile-time option:
...
SQLITE_ENABLE_ORDERED_SET_FUNCS. There is no increment in the code size
if the option is omitted.
FossilOrigin-Name: c9367e2532d653738af27c4d92810eb648a9e12f72d7223017c87cb0dddc6804
2024-09-01 23:27:34 +00:00
drh
7aa01a0ffc
No prepare-time penality for ordered-set aggregates for applications that
...
do not use them.
FossilOrigin-Name: e070c16d2183312e416ff6af770346041e4d3836c4db2c9ea6049f63fb0eaa07
2024-09-01 19:19:26 +00:00
drh
df2d14b86e
Add error checking: Do not allow functions other than those in the
...
percentile extension to use the ordered-set aggregate notation.
FossilOrigin-Name: 317d901429303340290334dbe7680a36339df0a50b586e3f71b6c5e5eba6d411
2024-08-31 22:22:24 +00:00
drh
a239ece378
Demonstration of how ordered-set aggregates might be parsed and integrated
...
into the existing parse tree, should we decide to support them.
FossilOrigin-Name: ef9777890001ba0122d3add799795e118fd87243f42731ab84d4748b67605647
2024-08-31 20:09:37 +00:00
drh
90fa4c7b2c
Enhance the percentile() and median() extension functions so that they can be
...
window functions.
FossilOrigin-Name: 4d0e3df4b9c609755977b8a462126242d2be1310c0122a8d4ba76d98d32a7230
2024-08-31 14:31:17 +00:00
drh
6cb12337b9
A couple of #defines so that the build work with SQLITE_OMIT_FLOATING_POINT.
...
FossilOrigin-Name: be768f80c703ac1645251ccbac83e07b3ea4cc231c8ea7e66374a4f78361f10b
2024-08-30 16:43:36 +00:00
dan
ccd34894e1
Fix a case where the BTCF_AtLast flag was being left set incorrectly. This was causing obscure window function queries to fail.
...
FossilOrigin-Name: e042eb024738a83eed92cd2dfac3d2a50d2589715a3d81b1a494564dd7d8e7fa
2024-08-29 16:27:57 +00:00
drh
c1547d1f7a
Do not allow sqlite3_blob_open() to work on a any table that contains
...
generated columns, even columns of the table which are not generated themselves,
because such columns might be part of the expression of a STORED column.
This restriction could be relaxed some, but that would be a lot of code
for something that nobody ever uses.
FossilOrigin-Name: 6e84947123339f0ea2b7dabc6134a621eed09317f81647f15870ed50a0f7d1bc
2024-08-28 19:13:16 +00:00
drh
fcd65efcf1
Merge all the latests trunk enhancements into the win-dupe-crt-fio branch.
...
FossilOrigin-Name: 2d52db98f47fbcda0622c034b21c2fb19bf4345b88c5c565ae9e6f7128642e43
2024-08-27 13:57:43 +00:00
drh
1321ea5010
Randomize the name of the attached database used to do VACUUM.
...
FossilOrigin-Name: 0f4e65d73a2b95932f36768c0d9925a2d265d9b395b886d8e492d1d519b2093c
2024-08-26 17:35:32 +00:00
stephan
87ebadbf4e
shell.c.in: use eputz/oputz() instead of eputf/oputf() where appropriate to avoid compilation errors in -std=c99 mode (namely wasm builds).
...
FossilOrigin-Name: 9ef8317faebc29d016bdf2e8c678fb21ca2cfa95272f1f18b461fcaf0e220ac5
2024-08-25 11:59:29 +00:00
drh
306a8dcf3e
Fix compiler warnings in the CLI detected by MSVC.
...
FossilOrigin-Name: 23ae505cbfde6dfd1dbb2216cf76c1e316b49f2ca84491a1aae28ad33f7777a9
2024-08-24 20:01:05 +00:00
drh
f9eff9052d
Remove a term from an assert() that is no longer relevant.
...
FossilOrigin-Name: 8b4766252b80075354a6b1406c5430fe999a6490aa3e079893fcc682d88734f7
2024-08-24 18:42:39 +00:00
dan
58b08d7702
Avoid a stack overflow that could be caused by a recursively defined WINDOW() with a strategically embedded error.
...
FossilOrigin-Name: bada54bd6bf54190e40aa721b77081015957d204c7b6a9fdbe8c67bcf20798f8
2024-08-24 15:54:15 +00:00
drh
27095fc4a5
Ensure that the WhereLoop.u.btree.pOrderBy field added by the
...
order-by-subquery optimization [7a0cdc7edb704a88] is correctly
initialized. dbsqlfuzz 437be171a98687082a31ea6efc2fd5c5d64481c8.
FossilOrigin-Name: b75f8b2252aefe7bb96fa237205a1a9dc88c46d9ec09bca7407e6c636b203e7e
2024-08-24 11:48:19 +00:00
stephan
7766c9943e
Eliminate use of strcpy() in shell.c.in to squelch an unwarranted link-time warning on OpenBSD.
...
FossilOrigin-Name: 32e9bf7f972144eacbb2580151220bc4fc1cbcc8bcf586ffd8e10762abf75c7e
2024-08-23 21:20:50 +00:00
drh
d55ab84451
Add the SQLITE_INDEX_SCAN_HEX bit to the sqlite3_index_info.idxFlags bitmask.
...
When set, this bit causes the EXPLAIN QUERY PLAN output to show the idxNum
value in hex rather than in decimal. This is purely a debugging aid.
FossilOrigin-Name: 6c00e88ebdb41d6317bb8758825521614dedc2e6e6289ff415c5f0406eed815b
2024-08-22 16:22:08 +00:00
drh
be1fdbd272
Add the new SQLITE_TESTCTRL_OPTGET that retrieves the current optimization
...
setting. Use this in the CLI to provide symbolic fine-grain control
over optimization settings using the ".testctrl opt" dot-command.
FossilOrigin-Name: 0ea4e1e8fc689cb1af3a8d21dd6af9d483115412b414e85e8a42480f50d65af2
2024-08-21 18:57:55 +00:00
drh
9904d824b8
Improved comments on byte-code subroutine calls to materialize subqueries.
...
Should not affect production builds.
FossilOrigin-Name: 6b024c85ef856e26cddac8ad862e16909b5149c3e3efb4e73ba54c97291f1cc4
2024-08-21 17:38:50 +00:00
drh
4cc86b6e92
Add code comments for a "table-of-contents" and various milestone marks in
...
the 1300+ line long sqlite3Select() function, to help improve readiability
and maintainability. Comment changes only - no functional changes.
FossilOrigin-Name: 00cfbb9fa5136e6a7847da4e4ab30d320ca79c22acda9db2030e558d59b8c744
2024-08-21 12:01:46 +00:00
drh
91937a6961
Fix a minor typo in a comment.
...
FossilOrigin-Name: 92c80af1129051c9eded8df170730ad6366b4f7715dead34c4364c8149d0dce9
2024-08-21 10:37:59 +00:00
drh
01972f55fe
Improvements to treetrace output for subqueries. Debug code only.
...
FossilOrigin-Name: 0a835d18d9063b17a1d506fd989ebcf7f0d76593978a3bd5981be59618335f21
2024-08-21 10:32:00 +00:00
stephan
fb7d0c3c01
De-duplicate some error-output code in shell.c.in as part of tracking down the cause of [forum:5647ca2af1|forum post 5647ca2af1].
...
FossilOrigin-Name: fd5904495e0c775174f9380bc6877fb9def3d30dec1c9315979ad4503a18d70b
2024-08-21 09:56:45 +00:00
drh
8c58fd78c3
Remove incorrect assert() statements in the SrcItem invariant validator.
...
dbsqlfuzz 7f908865436ce531b0ace55c97a1c71d05c4e76c.
FossilOrigin-Name: 81a1ede38823b8d50e221ecb6ce52a05d82a856099002a71d9f1ac561a587f05
2024-08-21 07:38:14 +00:00
drh
5648d717b1
Refactor the SrcItem object to move fields associated with subqueries out
...
into a separate object named Subquery. This reduces the size of the SrcItem
object by about 1/3rd and provides improved performance.
FossilOrigin-Name: 484bcd75bc95491d8540c791c1c4d40d996cb465839564662e14f98739699bf1
2024-08-20 23:11:28 +00:00
drh
a0651b3707
Fix a name resolution issue with CTEs.
...
FossilOrigin-Name: 4fa8235dd59cd683d6c6c97bfe181a9637be7c054d435323c903b9dbd74aff02
2024-08-20 22:44:40 +00:00
drh
bb36d55e63
Fix minor comment issues.
...
FossilOrigin-Name: c1bbed19f4348ec31c3cb4723eaa8f1554bb58ef4de7feb3a0f39612785f13d5
2024-08-20 22:05:01 +00:00
drh
0766cbf511
Remove unreachable code.
...
FossilOrigin-Name: 17699329aa8e234c6793a38db5ca05def9395b287bcc8bc05493b824327edb59
2024-08-20 20:01:21 +00:00
drh
692c160360
Tighter checking of access constraints on union members in SrcItem.
...
Improved invariant checking.
FossilOrigin-Name: fd72d3400a8fe5747f494eee81654698acee350bb95b9db269e87d857af03492
2024-08-20 19:09:59 +00:00
drh
ff176231da
Fix some stray SrcItem field name fixes.
...
FossilOrigin-Name: bc5f5ce59e1e4323422bda7d002310923f927a03b4fd42749bf04f6c9853956b
2024-08-20 17:41:44 +00:00
drh
27c680cc69
Fix a memory leak so that now all dev tests (including TH3) are passing.
...
FossilOrigin-Name: 3995c45fff0e4bd10bcf49cc16eb1050216426723c63ba56d3ae5ba738c34019
2024-08-20 17:24:42 +00:00
drh
ff4ad29d05
Memory issues fixes so that mdevtest now passes.
...
FossilOrigin-Name: b249516f6a6650808e035ec219e762bf24dcb7c32a6235984b995d08d07d35d8
2024-08-20 16:50:21 +00:00
drh
781163aa9d
When the database encoding is UTF-16LE and the GLOB optimization is used,
...
it is ok to use the range search over an index, but it is not ok to
disable the actual GLOB function call.
FossilOrigin-Name: 3399698376761ab8c422f8ea02bfa2759afb606f08bedbd1cf7eee834229a9aa
2024-08-20 14:12:16 +00:00
drh
6ad4e9fd2a
Fix for the UTF-16LE problem reporte by
...
[forum:/forumpost/dc7e1b7527e84343|forum post dc7e1b7527e84343]. Because of
the unexpected ordering of characters using the default collation (memcmp()
order) in UTF-16LE, the LIKE/GLOB optimization restricts its attention to
the pattern prefix that is all ASCII, which is the common case.
FossilOrigin-Name: a5797ebdea423afc3d2d3bd8adaf1575d33a01f594c0c315afcb1499f1718e9b
2024-08-20 12:09:55 +00:00
drh
1c8ed5fa43
Earlier error detection while processing complex aggregate
...
queries. dbsqlfuzz 5242c2f07f4aa031aa3c80461f18e9b7619ede9b
FossilOrigin-Name: 70f4973078ffc72f4ff247234e6f8e695b40803c3e7c9ed12050d97195728352
2024-08-19 23:43:08 +00:00
drh
1521ca4c20
Refactor the SrcItem object so that information about subqueries is stored
...
in a separately allocated Subquery object. This reduces the memory requirements
for SrcItem and makes the code run faster. It also provides an expansion path
for subquery processing that does not burden simple queries. The current
checking mostly works, but there are still issues that need to be tracked
down and fixed.
FossilOrigin-Name: 8ff5dda8448d7e1a533d7f27db2573ce68fa9956b9d9847ced45e83c1f06bab0
2024-08-19 22:48:30 +00:00
drh
aa2258e35b
Attempt to fix date/time calculations for days earlier than 0400-03-01.
...
See [forum:/forumpost/eaa0a09786c6368b|forum thread eaa0a09786c6368b].
FossilOrigin-Name: 00cae11fffaf50e2133915e851d41098d00b6b1458e1438bcb6664e1411d8498
2024-08-19 12:54:12 +00:00
drh
901b671455
Automatically disable directory fsync when compiling for AIX.
...
FossilOrigin-Name: 8d170e07e20c21a5bb97fdc8c2d01d92178f5fe740e60d203e4621747cfce33e
2024-08-18 09:53:37 +00:00
drh
b204b6aa7b
Give unique names to fields in the SrcItem object, to facilitate analysis of
...
how those fields are used using "grep".
FossilOrigin-Name: 9f5aeef3cbc2c95267c8f7bf60d5c66971a76789669fb0e8f853273ff6f616f2
2024-08-17 23:23:23 +00:00
drh
8797bd695f
Reduce the size of the SrcItem object by combining fields into a union.
...
FossilOrigin-Name: a4c59ac3c6ec979c25b544d29e47b8e39f6439c098eed8f84b3bd506c9adf047
2024-08-17 19:46:49 +00:00
dan
52d0310256
Fix a typo in an "ifdef" that broke SQLITE_OMIT_ANALYZE builds.
...
FossilOrigin-Name: c09da26cb6f772a18c595ff0eb55d8345a377c3ef5ed02a5e539ffdbe9d07f85
2024-08-17 14:59:26 +00:00
drh
65a46af7ae
If a subquery has an ORDER BY clause and that ordering is helpfile in
...
satisfying the ORDER BY or GROUP BY of the outer query without doing an
extra sort, then omit or reduce the sort in the outer query. Call
this the "order-by-subquery optimization".
FossilOrigin-Name: 7a0cdc7edb704a88a77b748cd28f6e00c49849cc2c1af838b95b34232ecc21f9
2024-08-16 18:51:46 +00:00
drh
b8123415b2
Ensure that memory allocations in ANALYZE are always 8-byte aligned in order
...
to satisfy a new assert() added by [539e4f661767ef90].
FossilOrigin-Name: a1915cbdeccac2ed49fb8a9733abf2c6239396e3174fed2ff275f66b606c48b6
2024-08-16 15:35:20 +00:00
drh
2ed4f5016a
Fix handling of COLLATE. Add test cases for the same. Code cleanup for
...
improved understandability and maintainability.
FossilOrigin-Name: 41a41c173a9d15d94f23d73a5c04bfb1616cb9223bc81d41808f9b4d00817fbf
2024-08-16 11:26:21 +00:00