]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
2 years agoDoc typo fix. No code changes. oo1-no-cache-Stmt.columnCount
stephan [Wed, 10 May 2023 21:08:01 +0000 (21:08 +0000)] 
Doc typo fix. No code changes.

FossilOrigin-Name: e841b142f583e49350c7cdd14dc4da72434cc67c7b521ae741e03e37e785d7e0

2 years agoResolve the JS-side corner case reported in [forum:7774b773937cbe0a | forum post...
stephan [Wed, 10 May 2023 21:06:02 +0000 (21:06 +0000)] 
Resolve the JS-side corner case reported in [forum:7774b773937cbe0a | forum post 7774b773937cbe0a] by not caching oo1.Stmt.columnCount.

FossilOrigin-Name: c3d25c3a25e79e01c4ad0cf11f7dc3b0fb1932f3bcd04935a728ef62f7e07cf1

2 years agoEnhance the split-sqlite3c.tcl script so that it uses single-character
drh [Wed, 10 May 2023 16:04:04 +0000 (16:04 +0000)] 
Enhance the split-sqlite3c.tcl script so that it uses single-character
extensions on subordinate source files, even when the number of subordinates
exceeds 9.  This is not yet needed, but might be soon.

FossilOrigin-Name: 4150e416263f24efcbfe68d5b1e15ec7e79df41dff0b6dfdc59f06ee9e205049

2 years agoFix harmless compiler warnings from the CBMC compiler.
drh [Wed, 10 May 2023 13:56:32 +0000 (13:56 +0000)] 
Fix harmless compiler warnings from the CBMC compiler.

FossilOrigin-Name: 5bc17cbccdd369486fca049be9d7457e18f162c0e2f5475809ffc8f01c5fa9d2

2 years agoRename sqlite3IsTableConstraint() to sqlite3IsSingleTableConstraint() and
drh [Wed, 10 May 2023 11:05:59 +0000 (11:05 +0000)] 
Rename sqlite3IsTableConstraint() to sqlite3IsSingleTableConstraint() and
improve its header comment, in an attempt to make the code easier to reason
about.  No functional changes - should generate identical machine code.

FossilOrigin-Name: 5dae897431a0a9dbb354c4a8a48f935ea7438035d96f90b83dd81eae434c8277

2 years agoAdd a missing comma to the documentation for the OP_Jump opcode. No changes
drh [Wed, 10 May 2023 10:03:28 +0000 (10:03 +0000)] 
Add a missing comma to the documentation for the OP_Jump opcode.  No changes
to code.

FossilOrigin-Name: 7e2c2b1cee760af68cf303ce9ec1babbaf607fe54e043893c046d2d37cd0ab46

2 years agoNew restriction on the push-down optimization to prevent an ON or USING clause
drh [Wed, 10 May 2023 00:33:21 +0000 (00:33 +0000)] 
New restriction on the push-down optimization to prevent an ON or USING clause
on the left side of a RIGHT JOIN from being pushed down into a subquery that
is on the right side of that RIGHT JOIN.
[forum:/forumpost/a7d4be7fb6|Forum post a7d4be7fb6].
Also add comments to describe previously undocumented push-down optimization
restrictions.

FossilOrigin-Name: da3fba18742b6e0bd5290bee9d86a2d5cb1ff2de25d737ef93060d7c1143273f

2 years agoFix bug in fall-back logic of CLI .clone
larrybr [Wed, 10 May 2023 00:20:42 +0000 (00:20 +0000)] 
Fix bug in fall-back logic of CLI .clone

FossilOrigin-Name: 0dcd9785c11e33e6393b7c1be1ff8fe7129f280439aed12de22d4687609a8bac

2 years agoFix recover1.test so that it works with DEFAULT_AUTOVACUUM builds.
dan [Mon, 8 May 2023 16:26:22 +0000 (16:26 +0000)] 
Fix recover1.test so that it works with DEFAULT_AUTOVACUUM builds.

FossilOrigin-Name: 4ffae48e831eedf8f5e61dc6d38817c0fdccfb2f4f1189d07f9722b9e3a48b5e

2 years agoImproved error handling when ".open" fails in the CLI.
drh [Mon, 8 May 2023 13:47:38 +0000 (13:47 +0000)] 
Improved error handling when ".open" fails in the CLI.

FossilOrigin-Name: 38544b11f0e19cc6c6f8230a89d28e36c7c3587481deaac6cedbf82338ca0d47

2 years agoIn editPage(), if an attempt is made to edit an empty 64KB page, then take
drh [Mon, 8 May 2023 13:38:14 +0000 (13:38 +0000)] 
In editPage(), if an attempt is made to edit an empty 64KB page, then take
the slow path through rebuildPage(), in order to maintain strict invariants
in the editPage() code.
[forum:/forumpost/0f37727c0d|Forum post 0f37727c0d].

FossilOrigin-Name: a865e574e510c1ca192d0bd5293fb583def90f7ed086af2c89ca856ce93d115b

2 years agoEnsure that the label for a JSON object really is a string and not an array
drh [Mon, 8 May 2023 11:11:08 +0000 (11:11 +0000)] 
Ensure that the label for a JSON object really is a string and not an array
or object that just happens to end with a string.
dbsqfuzz 32f62ed8676d0a153dbe756aeae3202d3670fe50.

FossilOrigin-Name: c335737c2889722ea05b732a5efff8a2f31140c18ca038c41e05c2a26e0db5bd

2 years agoAdd tests for recovering data to a lost-and-found table from a utf-16 db. No code...
dan [Mon, 8 May 2023 10:51:35 +0000 (10:51 +0000)] 
Add tests for recovering data to a lost-and-found table from a utf-16 db. No code changes.

FossilOrigin-Name: 832f6e9f797eecb9a3dae4e7e20c70eda1e91372e9d3ce4223d57f26582cdbd2

2 years agoIt turns out that pagerExclusiveLock() can be called with the lock state
drh [Sun, 7 May 2023 03:23:32 +0000 (03:23 +0000)] 
It turns out that pagerExclusiveLock() can be called with the lock state
already set to RESERVED if the SQLITE_FCNTL_PERSIST_WAL setting is set and
a specific sequence of multiple journal mode changes occur.
Enhance pagerExclusiveLock() to deal with this.
[forum:/forumpost/8130545bc6|Forum post 8130545bc6]

FossilOrigin-Name: 2bb8d977392f635515aa4a36f6f763a2e4858f7adc1120519e2e74c04a9749b5

2 years agoFix a comment in the JSON logic. No code changes.
drh [Fri, 5 May 2023 20:22:06 +0000 (20:22 +0000)] 
Fix a comment in the JSON logic.  No code changes.

FossilOrigin-Name: 3f30ea5ec9d849c64d8c38f4fffbc06c749ecff91ab90bc29b3a3cc9ec5b9df0

2 years agoFix a buffer overrun that could occur when using the format() function to format...
dan [Fri, 5 May 2023 19:36:13 +0000 (19:36 +0000)] 
Fix a buffer overrun that could occur when using the format() function to format a very small real value with the "," modifier.

FossilOrigin-Name: 910e770ad4d8e8e45bf069af963f2e975bfcfb882578dc5fe714cd2396258934

2 years agoReduce the maximum depth of nesting in json objects to 1000.
dan [Fri, 5 May 2023 15:52:44 +0000 (15:52 +0000)] 
Reduce the maximum depth of nesting in json objects to 1000.

FossilOrigin-Name: c7697a0d45bfab20ec09f17ad65e375ddb43af6762278481c13a65c9a784978e

2 years agoDo not attempt to run json502.test with SQLITE_OMIT_VIRTUALTABLE builds.
dan [Fri, 5 May 2023 15:28:35 +0000 (15:28 +0000)] 
Do not attempt to run json502.test with SQLITE_OMIT_VIRTUALTABLE builds.

FossilOrigin-Name: 6664850647cd314c076842df5bf94e4f12d9be7fb56795b2af25f15c1267fa4d

2 years agoUpdates to compile-time option usage and especially to the compile-time option
drh [Fri, 5 May 2023 14:16:31 +0000 (14:16 +0000)] 
Updates to compile-time option usage and especially to the compile-time option
test script in tool/omittest.tcl.

FossilOrigin-Name: fece588b186c4f9f76d626313e35336fd5681e966e9bd0fa1053b147c4e3c315

2 years agoFix the pager2-3.1 test case so that it does not run if a required
drh [Fri, 5 May 2023 14:14:10 +0000 (14:14 +0000)] 
Fix the pager2-3.1 test case so that it does not run if a required
dependence (shared-cache) is omitted from the build.  Fix for
[forum:/forumpost/7a028538a7|forum post 7a028538a7].

FossilOrigin-Name: a77c8a780f884d0cb01d20912cf1aeec0bb7f3999d23117fe5bd82bc4405d483

2 years agoAllow virtual tables to prepare writes to shadow tables in defensive mode from with...
dan [Fri, 5 May 2023 11:47:31 +0000 (11:47 +0000)] 
Allow virtual tables to prepare writes to shadow tables in defensive mode from with xRelease() callbacks - even if the xRelease() is invoked from within sqlite3_finalize().

FossilOrigin-Name: a17106494a8a67bc92cfe27ee8ef9bf160517d6930d796980ae12287b98c1cfe

2 years agoImproved formatting of comments on SQLITE_CONFIG_xxx defines as those
drh [Fri, 5 May 2023 11:33:59 +0000 (11:33 +0000)] 
Improved formatting of comments on SQLITE_CONFIG_xxx defines as those
comments are used by documentation.

FossilOrigin-Name: 2cb840bc9df81f76699f742e5db03835f4c272548cca0e6d24412503db3d76b3

2 years agoAdd the "subsecond" modifier to the date/time functions.
drh [Thu, 4 May 2023 20:28:19 +0000 (20:28 +0000)] 
Add the "subsecond" modifier to the date/time functions.

FossilOrigin-Name: 6fcb5a941fba0449d017954590bde7da74e5a1f8fd9b3e1febdff9bed1f22051

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