]>
git.ipfire.org Git - thirdparty/sqlite.git/log
stephan [Wed, 10 May 2023 21:08:01 +0000 (21:08 +0000)]
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
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
drh [Wed, 10 May 2023 13:56:32 +0000 (13:56 +0000)]
Fix harmless compiler warnings from the CBMC compiler.
FossilOrigin-Name:
5bc17cbccdd369486fca049be9d7457e18f162c0e2f5475809ffc8f01c5fa9d2
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
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
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
larrybr [Wed, 10 May 2023 00:20:42 +0000 (00:20 +0000)]
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
drh [Mon, 8 May 2023 13:47:38 +0000 (13:47 +0000)]
Improved error handling when ".open" fails in the CLI.
FossilOrigin-Name:
38544b11f0e19cc6c6f8230a89d28e36c7c3587481deaac6cedbf82338ca0d47
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
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
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
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
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
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
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
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
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
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
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
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
drh [Thu, 4 May 2023 20:28:19 +0000 (20:28 +0000)]
Add the "subsecond" modifier to the date/time functions.
FossilOrigin-Name:
6fcb5a941fba0449d017954590bde7da74e5a1f8fd9b3e1febdff9bed1f22051
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
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
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
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
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
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
drh [Wed, 3 May 2023 13:48:33 +0000 (13:48 +0000)]
Protect a macro argument with parentheses in FTS5.
FossilOrigin-Name:
bc07fe51fe0c6bb50ca8ae1baefcc35c8f5395b2d0de641bf0b0cedc92d754d4
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
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
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
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
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
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
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
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
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
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
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
larrybr [Tue, 2 May 2023 19:33:27 +0000 (19:33 +0000)]
Give CLI quoted args hex escapes (as documented.)
FossilOrigin-Name:
90e434a6ae370a35109802fc336b98298d345f3d23125ef2cc68c31d8e69bb50
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
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
drh [Tue, 2 May 2023 16:34:15 +0000 (16:34 +0000)]
Interpret negative arguments to sqlite3_sleep() as zero.
FossilOrigin-Name:
2b542326aa8e7e1f6ed9d999b95ae5340278e0821277a17de3cc803b4af793ae
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
drh [Tue, 2 May 2023 10:22:05 +0000 (10:22 +0000)]
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
drh [Mon, 1 May 2023 20:42:15 +0000 (20:42 +0000)]
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
drh [Mon, 1 May 2023 19:59:10 +0000 (19:59 +0000)]
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
drh [Mon, 1 May 2023 18:52:35 +0000 (18:52 +0000)]
drh [Mon, 1 May 2023 18:28:48 +0000 (18:28 +0000)]
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
drh [Mon, 1 May 2023 15:57:46 +0000 (15:57 +0000)]
New enhancements to the sqlite3_db_config() constants documentation.
FossilOrigin-Name:
d74011a3c495719fe1816e15251269824396ac2a40e41f7b96f0dd507c9be609
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
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
drh [Mon, 1 May 2023 14:50:54 +0000 (14:50 +0000)]
Fix typos in documentation comments in sqlite3.h.
FossilOrigin-Name:
6a8b00788e7911287a8287277eb603e983e3324c9d62de0889ce6f0b2d848f4a
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
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
drh [Sun, 30 Apr 2023 23:52:55 +0000 (23:52 +0000)]
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
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
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
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
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
drh [Sat, 29 Apr 2023 17:35:29 +0000 (17:35 +0000)]
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
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
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
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
larrybr [Sat, 29 Apr 2023 15:29:29 +0000 (15:29 +0000)]
Replace duped generate_series() test with another corner case.
FossilOrigin-Name:
fb2f08783fdfef4d5123ad66792de2265d39272d40d7bf1be7dd21876e8ffd73
larrybr [Sat, 29 Apr 2023 12:29:15 +0000 (12:29 +0000)]
Sync w/trunk, improve generate_series() variable names.
FossilOrigin-Name:
ecbf7e13e6454ee879c178c53ffa6face789e93ccbebb0cfac8fde72cb3a4952
drh [Sat, 29 Apr 2023 12:13:27 +0000 (12:13 +0000)]
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
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
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
drh [Fri, 28 Apr 2023 23:19:11 +0000 (23:19 +0000)]
Bug fix in the offset computation for json_error().
FossilOrigin-Name:
8f7ab5d9210490eb451534df246b82081a5aa252a1bd662659df3da429290837
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
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
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
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
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
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
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
larrybr [Fri, 28 Apr 2023 00:28:06 +0000 (00:28 +0000)]
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
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
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
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
drh [Thu, 27 Apr 2023 23:29:09 +0000 (23:29 +0000)]
mistachkin [Thu, 27 Apr 2023 22:17:12 +0000 (22:17 +0000)]
Fix compilation issues seen with older versions of MSVC.
FossilOrigin-Name:
4ba2a651120391d779a3db9881c0fb17e1322cc9d8738f915a46e31a2f313578
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
drh [Thu, 27 Apr 2023 19:30:53 +0000 (19:30 +0000)]
drh [Thu, 27 Apr 2023 19:13:20 +0000 (19:13 +0000)]
Faster implementation of numberic literal parsing in JSON.
FossilOrigin-Name:
58398292e8473b0b9e4b77dd5ed27334bc24a85d0c399e8d0b86de6fb59dadce
drh [Thu, 27 Apr 2023 18:28:10 +0000 (18:28 +0000)]
Add support for hexadecimal integer literals in JSON.
FossilOrigin-Name:
85e00c9e68d0695592e8f72555ee133c096bfca5a860a8e21d1e0ef756705aaf
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
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
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