]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
21 months agoCreate the new string_agg(X,Y) aggregate function which is an alias for
drh [Sat, 21 Oct 2023 11:13:47 +0000 (11:13 +0000)] 
Create the new string_agg(X,Y) aggregate function which is an alias for
the two-argument group_concat(X,Y) function, for compatibility with
SQL-Server and PostgreSQL.

FossilOrigin-Name: a3b3df8a9e43f1880a904b76027db56ed504a84622831c96ba1962a19bbed762

21 months agoAvoid an unnecessary malloc() for the page usage bitmap when running
drh [Sat, 21 Oct 2023 11:06:03 +0000 (11:06 +0000)] 
Avoid an unnecessary malloc() for the page usage bitmap when running
a partial integrity_check.

FossilOrigin-Name: 2904fcbeebba9189cebc48e58d12fc46f78ee23d8c4d46644606691f8cabb80c

21 months agoFix a test case broken by the previous check-in. string_agg
drh [Sat, 21 Oct 2023 11:00:57 +0000 (11:00 +0000)] 
Fix a test case broken by the previous check-in.

FossilOrigin-Name: 1e61864c3bffec133632f4575d59d11936e8bafc089c4d84a129dcaf7e9b6d7d

21 months agoAdd string_agg(X,Y) as an alias for group_concat(X,Y), for compatibility
drh [Fri, 20 Oct 2023 20:19:30 +0000 (20:19 +0000)] 
Add string_agg(X,Y) as an alias for group_concat(X,Y), for compatibility
with SQLServer and PG.

FossilOrigin-Name: b91c19bf2680f60d7826ab5d9e7902e2dc2a55d847bbea565a6489d47f2cc8f1

21 months agoFix a problem allowing a COMMIT following an OOM to cause fts5 corruption.
dan [Fri, 20 Oct 2023 19:59:12 +0000 (19:59 +0000)] 
Fix a problem allowing a COMMIT following an OOM to cause fts5 corruption.

FossilOrigin-Name: fba3129d1362dd3ee04d61cb3d3c48518cd98dde3febc85298f411776d60073e

21 months agoFix PRAGMA integrity_check so that it does not raise an error if the
drh [Fri, 20 Oct 2023 19:06:04 +0000 (19:06 +0000)] 
Fix PRAGMA integrity_check so that it does not raise an error if the
schema contains a CREATE VIRTUAL TABLE that does not have its module
loaded.

FossilOrigin-Name: 5cb61c6788d7c0170b587e4667ee57d588c991a9901951762e33b97c6a135a82

21 months agoOmit some redundant calls to strlen() used to find the size of
drh [Fri, 20 Oct 2023 18:09:08 +0000 (18:09 +0000)] 
Omit some redundant calls to strlen() used to find the size of
Expr.u.zToken in sqliteExprDup().  This inefficiency was seen while working
on the previous check-in, and I thought it best to fix it while it was
fresh in mind.

FossilOrigin-Name: b7a84eff5dcdf5b2ff81331097cdc64d0c5d16a4ae224320f39b64541ec72dc7

21 months agoImprovements to the sqlite3ExprDup() logic for faster performance and better
drh [Fri, 20 Oct 2023 17:15:15 +0000 (17:15 +0000)] 
Improvements to the sqlite3ExprDup() logic for faster performance and better
run-time error detection.  This check-in fixes the 5x oversize memory allocation
bug from [f371e4c0f8ea73ae] as well as all other known issues that result from
handing the ORDER BY clause of an aggregate function off of the pLeft pointer
of the Expr object.

FossilOrigin-Name: f5c01676fd281e938181b846dd2024d050f597dc6a7a91928beab9d8553dfdb5

21 months agoAdd the SQLITE_CHANGESETAPPLY_FKNOACTION flag to sqlite3session.h, for passing to...
dan [Fri, 20 Oct 2023 17:06:39 +0000 (17:06 +0000)] 
Add the SQLITE_CHANGESETAPPLY_FKNOACTION flag to sqlite3session.h, for passing to sqlite3changeset_apply_v2() to cause all foreign key constraints to behave as if they were declared NO ACTION.

FossilOrigin-Name: fc9f82ea084159eaf3dd1757b96d17d1201b00c4e06455a7dcd8067172b25f28

21 months agoSimplifications and optimizations to the Expr object duplication logic.
drh [Fri, 20 Oct 2023 15:47:30 +0000 (15:47 +0000)] 
Simplifications and optimizations to the Expr object duplication logic.
The 5x multiplier crutch from [f371e4c0f8ea73ae] is still present.  More
fixes are still needed.

FossilOrigin-Name: 56142a78163b755f16afc05201f623a7a19d9a4b0620a67f7fa20d2a965a288d

21 months agoOmit an unused constant from sessionfuzz.c to prevent a compiler warning.
drh [Fri, 20 Oct 2023 14:05:26 +0000 (14:05 +0000)] 
Omit an unused constant from sessionfuzz.c to prevent a compiler warning.

FossilOrigin-Name: a0cf7e24f928183866ac54f0d6cd83c859d487a19dc87572ab0188d90d2ff87d

21 months agoCorrect the opfs-sahpool VFS's xGetLastError() method to return the previous error...
stephan [Fri, 20 Oct 2023 12:23:49 +0000 (12:23 +0000)] 
Correct the opfs-sahpool VFS's xGetLastError() method to return the previous error code, not 0, on success.

FossilOrigin-Name: 95a1dde63117d696323c775580b9c04f044a5b8d609e9174b739ac03ecc1336c

21 months agoUse sqlite3ParserAddCleanup() instead of calling sqlite3ExprListDelete()
drh [Fri, 20 Oct 2023 10:18:03 +0000 (10:18 +0000)] 
Use sqlite3ParserAddCleanup() instead of calling sqlite3ExprListDelete()
directly when disposing of an unused ORDER BY in an aggregate function,
to avoid disrupting ALTER TABLE data structures.

FossilOrigin-Name: d083e42086733ecd79aba8c268e020b01782bfe1cfa9684ce1c277af9c8bf92a

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

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

FossilOrigin-Name: ddfa09c6031afd4391a9888381bf09214cd542a826b431eeb1537a070f65c5f9

21 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

21 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

21 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

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

FossilOrigin-Name: 6cccf86c362631ada0c6cbaf661520648f8bbf7ae2b137b3d7d959647387e5c2

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

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

FossilOrigin-Name: 78ebf838f645742f87733665cd72af736df345683b27377a2c8310c893b1769d

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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