]>
git.ipfire.org Git - thirdparty/sqlite.git/log
drh [Tue, 12 Jan 2021 15:30:01 +0000 (15:30 +0000)]
Fix a potential use-after-free following an OOM in sqlite3ParserAddCleanup()
and add a mechanism to detect situations where this might occur in the
future.
FossilOrigin-Name:
38ef8ab9830e12acd2c710e113939b1f8dced02612c6933c37a3c948a4030d0a
drh [Mon, 11 Jan 2021 20:37:02 +0000 (20:37 +0000)]
Add a linked list of ParseCleanup objects to the end of a Parse object and
use that list as a place to put other sub-objects that need to be deallocated.
Have a single such list for infrequently used sub-objects is more efficient
than doing an a separate check for each kind of sub-object.
FossilOrigin-Name:
affa2b7b316941b8a6c4d0d1ff212c81a593faf1d05d129e14d2b70d73a25c59
drh [Sat, 9 Jan 2021 19:10:04 +0000 (19:10 +0000)]
New CLI command: ".stats vmstep" enables the display of the virtual-machine
step count only, after each command. Useful for optimization problems.
FossilOrigin-Name:
49dfce469e6a17111b349e53578479daf783064200bf0eec5bf8a91d3553b19f
drh [Sat, 9 Jan 2021 18:24:33 +0000 (18:24 +0000)]
More detailed compile-time testing before attempting to use atomic load
intrinsics. See
[forum:/forumpost/
fc0237a39b30ac0a |forum post
fc0237a39b30ac0a ].
FossilOrigin-Name:
5204c2c4a7b73a64764b0d2d1d7c53709bb64e0d2685a829c7bf31af13bab5e7
drh [Fri, 8 Jan 2021 19:53:18 +0000 (19:53 +0000)]
Fix an issue with sha3_query() when the first argument contains blank
SQL statements.
FossilOrigin-Name:
24baab9a9faab50c26d7167821031cd66aaf784baefbc0f92354ae54ac43a714
dan [Thu, 7 Jan 2021 16:59:35 +0000 (16:59 +0000)]
Update cksumvfs to check that the xCurrentTimeGetInt64 method of the underlying VFS is not NULL before invoking it.
FossilOrigin-Name:
c71f6cadcc8c2172ad4113bbe4026aac4ebb8a91485454e8a14de32d197a93aa
dan [Thu, 7 Jan 2021 16:29:34 +0000 (16:29 +0000)]
drh [Thu, 7 Jan 2021 16:10:14 +0000 (16:10 +0000)]
Fix harmless typos in comments per
[forum:/forumpost/
7849e58dd5 |forum post
7849e58dd5 ]
FossilOrigin-Name:
d1e22e2f76cce7eb9f9029646176daef2d9e41c7bb1d3e1da182fbdd0096605c
dan [Mon, 4 Jan 2021 18:28:29 +0000 (18:28 +0000)]
Add extra test for handling of embedded nul characters in the fts4 unicode61 tokenizer.
FossilOrigin-Name:
c2c2c7e945f5d5700d91b8e779117e70e388ffc613912a434885ae27f5fe4e22
drh [Sat, 2 Jan 2021 23:56:37 +0000 (23:56 +0000)]
In Lemon, factor the parser stack overflow detection logic out of the
yy_reduce() subroutine and into the main parser routine, so that when overflow
is detected, it can exit immediately. This saves a single conditional in
the main loop of the parser.
FossilOrigin-Name:
203c049c662380411522d0c7c493201331bbb2792a7c5b12684f04f532a0695d
drh [Fri, 1 Jan 2021 22:06:17 +0000 (22:06 +0000)]
Avoid allocating space to hold the prepared statements for CREATE statements
when parsing the schema of an existing database, since those prepared
statements are never used.. This helps to make startup faster,
FossilOrigin-Name:
d01e9f2d00dc439c529cd8885a219fcddbaad73b9f471b020e2a0c18e2add69b
drh [Fri, 1 Jan 2021 21:02:37 +0000 (21:02 +0000)]
Faster and smaller test to ensure that the sqlite_schema.sql field is always
a CREATE statement of some kind.
FossilOrigin-Name:
76de2bb04b1c02a6c0300cd61d9b3d2477d845aa0d1cdb9dbe4f354b9fedd923
drh [Fri, 1 Jan 2021 20:04:34 +0000 (20:04 +0000)]
Change the unions of the Table.addColOffset field from characters to bytes.
This makes the query that implements ALTER TABLE ADD COLUMN more complex and
slightly slower, but also makes CREATE TABLE statement parsing faster by
avoiding a call to sqlite3UtfCharLen(). Since, CREATE TABLE parsing is far
more common than ALTER TABLE, this is a net win for performance.
FossilOrigin-Name:
6f25f2529f1495a26129d7d407979906e4962b2de351f901d41cb037d05ba780
drh [Fri, 1 Jan 2021 19:17:01 +0000 (19:17 +0000)]
Use the column name hash to improve performance of column name collision
detection while parsing CREATE TABLE statements.
FossilOrigin-Name:
d02820f03575e4633a7917427f11c19f99bd7b92f37d0ffe6fdc2418ad729813
drh [Fri, 1 Jan 2021 18:32:15 +0000 (18:32 +0000)]
Modify the makefile rule for "startup" so that it always builds with
-Os and -DSQLITE_THREADSAFE=0 and no other options, for consistency of
performance.
FossilOrigin-Name:
5ac939e0adc923378173297e934c3664254a4fefbcddcc842bf4cc42dbaacf4f
drh [Fri, 1 Jan 2021 18:23:56 +0000 (18:23 +0000)]
Size reduction and performance increase in sqlite3Prepare().
FossilOrigin-Name:
41f45c8e894f48049325ccfef12cec0887b636bfad5d531a47628eb9e8612924
drh [Fri, 1 Jan 2021 17:01:33 +0000 (17:01 +0000)]
Small size reduction and performance improvement in sqlite3VdbeMakeReady()
by linking the new prepared statement into the prepared statement list sooner
rather than later.
FossilOrigin-Name:
2996e800a02967f9d0e27c816cf0b7b581a25634f94abcf167f27b019e1515e5
drh [Fri, 1 Jan 2021 16:43:26 +0000 (16:43 +0000)]
Streamline processing of the authenticator callback for the common case
when there is no callback.
FossilOrigin-Name:
d3196685d958bf22b5c362e96bbf8e1df58cc09cc3abc4bfa94bb33bc28c61aa
drh [Fri, 1 Jan 2021 15:13:17 +0000 (15:13 +0000)]
Add the "startup" test program designed to measure startup performance,
and in particular schema parsing time.
FossilOrigin-Name:
7b3b31efb0047c5a461f487905cffba2b0ddb1518a6e757ca092eb40e1e2cd49
drh [Fri, 1 Jan 2021 01:44:06 +0000 (01:44 +0000)]
Do not attempt to take a pointer to the ceil() and floor() functions as
those routines are intrinsics on some versions of MSVC.
FossilOrigin-Name:
e5d7209e118a84537a85c0c9cd2b7ca4cd6ccf04181dc840b19339b4c93840cd
drh [Wed, 30 Dec 2020 13:20:27 +0000 (13:20 +0000)]
drh [Wed, 30 Dec 2020 13:10:57 +0000 (13:10 +0000)]
New test cases for cursor renumbering in the UNION ALL query flattener.
FossilOrigin-Name:
270babf259750f3d6c490a08df608a101b24b3c06b9e8a938a0e09a854af6a20
drh [Tue, 29 Dec 2020 15:06:26 +0000 (15:06 +0000)]
Do not set the P3 parameter on OP_RowCell when copying an index btree, as
P3 is not used in that case.
FossilOrigin-Name:
eef070a4aadf02a845d0ed00767be049d3b76e811e24797a116776fa836d1b03
drh [Mon, 28 Dec 2020 21:42:38 +0000 (21:42 +0000)]
Fix missing comma in ctime.c that would cause the ENABLE_MATH_FUNCTIONS
output rw to merge with whatever row followed. Problem reported in
[forum:/forumpost/
aacac97680 |forum post
aacac97680 ].
FossilOrigin-Name:
328bc4a01dd67096be49c8b5a656109ad2839a7959d1b00c02a96bfbcb44ec18
dan [Wed, 23 Dec 2020 16:46:39 +0000 (16:46 +0000)]
Add the sqlite3session_memory_used() API to the sessions module. For querying the amount of heap memory currently being used by a session object.
FossilOrigin-Name:
823f75c2e448b649cbe9e174be21524ae3f580beedced65701ad49a2dcc5ee19
dan [Tue, 22 Dec 2020 20:35:22 +0000 (20:35 +0000)]
Fix SQLITE_OMIT_WINDOWFUNC builds by moving declaration of sqlite3ExpandSubquery out of "ifndef SQLITE_OMIT_WINDOWFUNC" block.
FossilOrigin-Name:
9587fa8b29fc2f91d751a71b909f574014656f24d276b4974f47fcc18dbadcb8
mistachkin [Tue, 22 Dec 2020 19:57:53 +0000 (19:57 +0000)]
dan [Tue, 22 Dec 2020 16:23:29 +0000 (16:23 +0000)]
Fix a problem handling sub-queries with both a correlated WHERE clause and a "HAVING 0" clause where the parent query is itself an aggregate.
FossilOrigin-Name:
f62f983b56623f0ec34f9a54ce1c21b013a20399162f5ee6ee43b23f10c2ecd5
drh [Tue, 22 Dec 2020 14:54:20 +0000 (14:54 +0000)]
Simplification to the aggregate-function analysis error detection logic at
the end of sqlite3Select().
FossilOrigin-Name:
82884438e30ad8241f8249927fe92e0856d78b64d7ade38f3d5bb1c931d958d0
dan [Mon, 21 Dec 2020 19:50:10 +0000 (19:50 +0000)]
Fix problems with joining UNION ALL sub-queries against other sub-queries that contain LEFT JOIN.
FossilOrigin-Name:
d554f710a5abbe64022f47a14ef67227c861a8f0991d85d240434e9a709cf8b8
dan [Mon, 21 Dec 2020 18:39:58 +0000 (18:39 +0000)]
Fix a problem when flattening joins between a UNION ALL sub-query and another sub-query that uses more than one window function.
FossilOrigin-Name:
ef9733fe1c6b31849a5da1037d21915f82e0e4ab42d1a23ead8a121012f1bace
drh [Mon, 21 Dec 2020 14:51:33 +0000 (14:51 +0000)]
Enhance documentation to show that "ro" is the correct way to say "readonly"
in the mode= query parameter.
FossilOrigin-Name:
788b96851d9ced84757c48dc3e0414cab27ee7e50e9730dab30b2e42a7762397
drh [Mon, 21 Dec 2020 12:14:59 +0000 (12:14 +0000)]
Add the --timer option to fuzzcheck. Get the --timeout option working in
fuzzcheck when running dbsql tests.
FossilOrigin-Name:
3b0c9b41a877c7344ef3b7c5b6981436005716e25b41b1a1ffc145520243abd3
drh [Sun, 20 Dec 2020 14:51:17 +0000 (14:51 +0000)]
Always declare the sqlite3WhereTrace variable, even for non-debug builds.
FossilOrigin-Name:
88d93ee380b6fd87474545f20ade874ba05c784c787ce9c45ebfcffed3795308
dan [Sat, 19 Dec 2020 15:39:10 +0000 (15:39 +0000)]
Fix a broken assert() in fts5 that could be triggered by corrupt database records.
FossilOrigin-Name:
b79f59f9ad897d5bd4b9d17e6219bc765b02450bfe14dc020485f221ba6b02cb
drh [Sat, 19 Dec 2020 13:58:06 +0000 (13:58 +0000)]
Allow UNION ALL sub-queriesto be flattened even if the parent query is a join.
FossilOrigin-Name:
df1d6482f9e92dafdca1948e96eef52d8646eef9c356394afabe431d6357dd34
dan [Fri, 18 Dec 2020 18:04:44 +0000 (18:04 +0000)]
Fix for the previous fix in the case where a UNION ALL sub-query is joined against some other compound query.
FossilOrigin-Name:
63c5cfb9ae8f4598a523bed2a60c0e69172179952961a573113fcf756c06551d
dan [Fri, 18 Dec 2020 16:13:39 +0000 (16:13 +0000)]
When flattening UNION ALL subqueries into a join query, ensure that separate cursor numbers are used for each segment of the newly flattened query.
FossilOrigin-Name:
c510377b0b052e400f2ee4f20220b61cdf74ee44b9bb9e6490787c88dd4c55aa
dan [Thu, 17 Dec 2020 17:17:12 +0000 (17:17 +0000)]
Fix a part of the header comment for flattenSubquery().
FossilOrigin-Name:
dc0937ce9d5569e3409b2b036a9f15b896125f4eb2eec30e3f0bbe4a92bcd0ad
dan [Thu, 17 Dec 2020 16:48:04 +0000 (16:48 +0000)]
Add test cases and minor fixes to this branch.
FossilOrigin-Name:
5d6dc29d5f81738b07e4fee652fb2343fc409c2545f2f4667e8ee82d1a75f721
drh [Thu, 17 Dec 2020 15:17:42 +0000 (15:17 +0000)]
In the CLI, add the ".filectrl data_version" command. And put the various
".filectrl" subcommands in alphabetical order.
FossilOrigin-Name:
3434452148eef39ba3ba2f40a6fedb6ec4f5157cbc2763b3ec90ec7f2b126382
dan [Thu, 17 Dec 2020 11:24:26 +0000 (11:24 +0000)]
Fix a problem with sqlite3_expanded_sql() that could occur with statements that use both numbered (e.g. "?1") and unnumbered (i.e. "?") parameters.
FossilOrigin-Name:
2a6cd6833e44dd6a2ac388815f43be6508f6fa6db5e451e964276a6c87e6c5ae
drh [Wed, 16 Dec 2020 21:09:45 +0000 (21:09 +0000)]
Enhance the sqlite3BtreeTransferRow() routine so that it does more careful
checks for corrupt database pages.
FossilOrigin-Name:
85952e71175dae73c4e587a3b80783825d91fe8567a819e072da651c1ff4131b
dan [Wed, 16 Dec 2020 20:00:46 +0000 (20:00 +0000)]
Allow sub-queries that use UNION ALL to be flattened, even if the parent query is a join. Still some problems on this branch.
FossilOrigin-Name:
00e4bf74d3dfb87666a2266905f7d1a2afc6eb088d22cfd4f38f048733d6b936
drh [Wed, 16 Dec 2020 14:20:45 +0000 (14:20 +0000)]
Remove an unnecessary and incorrect #ifdef. Fix harmless compiler warnings.
FossilOrigin-Name:
31cd1bbfa5b06723288d99d1cb423f88353bdef770b82e9103f71a796d66f660
drh [Wed, 16 Dec 2020 13:17:32 +0000 (13:17 +0000)]
Fix a typo in the sqlite3_free_filename() documentation.
FossilOrigin-Name:
48301edc90fe5811df0394b106edce7726d0ea86ac562c9f4db511b812a76433
dan [Tue, 15 Dec 2020 19:27:20 +0000 (19:27 +0000)]
Fix another integer overflow triggered by a corrupt database in recently modified vacuum code.
FossilOrigin-Name:
4e2dd2a53364f1fed48b995fd5d2642472585f6da5e4735e9da193ba7ff45514
dan [Tue, 15 Dec 2020 16:28:07 +0000 (16:28 +0000)]
When the -statstep option is passed to the "rbu" executable, print out memory stats right before exiting, as well as every -statstep steps.
FossilOrigin-Name:
94f81b51176566409b7d16b30d861f48ad15bb43a145df6e02e0880f7c348109
dan [Tue, 15 Dec 2020 13:55:38 +0000 (13:55 +0000)]
Change an fts5 assert() that can be triggered by a corrupt database to an if() condition.
FossilOrigin-Name:
ea0a7f103a6f6a9e57d7377140ff9f372bf2b156f86f148291fb05a7030f2b36
drh [Mon, 14 Dec 2020 15:39:12 +0000 (15:39 +0000)]
Enhance UPSERT so that it allows multiple ON CONFLICT clauses and does
not require a conflict target for DO UPDATE.
FossilOrigin-Name:
6b01a24daab1e5bcb0768ebf994368d941b1dfc217bf6b661211d900331e68cf
dan [Mon, 14 Dec 2020 15:25:14 +0000 (15:25 +0000)]
Fix an integer overflow problem in new VACUUM code.
FossilOrigin-Name:
59b4367fd852ba1bfefdff99a27b11657495a3f114ed6f85fdcf6c532f4a19fa
drh [Mon, 14 Dec 2020 13:52:03 +0000 (13:52 +0000)]
drh [Sat, 12 Dec 2020 00:43:52 +0000 (00:43 +0000)]
More test cases. No new problems discovered.
FossilOrigin-Name:
f34dd67e2d0dfc9e3b5d49148fb0162853119c097cbc3fe961878875ba98d8e3
drh [Sat, 12 Dec 2020 00:28:15 +0000 (00:28 +0000)]
New test cases with corresponding bug fixes.
FossilOrigin-Name:
f22c21a94ca4cad0217f91c1a5a275bc348cb6ba0f3a54c927533bc8d8c96a90
drh [Fri, 11 Dec 2020 19:36:19 +0000 (19:36 +0000)]
Begin adding test cases. Fix one bug found so far. More are pending.
FossilOrigin-Name:
aadd67ddf2a191629b5356395f75e4556aac904a6e2f6b83742fa4f26e4253a4
dan [Fri, 11 Dec 2020 19:01:24 +0000 (19:01 +0000)]
Fix an assert() broken by recent changes to vacuum.
FossilOrigin-Name:
dd058da85ca54ae70e26cb0bdc75ff42998d4a8b29a5e2dcac44ee0e45776a85
drh [Fri, 11 Dec 2020 17:11:56 +0000 (17:11 +0000)]
drh [Fri, 11 Dec 2020 16:49:51 +0000 (16:49 +0000)]
Bug fixes so that legacy tests pass. New tests for new functionality have
not yet been added.
FossilOrigin-Name:
aa76790e58cea9a2b707f5912fd66c76545e7417442553fc13c87f773a2fe1dd
dan [Fri, 11 Dec 2020 16:03:19 +0000 (16:03 +0000)]
Add an "#ifndef SQLITE_AMALGAMATION" block around the typedef for u64 in shathree.c.
FossilOrigin-Name:
b411f29e1a6415f4a241777c45591b8389e746cd8b40d9b225e073bcb0a3bdbf
drh [Fri, 11 Dec 2020 14:34:58 +0000 (14:34 +0000)]
Fix the configure script on the autoconf distribution so that the
--disable-threadsafe option works. See
[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244459|FreeBSD bug 244459].
FossilOrigin-Name:
e64ff2cce3c03ba27c3bf410948ece1424113e727870015eb3806b75d0d21f94
dan [Fri, 11 Dec 2020 14:22:44 +0000 (14:22 +0000)]
Fix the expert extension so that it handles generated columns correctly.
FossilOrigin-Name:
c2ae7ba6f8f4b10bd734051a0cfa8ed9675bd58c82ede4e9eadfd7cbcc03b82d
drh [Fri, 11 Dec 2020 01:17:06 +0000 (01:17 +0000)]
Logic is in place to handle multiple ON CONFLICT clauses, but it does not work.
Any use of ON CONFLICT will likely lead to memory faults. This is an
incremental check-in to save my place.
FossilOrigin-Name:
155142314feb007d526f8f67723636fd50dc52d1cd4d3a67dd93b105c9d5c2be
drh [Thu, 10 Dec 2020 20:31:25 +0000 (20:31 +0000)]
Use an iterator for the index loop in sqlite3GenerateConstraintChecks().
The idea is that this iterator can be enhanced to traverse the indexes in
any order, as required by multi-index UPSERT.
FossilOrigin-Name:
64a4a91ecc5dcde3fa07d3cf038c74b9ede63d36628ecfb35203a9dfbbfe113c
dan [Thu, 10 Dec 2020 19:54:13 +0000 (19:54 +0000)]
dan [Thu, 10 Dec 2020 19:51:39 +0000 (19:51 +0000)]
Changes to avoid loading large records into memory within VACUUM.
FossilOrigin-Name:
56a54258560fab715b83967634b2bd4c04be43cded112b46e85da9f99ee02f7c
dan [Thu, 10 Dec 2020 19:20:15 +0000 (19:20 +0000)]
Fix minor issues with new code on this branch.
FossilOrigin-Name:
f7fa76d0963e7b34026dc20c920bfbf7961033fe2b99503f6857157595f86823
dan [Thu, 10 Dec 2020 18:07:01 +0000 (18:07 +0000)]
dan [Thu, 10 Dec 2020 18:06:24 +0000 (18:06 +0000)]
Better integrate the changes on this branch with OP_Insert and OP_IdxInsert.
FossilOrigin-Name:
101cef14910d6e865a94bc870aed599321b893188062a9a61d70a9434992cf23
drh [Thu, 10 Dec 2020 13:49:00 +0000 (13:49 +0000)]
Add an optional function to the chsumvfs extension. When activated by
the SQLITE_CKSUMVFS_INIT_FUNCNAME macro, this function will invoke the
file-control that sets the number of reserved bytes to 8. This can be
used to initialize a cksumvfs database file by programming languages
that do not have access to the sqlite3_file_control() interface.
FossilOrigin-Name:
01841fb4bf3d6c5fd5bcbc7d1338998c50f69f84ca475fba7cf764d636714678
drh [Thu, 10 Dec 2020 12:49:26 +0000 (12:49 +0000)]
The DO UPDATE code generator searches for the correct ON CONFLICT clause to
use.
FossilOrigin-Name:
a47e35ee2d901baaa37e7229d190f934e1b0bd3510147cd4a2a49c4a1411416a
mistachkin [Wed, 9 Dec 2020 23:35:51 +0000 (23:35 +0000)]
Fix compilation issues with MSVC related to C99.
FossilOrigin-Name:
c0de6c1fb2c486be1da01e5e4ca8c5634ba37822e418d57f272e018c3e3fc0a2
dan [Wed, 9 Dec 2020 20:33:51 +0000 (20:33 +0000)]
Transfer large index or WITHOUT ROWID records between b-trees when vacuuming without loading them into memory.
FossilOrigin-Name:
dfd4ca6891a893d0e9551689954d3e79114d5565f8a5264f96ad1d64fe1d6280
drh [Wed, 9 Dec 2020 20:30:47 +0000 (20:30 +0000)]
For upsert, the constraint check code generator uses a copy of the index list
for the target table, which can potentially be reordered.
FossilOrigin-Name:
3194c00c2c6a32bdfd5acc9fda5b38ae131d20cd3b7aea8512a41b2e76808f6a
dan [Wed, 9 Dec 2020 16:49:28 +0000 (16:49 +0000)]
Add tests for a 'delete' command on a contentless table where values that weren't actually inserted are NULL.
FossilOrigin-Name:
818c647cec7063b33b6c5de3e23599a1d61439fa6e9bf6c974b2522a5a9e1b44
dan [Wed, 9 Dec 2020 16:32:11 +0000 (16:32 +0000)]
Avoid loading large intkey rows when VACUUMing, even if the page-size is changing.
FossilOrigin-Name:
0d2c3776065dc94119899ae4164995193b82fca7ac31868f3141b729d0b65ab9
drh [Wed, 9 Dec 2020 13:11:02 +0000 (13:11 +0000)]
Improved comments in sqliteInt.h. No changes to code.
FossilOrigin-Name:
8ccb8d1d55fa5aaf625c30f0e7c10aa403d79b5574dbdfa3fd0271a4e546f7e3
drh [Wed, 9 Dec 2020 01:34:48 +0000 (01:34 +0000)]
Initialize all terms in the ON CONFLICT clause stack.
FossilOrigin-Name:
5e683fd1cbde53f37cf8a2b1e981191e2b29e3376db554691767f33c37c7547e
dan [Tue, 8 Dec 2020 20:19:07 +0000 (20:19 +0000)]
Experimental changes to vacuum to avoid loading large records entirely into memory. Currently only works in limited cases only - for rowid tables when the page-size does not change.
FossilOrigin-Name:
c90e063ca9ddcdd1e9f1a2e25a3f7d6e7ee798373ad8acf65b90536b0a124c0d
drh [Tue, 8 Dec 2020 14:29:03 +0000 (14:29 +0000)]
Enhance UPSERT parsing to allow multiple ON CONFLICT clauses. Only the
very last clause may omit the conflict target, but the conflict target may
now be omitted for the DO UPDATE resolution.
FossilOrigin-Name:
2ca62f4c71df6544cb8039bdc80e3701d09697c38800534371f6d44532fcffae
drh [Mon, 7 Dec 2020 23:14:25 +0000 (23:14 +0000)]
drh [Mon, 7 Dec 2020 21:19:17 +0000 (21:19 +0000)]
Fix to the --disable-math option to ./configure.
FossilOrigin-Name:
99ff6418492adcbaf2be728737735afa1c2997de5868395e69c53d08fc14491f
drh [Mon, 7 Dec 2020 21:13:06 +0000 (21:13 +0000)]
Many more math functions. Semantics follows PG wherever possible.
FossilOrigin-Name:
6b93627b5d9819abf179a3e4a82e7afe17cbcafdabbd5f058de9ed114c9d477f
drh [Mon, 7 Dec 2020 17:15:32 +0000 (17:15 +0000)]
Begin adding new SQL functions that depend on -lm: ceil(), ceiling(),
floor(), ln(), log(), and log10() so far. More to follow.
FossilOrigin-Name:
4db5f2f7875f6df78630a7816fc018141a6eee2e295b44fc7627eb66d07881ea
drh [Fri, 4 Dec 2020 17:05:16 +0000 (17:05 +0000)]
Fix harmless compiler warnings associated with the recent FTS5 enhancements.
FossilOrigin-Name:
1db7c751912beb57a697ac8e85b9c29e30da7b6c89207e9828bf08e56c58242f
drh [Fri, 4 Dec 2020 16:58:20 +0000 (16:58 +0000)]
Fix a bug in the ".eqp" command of the shell that was introduced by the
recent sqlite3SelectTrace/SQLITE_TESTCTRL_TRACEFLAGS changes.
FossilOrigin-Name:
fd02dffceb0e21cd85c99d5481ab8567110d01c30ea701178547f32299944302
dan [Fri, 4 Dec 2020 16:49:25 +0000 (16:49 +0000)]
Ensure that fts5 function matchinfo() is registered before running tests that use it in fts5corrupt3.test.
FossilOrigin-Name:
932e05e093192991589e70c2cbcc8a57fb3dcc6df1c2673962bfd06ba5cfdd97
dan [Fri, 4 Dec 2020 16:26:25 +0000 (16:26 +0000)]
drh [Fri, 4 Dec 2020 16:25:59 +0000 (16:25 +0000)]
Fix an incorrect datatype no the sqlite3WhereTrace variable in test1.c.
FossilOrigin-Name:
4e6dab30f6d6795ecec9d8c4489fa4d210a3002715ad89812d65a1a846c164b9
drh [Fri, 4 Dec 2020 16:09:27 +0000 (16:09 +0000)]
Eliminate the sqlite3_unsupported_selecttrace global variable by creating
a new test-control to control SELECT tracing. Note that SELECT tracing is
only available on debug builds.
FossilOrigin-Name:
fb07c4e3c7ad3493c274cbfcf0dffdedcca18c0d90de04459134511d4e2a5277
drh [Fri, 4 Dec 2020 16:04:45 +0000 (16:04 +0000)]
Further changes to the trace variables to try to eliminate (harmless) compiler
warnings in all configurations.
FossilOrigin-Name:
3a4c98b989964e3e366fe9519e9b5ed935e893d5b69d92bc0388a14c7e7938e6
drh [Fri, 4 Dec 2020 01:17:57 +0000 (01:17 +0000)]
Alternative implementation of ".selecttrace" and ".wheretrace" that uses
a test-control rather than global variables.
FossilOrigin-Name:
d36d6f2923a2393c751c0ac7634433453be20df7567fd914e57cbb1ae15f68b2
dan [Thu, 3 Dec 2020 21:22:37 +0000 (21:22 +0000)]
When merging prefix lists in fts5, use 16-way merges instead of 2-way merges. This faster.
FossilOrigin-Name:
026a93508ec392ca5cd2578ae9eab64974f58beccda088e10d4cc951f237632f
drh [Thu, 3 Dec 2020 19:25:06 +0000 (19:25 +0000)]
Do not simulate OOM faults on the SQLITE_FCNTL_CKPT_START and
SQLITE_FCNTL_CKPT_DONE file-controls, as those are write-only and
the return value is always ignored.
FossilOrigin-Name:
62a2d394835276fabc0f1df2302605a700b2244775bf2e35e86529df8e40a0da
drh [Thu, 3 Dec 2020 14:21:26 +0000 (14:21 +0000)]
Enhance the generate_series() table-valued function to support negative
step values.
FossilOrigin-Name:
9b60fc48706bb77b2d4fe27a7b5834a6dc229b4051a9285032da578e4f2849e6
mistachkin [Wed, 2 Dec 2020 20:07:49 +0000 (20:07 +0000)]
Prevent potential segfault in the sqlite-expert idxPopulateStat1 context cleanup code.
FossilOrigin-Name:
c24f13448b5a55f45b4d4786a878fa73fe3395b5724f3bc2eea22e5e2b074353
dan [Wed, 2 Dec 2020 19:08:15 +0000 (19:08 +0000)]
Allow a search for an N character prefix in fts5 to use a prefix index of size N+1, if no prefix index of size N exists.
FossilOrigin-Name:
78a7801d8fc9e58a62e5168e35b52b7440340549123fc6a537e2abd571f6fe7b
drh [Wed, 2 Dec 2020 18:27:48 +0000 (18:27 +0000)]
Fix the ".open" command in the CLI so that it accepts command-line options
both before and after the filename.
FossilOrigin-Name:
d330bf0c02e67f70f49496e4b1e484bb4e876622becc6a062b2aefbd585d0117
dan [Wed, 2 Dec 2020 16:23:05 +0000 (16:23 +0000)]
Improve performance for fts5 column filters that filter for more than one column. e.g. "{col1 col2 col3}:phrase".
FossilOrigin-Name:
d8de2f236d43a88fac7550a0451951dd5a945eb304e32f82e662479cea7c2684
drh [Wed, 2 Dec 2020 02:58:05 +0000 (02:58 +0000)]
Parameterize the hash function in mkkeywordhash.c. This was an attempt to
find a better hash function, which turned out to not be successful.
FossilOrigin-Name:
2195d731f51a18f917c4299d8f4c7ee7c139c2527f62869d6da171a6d1d89ea6
drh [Wed, 2 Dec 2020 00:22:09 +0000 (00:22 +0000)]
Increase the version number to 3.35.0 to begin the next development cycle.
FossilOrigin-Name:
edbabaa30823db7c7d169cb93722b5f74bc711359984fb7e139ca9d10fe7dae4