]>
git.ipfire.org Git - thirdparty/sqlite.git/log
dan [Wed, 18 Sep 2024 15:02:27 +0000 (15:02 +0000)]
Fix the preupdate hook so that it works when the "old.*" row has a column with a non-NULL default value that was added by ALTER TABLE ADD COLUMN after the current record was created.
FossilOrigin-Name:
00a398cf900179aa5a8aab09fe4a671d99e7a31583282848ef39390f2ef246eb
drh [Tue, 17 Sep 2024 22:57:08 +0000 (22:57 +0000)]
Fix harmless static analyzer warning in sqlite3-rsync.
FossilOrigin-Name:
a63e412b6b2939422ecfa99d91fccb7a9c61e1533bb0db20ff12f3815ef41a2c
drh [Tue, 17 Sep 2024 21:42:04 +0000 (21:42 +0000)]
Add assert() statements to some of the sqlite3_bind() APIs that help human
readers and static analyzers, both, reason about the code and verify that it
is memory safe.
FossilOrigin-Name:
97528788145b83a1486dbaf09326ebedbc07bd0b47a57cdff773885b0b984604
drh [Tue, 17 Sep 2024 10:36:33 +0000 (10:36 +0000)]
In sqlite3-rsync, do not allow the '/' character to appear anywhere in the
USER@HOST: prefix to one of the argument databases.
FossilOrigin-Name:
6089a90463dcb3ba8e1584cfc5e2528fbc131311c6df7834fb41a5614a8ca9e8
drh [Mon, 16 Sep 2024 20:53:52 +0000 (20:53 +0000)]
Fix a typo in an error message in sqlite3-rsync.
FossilOrigin-Name:
3f25d6c8eac25de4afff486b134a339bc06404ddaed15b46db48c6770535b1e6
drh [Mon, 16 Sep 2024 14:11:14 +0000 (14:11 +0000)]
Cleanup the sqlite3-rsync executable as part of "make clean"
FossilOrigin-Name:
8c5e481b49d86d97fefa345d0c1b96c050846ef9fc51d8b9dd203ee35afd6f6d
drh [Mon, 16 Sep 2024 10:58:11 +0000 (10:58 +0000)]
In sqlite3-rsync,
open the replica database using ATTACH since the sqlite3_dbpage virtual table
is technically a part of "main". This avoids locking problems.
FossilOrigin-Name:
39c56c836a8ae52c5b42cc0d04b92f7c0e6889a03c4fdffd301209383b7c1f87
drh [Mon, 16 Sep 2024 09:12:11 +0000 (09:12 +0000)]
Improved error message in sqlite3-rsync if the SQL statement for ORIGIN_TXN
fails.
FossilOrigin-Name:
73bde71ed10f52b851e220de35519d5fb7e65a932437ab82a194faff490b7930
drh [Sun, 15 Sep 2024 18:37:34 +0000 (18:37 +0000)]
Provide more opportunity for the remote side in sqlite3-rsync to send error
messages back to the local side. Be sure to invoke pclose2() when done.
FossilOrigin-Name:
23a63505152ff995e4ce0963dc4ab9f76ed55da7e7f5e1b85a2577473642e3ad
drh [Sat, 14 Sep 2024 16:52:45 +0000 (16:52 +0000)]
Merge subsequent changes to sqlite-rsync that were accidentally missed by
the prior check-in.
FossilOrigin-Name:
50762ba0783a04e0dcd9456a1ae17d875b0a9272f2f09854a23d9d5253761e9f
drh [Sat, 14 Sep 2024 16:39:02 +0000 (16:39 +0000)]
Enhancements to sqlite_dbpage() so that it accepts INSERT statements that can
extend or truncate the database. Add the sqlite3-rsync utility program that
make a copy of a live database over SSH.
FossilOrigin-Name:
b7a8ce4c8c5fc6a3b4744d412d96f99d2452eb4086ad84472511da3b4d6afec6
stephan [Sat, 14 Sep 2024 16:30:01 +0000 (16:30 +0000)]
drh [Sat, 14 Sep 2024 16:28:38 +0000 (16:28 +0000)]
drh [Sat, 14 Sep 2024 16:03:16 +0000 (16:03 +0000)]
New debugging options: --logfile, --errorfile, --remote-errorfile.
If page 1 changes, always send it last.
FossilOrigin-Name:
2d8cd76691554578e987ce682cf0c42c083711dd1511a178148978182ef43ba2
drh [Sat, 14 Sep 2024 11:38:46 +0000 (11:38 +0000)]
Always show the -v traffic message even if there are multiple -v options.
FossilOrigin-Name:
fc05a5b7f77cdbfcc659d49eb09569a64a172362cb90199e2861028085178f10
drh [Sat, 14 Sep 2024 11:23:57 +0000 (11:23 +0000)]
Add the --logfile FILE option for debugging.
FossilOrigin-Name:
30e1b92d5663e24d2f325f2bab35f81b55848ef39d15688e40b9005269626303
drh [Sat, 14 Sep 2024 10:59:32 +0000 (10:59 +0000)]
Improved error messages coming out of sqlite3-rsync.
FossilOrigin-Name:
452fb6de3984c3cb10d30b51dcdb2574578ca128a0c519b2bd43df0bdd343083
drh [Sat, 14 Sep 2024 10:48:05 +0000 (10:48 +0000)]
Make the output from sqlite3-rsync with a single -v option the same as it
is with regular rsync. Only show the SSH command with two or more -v options,
or if there is an error in popen2().
FossilOrigin-Name:
105ec44b470318fc9ff1773027c4064343f224068c9b6e71c5618f18f7dfcc3f
drh [Fri, 13 Sep 2024 23:41:16 +0000 (23:41 +0000)]
Merge sqlite_dbpage fixes into the sqlite3-rsync branch.
FossilOrigin-Name:
dff76b7a3436031ea5a61b8a44ddfa1d40ea20c983f3d34a8501cd7074db68b8
drh [Fri, 13 Sep 2024 21:47:57 +0000 (21:47 +0000)]
Bug fix in the enhanced sqlite_dbpage for when truncating two or more
ATTACH-ed databases within the same transaction.
FossilOrigin-Name:
6aa9c8e79b440c6419e65990d9ceba8f00a6f975455138cf2aa82b113daec825
drh [Fri, 13 Sep 2024 16:12:54 +0000 (16:12 +0000)]
larrybr [Fri, 13 Sep 2024 16:10:04 +0000 (16:10 +0000)]
Close the db as sqlite3_analyzer exits. (See [forum:
af384c2315d9718a |forum post, "sqlite3_analyzer not closing WAL-mode db cleanly" ].)
FossilOrigin-Name:
94ceac98845e31249b656dcdb8a58f456b9212dc83968ea333852a66d72a0dae
drh [Fri, 13 Sep 2024 13:53:20 +0000 (13:53 +0000)]
Improved informational output from sqlite3-rsync.
FossilOrigin-Name:
e55e3e8ec2fe3a9190872d999cee55c85bde92667040cc166233faaa2fa34266
drh [Fri, 13 Sep 2024 12:35:04 +0000 (12:35 +0000)]
Preveious check-in was actually doing an 8-round KeccakF1600. This one
corrects that to just 6 rounds.
FossilOrigin-Name:
3c36f5814f25483586c4fd49ef2fe5c7c0ff8c59672b1622c92061ec0ba8547a
drh [Fri, 13 Sep 2024 12:28:11 +0000 (12:28 +0000)]
Change the hash algorithm from SHA1 to a 6-round KeccakF1600 with a rate
of 160. This uses about 1/3rd fewer CPU cycles.
FossilOrigin-Name:
96c7f47a8f59e5078bd296979421c1b57fbcb7be261f8a7a0b1d22a4b5914db0
drh [Fri, 13 Sep 2024 11:14:10 +0000 (11:14 +0000)]
Further enhancement to PTRMAP display in showdb: Show the details of invalid
entries that are within the range of the database file. Continue to ignore
invalid entries beyond the end of the database file.
FossilOrigin-Name:
4cad385b90eaca2d90e3375e473472145af4134160b81097a8535d06638c2e4a
drh [Thu, 12 Sep 2024 23:30:29 +0000 (23:30 +0000)]
Better initialization of new database files in sqlite3-rsync.
FossilOrigin-Name:
75d5a8eb3d4ece06900109ad4022ba2a3e82de2f0acb012e3a02bfb4326bfa6d
drh [Thu, 12 Sep 2024 21:58:31 +0000 (21:58 +0000)]
Enhancement to the "showdb" utility such that the "ptrmap" command shows
PTRMAP entries that extend off the end of the database, as long as they
appear to be well-formatted.
FossilOrigin-Name:
a9f95fe5ce90ab9864165e603f3a34013c3c98d03f1db689996f4a32086e2ed6
stephan [Thu, 12 Sep 2024 21:03:11 +0000 (21:03 +0000)]
Add RSYNC_OPT to the sqlite3-rsync build flags.
FossilOrigin-Name:
b2a3497e5525dd33faf70961107a0529f476735fef756953c66e105747271c6d
stephan [Thu, 12 Sep 2024 18:15:28 +0000 (18:15 +0000)]
Port some of the shell's CLI flag-handling code into sqlite3-rsync to make the arg handling more robust.
FossilOrigin-Name:
53fb9b11807ff7accd8cd41f9cb6516d2503f161ea976940437a1d3aae868665
drh [Thu, 12 Sep 2024 17:06:02 +0000 (17:06 +0000)]
drh [Thu, 12 Sep 2024 16:54:34 +0000 (16:54 +0000)]
Improved --commcheck. Add the infoMsg() function which is useful for
debugging.
FossilOrigin-Name:
b979d02ffd1370d8840328bce06c76c224f0fc1fb54b47d6c904547580a820a1
drh [Thu, 12 Sep 2024 15:51:56 +0000 (15:51 +0000)]
Pass the names of both the origin and the replica databases to the remote
side, so that if the remote is the replica, it will have access to the
origin database name in case the replica name is really a directory.
FossilOrigin-Name:
435c30171d3c6073b7aaf5cc11cc4813f6a2d225ae6dce1b0e478f0cd5a0b532
drh [Thu, 12 Sep 2024 15:36:34 +0000 (15:36 +0000)]
Add a protocol version number to the first message, and give the two sides
an opportunity to negotiate a suitable protocol number, for future
compatibility. Send the page size as a power-of-two.
FossilOrigin-Name:
df0623aae1154281157409f62d6d3fb3ce41829281d53bc55868ce44b3d36883
drh [Thu, 12 Sep 2024 14:43:05 +0000 (14:43 +0000)]
Add sha1() functions to the CLI. Fix sha1b() such that it actually returns
a BLOB.
FossilOrigin-Name:
fe65821a3b912f061026e6fd7174be26897010e6b474e2780350cac60faebaad
drh [Thu, 12 Sep 2024 12:04:53 +0000 (12:04 +0000)]
drh [Wed, 11 Sep 2024 17:02:44 +0000 (17:02 +0000)]
Progress on the sqlite3-rsync utility. This is an incremental check-in. It
does compile, but it does not work.
FossilOrigin-Name:
fa06977b6db7fa745720561ec0b10570cf7e71598dc7a7c5ee650640e5bdf6f5
drh [Wed, 11 Sep 2024 12:17:26 +0000 (12:17 +0000)]
Disable the debug-use-only functions sqlite3_mutex_held() and
sqlite3_mutex_notheld() when compiling with TSAN in as much as those
routines cause TSAN to complain. Response to
[https://issues.chromium.org/issues/
41427446 ].
FossilOrigin-Name:
db702dd78500a0839b0b2810a580d3634df49275470787b170973a86b73826d3
drh [Tue, 10 Sep 2024 22:14:18 +0000 (22:14 +0000)]
Improved SSH infrastructure. The foundation is now in place to begin working
on the actual sync protocol. Still experimental. Still a work in progress.
FossilOrigin-Name:
9a1a95f523a96303aad57e2422c2b51ea7e125f5490f32f7a2929d49b6c69ef8
dan [Tue, 10 Sep 2024 20:32:36 +0000 (20:32 +0000)]
Alternative implementation of fts5 locale=1 feature that allows blobs to be stored in indexed columns of fts5 locale=1 tables.
FossilOrigin-Name:
198305de92ebba7045d8ec7d2de98511f3b00924f808a3811f061dca47b01ec7
dan [Tue, 10 Sep 2024 18:38:47 +0000 (18:38 +0000)]
Remove a stray "breakpoint" from a test script.
FossilOrigin-Name:
7d87a27a01311153ddee122cedecedc3bcc331618dc2ab1da397a3b257dc21cf
drh [Tue, 10 Sep 2024 17:05:12 +0000 (17:05 +0000)]
Initial infrastructure for the sqlite3-rsync utility. Prototype only.
Does not work.
FossilOrigin-Name:
397b2d37b7a6619b0c1eee201065585d03496f94786b21540f613e4716d56612
dan [Tue, 10 Sep 2024 16:40:08 +0000 (16:40 +0000)]
Fix a test in fts3corrupt4.test that would fail if SQLITE_ENABLE_FTS5 was not defined.
FossilOrigin-Name:
437849c80851da842b5c4fd37d5c147f821abc541e9b4d6f9000c12983548844
dan [Tue, 10 Sep 2024 16:19:31 +0000 (16:19 +0000)]
Alternative implementation of fts5 locale=1 feature that allows blobs to be stored in indexed columns of fts5 locale=1 tables.
FossilOrigin-Name:
55c5c119a0a77fac2c9f46d718ef78c0f33ed3520e10c240cf5bf1801e0586ee
drh [Tue, 10 Sep 2024 12:09:03 +0000 (12:09 +0000)]
Add the ability for sqlite_dbpage to truncate the database file by writing
a NULL page. Experimental.
FossilOrigin-Name:
eb3c89ee2e4c5425be75deaf46a06a9cd8b210c695b918dd63a78f930c6e6b63
dan [Mon, 9 Sep 2024 19:12:57 +0000 (19:12 +0000)]
Fix an OOM-handling problem affecting locale=1 fts5 tables.
FossilOrigin-Name:
d8103684f660ff9b3186d0f89afb113ca580bd16f0bf413ed8a9434236b54426
drh [Mon, 9 Sep 2024 18:45:58 +0000 (18:45 +0000)]
Generalize the sqlite3_dbpage virtual table so that it is able to write
new pages onto the end of the database file using INSERT.
FossilOrigin-Name:
fe0d67e72d4228661c021f227bfc0d5ddb1b726db0f36c7221ead8dd8bd1dc73
drh [Mon, 9 Sep 2024 15:39:40 +0000 (15:39 +0000)]
Move the vfstrace extension out of src/ and into ext/misc/. Make it a
standard part of the CLI. Improve its output. Also fix some unrelated
comment typos.
FossilOrigin-Name:
123cb1f579daec3ed092fe9dd1bc0d3250f2b56d4cda1efa92af139029e112e2
drh [Mon, 9 Sep 2024 15:33:37 +0000 (15:33 +0000)]
Fix dependencies in makefiles to include ext/misc/vfstrace.c as necessary.
Improved xFileControl() output from vfstrace.c.
FossilOrigin-Name:
e8f2d6313075c92fdeebcdfd8b50f43e9d45225890b2ef6b77148a766a42e940
drh [Mon, 9 Sep 2024 15:19:26 +0000 (15:19 +0000)]
Fix harmless compiler warnings in the vfstrace.c extension.
FossilOrigin-Name:
f23954e604bf4da45f07194b54a4fe1c83002ab65d6c6f0ac095e88baba18547
drh [Mon, 9 Sep 2024 15:12:21 +0000 (15:12 +0000)]
drh [Mon, 9 Sep 2024 14:50:23 +0000 (14:50 +0000)]
Move the vfstrace extension out of src/ over into ext/misc/ where it belongs.
Make it part of the standard build for the CLI. Bring some of the vfstrace
output up-to-date.
FossilOrigin-Name:
055b97de8d2397987d72dbab1cde78ece2d1c066e95042b4ed6b7b36b2cf9006
dan [Sat, 7 Sep 2024 16:22:22 +0000 (16:22 +0000)]
Fix a problem with fts5 locale=1 tables and UPDATE statements that may affect more than one row.
FossilOrigin-Name:
70e42f941c0778a04b82655409c7caf4c1039589f7e43a8ec1e736ea8f931b26
drh [Sat, 7 Sep 2024 16:04:04 +0000 (16:04 +0000)]
Fix an off-by-one error in the routines that bind the special $test_TTT and
$int_NNN parameters for fuzz testing. Fix to testing logic only - no changes
to the SQLite core.
FossilOrigin-Name:
6206b90a4ec3f05e3bbb4844e71569bbde7df237550569e6419ff7c3146505dc
dan [Fri, 6 Sep 2024 20:12:59 +0000 (20:12 +0000)]
Add tests for an fts5 NEAR() expression with a single argument phrase.
FossilOrigin-Name:
e319d43bfd5ee4ed92b93531b239af4d1be0a8215b2a06c3532122ff2c7b6a7c
stephan [Fri, 6 Sep 2024 15:01:00 +0000 (15:01 +0000)]
Resolve the "No rule to make target '0'" error when building with --disable-tcl.
FossilOrigin-Name:
d94541ae76b5d8b69f5524f10dcccc0814283f438a03f553848ed631a1983633
drh [Fri, 6 Sep 2024 14:01:48 +0000 (14:01 +0000)]
Fix a harmless stray carriage-return character.
FossilOrigin-Name:
84a6c5f975de36ba93b888e01cc5188717b5644ab8384beb8fd8906bdfc8e227
drh [Fri, 6 Sep 2024 13:13:25 +0000 (13:13 +0000)]
In testrunner.tcl, correctly capture and display information about the
system under test: hostname, OS, pointer size, byte-order.
FossilOrigin-Name:
ec75cfc5d4b69e4aed64d17748cac15cd62a759a1cbe7feaa4580ad8346b0b95
drh [Fri, 6 Sep 2024 11:21:53 +0000 (11:21 +0000)]
drh [Fri, 6 Sep 2024 10:35:36 +0000 (10:35 +0000)]
A testcase() macro added to help ensure that the fix to the omit-noop-join
optimization from yesterday does not regress.
FossilOrigin-Name:
224628b1039b996499e0d806fc0215f175da6f1059eb1b9ac491ac11126971ab
drh [Fri, 6 Sep 2024 09:49:13 +0000 (09:49 +0000)]
Clarification and simplification to the README.md file and to the instructions
for building on Windows.
FossilOrigin-Name:
f69ef1a37b2778bdf73ee7e3b3edd74f7344ab8e5eedbedc22203c782e521f5b
drh [Thu, 5 Sep 2024 23:40:13 +0000 (23:40 +0000)]
drh [Thu, 5 Sep 2024 23:22:55 +0000 (23:22 +0000)]
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
drh [Thu, 5 Sep 2024 15:55:04 +0000 (15:55 +0000)]
Update notes on build procedures in the README.md file.
FossilOrigin-Name:
1d12744fe7cc294994e53e1ffe72799d0321dd5c1ef031213f083e200918fee5
drh [Thu, 5 Sep 2024 15:28:15 +0000 (15:28 +0000)]
Testrunner.tcl enhancements: (1) Attempt to build the SQLite tcl extension
if it is not already available. (2) testrunner target "devtest" is added as
an alias for "mdevtest". (3) Try to keep summary information at the end of
a test below 80-characters per line. (4) Update the Makefile.in so that
the "clean" target removes the tcl extension built by item 1 above.
FossilOrigin-Name:
aa5f10f21dbfb24ee54ca96bfb7b013ae29e26fec05b80681f19cc63d9face49
drh [Thu, 5 Sep 2024 12:06:45 +0000 (12:06 +0000)]
Enhance testrunner.tcl to keep track of the platform and SQLite version
as reported by individual test cases and to report that information in the
summary at the end of each test run.
FossilOrigin-Name:
80ebb7c7e686cd936ac834f2258f585a7004762593e0bc859ecd75d6fb0badfd
drh [Thu, 5 Sep 2024 11:46:43 +0000 (11:46 +0000)]
Faster implementation of the aggregate_test_counts procedure inside of
testrunner.tcl.
FossilOrigin-Name:
a01d869520329fb9e786cdc65f359785a95d19d289e4c6b844c758d6e5385aaf
drh [Wed, 4 Sep 2024 18:51:59 +0000 (18:51 +0000)]
Make the default TCLDIR be C:\Tcl in the Makefile.msc.
FossilOrigin-Name:
c2c0a9176ae7291a0b72f3d048a2ef5716c325b9f693cdc5eada552e0c881a9d
drh [Wed, 4 Sep 2024 16:01:44 +0000 (16:01 +0000)]
Fix a bug in the parsing of some corner-case JSON PATH strings that contain
escaped double-quotes.
FossilOrigin-Name:
60ac55c4b76355aaf7cbde38bf1f6082ff5612bf4ffc49ab69d00fd4e3d64e64
drh [Wed, 4 Sep 2024 13:42:19 +0000 (13:42 +0000)]
Put a proper shebang at the start of the testrunner.tcl script and make the
script executable.
FossilOrigin-Name:
c0c6e9abebf76358625f30a179658319b260baba6eded2a4c5ad356143e36f97
drh [Wed, 4 Sep 2024 13:09:58 +0000 (13:09 +0000)]
Make extra efforts to delete the over-size directory names created by
the win32longpath.test module.
FossilOrigin-Name:
3c8035ed3f023fb31f65f298fb9ce19d4fa7a5511bd90877b27969f5f0892472
drh [Wed, 4 Sep 2024 11:22:47 +0000 (11:22 +0000)]
drh [Tue, 3 Sep 2024 16:04:34 +0000 (16:04 +0000)]
Enhance the "errors" command in testrunner.tcl so that it accepts the
"-s" or "--summary" argument to see a list of failed jobs, and so that
an additional argument is a GLOB pattern that restricts the output to
jobs whose names match that pattern.
FossilOrigin-Name:
dcbebe30f594a99e23b5ccd8d199b92118204a3e52e75c78d98c394601252e81
drh [Tue, 3 Sep 2024 14:15:57 +0000 (14:15 +0000)]
Fix ext/consio so that it works correctly with SQLITE_USE_ONLY_WIN32.
FossilOrigin-Name:
efc6f3d7e92a25f440fb8d392daf325af5ca7dca104a5bb4bd59f7df93af53b0
drh [Tue, 3 Sep 2024 14:00:36 +0000 (14:00 +0000)]
In testrunner.tcl, compile the Windows Default configuration using
SQLITE_ENABLE_STMT_SCANSTATUS.
FossilOrigin-Name:
49e8b1635f29d9fd0dc2ef6e312fd4129f2283f68e9423d95ff9b55077688ad7
drh [Tue, 3 Sep 2024 12:41:21 +0000 (12:41 +0000)]
Fix harmless compiler warnings in the percentile extension.
FossilOrigin-Name:
c5557f281c6294b6db6682349d245feac7c6ce7f4f61356f486afdf186c566c4
drh [Tue, 3 Sep 2024 10:53:32 +0000 (10:53 +0000)]
In testrunner.tcl, allow setting njob to zero, which causes no new jobs
to be launched and for the process to shut down once all current jobs are
completed.
FossilOrigin-Name:
0ef65fd4ba17def4c13986365b3af300c4024725af4bc314845d1af8be568ab4
larrybr [Tue, 3 Sep 2024 02:09:13 +0000 (02:09 +0000)]
Cause cfGets() (under SQLITE_USE_ONLY_WIN32) to better emulate fgets().
FossilOrigin-Name:
2d783524d1671d988ebb1b21c83de99c9f335963b6c20cf4df612f58c13da913
drh [Mon, 2 Sep 2024 21:59:31 +0000 (21:59 +0000)]
Fix possible NULL pointer dereference following OOM in the new error reporting
logic of the percentile extension.
FossilOrigin-Name:
7891a266c4425722ae8b9231397ef9e42e2432be9e6b70632dfaf9ff15300d2c
dan [Mon, 2 Sep 2024 18:41:59 +0000 (18:41 +0000)]
Fix a technically undefined signed integer overflow in fts5.
FossilOrigin-Name:
e6bec37ea1ca51e1d048941ce4c5211d8fc5c5e3556a1441f9c79b036843f9e3
drh [Mon, 2 Sep 2024 17:27:10 +0000 (17:27 +0000)]
Make the percential extension easier to incorporate as a built-in on Windows
applications.
FossilOrigin-Name:
831e2be4117dc7f5113f66d3e484ca34e4405444ac7b0def12ee9a00608d40da
drh [Mon, 2 Sep 2024 14:46:56 +0000 (14:46 +0000)]
Remove some debug/test code from percentile. Make the extension easier to
statically link.
FossilOrigin-Name:
6e5f146e274b210749dd8923a2da56905eb098b5a66699ff9130e3e51b1ff662
drh [Mon, 2 Sep 2024 12:07:37 +0000 (12:07 +0000)]
Enhance the percentile extension to support percentile_cont() and
percentile_disc(). Add support for ordered-set aggregate notation in
the parser when compiling with SQLITE_ENABLE_ORDERED_SET_AGGREGATES. A
new function property SQLITE_SELFORDER1 must appear on any aggregate function
that wants to take advantage of the ordered-set aggregate notation.
FossilOrigin-Name:
557bd245ef24af15da1374762bbeb9b8b0241da06e604efdf00d567a9ed09216
drh [Mon, 2 Sep 2024 11:17:04 +0000 (11:17 +0000)]
Improved error messages on percentile functions. More tests cases for
percentile and for ordered-set aggregates.
FossilOrigin-Name:
e1bca168e70335fa2f9537632fd16e374c566a564fab4974c0b8f61cb63d08ce
drh [Mon, 2 Sep 2024 09:40:37 +0000 (09:40 +0000)]
Change the name of the enabling compile-time macro to
SQLITE_ENABLE_ORDERED_SET_AGGREGATES.
FossilOrigin-Name:
3b1cdddf8339cc339ec74cd8be2bfa42e62b500048a444eb9e5d9817bc4702ae
drh [Sun, 1 Sep 2024 23:56:14 +0000 (23:56 +0000)]
drh [Sun, 1 Sep 2024 23:47:20 +0000 (23:47 +0000)]
Improved documentation of recent enhancements to the percentile extension.
FossilOrigin-Name:
51e7b4c9cf19a5986432a76c5fd30cef715c170a403d7b4304a8c5888c445a91
drh [Sun, 1 Sep 2024 23:27:34 +0000 (23:27 +0000)]
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
drh [Sun, 1 Sep 2024 20:24:24 +0000 (20:24 +0000)]
Implement percentile_cont() and percentile_disc().
FossilOrigin-Name:
b1a93f67d6b21df6fe3247c9333fead61dd425574f66ea3eb06b80c2b06f616a
drh [Sun, 1 Sep 2024 19:19:26 +0000 (19:19 +0000)]
No prepare-time penality for ordered-set aggregates for applications that
do not use them.
FossilOrigin-Name:
e070c16d2183312e416ff6af770346041e4d3836c4db2c9ea6049f63fb0eaa07
drh [Sun, 1 Sep 2024 18:57:52 +0000 (18:57 +0000)]
Merge fixes from trunk into the ordere-set-agg branch.
FossilOrigin-Name:
7528ddcfdf155116353266e00e6408c526e29f04cb00ca2d9e84b105329b17c0
drh [Sun, 1 Sep 2024 18:54:31 +0000 (18:54 +0000)]
Improved sort function in the percentile extension.
FossilOrigin-Name:
9f84e8d59bcda642e732565e840f6a880a01b2fc65af2651248f6a8a6e1cb65a
drh [Sun, 1 Sep 2024 10:52:20 +0000 (10:52 +0000)]
Fix to the quicksort algorithm in the percentile extension.
FossilOrigin-Name:
54313f74b24c46f1afa1ff082ef569fa46938527095be358015e7047e17702ac
drh [Sat, 31 Aug 2024 22:22:24 +0000 (22:22 +0000)]
Add error checking: Do not allow functions other than those in the
percentile extension to use the ordered-set aggregate notation.
FossilOrigin-Name:
317d901429303340290334dbe7680a36339df0a50b586e3f71b6c5e5eba6d411
drh [Sat, 31 Aug 2024 20:09:37 +0000 (20:09 +0000)]
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
drh [Sat, 31 Aug 2024 19:24:17 +0000 (19:24 +0000)]
Include percentile() and merge() in the fuzzcheck test utility.
FossilOrigin-Name:
d1d0942a947803d45a1fd9068f3518cf412178b6b9bafcb82db44c52d5820c11
drh [Sat, 31 Aug 2024 18:35:10 +0000 (18:35 +0000)]
Omit the percentile_cont() function added by [
095c22e62248f8ef ] (and not yet
released) since its usage conflicts with the PG percentile_cont() function.
FossilOrigin-Name:
3fe0a852978f3f1218e37a58f0d3b54016d4116a3301aa32efa7c4c12c767755
drh [Sat, 31 Aug 2024 18:08:31 +0000 (18:08 +0000)]
Allow percentile() and median() to act as window functions.
FossilOrigin-Name:
94cf96af8fee55449080655bddf81cbf5c078a02d7bb5dd7e4903b36f83a8c07
drh [Sat, 31 Aug 2024 17:50:06 +0000 (17:50 +0000)]
drh [Sat, 31 Aug 2024 17:27:55 +0000 (17:27 +0000)]