]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
2 years agoAdd some tests of subsecond modifier for date/time functions. Sync with trunk. subsec-modifier
larrybr [Thu, 4 May 2023 20:19:33 +0000 (20:19 +0000)] 
Add some tests of subsecond modifier for date/time functions. Sync with trunk.

FossilOrigin-Name: 6499ebff545e663198bd0534be205a4e9ca68c7fb20fdcfa54fae4d9b79bfe3a

2 years agoEnhance the format() function so that the "," modifier works for floating
drh [Thu, 4 May 2023 14:44:53 +0000 (14:44 +0000)] 
Enhance the format() function so that the "," modifier works for floating
point numbers in addition to integers.

FossilOrigin-Name: 83683e108bce83c105bbcce1aa62880d8f14ebf3383d87d83a1e5c85026a7817

2 years agoAdd support for the comma (,) modifier to %f formats in the format() function. comma-format
drh [Thu, 4 May 2023 13:07:49 +0000 (13:07 +0000)] 
Add support for the comma (,) modifier to %f formats in the format() function.

FossilOrigin-Name: 7080e196a1f887640ff51ddc508ec6796ce12874c2944855702753b64a8e5e50

2 years agoFix a bug in cursor hints that can cause references to tables that have not
drh [Thu, 4 May 2023 11:29:15 +0000 (11:29 +0000)] 
Fix a bug in cursor hints that can cause references to tables that have not
been opened.  Cursor hints are intended for use by COMDB2 only and should not
appear in production builds, so this should not be a factor for the vast
majority of users.

FossilOrigin-Name: d3370d59cffb7ab982d6c620c93d22aa6a9dc786e1c4af95ca8d45ff0b9b7d6f

2 years agoAdd another assert() to FTS5 to demonstrate that a pointer is never NULL.
drh [Wed, 3 May 2023 14:10:05 +0000 (14:10 +0000)] 
Add another assert() to FTS5 to demonstrate that a pointer is never NULL.

FossilOrigin-Name: b8a84a1bf53fa07ef01c57c6db6329ba439774a262b3adcbe94e7bd77525e296

2 years agoAdd an assert() to fts5_config to ensure that a potential OOM is being handled correctly.
dan [Wed, 3 May 2023 13:57:57 +0000 (13:57 +0000)] 
Add an assert() to fts5_config to ensure that a potential OOM is being handled correctly.

FossilOrigin-Name: fe9c207657400f9d9f4e822eb658157bc147ed538e2701322f6f973933f023ed

2 years agoProtect a macro argument with parentheses in FTS5.
drh [Wed, 3 May 2023 13:48:33 +0000 (13:48 +0000)] 
Protect a macro argument with parentheses in FTS5.

FossilOrigin-Name: bc07fe51fe0c6bb50ca8ae1baefcc35c8f5395b2d0de641bf0b0cedc92d754d4

2 years agoAdd a comment to the [0512f82a2cde7447] change to link it to its TH3 test case.
drh [Wed, 3 May 2023 13:33:37 +0000 (13:33 +0000)] 
Add a comment to the [0512f82a2cde7447] change to link it to its TH3 test case.

FossilOrigin-Name: 1281d4d9d799ef83e6eb51d656ede82b4503d39adf169deb936b30ebfddd88b1

2 years agoEnhancement to showwal such that it shows what the page hash should be
drh [Wed, 3 May 2023 13:03:30 +0000 (13:03 +0000)] 
Enhancement to showwal such that it shows what the page hash should be
on a hash mismatch.

FossilOrigin-Name: 960dc97083ed9a7bfa912010b9ea19114f51dd10e73d5c5bf06cc642ebd1a2e7

2 years agoConform CLI double-quoted escaping to what its doc says.
larrybr [Wed, 3 May 2023 11:27:15 +0000 (11:27 +0000)] 
Conform CLI double-quoted escaping to what its doc says.

FossilOrigin-Name: 910535ba518f35ecc64c980ad67e3af69008d1995235f52ab12db6cefdb6602b

2 years agoIn the zipfile extension, leave the catalog list in a consistent state when
drh [Wed, 3 May 2023 07:30:15 +0000 (07:30 +0000)] 
In the zipfile extension, leave the catalog list in a consistent state when
the last entry is removed from the list.
[forum:/info/f03f1e4c5a5c9959|forum post f03f1e4c5a5c9959].

FossilOrigin-Name: 1b489d008b7bda12f9bf92e246bc613ef61e9c74ace0652d6d088e5a6e0696f6

2 years agoIf the page size is wrong on the page1 content inside a WAL file, then
drh [Wed, 3 May 2023 06:48:08 +0000 (06:48 +0000)] 
If the page size is wrong on the page1 content inside a WAL file, then
running VACUUM could trigger an assert().  This check-in changes that assert()
into a branch that returns SQLITE_CORRUPT.
[forum:/info/4ef9b37d74d2d2e8|Forum post 4ef9b37d74d2d2e8]

FossilOrigin-Name: 0512f82a2cde7447cb348d9fd620f39f2f0e359141903cde20f7ba30b5d34af3

2 years agoImproved detection of excess recursion on arrays and objects in the JSON
drh [Wed, 3 May 2023 06:38:03 +0000 (06:38 +0000)] 
Improved detection of excess recursion on arrays and objects in the JSON
parser.  Fixes a problem detected by dbsqlfuzz.

FossilOrigin-Name: d40fd5924adaa8d6b1dd6b9a4087f64d496cf60096ae11c9229c59309c0d4844

2 years agoDo not overflow the Index.aSample[] array if the same index appears in
drh [Wed, 3 May 2023 05:00:10 +0000 (05:00 +0000)] 
Do not overflow the Index.aSample[] array if the same index appears in
the sqlite_stat4 table under multiple names because it is a WITHOUT ROWID
primary key index.  [forum:/info/537d8ab118df7edd|Forum post 537d8ab118df7edd]

FossilOrigin-Name: 9350a25ac0b55a6b901bc50e4db6d4e883c2617e1d2a8fdc90effabe52bb0012

2 years agoDo not even attempt to load the sqlite_stat4 table if the use of STAT4 is
drh [Wed, 3 May 2023 04:21:31 +0000 (04:21 +0000)] 
Do not even attempt to load the sqlite_stat4 table if the use of STAT4 is
disabled using sqlite3_test_control().

FossilOrigin-Name: 0bf94c77d97582be5368bcfd149f3db7b9f928b4684aaa2626d98a2bdee8f96f

2 years agoFix CLI mishandling of OOM during .import _of_ a DB. [forum:7ed4a250d3|Reported by...
larrybr [Wed, 3 May 2023 02:32:42 +0000 (02:32 +0000)] 
Fix CLI mishandling of OOM during .import _of_ a DB. [forum:7ed4a250d3|Reported by forum post 7ed4a250d3].

FossilOrigin-Name: 30da3f0ebd944754881bce678c61289fdaf1e32198d241cc6b5c003e4fb33c0e

2 years agoIn the CLI, ensure that the argument to quoteChar() is not a NULL pointer
drh [Wed, 3 May 2023 01:25:37 +0000 (01:25 +0000)] 
In the CLI, ensure that the argument to quoteChar() is not a NULL pointer
due to a prior OOM.

FossilOrigin-Name: 776d1a47aae3c3679a2d158595e84facf118adf2d1bca0f0642311dd346479b8

2 years agoFix a problem with the sqlite3changeset_size() API and rowid tables.
dan [Tue, 2 May 2023 20:34:15 +0000 (20:34 +0000)] 
Fix a problem with the sqlite3changeset_size() API and rowid tables.

FossilOrigin-Name: 92ade220dcf5c1b76a5db605b1467a01051271957cd26f790755904fd82772eb

2 years agoGive CLI quoted args hex escapes (as documented.) cli-hex-escape
larrybr [Tue, 2 May 2023 19:33:27 +0000 (19:33 +0000)] 
Give CLI quoted args hex escapes (as documented.)

FossilOrigin-Name: 90e434a6ae370a35109802fc336b98298d345f3d23125ef2cc68c31d8e69bb50

2 years agoCure CLI hang on .import with high-ASCII column separator.
larrybr [Tue, 2 May 2023 18:03:25 +0000 (18:03 +0000)] 
Cure CLI hang on .import with high-ASCII column separator.

FossilOrigin-Name: aac8ac631de5c5b439c48c13f5fd271d76c11b1a5fd0919dfe4506ef7725f5ab

2 years agoAllow for lower-case "nan" to mean NaN in JSON.
drh [Tue, 2 May 2023 17:33:34 +0000 (17:33 +0000)] 
Allow for lower-case "nan" to mean NaN in JSON.

FossilOrigin-Name: 6bee0a19e2efb6e39097fb22602556791d3d3962c50a1a0471c39a0c61db632e

2 years agoInterpret negative arguments to sqlite3_sleep() as zero.
drh [Tue, 2 May 2023 16:34:15 +0000 (16:34 +0000)] 
Interpret negative arguments to sqlite3_sleep() as zero.

FossilOrigin-Name: 2b542326aa8e7e1f6ed9d999b95ae5340278e0821277a17de3cc803b4af793ae

2 years agoImproved handling of NULL arguments to json_valid() and
drh [Tue, 2 May 2023 11:12:01 +0000 (11:12 +0000)] 
Improved handling of NULL arguments to json_valid() and
json_error_position(). [forum:/forumpost/06c6334412|Forum post 06c6334412].

FossilOrigin-Name: ab78e6946ba8125a83ff155561adf9c8df4d1c09a645fce08c8245ddb08bfa3b

2 years agoFix typo in comment. [forum:/forumpost/3da7d9c445|Forum post 3da7d9c445].
drh [Tue, 2 May 2023 10:22:05 +0000 (10:22 +0000)] 
Fix typo in comment.  [forum:/forumpost/3da7d9c445|Forum post 3da7d9c445].

FossilOrigin-Name: 41a8a15c4b6f6157b12d43976e300763ef8a4963986d2806557ad0d8b0a784cd

2 years agoMinor code change in the CLI to make a UAF warning from scan-build go away.
drh [Tue, 2 May 2023 00:33:45 +0000 (00:33 +0000)] 
Minor code change in the CLI to make a UAF warning from scan-build go away.

FossilOrigin-Name: ad6aae768ad0816bfd1c8e9db5c0153226982d3af9a089f31e608223339e9829

2 years agoFix harmless compiler warnings.
drh [Mon, 1 May 2023 20:42:15 +0000 (20:42 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: 342af5b4fa0bd7c699e5497161db13d0cf795c7a5875ae30d666122e518f213b

2 years agoThe gcc definition of the SQLITE_INLINE macro is not compatible with
drh [Mon, 1 May 2023 20:09:52 +0000 (20:09 +0000)] 
The gcc definition of the SQLITE_INLINE macro is not compatible with
string ANSI, so disable it if the -std=c89 command-line option is used.

FossilOrigin-Name: 62d703d83cf8cf3358715792347c49315a82c659e475158e385746f4329a4f39

2 years agoFix harmless compiler warnings in FTS5.
drh [Mon, 1 May 2023 19:59:10 +0000 (19:59 +0000)] 
Fix harmless compiler warnings in FTS5.

FossilOrigin-Name: f6210017b3143ccbaea23655852f947f779bb438ad4fbf582f5da42f7cd1d9f5

2 years agoRemove xFileControl() handling from the OPFS VFS altogether, re-routing all syncing...
stephan [Mon, 1 May 2023 19:28:07 +0000 (19:28 +0000)] 
Remove xFileControl() handling from the OPFS VFS altogether, re-routing all syncing through xSync() instead. This eliminates superfluous syncing introduced in [a371374148a2], as discussed in [forum:647d2f811dbc2dfe|forum thread 647d2f811dbc2dfe].

FossilOrigin-Name: f809de7f232c8c2731a877c7bf1ad39fda5b326b2e45e4748cab4dc5e5b535bd

2 years agoFix harmless compiler warnings.
drh [Mon, 1 May 2023 18:52:35 +0000 (18:52 +0000)] 
Fix harmless compiler warnings.

FossilOrigin-Name: 0a926994691ccb02ea4f0ba3c2e8f728871ae67d24c705fbc0f7af81f38d5f47

2 years agoAdd support for JSON5.
drh [Mon, 1 May 2023 18:28:48 +0000 (18:28 +0000)] 
Add support for JSON5.

FossilOrigin-Name: f8c3ed23a6931b1da3b93b3274b132387078112a5c8e8d06b5312c47987d3937

2 years agoFix typos in comments in sqlite3session.h preventing documentation from being correct...
dan [Mon, 1 May 2023 15:59:20 +0000 (15:59 +0000)] 
Fix typos in comments in sqlite3session.h preventing documentation from being correctly generated.

FossilOrigin-Name: ab75170d5609c477613466e8880f20b74b0069281db6536fe09db06ea9d7cff3

2 years agoNew enhancements to the sqlite3_db_config() constants documentation.
drh [Mon, 1 May 2023 15:57:46 +0000 (15:57 +0000)] 
New enhancements to the sqlite3_db_config() constants documentation.

FossilOrigin-Name: d74011a3c495719fe1816e15251269824396ac2a40e41f7b96f0dd507c9be609

2 years agoExpose the SQLITE_DBCONFIG_STMT_SCANSTATUS and SQLITE_DBCONFIG_REVERSE_SCANORDER...
stephan [Mon, 1 May 2023 15:42:59 +0000 (15:42 +0000)] 
Expose the SQLITE_DBCONFIG_STMT_SCANSTATUS and SQLITE_DBCONFIG_REVERSE_SCANORDER sqlite3_db_config() options to JS.

FossilOrigin-Name: 0a7024af3f0e1dddc1a60c67bc4084e46b297dc16fe753bd5e6a45a59fd1cfa4

2 years agoImplement full xSync() for the OPFS VFS. The previous implementation was not correct...
stephan [Mon, 1 May 2023 15:15:11 +0000 (15:15 +0000)] 
Implement full xSync() for the OPFS VFS. The previous implementation was not correct for journal files. Reported in [forum:647d2f811dbc2dfe|forum post 647d2f811dbc2dfe].

FossilOrigin-Name: a371374148a2874be6e48890781aa5952229056b146a50fa4d035693341c5636

2 years agoFix typos in documentation comments in sqlite3.h.
drh [Mon, 1 May 2023 14:50:54 +0000 (14:50 +0000)] 
Fix typos in documentation comments in sqlite3.h.

FossilOrigin-Name: 6a8b00788e7911287a8287277eb603e983e3324c9d62de0889ce6f0b2d848f4a

2 years agoDo not apply the "AND false" optimization if either operand comes from the
drh [Mon, 1 May 2023 11:24:35 +0000 (11:24 +0000)] 
Do not apply the "AND false" optimization if either operand comes from the
ON clause of a join.  Fix for the problem identified by
[forum:/forumpost/96cd4a7e9e|forum post 96cd4a7e9e].

FossilOrigin-Name: d095da0e7a24e3bcab6495d964f76a86d7a5910d2d6edddc6e8092bfa6084fe6

2 years agoFix abbreviated paths for objects such that they work even if the object json5
drh [Mon, 1 May 2023 03:56:48 +0000 (03:56 +0000)] 
Fix abbreviated paths for objects such that they work even if the object
key begins with '$'.

FossilOrigin-Name: 1b991c78141a9915ae9350ecb347a758e50d7d25c8a0f4cc098ae10d47c27043

2 years agoFix a problem with json_patch() when one side or the other is JSON5.
drh [Sun, 30 Apr 2023 23:52:55 +0000 (23:52 +0000)] 
Fix a problem with json_patch() when one side or the other is JSON5.
dbsqlfuzz bc10593a4ba8e7a7862593532285be31f00f8e41

FossilOrigin-Name: e18c0899cc774f6f20d2a73381fa3ab3af9355cf4d108c7612db259eadbb8b96

2 years agoAccept the full ECMAScript 5.1 IdentifyName syntax for keys in objects.
drh [Sun, 30 Apr 2023 20:37:49 +0000 (20:37 +0000)] 
Accept the full ECMAScript 5.1 IdentifyName syntax for keys in objects.

FossilOrigin-Name: 9be2c87518b33713210e3e2fa56924888e19415c71329141d18150b275f6f25e

2 years agoAll JSON to understand floating point literals "Inf" and "QNaN" and "SNaN" in
drh [Sun, 30 Apr 2023 19:45:25 +0000 (19:45 +0000)] 
All JSON to understand floating point literals "Inf" and "QNaN" and "SNaN" in
any case, without the SQLITE_EXTENDED_NAN_INF compile-time option.  This
extension is always available.

FossilOrigin-Name: fb551145e0d84213b3343dc1bc7db70c898b9dea24a72b968240617f4b52d821

2 years agoOmit the json_valid() function. Change the name of json_error() to
drh [Sun, 30 Apr 2023 19:34:41 +0000 (19:34 +0000)] 
Omit the json_valid() function.  Change the name of json_error() to
json_error_position().  Use "NOT json_error_position(X)" as a substitute
for "json_valid5(X)".

FossilOrigin-Name: 34c4e900a9cc51630eeaf01deef74bf5b18d66e0ab1dc61a2023ac8f837a5197

2 years agoMerge all the latest trunk enhancements into the JSON5 branch to
drh [Sat, 29 Apr 2023 18:40:48 +0000 (18:40 +0000)] 
Merge all the latest trunk enhancements into the JSON5 branch to
facilitate testing of the JSON5 branch.

FossilOrigin-Name: 30d12edebad9b097cd5f0da355304d1cb2f8b70d7c7dff378fd7ad7c8ebf9279

2 years agoFix a crash that could occur in fts5 'secure-delete' mode when operating on corrupt...
dan [Sat, 29 Apr 2023 18:31:44 +0000 (18:31 +0000)] 
Fix a crash that could occur in fts5 'secure-delete' mode when operating on corrupt records.

FossilOrigin-Name: 2e85b0e3dcae0915aa6472a3654c8ac72a6b2083c11747f3f657c79bbdaf530b

2 years agoMore ALWAYS() macros.
drh [Sat, 29 Apr 2023 17:35:29 +0000 (17:35 +0000)] 
More ALWAYS() macros.

FossilOrigin-Name: 770b09f7a795956be63a06847059370db8dfc88654878d742b7b826947029962

2 years agoAdd ALWAYS macros on unreachable branches in the new JSON5 logic.
drh [Sat, 29 Apr 2023 17:13:39 +0000 (17:13 +0000)] 
Add ALWAYS macros on unreachable branches in the new JSON5 logic.

FossilOrigin-Name: 91e15ed9d93e51b750172a074dbbcf206128e9476571ce6189b8ea0ba5ab4135

2 years agoSimplification of the logic that normalizes JSON5 integer literals into
drh [Sat, 29 Apr 2023 16:31:08 +0000 (16:31 +0000)] 
Simplification of the logic that normalizes JSON5 integer literals into
canonical JSON integer literals.  Improved reporting of OOM.

FossilOrigin-Name: 01ee613c07fcb87e7d7b7f1b1387982715d1343418f37f4a1dc90e43a76d20e8

2 years agoDo not allow leading zeros on non-zero numeric literals in JSON.
drh [Sat, 29 Apr 2023 16:00:20 +0000 (16:00 +0000)] 
Do not allow leading zeros on non-zero numeric literals in JSON.

FossilOrigin-Name: 3e91494390ba88498eb243f61ce4ef4efa23b58326108a769bc72331d7d7d75b

2 years agoCure CLI generate_series() overflow bug (forum:754e2d4db2a5|noted by forum post ...
larrybr [Sat, 29 Apr 2023 15:42:46 +0000 (15:42 +0000)] 
Cure CLI generate_series() overflow bug (forum:754e2d4db2a5|noted by forum post #754e2d4db2a5) and bring behavior with negative step arguments closer to as-documented and eponymous function in PostgreSQL.

FossilOrigin-Name: 07383758d68e05021ccd393a69c1fa94836dfb02331326c082495a531a384363

2 years agoReplace duped generate_series() test with another corner case. generate_series-revamp
larrybr [Sat, 29 Apr 2023 15:29:29 +0000 (15:29 +0000)] 
Replace duped generate_series() test with another corner case.

FossilOrigin-Name: fb2f08783fdfef4d5123ad66792de2265d39272d40d7bf1be7dd21876e8ffd73

2 years agoSync w/trunk, improve generate_series() variable names.
larrybr [Sat, 29 Apr 2023 12:29:15 +0000 (12:29 +0000)] 
Sync w/trunk, improve generate_series() variable names.

FossilOrigin-Name: ecbf7e13e6454ee879c178c53ffa6face789e93ccbebb0cfac8fde72cb3a4952

2 years agoMinor fixes to to the JSON% parser.
drh [Sat, 29 Apr 2023 12:13:27 +0000 (12:13 +0000)] 
Minor fixes to to the JSON% parser.

FossilOrigin-Name: 2fe684cdcdc3cab4ec3348ca5aa5948e4472c562b739c29faebcb77397f8d969

2 years agoCorrectly recognize an isolated U+feff as a space character in JSON5.
drh [Sat, 29 Apr 2023 00:59:22 +0000 (00:59 +0000)] 
Correctly recognize an isolated U+feff as a space character in JSON5.

FossilOrigin-Name: 4473dc8e3ad18bb6185ed4a819baf881a7d26ac74bc70fae6ba23a0030be8316

2 years agoAdd tests for generate_series(), and change an existing test that enforced varying...
larrybr [Fri, 28 Apr 2023 23:39:16 +0000 (23:39 +0000)] 
Add tests for generate_series(), and change an existing test that enforced varying rowid-to-value mapping with query ordering. (That no longer varies.)

FossilOrigin-Name: 9605db4ae37ef383f8e5568af4543a9e6f336bace6ed80ff80fe4c0b0f437078

2 years agoBug fixes in the logic to skip over JSON5 comments.
drh [Fri, 28 Apr 2023 23:38:54 +0000 (23:38 +0000)] 
Bug fixes in the logic to skip over JSON5 comments.

FossilOrigin-Name: c736b77a2fc5f8f2ba8f770adf05443dfdc3a9847ee519f411e661f76756d611

2 years agoBug fix in the offset computation for json_error().
drh [Fri, 28 Apr 2023 23:19:11 +0000 (23:19 +0000)] 
Bug fix in the offset computation for json_error().

FossilOrigin-Name: 8f7ab5d9210490eb451534df246b82081a5aa252a1bd662659df3da429290837

2 years agoRevise generate_series() extension (in CLI) to address overflow reported in [forum...
larrybr [Fri, 28 Apr 2023 21:25:03 +0000 (21:25 +0000)] 
Revise generate_series() extension (in CLI) to address overflow reported in [forum:754e2d4db2a5|forum post #754e2d4db2a5] and to make behavior better match the like-named PostgreSQL function.

FossilOrigin-Name: beeea3e1b010dace9789f27172462b912819d0f8142a67e3e1e7335211e0e9a8

2 years agoImprovements to the accuracy of json_error(). Add the extension SQL
drh [Fri, 28 Apr 2023 17:38:35 +0000 (17:38 +0000)] 
Improvements to the accuracy of json_error().  Add the extension SQL
functions random_json(SEED) and random_json5(SEED).

FossilOrigin-Name: 8d09dc1c45a8026b94f70273d064e47939f30cadedc17548b5a26ba054a8d3a7

2 years agoAdd the json_error(X) function that returns the 1-based character offset to
drh [Fri, 28 Apr 2023 14:48:11 +0000 (14:48 +0000)] 
Add the json_error(X) function that returns the 1-based character offset to
the first syntax error in JSON5 string X, or 0 if there are no errors.

FossilOrigin-Name: 901ad995d5a722ca2672516205ff488e9acd703a828ca5fc43f11fca5f2af120

2 years agoFix indentation and omit trailing whitespace in the random JSON generator
drh [Fri, 28 Apr 2023 13:25:35 +0000 (13:25 +0000)] 
Fix indentation and omit trailing whitespace in the random JSON generator
script.

FossilOrigin-Name: 629db09fceb7bf37561b52ccee06ebf4df261291e9a8ffcca82b243f6db5ff07

2 years agoFix json_tree() so that it is able to deal with the JNODE_RAW labels of
drh [Fri, 28 Apr 2023 11:02:01 +0000 (11:02 +0000)] 
Fix json_tree() so that it is able to deal with the JNODE_RAW labels of
a JSON5 object.

FossilOrigin-Name: f56528d413d8e622f7c4f18b2f9f2e620bfb441c020461299b35a90072ee6c13

2 years agoMerge all the latest trunk fixes and enhancements into the json5 branch.
drh [Fri, 28 Apr 2023 10:23:01 +0000 (10:23 +0000)] 
Merge all the latest trunk fixes and enhancements into the json5 branch.

FossilOrigin-Name: b5ca15cfc19380cf870b70be6a86e70f2026cc3d6d89005b45891d58c4f11c2d

2 years agoDo not assert() a bad string representation in an sqlite3_value after
drh [Fri, 28 Apr 2023 10:10:52 +0000 (10:10 +0000)] 
Do not assert() a bad string representation in an sqlite3_value after
an OOM.  dbsqlfuzz c822a17a23c524a0ac7cfb203c7198209da15de8.

FossilOrigin-Name: 91fee79a01971259b21478e60a069a711a00efc79ddfececa6224a152cd8d09a

2 years agoMake CLI .load slightly harder to abuse.
larrybr [Fri, 28 Apr 2023 00:28:06 +0000 (00:28 +0000)] 
Make CLI .load slightly harder to abuse.

FossilOrigin-Name: 2779f9270cc431786d0e16ef05ec05b0f22dda2307f3bf17467ad0b25304e160

2 years agoIn the CLI, early out from the output_quoted_string() routine if the
drh [Fri, 28 Apr 2023 00:19:55 +0000 (00:19 +0000)] 
In the CLI, early out from the output_quoted_string() routine if the
input string is NULL.  [forum:/forumpost/8a22c0bfa7|forum post 8a22c0bfa7].

FossilOrigin-Name: 2881978d7b7014738a21c590b0430c4fa40e6b00b9547d0284b7656124523ae9

2 years agoUse a new technique to detect fresh OOM faults in columnName() that does not
drh [Thu, 27 Apr 2023 23:59:51 +0000 (23:59 +0000)] 
Use a new technique to detect fresh OOM faults in columnName() that does not
rely on there being no OOMs prior to entry into columnName(), as
[forum/forumpost/fb6811c2f9|forum post fb6811c2f9] demonstrates a technique
which could cause an OOM prior to entry into columnName().

FossilOrigin-Name: a63346d6a0c0ca7ba4c87499de2e461be9c77e9b5d98f2bebf308cdb6599f33c

2 years agoRemove a faulty assert() from the CLI.
drh [Thu, 27 Apr 2023 23:44:38 +0000 (23:44 +0000)] 
Remove a faulty assert() from the CLI.
[forum:/forumpost/726c4f7db0|Forum post 726c4f7db0].

FossilOrigin-Name: 4bbebb6bfb9910265d91b777c1711b3b8e0732bcf299f7459b20c4ea110422bd

2 years agoRemove an ALWAYS() macro that can in fact sometimes be false.
drh [Thu, 27 Apr 2023 23:40:03 +0000 (23:40 +0000)] 
Remove an ALWAYS() macro that can in fact sometimes be false.
[forum:/forumpost/f0e872fcee|Forum post f0e872fcee].

FossilOrigin-Name: d85880e4ed89e2198beea642818051f7a91a71fea9929be0a7ed0603b493ce47

2 years agoTest cases added, and some bugs fixed.
drh [Thu, 27 Apr 2023 23:29:09 +0000 (23:29 +0000)] 
Test cases added, and some bugs fixed.

FossilOrigin-Name: bc84a82e4ddc1b71025c56c49e62a44f0b12fa87a6417ad61967d9d3121a0d4e

2 years agoFix compilation issues seen with older versions of MSVC.
mistachkin [Thu, 27 Apr 2023 22:17:12 +0000 (22:17 +0000)] 
Fix compilation issues seen with older versions of MSVC.

FossilOrigin-Name: 4ba2a651120391d779a3db9881c0fb17e1322cc9d8738f915a46e31a2f313578

2 years agoAdjust OSTRACE usage so that it works with the changes in the previous check-in.
mistachkin [Thu, 27 Apr 2023 21:31:21 +0000 (21:31 +0000)] 
Adjust OSTRACE usage so that it works with the changes in the previous check-in.

FossilOrigin-Name: 1eb4573e9092d350d00d05ba716cb0272e2dbb1ecbaadc2a7cc22de0b8cc2bda

2 years agoFurther optimizations to the JSON parser.
drh [Thu, 27 Apr 2023 19:30:53 +0000 (19:30 +0000)] 
Further optimizations to the JSON parser.

FossilOrigin-Name: bb8f1c16f244f893170f3d03bc445bd15fc337804c7c3e76c548397f5b95b39a

2 years agoFaster implementation of numberic literal parsing in JSON.
drh [Thu, 27 Apr 2023 19:13:20 +0000 (19:13 +0000)] 
Faster implementation of numberic literal parsing in JSON.

FossilOrigin-Name: 58398292e8473b0b9e4b77dd5ed27334bc24a85d0c399e8d0b86de6fb59dadce

2 years agoAdd support for hexadecimal integer literals in JSON.
drh [Thu, 27 Apr 2023 18:28:10 +0000 (18:28 +0000)] 
Add support for hexadecimal integer literals in JSON.

FossilOrigin-Name: 85e00c9e68d0695592e8f72555ee133c096bfca5a860a8e21d1e0ef756705aaf

2 years agoAll floating point literals "NaN" and "Infinity". Additional variants
drh [Thu, 27 Apr 2023 17:32:29 +0000 (17:32 +0000)] 
All floating point literals "NaN" and "Infinity".  Additional variants
of these literals are available if compiled with SQLITE_EXTENDED_NAN_INF.

FossilOrigin-Name: c13346afbecb92275e741252897d00478dab4be2d158889bc735e80efd9444f5

2 years agoFix handling of reverse solidus in string literals. Allow decimal points
drh [Thu, 27 Apr 2023 16:57:14 +0000 (16:57 +0000)] 
Fix handling of reverse solidus in string literals.  Allow decimal points
in floating point literals to occurs and the beginning or end of the mantissa.

FossilOrigin-Name: d92a6ab2871095ac66c60cfa15dbafa7b762f83d287d452f61792eb30cf5b26b

2 years agoFix the handling of escape solidus in the JSON routines.
drh [Thu, 27 Apr 2023 16:24:12 +0000 (16:24 +0000)] 
Fix the handling of escape solidus in the JSON routines.

FossilOrigin-Name: 676877aca235e620ee12d10235dd6ad009d4968455ec170daeb1998b94a7e0a2

2 years agoJSON string literals may span multiple lines by escaping new line characters.
drh [Thu, 27 Apr 2023 15:48:58 +0000 (15:48 +0000)] 
JSON string literals may span multiple lines by escaping new line characters.

FossilOrigin-Name: 66da4bd4a30c390fa1a7960ce2edaef82e63971ecf33ffb6b906db9f278041c5

2 years agoAllow the labels on JSON objects to be unquoted identifier names.
drh [Thu, 27 Apr 2023 15:11:26 +0000 (15:11 +0000)] 
Allow the labels on JSON objects to be unquoted identifier names.

FossilOrigin-Name: fb428db3f64f148ab9a3478fdcc8b3733e58102b3c8895a482e2551d974d5661

2 years agoPerformance optimization in the JSON parser.
drh [Thu, 27 Apr 2023 14:38:51 +0000 (14:38 +0000)] 
Performance optimization in the JSON parser.

FossilOrigin-Name: 5a88ba743f55d45b1c0ce0090bb3b396bcf7fcf7b3bcb989aaf30b8bb772599e

2 years agoFix a problem on windows sometimes causing SQLITE_NOMEM to be returned if an error...
dan [Thu, 27 Apr 2023 13:55:29 +0000 (13:55 +0000)] 
Fix a problem on windows sometimes causing SQLITE_NOMEM to be returned if an error occurred while opening a temp file.

FossilOrigin-Name: c22a39a6b28e3039fe453c0c0db98744b8a63ef9063cc3f6e0ed67d2506d34be

2 years agoPermit JSON5 whitespace in all contexts of objects and arrays.
drh [Thu, 27 Apr 2023 13:44:26 +0000 (13:44 +0000)] 
Permit JSON5 whitespace in all contexts of objects and arrays.

FossilOrigin-Name: 93f3ab26b57c0469862a56e97d4b3c796b27f9f582046fcff1f2aa8d8910c550

2 years agoTranslate JSON5-only string literal escape sequences into the JSON equivalents.
drh [Thu, 27 Apr 2023 12:24:00 +0000 (12:24 +0000)] 
Translate JSON5-only string literal escape sequences into the JSON equivalents.

FossilOrigin-Name: 14e82f36eed31af1237898728bf353b968523c62b1f8d1d90dbbabd92d0c2834

2 years agoImplement some of the JSON5 enhancements to string and numeric literals.
drh [Wed, 26 Apr 2023 20:26:14 +0000 (20:26 +0000)] 
Implement some of the JSON5 enhancements to string and numeric literals.
This is an incremental check-in of work in progress.

FossilOrigin-Name: 9508efa9d61c0ff0eb73100dd52889dadc5fa2a2091b944a9b8a74e8a5c50e82

2 years agoFix a typo in a printf() format string the sessions module.
dan [Wed, 26 Apr 2023 18:50:49 +0000 (18:50 +0000)] 
Fix a typo in a printf() format string the sessions module.

FossilOrigin-Name: 14d1c4a828660bc137dcea1bb4cc439e1ed3872867a0dab486f6a639ef3bcc45

2 years agoWhen changing a large integer into a floating point value, cancel the
drh [Wed, 26 Apr 2023 18:23:47 +0000 (18:23 +0000)] 
When changing a large integer into a floating point value, cancel the
string representation.  Fix for
[forum:/forumpost/5c74a3bc4a|forum post 5c74a3bc4a].

FossilOrigin-Name: 3e2da8a7e35c839128d26aac575605e1e34889e8ab3484440bdd65c4d752c6bb

2 years agoPartial implementation of JSON5 numeric literal extensions. Use a switch()
drh [Wed, 26 Apr 2023 17:30:28 +0000 (17:30 +0000)] 
Partial implementation of JSON5 numeric literal extensions.  Use a switch()
statement in the parser for better performance.

FossilOrigin-Name: 78404dc37024cad5fe7eacf78ea85b56f08b129a1b9a046c3e1b11275068a485

2 years agoImprovement to the way the JSON performance measure scripts work → keep the
drh [Wed, 26 Apr 2023 15:58:08 +0000 (15:58 +0000)] 
Improvement to the way the JSON performance measure scripts work → keep the
test database in the directory of the test, not in the source tree.

FossilOrigin-Name: ac411dbdcbf0b9040fb5b7de173271f383a6aa303d57f22ebd200809a5b4a6d3

2 years agoWork toward implementing JSON5 whitespace. Untested and incomplete.
drh [Wed, 26 Apr 2023 15:19:19 +0000 (15:19 +0000)] 
Work toward implementing JSON5 whitespace.  Untested and incomplete.

FossilOrigin-Name: d262c059455ebe0650a45a6c1c04d1baf9609c635df352732dd192426e1bdc39

2 years agoFix to the json-speed-check.sh script.
drh [Wed, 26 Apr 2023 13:52:20 +0000 (13:52 +0000)] 
Fix to the json-speed-check.sh script.

FossilOrigin-Name: d839c9544d7f28c1abc779eb2d40f95c1a9386984656fbd29d19b1e7830171bc

2 years agoAdd scripts for JSON performance testing.
drh [Wed, 26 Apr 2023 13:25:30 +0000 (13:25 +0000)] 
Add scripts for JSON performance testing.

FossilOrigin-Name: 3051d6a7c12cbf86634d8fab64f3f3bc9a1eb184260e56a82eb543cb634ba7ef

2 years agoThe json_valid() function only returns true for pure JSON. JSON5 (or
drh [Tue, 25 Apr 2023 21:24:20 +0000 (21:24 +0000)] 
The json_valid() function only returns true for pure JSON.  JSON5 (or
at least that subset of JSON5 that has been so far implemented) is accepted
by all routines, but json_valid() still returns false for JSON5 inputs.
The new json_valid5(X) routine returns true or false if X is or is not valid
JSON5.  All of this is experimental and subject to change.

FossilOrigin-Name: 5d33ab77800765c8b3a13ffcc02ba8a348d71b2b425924560418b517d723494d

2 years agoAllow the sessions module to be configured to capture changes from tables with no...
dan [Tue, 25 Apr 2023 20:41:19 +0000 (20:41 +0000)] 
Allow the sessions module to be configured to capture changes from tables with no explicit PRIMARY KEY.

FossilOrigin-Name: 5d4431bc44e206f48f3bcc1f51399b38bd4cb418e7e50a37495475fb8da04646

2 years agoRemove unused variable ltoj accidentally added by [1783655e].
dan [Tue, 25 Apr 2023 14:54:18 +0000 (14:54 +0000)] 
Remove unused variable ltoj accidentally added by [1783655e].

FossilOrigin-Name: faa1575ce0a39a2335a77057e8769a4e67aedd6326b4627988d03f0cb21fc39a

2 years agoAvoid assuming that an expression in an ON() clause that evaluates to zero implies...
dan [Tue, 25 Apr 2023 14:37:12 +0000 (14:37 +0000)] 
Avoid assuming that an expression in an ON() clause that evaluates to zero implies that the query will return zero rows when the query contains a RIGHT JOIN. [forum:95849acbe1|Forum Post 95849acbe1].

FossilOrigin-Name: 1783655ea422185e75593b89e4ef452a6f5496aefd389f88ce7fe4b7d41d6a98

2 years agoHandle newline-trimmed input TEXT correctly in base64, base85 UDFs.
larrybr [Tue, 25 Apr 2023 04:28:39 +0000 (04:28 +0000)] 
Handle newline-trimmed input TEXT correctly in base64, base85 UDFs.

FossilOrigin-Name: 8f637aae23e6638c064a34262dcf16a3cdfd000fb1fa1b2a834b292fe6659408

2 years agoCheck for OOM sqlite_value_x() returns in base64, base85 extensions.
larrybr [Tue, 25 Apr 2023 02:44:53 +0000 (02:44 +0000)] 
Check for OOM sqlite_value_x() returns in base64, base85 extensions.

FossilOrigin-Name: e6f9c0b1f963033a8e17d13935c5c6b12d263fe10c585035a3d1f1154c6ba5d6

2 years agoAllow trailing commas in objects and arrays of JSON.
drh [Mon, 24 Apr 2023 23:14:34 +0000 (23:14 +0000)] 
Allow trailing commas in objects and arrays of JSON.

FossilOrigin-Name: 4031b231c223db598b45dbd192b027a99a9b82a981d43c75f723a3fb06720b82

2 years agoUpdate the compile-time detection of architecture byte-order in the RTREE
drh [Mon, 24 Apr 2023 19:23:42 +0000 (19:23 +0000)] 
Update the compile-time detection of architecture byte-order in the RTREE
extension so that it is aligned with the latest enhancements in the core.

FossilOrigin-Name: 122431d3a7267ec83768316ab146c0557fb6c0577a4a47ac6ed3d7aa6811ca9a

2 years agoAllow the sessions module to be configured to capture changes from tables with no... sessions-rowid-tables
dan [Mon, 24 Apr 2023 19:22:21 +0000 (19:22 +0000)] 
Allow the sessions module to be configured to capture changes from tables with no explicit PRIMARY KEY.

FossilOrigin-Name: 8a612f0860126c0c8473b1e65fcabb9a8821d8bf09fdf3f6018acfc99df9af71