]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
23 months agoRemove a faulty assert() that was added just a few check-ins ago by
drh [Thu, 19 Oct 2023 20:06:20 +0000 (20:06 +0000)] 
Remove a faulty assert() that was added just a few check-ins ago by
[8b6fffb552c30f9c].

FossilOrigin-Name: 18e7c826f08bce51719ef045daa60200b33790f2fe312c6853f9ef6c7e9d5030

23 months agoFor TK_ORDER expression nodes to always be full-size.
drh [Thu, 19 Oct 2023 19:57:57 +0000 (19:57 +0000)] 
For TK_ORDER expression nodes to always be full-size.

FossilOrigin-Name: a5c73b46f4772f214ffbfa31cb87dce82ebd690addabef539bd09def26b7744d

23 months agoFix an adverse interaction between the new aggregate ORDER BY logic and the
drh [Thu, 19 Oct 2023 19:19:59 +0000 (19:19 +0000)] 
Fix an adverse interaction between the new aggregate ORDER BY logic and the
expression compressor.

FossilOrigin-Name: f371e4c0f8ea73aee9ea0645f396e3da20f1eb97be34c83de9d94c9cbb959934

23 months agoIn the TreeView logic (used for debugging only) do not show unnecessary fields
drh [Thu, 19 Oct 2023 19:08:33 +0000 (19:08 +0000)] 
In the TreeView logic (used for debugging only) do not show unnecessary fields
of the Window object when a function has a FILTER.

FossilOrigin-Name: d2c6b82c346dbf39e07f09d187e4a8216a56caa7df3dcfafc82e32f676a1db8a

23 months agoFix an fts3 problem caused by reducing the page size using the undocumented "nodesize...
dan [Thu, 19 Oct 2023 18:23:17 +0000 (18:23 +0000)] 
Fix an fts3 problem caused by reducing the page size using the undocumented "nodesize" option, then running an incremental-merge.

FossilOrigin-Name: 2875dcb1ac86db2704ad377d719f308c8837e196b49c98b20ceda1324f2d27ea

23 months agoSimplify the Expr compression logic slightly by adding the new EP_FullSize
drh [Thu, 19 Oct 2023 18:07:58 +0000 (18:07 +0000)] 
Simplify the Expr compression logic slightly by adding the new EP_FullSize
property to expressions that are exceptions to the rule and should not be
compressed.

FossilOrigin-Name: d5ae82ec52eafed5e3dc8c9d99685f6523fce7d973ef7e8d9d75ed9b8912426a

23 months agoSimplification to sqlite3GetVarint32() to avoid confusing gcov.
drh [Thu, 19 Oct 2023 13:35:22 +0000 (13:35 +0000)] 
Simplification to sqlite3GetVarint32() to avoid confusing gcov.

FossilOrigin-Name: 89862c51ad9715bedf5b029db484602e740f0db7404970d482ce503c1b9a0ed2

23 months agoFix an error in a debugging routine used inside of testcase(). Does not
drh [Thu, 19 Oct 2023 13:00:41 +0000 (13:00 +0000)] 
Fix an error in a debugging routine used inside of testcase().  Does not
appear in production.  Problem discovered by scan-build.

FossilOrigin-Name: c6c9d7ed6dbc71b998aeaaa1bdeb36b1bb9b902f9d6088ad36db29f8ea8b7ef6

23 months agoNew assert() statements to help verify correctness of the ORDER BY aggregate
drh [Thu, 19 Oct 2023 12:36:59 +0000 (12:36 +0000)] 
New assert() statements to help verify correctness of the ORDER BY aggregate
code.

FossilOrigin-Name: 8b6fffb552c30f9cbf7102c2e26a7b486c4c9edd9f494d803de7004db3018277

23 months agoFix the sqlite3ReferencesSrcList() routine so that it recognizes columns
drh [Thu, 19 Oct 2023 12:12:49 +0000 (12:12 +0000)] 
Fix the sqlite3ReferencesSrcList() routine so that it recognizes columns
in the ORDER BY clause of an aggregate.  Fixes a problem with
[634286828dad873d] discoverd by dbsqlfuzz.

FossilOrigin-Name: 3d26f1aaa4876f21f2c3abf13bbc37933c8f32471153e29019880cc9530cb011

23 months agoAdd support for ORDER BY on the argument list of aggregate functions.
drh [Thu, 19 Oct 2023 01:26:34 +0000 (01:26 +0000)] 
Add support for ORDER BY on the argument list of aggregate functions.

FossilOrigin-Name: 634286828dad873dba244751441aa729cd37b6ed5899fa5875643d4af03c006c

23 months agoMerge the latest changes from trunk. agg-orderby
drh [Thu, 19 Oct 2023 01:09:49 +0000 (01:09 +0000)] 
Merge the latest changes from trunk.

FossilOrigin-Name: d18bc400146812c8c5048af7eaf4a5371ddd80fc9ce895d253b6114b9eae7fc3

23 months agoFix a false-positive in run-time error checking.
drh [Thu, 19 Oct 2023 00:25:35 +0000 (00:25 +0000)] 
Fix a false-positive in run-time error checking.

FossilOrigin-Name: cd63eec0758960d9ee63d7b964ec62e2bd622f8c94a58bd9556046381ffa18d0

23 months agoChanges for test coverage.
drh [Wed, 18 Oct 2023 23:48:24 +0000 (23:48 +0000)] 
Changes for test coverage.

FossilOrigin-Name: ddfa09c6031afd4391a9888381bf09214cd542a826b431eeb1537a070f65c5f9

23 months agoTest case for alter column that is used in the ORDER BY of an aggregate.
drh [Wed, 18 Oct 2023 22:53:22 +0000 (22:53 +0000)] 
Test case for alter column that is used in the ORDER BY of an aggregate.

FossilOrigin-Name: 648ddb3a8eb358fc6c95aaa561ae68476c77996abda23890054ac07166278cef

23 months agoDeal with an OOM condition while processing aggregate ORDER BYs.
drh [Wed, 18 Oct 2023 22:27:59 +0000 (22:27 +0000)] 
Deal with an OOM condition while processing aggregate ORDER BYs.

FossilOrigin-Name: b6d44427ec0184880ad14919667e2f526777c5085ffa636f6734cb5951a31225

23 months agoMake sure all terms of the ORDER BY within an aggregate go through aggregate
drh [Wed, 18 Oct 2023 22:03:48 +0000 (22:03 +0000)] 
Make sure all terms of the ORDER BY within an aggregate go through aggregate
analysis.  Do not attach an aggregate ORDER BY to a window function.

FossilOrigin-Name: 16f3805514a741405f70e0ee3b5a6b67720bc75719372e82daa4136fe411ea2b

23 months agoBasic test cases.
drh [Wed, 18 Oct 2023 19:44:59 +0000 (19:44 +0000)] 
Basic test cases.

FossilOrigin-Name: 6cccf86c362631ada0c6cbaf661520648f8bbf7ae2b137b3d7d959647387e5c2

23 months agoFix one minor error in order to get all legacy tests to pass.
drh [Wed, 18 Oct 2023 19:07:45 +0000 (19:07 +0000)] 
Fix one minor error in order to get all legacy tests to pass.

FossilOrigin-Name: 5a885139c433a143302ab43dc5aaac1fed9db61548b4ff7d4b19b3a6a46c8fcc

23 months agoORDER BY on aggregates seem to work, at least for simple smoke tests. Lots
drh [Wed, 18 Oct 2023 18:11:11 +0000 (18:11 +0000)] 
ORDER BY on aggregates seem to work, at least for simple smoke tests.  Lots
more testing is needed though.  Surely there are many bugs.

FossilOrigin-Name: 64c12a835b6f1df8f2f5f4a41de083f6b3fc7f8030042c6aac0082382cd9cc4d

23 months agoBasic error checking. Resolve symbols in the aggregate ORDER BY expressions.
drh [Wed, 18 Oct 2023 13:58:31 +0000 (13:58 +0000)] 
Basic error checking.  Resolve symbols in the aggregate ORDER BY expressions.

FossilOrigin-Name: c83a53a574d312130d1238c05ffa449d8bed2535d5ef5b5d9cf02f894494cca4

23 months agoEnhance the parser so that it can accept an ORDER BY clause on a function
drh [Wed, 18 Oct 2023 13:18:52 +0000 (13:18 +0000)] 
Enhance the parser so that it can accept an ORDER BY clause on a function
invocation.  For this incremental check-in, the ORDER BY clause is currently
ignored.

FossilOrigin-Name: 3a98ff24bf468ed42d410a9a12d9f9b2ca154c7babe99fd6bc6f7b0565e0d132

23 months agoJS: replace one errant reference to 'self' with 'globalThis' and remove a separate...
stephan [Tue, 17 Oct 2023 23:35:47 +0000 (23:35 +0000)] 
JS: replace one errant reference to 'self' with 'globalThis' and remove a separate dead-code 'self' reference.

FossilOrigin-Name: da1a47932ea96755b1e11fc2547ce11780b87846af6885857318ff18f1e62c31

23 months agoFix a harmless compiler warning about variant types for a pointer function.
drh [Tue, 17 Oct 2023 19:33:52 +0000 (19:33 +0000)] 
Fix a harmless compiler warning about variant types for a pointer function.

FossilOrigin-Name: 37ff0d8e7f91c32e8c53bb015280be47c66bf599281b640a8d3fd41335b55289

23 months agoMake a new branch in the SqlExec opcode reachable by tests.
drh [Tue, 17 Oct 2023 18:59:13 +0000 (18:59 +0000)] 
Make a new branch in the SqlExec opcode reachable by tests.

FossilOrigin-Name: 023ad470b68b7c09e159244493a6d0285d706efdecd8719a71e6885509d4750c

23 months agoOmit an unreachable branch when SQLITE_ENABLE_API_ARMOR is not defined.
drh [Tue, 17 Oct 2023 18:28:27 +0000 (18:28 +0000)] 
Omit an unreachable branch when SQLITE_ENABLE_API_ARMOR is not defined.

FossilOrigin-Name: 5f8b807b568f4f9ec65f1c924e0e1ac2f996f405e045204145ad7116be7580ee

23 months agoChanges to sqlite3IntFloatCompare() in an attempt to better measure
drh [Tue, 17 Oct 2023 17:53:46 +0000 (17:53 +0000)] 
Changes to sqlite3IntFloatCompare() in an attempt to better measure
branch coverage in the face of aggressive compiler optimization.

FossilOrigin-Name: 5781d043ffeccda03357ee530564987443dc1deb6111a4028701b4a98fdfe16d

23 months agoFix a JSON bug introduced by the optimization of [df099ad713011b67] and
drh [Tue, 17 Oct 2023 13:41:41 +0000 (13:41 +0000)] 
Fix a JSON bug introduced by the optimization of [df099ad713011b67] and
first appearing in 3.43.0.  The problem occurs when doing a JSON_EXTRACT()
on an array element that was added by JSON_SET() without first reparsing.
Reported by [forum:/forumpost/fc0e3f1e2a|forum post fc0e3f1e2a].

FossilOrigin-Name: e5099c549a1d8959d4015516f090b8e6438e517a64b20651175bf5413d94fb58

23 months agoEnhance the documentation of sqlite3_deserialize() to make it clear that
drh [Tue, 17 Oct 2023 11:57:36 +0000 (11:57 +0000)] 
Enhance the documentation of sqlite3_deserialize() to make it clear that
the input database may not be in WAL mode.
[forum:/forumpost/a7e272cee9ac469f|Forum post a7e272cee9ac469f]

FossilOrigin-Name: e754789971e019647e7068f76dc6f9778675e4849fe51d8b25b39d3edf2379e5

23 months agoWhen an I/O or similar error occurs during a transaction with
drh [Tue, 17 Oct 2023 10:47:42 +0000 (10:47 +0000)] 
When an I/O or similar error occurs during a transaction with
journal_mode=MEMORY, attempt to rollback before closing the journal, as
all rollback information is forgotten when a memory rollback journal is
closed.

FossilOrigin-Name: 1d67f75de259e5a26b751a50432822a268ebe367cda6510891ab81a15e5daa1c

23 months agoHarden API_ARMOR checks for sqlite3_stmt_scanstatus_v2().
stephan [Tue, 17 Oct 2023 02:15:49 +0000 (02:15 +0000)] 
Harden API_ARMOR checks for sqlite3_stmt_scanstatus_v2().

FossilOrigin-Name: d3f38e813ba3b887e973af034713cd58fdfbe07da375b154accc7b5790cfaeda

23 months agoJNI: add aggregate function support to the wrapper1 API.
stephan [Mon, 16 Oct 2023 16:04:23 +0000 (16:04 +0000)] 
JNI: add aggregate function support to the wrapper1 API.

FossilOrigin-Name: 15b28b340a5c5efdbfe3fbed16ee0b699561edaeebb77446addf2374bdf9357e

23 months agoJNI: add scalar UDF support to the wrapper1 API.
stephan [Mon, 16 Oct 2023 14:31:13 +0000 (14:31 +0000)] 
JNI: add scalar UDF support to the wrapper1 API.

FossilOrigin-Name: a850535766d2243d9475e1523c753615875a2da9c9d82a41a9fb61b141c6334a

23 months agoJNI: initial draft (untested - requires more infrastructure first) of a UDF argument...
stephan [Mon, 16 Oct 2023 13:04:42 +0000 (13:04 +0000)] 
JNI: initial draft (untested - requires more infrastructure first) of a UDF argument/result-handling interface which completely hides the C-style API from the client.

FossilOrigin-Name: 43b10a5cf9cb8be53d62914f340d533e60a70bf4caa8b9b91c0f867fa0f70493

23 months agoJNI: cleanups in Tester2 and update the jar makefile target to account for [9fcdf96ad...
stephan [Mon, 16 Oct 2023 10:38:34 +0000 (10:38 +0000)] 
JNI: cleanups in Tester2 and update the jar makefile target to account for [9fcdf96adca2].

FossilOrigin-Name: abc82bf4b800dde1b6e6172c7be816edb391fdbed5dbd2749f54623fdf3bf8e6

23 months agoJNI: move the C-style API parts into the capi subpackage and the higher-level wrapper...
stephan [Mon, 16 Oct 2023 10:27:19 +0000 (10:27 +0000)] 
JNI: move the C-style API parts into the capi subpackage and the higher-level wrapper into (tentatively) wrapper1, so that CApi.java can support multiple independent higher-level wrappers without name collisions, and CApi can be made public but have the option to be elided from wrapper-level javadocs for wrappers which do not wish to expose it.

FossilOrigin-Name: 9fcdf96adca25cc2d2f4b75ec4eea94254fb9671c5ba63b88213d7f62dedff1b

23 months agoJNI: after calling a Java-side UDF, zero-out the pointer of the Java-side sqlite3_con...
stephan [Mon, 16 Oct 2023 08:10:11 +0000 (08:10 +0000)] 
JNI: after calling a Java-side UDF, zero-out the pointer of the Java-side sqlite3_context and sqlite3_value array entries to avoid misbehavior if a client makes the mistake of holding a reference to one of those objects.

FossilOrigin-Name: 9fc3104f76a83d600beb11d91feb97bcea8bc7f7cda8cd73e7a6b81fbba879df

23 months agoJNI: do not expose SQLITE_OPEN_... flags which are specific to VFSes.
stephan [Mon, 16 Oct 2023 08:05:51 +0000 (08:05 +0000)] 
JNI: do not expose SQLITE_OPEN_... flags which are specific to VFSes.

FossilOrigin-Name: 2b4e53d8be42a3bc098317abd8bb58b8ddc25094d80787f784bbc896f4f7b976

2 years agoChange 3 instance of #if SQLITE_ENABLE_API_ARMOR to #ifdef for consistency with how...
stephan [Sun, 15 Oct 2023 13:36:21 +0000 (13:36 +0000)] 
Change 3 instance of #if SQLITE_ENABLE_API_ARMOR to #ifdef for consistency with how it is normally used.

FossilOrigin-Name: dd766eeb59fec71627dd8ad8f120875b96fda455c6401e5671e086b785e2b2bc

2 years agoJNI: enable all optional components in the default build and fix a test broken by...
stephan [Sun, 15 Oct 2023 13:32:38 +0000 (13:32 +0000)] 
JNI: enable all optional components in the default build and fix a test broken by an option toggle.

FossilOrigin-Name: 5586a9df58a400c20a6815e8b0fbc7a7c49e5ef89daf92c452f1990586ca78ae

2 years agoCorrect non-void return from sqlite3_preupdate_hook() when API_ARMOR is enabled....
stephan [Sun, 15 Oct 2023 13:25:39 +0000 (13:25 +0000)] 
Correct non-void return from sqlite3_preupdate_hook() when API_ARMOR is enabled. Broken by [6cb77503484e].

FossilOrigin-Name: 40f5906f48d3f1f44d54e5b271fe04e7082166e50e3ed250bb57a4760f112e8a

2 years agoAdd coverage of more functions to SQLITE_ENABLE_API_ARMOR builds.
stephan [Sun, 15 Oct 2023 12:11:10 +0000 (12:11 +0000)] 
Add coverage of more functions to SQLITE_ENABLE_API_ARMOR builds.

FossilOrigin-Name: 6cb77503484e104a51f08690974d6e19c336ab5467d327f84be1d042615f008c

2 years agoJNI: extend [baf220e78a46246c47] to include macro-generated sqlite3_value_...() bindings. api-armor-audit
stephan [Sat, 14 Oct 2023 20:44:13 +0000 (20:44 +0000)] 
JNI: extend [baf220e78a46246c47] to include macro-generated sqlite3_value_...() bindings.

FossilOrigin-Name: ad34b2542e330c22fcf331810ab43e66346b1bad8de1a3989e6208cfa0fc2f92

2 years agoJNI: make the sqlite3_value_...() family of bindings resistent to NULL arguments.
stephan [Sat, 14 Oct 2023 20:34:40 +0000 (20:34 +0000)] 
JNI: make the sqlite3_value_...() family of bindings resistent to NULL arguments.

FossilOrigin-Name: baf220e78a46246c476cd429ac131698db5fa66f62fb5725d4f736fe5246283c

2 years agoDo not allow an ALTER TABLE ADD COLUMN on a STRICT table if the added column
drh [Sat, 14 Oct 2023 20:24:52 +0000 (20:24 +0000)] 
Do not allow an ALTER TABLE ADD COLUMN on a STRICT table if the added column
contains a DEFAULT clause that would violate the type of the added column.

FossilOrigin-Name: 75b075863eaa56e36635a1d27740d37de8600ba92099b3fad9378a1e6ce12c0e

2 years agoAdd API_ARMOR support to the scanstatus family of functions.
stephan [Sat, 14 Oct 2023 20:01:55 +0000 (20:01 +0000)] 
Add API_ARMOR support to the scanstatus family of functions.

FossilOrigin-Name: 2f3101f016d5f8d954a262befdf5e0f938a223e444bc534e1d3655b733f4663d

2 years agoThe rtreecheck() SQL function should not invoke BEGIN or COMMIT as this
drh [Sat, 14 Oct 2023 17:14:53 +0000 (17:14 +0000)] 
The rtreecheck() SQL function should not invoke BEGIN or COMMIT as this
causes issues for statement transactions.

FossilOrigin-Name: b7b2e30b570efda338c62e88446dedb6667640f33855b2422ad20c7b569b025a

2 years agoJNI: add a missing result code check to sqlite3_bind_value(stmt, null).
stephan [Sat, 14 Oct 2023 16:57:48 +0000 (16:57 +0000)] 
JNI: add a missing result code check to sqlite3_bind_value(stmt, null).

FossilOrigin-Name: f1a357f42de58927c33e7047dc4417e3b9549d7529625f30c583e66b7d603b00

2 years agoJNI: add missing sqlite3_bind_value() and minor memory-safety-related cleanups.
stephan [Sat, 14 Oct 2023 16:56:12 +0000 (16:56 +0000)] 
JNI: add missing sqlite3_bind_value() and minor memory-safety-related cleanups.

FossilOrigin-Name: 3900031763abf4b2aab7b57e886cc407571d0d5928b74f24dcea8fb7371655af

2 years agoAdd API_ARMOR support to the sqlite3_result_...() family of functions and sqlite3_bin...
stephan [Sat, 14 Oct 2023 16:29:36 +0000 (16:29 +0000)] 
Add API_ARMOR support to the sqlite3_result_...() family of functions and sqlite3_bind_zeroblob64().

FossilOrigin-Name: afabe3e35a66625527e2881749cdb6e13300888ab57bc0f05889d0e3ee203d73

2 years agoMore API_ARMOR additions.
stephan [Sat, 14 Oct 2023 14:53:18 +0000 (14:53 +0000)] 
More API_ARMOR additions.

FossilOrigin-Name: 78ebf838f645742f87733665cd72af736df345683b27377a2c8310c893b1769d

2 years agoAdd column name to API_ARMOR check in sqlite3_blob_open() to avoid a null-pointer...
stephan [Sat, 14 Oct 2023 13:24:30 +0000 (13:24 +0000)] 
Add column name to API_ARMOR check in sqlite3_blob_open() to avoid a null-pointer deref.

FossilOrigin-Name: 0114a6622afc4588c47e98d804340449417b603dc4831513eab4d8e4ccb15d42

2 years agoRevert [f6cd88e6b234] - the NULL callback case is perfectly legal.
stephan [Sat, 14 Oct 2023 12:45:11 +0000 (12:45 +0000)] 
Revert [f6cd88e6b234] - the NULL callback case is perfectly legal.

FossilOrigin-Name: 718ab67607895176e529eb7469832d262a347d030e83e7ee66d3b4704bf933de

2 years agoBring JNI-side sqlite3_last_insert_rowid() and sqlite3_table_column_metadata() in...
stephan [Sat, 14 Oct 2023 12:40:57 +0000 (12:40 +0000)] 
Bring JNI-side sqlite3_last_insert_rowid() and sqlite3_table_column_metadata() in line with the core's NULL handling.

FossilOrigin-Name: c2afc1c2a2fc9bdf3d7b7701004e0fa40965cf8c6b7cf44b46f2ca37cfa1d2aa

2 years agoExtend API_ARMOR checks on sqlite3_commit/rollback_hook() to include a check for...
stephan [Sat, 14 Oct 2023 12:20:55 +0000 (12:20 +0000)] 
Extend API_ARMOR checks on sqlite3_commit/rollback_hook() to include a check for the callback pointer.

FossilOrigin-Name: f6cd88e6b234560f729ff00da86144a0121ad96d5a07d227c9ffa3f43c22f72d

2 years agoAdd missing JNI bindings for sqlite3_db_readonly() and sqlite3_db_name(). Code-adjace...
stephan [Sat, 14 Oct 2023 12:19:59 +0000 (12:19 +0000)] 
Add missing JNI bindings for sqlite3_db_readonly() and sqlite3_db_name(). Code-adjacent tweaks for the API_ARMOR audit.

FossilOrigin-Name: e5eace747ae656f1e05a346e53a2827242e57107567d2c3470e292cf0b40858d

2 years agoBug fix in sqlite3_analyzer: for databases larger than 1GiB, take into
drh [Sat, 14 Oct 2023 10:54:37 +0000 (10:54 +0000)] 
Bug fix in sqlite3_analyzer: for databases larger than 1GiB, take into
account the lock-byte page when calculating the number of freelist pages.

FossilOrigin-Name: 26a909cdd32afee0f15968ca6f611eb259373b2a2195d0b3d47cfba103f1e6d6

2 years agoEarlier detection of a host of errors in CREATE TABLE, such the CREATE TABLE
drh [Fri, 13 Oct 2023 22:19:23 +0000 (22:19 +0000)] 
Earlier detection of a host of errors in CREATE TABLE, such the CREATE TABLE
statement itself fails, rather than generating an error on the first attempted
use of the created table.

FossilOrigin-Name: 348fa7aaf7958b3fb689ed023d946064ae8d92718a497a346e95114a2410cbf5

2 years agoApply the correct affinity to DEFAULT values that are TRUE or FALSE.
drh [Fri, 13 Oct 2023 19:41:20 +0000 (19:41 +0000)] 
Apply the correct affinity to DEFAULT values that are TRUE or FALSE.

FossilOrigin-Name: 4958db70c8103e249748fdeffc35f1c385e2e550e8a48697b82fcd797f3016be

2 years agoDo not allow triggers on shadow tables under defensive mode.
drh [Fri, 13 Oct 2023 18:29:18 +0000 (18:29 +0000)] 
Do not allow triggers on shadow tables under defensive mode.

FossilOrigin-Name: 44b932ff16e35814febd842d11215cf243393f173aade33ceded473598221e88

2 years agoFix an fts5 problem caused by a 'rebuild' followed by a DELETE in secure-delete mode.
dan [Fri, 13 Oct 2023 15:59:11 +0000 (15:59 +0000)] 
Fix an fts5 problem caused by a 'rebuild' followed by a DELETE in secure-delete mode.

FossilOrigin-Name: 18be505c628d9b13431ca6cfe822d4aeae119c53ae08aef26a67f310a8bd7bd3

2 years agoImmediately fail a CREATE TABLE statement that attempts to create a
drh [Fri, 13 Oct 2023 13:49:46 +0000 (13:49 +0000)] 
Immediately fail a CREATE TABLE statement that attempts to create a
table that has a generated column loop.  Legacy allows the table to be
created but the table would not be usable for anything.

FossilOrigin-Name: 3237bf964117c1ef71143042837ef21872bb3d04bfd682075672e768953ec802

2 years agoActually prevent PRAGMA writable_schema=ON from being set in defensive mode,
drh [Fri, 13 Oct 2023 12:57:23 +0000 (12:57 +0000)] 
Actually prevent PRAGMA writable_schema=ON from being set in defensive mode,
rather than just preventing it from functioning.

FossilOrigin-Name: 2b574d9e7e922d0961ea27bfc0148d3098157ff8d4feefba469489c81d43f3e0

2 years agoRound one of an audit for SQLITE_ENABLE_API_ARMOR for functions exposed by JNI and...
stephan [Fri, 13 Oct 2023 12:48:35 +0000 (12:48 +0000)] 
Round one of an audit for SQLITE_ENABLE_API_ARMOR for functions exposed by JNI and those functions missing armor, as [forum:5e3fc453a69b49ca|reported in several forum posts].

FossilOrigin-Name: 8c25c4b18ad07861bf0e47f99f3db04b569b9b859ad0690602f748ddf3576939

2 years agoAvoid potential overflow in hex(). [forum:/forumpost/7ac0c9c5ea|See forum post 7ac0c9...
larrybr [Fri, 13 Oct 2023 01:39:47 +0000 (01:39 +0000)] 
Avoid potential overflow in hex(). [forum:/forumpost/7ac0c9c5ea|See forum post 7ac0c9c5ea.]

FossilOrigin-Name: 2e968114fd0e60eebcc088dec02684e10b06ac1ec42d6bedb5287362f5cbf032

2 years agoMake sure virtual tables have been connected before trying to invoke
drh [Thu, 12 Oct 2023 20:51:17 +0000 (20:51 +0000)] 
Make sure virtual tables have been connected before trying to invoke
the xIntegrity method during PRAGMA integrity_check.

FossilOrigin-Name: 4a4eccb681741917c6771101d4e329f91eae9b035f4d345218e522bb55fff6da

2 years agoFix a problem with an fts5 secure-delete on a rowid/term pair that follows a legacy...
dan [Thu, 12 Oct 2023 19:46:58 +0000 (19:46 +0000)] 
Fix a problem with an fts5 secure-delete on a rowid/term pair that follows a legacy delete of the same pair.

FossilOrigin-Name: 579aea0c28e01a79620ac758edc02db3a01baaa073e7773b8f0b6f610479520b

2 years agoEnable SQLITE_VTAB_INNOCUOUS for FTS3, FTS5, and RTREE.
drh [Thu, 12 Oct 2023 18:46:27 +0000 (18:46 +0000)] 
Enable SQLITE_VTAB_INNOCUOUS for FTS3, FTS5, and RTREE.

FossilOrigin-Name: f34c533b6c1f8ef3f69c75c1039406c12751cdde1fbdcb4d9776b24455facf8a

2 years agoAdd test case for [29937081].
dan [Thu, 12 Oct 2023 18:09:27 +0000 (18:09 +0000)] 
Add test case for [29937081].

FossilOrigin-Name: d3b983edf7164d30ddb8b4b745a3feff9737149d85b1c428d6ad488ac6a1960a

2 years agoMake sure the journal file is closed when transitioning into MEMORY journal
drh [Thu, 12 Oct 2023 17:41:18 +0000 (17:41 +0000)] 
Make sure the journal file is closed when transitioning into MEMORY journal
mode, to avoid an assertion fault in the new sqlite3_randomness() avoidance
code added by [c84e4483cb44f827].

FossilOrigin-Name: 29937081a986d88f495ad48748c35ff5829f0ac31dd4ad3e48d180ae2fcb9a0c

2 years agoCLI to check for rare prepare failures. [forum:/forumpost/5be6395182|See forum post...
larrybr [Thu, 12 Oct 2023 15:12:38 +0000 (15:12 +0000)] 
CLI to check for rare prepare failures. [forum:/forumpost/5be6395182|See forum post 5be6395182.]

FossilOrigin-Name: 286d1e8012a5f5d9e1fe6dce1a732f725b8a1837f66daf6aefb792e19e96f2d4

2 years agoUnconditionally force use of SQLITE_ENABLE_API_ARMOR in the WASM and JNI builds....
stephan [Wed, 11 Oct 2023 20:37:42 +0000 (20:37 +0000)] 
Unconditionally force use of SQLITE_ENABLE_API_ARMOR in the WASM and JNI builds. Their corresponding test suites still work.

FossilOrigin-Name: c11394b50d0687b6d6abad9c80d5cd3cdce77e9b9c278f40601c460f463744a1

2 years agoFix the use of an uninitialized value that occurs when doing a json_insert()
drh [Wed, 11 Oct 2023 17:24:31 +0000 (17:24 +0000)] 
Fix the use of an uninitialized value that occurs when doing a json_insert()
of a string value that contains embedded U+0000 characters.

FossilOrigin-Name: d3c0cbb90966316be9cd25e3edb501da42731e8a83c13227b90ce17d3975a2c3

2 years agoAdd (prepare, step, reset, finalize) parts of the JNI level-2 stmt wrapper and associ...
stephan [Wed, 11 Oct 2023 13:52:05 +0000 (13:52 +0000)] 
Add (prepare, step, reset, finalize) parts of the JNI level-2 stmt wrapper and associated tests.

FossilOrigin-Name: a7082f186f2b9b6666bbc65f2eadeb74d91fa0a681e3b2468b261ffd322bd249

2 years agoSimplification to sqlite3ApiExit(). Generates identical machine code, but
drh [Wed, 11 Oct 2023 13:34:18 +0000 (13:34 +0000)] 
Simplification to sqlite3ApiExit().  Generates identical machine code, but
easier for humans to read.

FossilOrigin-Name: 793bbfa5af9721bc3a61e8e5eda46dfce2f5ff3f223a7564c9e1b09f11e53cb3

2 years agoFix a bug in the mkautoconfamal.sh script, introduced by check-in [3308fdda4b81c110]
drh [Tue, 10 Oct 2023 15:33:05 +0000 (15:33 +0000)] 
Fix a bug in the mkautoconfamal.sh script, introduced by check-in [3308fdda4b81c110]
so that the "snapshot-tarball" and "amalgamation-tarball" makefile targets
work again when run from outside of the source tree.

FossilOrigin-Name: 65ccf5fef812d43aed9e00af36c90e1a499d197e30148753790445e25ee1324c

2 years agoStart adding tests for the second JNI layer.
stephan [Tue, 10 Oct 2023 12:16:04 +0000 (12:16 +0000)] 
Start adding tests for the second JNI layer.

FossilOrigin-Name: 0177f4dfe8a5c03c1d5dd279c6babe5a87b596c2351373f845b89fc6abf7947b

2 years agoUse snprintf() in place of sprintf() in a debugging function in the CLI.
drh [Mon, 9 Oct 2023 22:45:10 +0000 (22:45 +0000)] 
Use snprintf() in place of sprintf() in a debugging function in the CLI.

FossilOrigin-Name: 5e5e4d2b4958c329578d1e5af4ed25c1b774f0ed2d15fa6747d7d7fbbba4fa46

2 years agoAvoid calling sqlite3_randomness and taking the PRNG mutex when writing a journal...
dan [Mon, 9 Oct 2023 17:54:34 +0000 (17:54 +0000)] 
Avoid calling sqlite3_randomness and taking the PRNG mutex when writing a journal header in "journal_mode=memory" mode.

FossilOrigin-Name: c84e4483cb44f827416d8caafa22f076b2f31b2024fe8c5b5bcb0c9955149d11

2 years agoAdd a TCL script that does various verification checks on the source tree
drh [Mon, 9 Oct 2023 14:56:15 +0000 (14:56 +0000)] 
Add a TCL script that does various verification checks on the source tree
to make sure that generated code has been updated correctly.

FossilOrigin-Name: 1f1a358af77f4386f98010eeae8487e6d39548a6dfe58c2664552490e7661122

2 years agoFix a compiler warning caused by the previous check-in.
drh [Mon, 9 Oct 2023 14:47:25 +0000 (14:47 +0000)] 
Fix a compiler warning caused by the previous check-in.

FossilOrigin-Name: 7e8768bf8b4002b1c287f2bc95262548e2ae81b437936154f2bb1ea1f739a904

2 years agoTurn on SEH by default when building using MSVC.
drh [Mon, 9 Oct 2023 14:05:21 +0000 (14:05 +0000)] 
Turn on SEH by default when building using MSVC.

FossilOrigin-Name: f57e8275cf1ab3ad8027044cda0893282d1c403a5aa9fabbb1c7de280597b5cd

2 years agoFix a potential UAF caused by JSON parser cache spill.
drh [Mon, 9 Oct 2023 12:46:53 +0000 (12:46 +0000)] 
Fix a potential UAF caused by JSON parser cache spill.
[forum:/forumpost/b25edc1d46|Forum post b25edc1d46].

FossilOrigin-Name: a163fecca90cab9d1b7bf8ebac78d498775eed7b6d81e7920e3401633c3a4b60

2 years agoFlesh out the error state captured by SqliteException.java. Doc additions.
stephan [Mon, 9 Oct 2023 12:45:28 +0000 (12:45 +0000)] 
Flesh out the error state captured by SqliteException.java. Doc additions.

FossilOrigin-Name: 5c5397ff15543f4b3620244d9e57e15708eafcab1d42c9f87b4a60f0c01e8858

2 years agoFix harmless compiler warning in the test module for sessions.
drh [Mon, 9 Oct 2023 12:39:59 +0000 (12:39 +0000)] 
Fix harmless compiler warning in the test module for sessions.

FossilOrigin-Name: 3d5ec99397c183cfb8c5d31e1967e0df8a4d6edbea92bbdf728571e3a6a36d68

2 years agoAdd JNI Sqlite and SqliteException classes. Add Tester2.java as the main test app...
stephan [Mon, 9 Oct 2023 11:46:32 +0000 (11:46 +0000)] 
Add JNI Sqlite and SqliteException classes. Add Tester2.java as the main test app for the high-level API.

FossilOrigin-Name: 6acf52be7abce8dcf434c5ebf0d5e88859b033e6418077846247ecf00ccf9381

2 years agoMinor JNI doc and public/private cleanups.
stephan [Mon, 9 Oct 2023 10:44:10 +0000 (10:44 +0000)] 
Minor JNI doc and public/private cleanups.

FossilOrigin-Name: c49d36ece283274963ce2e5a4db1e8f586dffa22e47f4adb93c625f918c3fd5d

2 years agoRename SQLite3Jni to CApi to (A) reduce name prefix collisions with incoming classes...
stephan [Mon, 9 Oct 2023 10:30:54 +0000 (10:30 +0000)] 
Rename SQLite3Jni to CApi to (A) reduce name prefix collisions with incoming classes and (B) align with its counterpart in the JS build. Remove the Canonical annotation because (A) the new code separation will inherently make that distinction and (B) the line between truly canonical and semi-canonical (e.g. differing in signature overloads) is blurry enough that consistent use of that annocation is becoming an unnecessary burden.

FossilOrigin-Name: ca216b4486aff7d206ebfc3a5e84d48919c282425d4313396bc19313ffca8a0e

2 years agoFix a problem with sqlite3changegroup_schema() and patchsets.
dan [Sat, 7 Oct 2023 17:29:10 +0000 (17:29 +0000)] 
Fix a problem with sqlite3changegroup_schema() and patchsets.

FossilOrigin-Name: c4ab4200dc2538e1132d87d70fd309b26b0da8a918fede1cb09b567ea40ec889

2 years agoAdd the sqlite3changegroup_schema() API. To allow changegroup objects to upgrade...
dan [Sat, 7 Oct 2023 16:32:02 +0000 (16:32 +0000)] 
Add the sqlite3changegroup_schema() API. To allow changegroup objects to upgrade the schema of a changeset/patchset under some circumstances.

FossilOrigin-Name: 03f9e50b15c9c2fb4636dee24c1491c45322578b9fed08c6f4360be07c5c3830

2 years agoFix a problem with the changes on this branch and tables that use an implicit primary... session-alter
dan [Sat, 7 Oct 2023 16:07:02 +0000 (16:07 +0000)] 
Fix a problem with the changes on this branch and tables that use an implicit primary key.

FossilOrigin-Name: 1f9d10235ff32e72074be695049567135b02e681068ce117b66adc14a6214449

2 years agoAdd a test case to prevent a regression of the leak fixed in the previous
drh [Sat, 7 Oct 2023 08:15:47 +0000 (08:15 +0000)] 
Add a test case to prevent a regression of the leak fixed in the previous
trunk check-in.

FossilOrigin-Name: f99ff655d09763c4a22d065041644ece793d84c82c644931e89ccf50c4f4564a

2 years agoFix a resource leak: sqlite3_blob_reopen() was failing to invoke the
drh [Sat, 7 Oct 2023 08:00:54 +0000 (08:00 +0000)] 
Fix a resource leak: sqlite3_blob_reopen() was failing to invoke the
xDel() distructor on a register when it sets that register to the new
rowid.  This was never a problem prior to the large-column cache of
[771fe35074b50b8d] as that destructor was always a no-op.
dbsqlfuzz cd96368deaece480fb94d42427dde053737a650e.

FossilOrigin-Name: 545edd5ecf20a7feb99dc5ce6f338fa1f172c2e17b240cbede497f0729dbd3d7

2 years agoAdd missing source code comments and fix other issues with the new code on this branch.
dan [Fri, 6 Oct 2023 20:39:42 +0000 (20:39 +0000)] 
Add missing source code comments and fix other issues with the new code on this branch.

FossilOrigin-Name: df39fbe9ab87937beb77af353cd55602290b185e222e0a92a3ebf9a9a0b9e2e7

2 years agoUpdate this branch with latest changes from the trunk.
dan [Fri, 6 Oct 2023 19:46:19 +0000 (19:46 +0000)] 
Update this branch with latest changes from the trunk.

FossilOrigin-Name: 897e926a5eaa0eab7e09e5003e4c15c974897be298a18ae85345962dc3f410a1

2 years agoAdd tests for the sqlite3changegroup_schema() API.
dan [Fri, 6 Oct 2023 19:01:43 +0000 (19:01 +0000)] 
Add tests for the sqlite3changegroup_schema() API.

FossilOrigin-Name: 5dab481c101b1523b1cfde92678cbc654ea26d946bf29da372d71c1f89cbaf46

2 years agoRemove an unused parameter from the recomputeColumnsNotIndexed() routine in
drh [Fri, 6 Oct 2023 12:55:53 +0000 (12:55 +0000)] 
Remove an unused parameter from the recomputeColumnsNotIndexed() routine in
order to squash a harmless compiler warning.

FossilOrigin-Name: 9bf4bfd68080367b58594e0d44b110b3ee9766420f648537fd7bc638dacefb72

2 years agoEnsure that all fields of static sqlite3_module objects are explicitly
drh [Fri, 6 Oct 2023 12:51:05 +0000 (12:51 +0000)] 
Ensure that all fields of static sqlite3_module objects are explicitly
initialized, in order to hush-up nuisance compiler warnings.

FossilOrigin-Name: f3b3d712d6e58b1cb8fdebd2b6b3125080b6b3ac8c7c849a8cc1e5e778d62fe7

2 years agoRemove and unused static variable from shell.c.in in order to silence a
drh [Fri, 6 Oct 2023 12:22:14 +0000 (12:22 +0000)] 
Remove and unused static variable from shell.c.in in order to silence a
harmless compiler warning.

FossilOrigin-Name: 477577120b897bf15edc2a85e220d5c64a1d5a245354939269f6753d8140ac95

2 years agoIncrease the size of some variables associated with the PMA sorter in order
drh [Fri, 6 Oct 2023 12:15:01 +0000 (12:15 +0000)] 
Increase the size of some variables associated with the PMA sorter in order
to avoid any possibility of a signed integer overflow.
[https://bugs.chromium.org/p/chromium/issues/detail?id=1489025|Chromium fuzzer issue 1489025].

FossilOrigin-Name: dc3be3af471d90dd810c1e2cc59e83cf6a57f01971b1258ea0da402e4d577ef2