]>
git.ipfire.org Git - thirdparty/sqlite.git/log
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
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
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
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
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
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
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
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
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
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
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
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
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
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
stephan [Sat, 14 Oct 2023 14:53:18 +0000 (14:53 +0000)]
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
stephan [Sat, 14 Oct 2023 12:45:11 +0000 (12:45 +0000)]
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
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
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
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
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
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
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
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
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
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
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
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
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
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
drh [Thu, 12 Oct 2023 18:46:27 +0000 (18:46 +0000)]
Enable SQLITE_VTAB_INNOCUOUS for FTS3, FTS5, and RTREE.
FossilOrigin-Name:
f34c533b6c1f8ef3f69c75c1039406c12751cdde1fbdcb4d9776b24455facf8a
dan [Thu, 12 Oct 2023 18:09:27 +0000 (18:09 +0000)]
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
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
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
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
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
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
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
stephan [Tue, 10 Oct 2023 12:16:04 +0000 (12:16 +0000)]
Start adding tests for the second JNI layer.
FossilOrigin-Name:
0177f4dfe8a5c03c1d5dd279c6babe5a87b596c2351373f845b89fc6abf7947b
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
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
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
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
drh [Mon, 9 Oct 2023 14:05:21 +0000 (14:05 +0000)]
Turn on SEH by default when building using MSVC.
FossilOrigin-Name:
f57e8275cf1ab3ad8027044cda0893282d1c403a5aa9fabbb1c7de280597b5cd
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
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
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
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
stephan [Mon, 9 Oct 2023 10:44:10 +0000 (10:44 +0000)]
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
dan [Sat, 7 Oct 2023 17:29:10 +0000 (17:29 +0000)]
Fix a problem with sqlite3changegroup_schema() and patchsets.
FossilOrigin-Name:
c4ab4200dc2538e1132d87d70fd309b26b0da8a918fede1cb09b567ea40ec889
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
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
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
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
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
dan [Fri, 6 Oct 2023 19:46:19 +0000 (19:46 +0000)]
Update this branch with latest changes from the trunk.
FossilOrigin-Name:
897e926a5eaa0eab7e09e5003e4c15c974897be298a18ae85345962dc3f410a1
dan [Fri, 6 Oct 2023 19:01:43 +0000 (19:01 +0000)]
Add tests for the sqlite3changegroup_schema() API.
FossilOrigin-Name:
5dab481c101b1523b1cfde92678cbc654ea26d946bf29da372d71c1f89cbaf46
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
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
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
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
dan [Thu, 5 Oct 2023 19:09:23 +0000 (19:09 +0000)]
Add the sqlite3changegroup_schema() API. To allow changegroups to handle differences in schema created by ALTER TABLE ADD COLUMN.
FossilOrigin-Name:
309deee2dd8dd07623fce79f6bb62d5279d140dd0be3b34bc42af20b0507726b
drh [Thu, 5 Oct 2023 11:06:10 +0000 (11:06 +0000)]
stephan [Thu, 5 Oct 2023 11:04:49 +0000 (11:04 +0000)]
Do not squelch exceptions from SAHPool VFS importDb() - rethrow them. Problem reported in [forum:
c80fc578809b80a3 |forum post
c80fc578809b80a3 ].
FossilOrigin-Name:
325bcdea4a436e514d83095d3893caf07a714b718e1b643507179b101c108e3b
drh [Thu, 5 Oct 2023 10:35:51 +0000 (10:35 +0000)]
Remove a stray blank line from the beginning of btree.c. No functional
code changes.
FossilOrigin-Name:
c89983dcfc208faa86b31717144c069572598e9770228264d69a044a84bde277
dan [Wed, 4 Oct 2023 21:15:24 +0000 (21:15 +0000)]
Allow a session object to generate a changeset, even if columns were added to one of the tables using ALTER TABLE ADD COLUMN while the changeset was being collected.
FossilOrigin-Name:
a3f435eccf3a2aa11cb7420e94af5efcdfa04e9c169c5aaf61fa5cdcb165ceef
drh [Wed, 4 Oct 2023 12:49:08 +0000 (12:49 +0000)]
The Makefile distinguishes between tcl8.4 and tcl8.5. Some makefile targets
require tcl8.5, but others (ex: "sqlite3.c", "shell.c", and "sqlite3") require
only tcl8.4.
FossilOrigin-Name:
770308db9776b8c0a70b8807463e89a9eddfe5552e25e67324cd303dc974f50e
drh [Wed, 4 Oct 2023 11:52:44 +0000 (11:52 +0000)]
Modify the main makefile so that it fails with an error if the tclsh found
by ./configure is not tclsh 8.5 or later.
[forum:/forumpost/
4380363682708ece |Forum post
4380363682708ece ].
FossilOrigin-Name:
1765f3b5a00a8ca20a7b9e18ac7f9d7de0679470b234b83aea83aa5b4d4d34e6
stephan [Mon, 2 Oct 2023 17:12:16 +0000 (17:12 +0000)]
JNI: when fetching text-or-blob/length pairs, fetch the text-or-blob first, then the length, as the API docs suggest.
FossilOrigin-Name:
e4f9d3946fa570bccea2de17c5536901bdabd46cfe25678fdd37ba0e2bfd99b1
drh [Mon, 2 Oct 2023 17:06:28 +0000 (17:06 +0000)]
Fix the length of the string in the new concat() and concat_ws() functions.
FossilOrigin-Name:
325243226520376f4a142864ae3fb98866f25bff4dc50a6b648ef98428a7169f
drh [Mon, 2 Oct 2023 15:56:37 +0000 (15:56 +0000)]
Remove an ALWAYS() from a branch that can in fact be false following an OOM
fault.
FossilOrigin-Name:
3a1feb1c469d3dd50e2558581199b16bfd59b9d5bcb0de5f1a8f0ec30a17b4d1
stephan [Mon, 2 Oct 2023 14:44:28 +0000 (14:44 +0000)]
Pointer-casting-related fixes for JNI on 32-bit ARM (pi4 armv7l).
FossilOrigin-Name:
54441039ae3ebe39e42f008f77ce1be117cbda6daeed8b01739ad42a3c1f0754
stephan [Sun, 1 Oct 2023 12:15:38 +0000 (12:15 +0000)]
Add JNI binding for sqlite3_normalized_sql().
FossilOrigin-Name:
2532e5662a2bbb3e6b4c4be3fad035734b684bdf59b178cb64b444ca6d8b956b
stephan [Sun, 1 Oct 2023 11:53:40 +0000 (11:53 +0000)]
Make JNI binding of sqlite3_value_frombind() return boolean instead of int and add tests for it.
FossilOrigin-Name:
906e2ed3e9647f5c2355e9fea2beee141767cae7016da9fa1fe88283726b9369
stephan [Sat, 30 Sep 2023 17:08:29 +0000 (17:08 +0000)]
Fix JNI binding to compile without SQLITE_ENABLE_PREUPDATE_HOOK. Add build option to disable all optional ENABLE flags.
FossilOrigin-Name:
c04022b7407f77eaf0175e831ebcd6bbdc0af1cef0d42c5c11102aa8484f24ca
stephan [Sat, 30 Sep 2023 16:19:57 +0000 (16:19 +0000)]
Make all SQLite3Jni methods which take a void-pointer-as-long-int argument explicitly package-private, as they're always for internal use only even if SQLite3Jni is eventually made public.
FossilOrigin-Name:
5e387275f69ab2d3159b4b67b8cbfc6270410b61e5ac1f988616e8d051f6572e
stephan [Sat, 30 Sep 2023 14:48:21 +0000 (14:48 +0000)]
JNI: rename sqlite3_errmsg16() to sqlite3_errmsg(), as the 16 suffix is superfluous there.
FossilOrigin-Name:
df25b21689de84b7b8c940df39461d3d88f592f0ba2dddcfcbb0bebcea6ee7da
stephan [Sat, 30 Sep 2023 14:34:55 +0000 (14:34 +0000)]
stephan [Sat, 30 Sep 2023 13:13:23 +0000 (13:13 +0000)]
Correct an undefined-value deref in the JS bindings, triggered by passing invalid args and then tripping over an undefined value while trying to report that. Reported in [forum:
dd42df144651d779 |forum post
dd42df144651d779 ].
FossilOrigin-Name:
fd4632540717c4771ac9ae1fe4400091a2cd0553639bf809abaf4ecbc54de4f0
stephan [Sat, 30 Sep 2023 10:59:18 +0000 (10:59 +0000)]
Make (almost) all SQLite3Jni.sqlite3_... members public but make the SQLite3Jni class package-private, which has the same foot-protection effect but makes it much simpler to patch SQLite3Jni to publicize the interface later. Remove some of the extraneous foot-shooting protection from indidivual functions, in lieu moving it to the still-pending higher-level interfaces.
FossilOrigin-Name:
082b86683e77b2d4a30e1515552f52511324ef97c43b622b4dab7975ae9fbd7d
stephan [Sat, 30 Sep 2023 10:37:36 +0000 (10:37 +0000)]
Merge in and close jni-ptr-passing branch. The remaining pointer-passing adaptation can be done incrementally without affecting the interface.
FossilOrigin-Name:
7927c42410ba0d5fc8e6e08caaa5cbaaeb359869f17d1afaa082f1aa47fdb2fc
stephan [Sat, 30 Sep 2023 10:31:56 +0000 (10:31 +0000)]
Make all native JNI sqlite3_...() bindings package-private as a foot-shooting protective measure (higher-level pre-native-call argument validation is largely pending). Move SQLTester.java and TesterFts5.java into the org.sqlite.jni package so that they can access the being-tested methods.
FossilOrigin-Name:
ec82f7251acab7df40755ef5f456f36fe49b59e63a20be59bd610fc4280ba8cd
stephan [Sat, 30 Sep 2023 09:41:58 +0000 (09:41 +0000)]
More work towards the new pointer-passing mechanism in JNI, and code-adjacent cleanups.
FossilOrigin-Name:
6c63987e893357dc8b10decaa96c30fb37b75481640a303e77a0d8224354491e
dan [Fri, 29 Sep 2023 15:56:40 +0000 (15:56 +0000)]
Add test case to ensure the assert() removed by [
f090af77 ] no longer fails.
FossilOrigin-Name:
615ab71761754b072439f92e73fdb98c916b820937bcca8904f4be34936d5f9c
drh [Fri, 29 Sep 2023 15:53:55 +0000 (15:53 +0000)]
stephan [Thu, 28 Sep 2023 20:34:28 +0000 (20:34 +0000)]
JNI: correct a NullPointerException triggered via SQLTester.
FossilOrigin-Name:
0a873de76c0cbcd8e2eda3f0508e427f1dcb32b01798687c0545acfe10102179
larrybr [Thu, 28 Sep 2023 15:00:25 +0000 (15:00 +0000)]
Clarify serialization API doc w.r.t. buffer validity and usage, instigated by [forum:/forumpost/
8922e2ad2ad41205 |forum post
8922e2ad2ad41205 ]. No code changes.
FossilOrigin-Name:
b488b9fb71652eca90d2bf73d32f3d748badf517859dc833c58e021b0e017194
stephan [Thu, 28 Sep 2023 11:19:37 +0000 (11:19 +0000)]
Adapted the JNI bindings for the sqlite3_value_...() and (pre)update hook APIs to the new pointer-passing mechanism.
FossilOrigin-Name:
4182f0275d5d65e04a130eeef4d44642a5ffeeb4b84430d240ea2605345f1404
stephan [Thu, 28 Sep 2023 10:50:26 +0000 (10:50 +0000)]
Convert the remaining macro-generated JNI bindings to the new pointer-passing mechanism.
FossilOrigin-Name:
250fd6ae806cf705c0f29ad30ad8fb885b12590848e7adae63bc21d874c6d3bd
stephan [Thu, 28 Sep 2023 10:27:01 +0000 (10:27 +0000)]
Convert the macro-generated JNI bindings which take a db pointer to the new pointer-passing mechanism.
FossilOrigin-Name:
5f47fb77db4ee77afc541e680559ad88e66ba7fd04b830e70f8be92cf8d0a60c
stephan [Wed, 27 Sep 2023 14:41:49 +0000 (14:41 +0000)]
Adapted JNI sqlite3_blob_...() and sqlite3_close...() to the new pointer-passing mechanism.
FossilOrigin-Name:
0b22c8ef93e5ccd45316099fb8575e27620158b1992c0c70fe0348cfc10147f8
stephan [Wed, 27 Sep 2023 11:01:32 +0000 (11:01 +0000)]
Adapt JNI sqlite3_bind_...() bindings to the new pointer-passing method and correct the mapping of sqlite3_bind_zeroblob64() to use zeroblob64() instead of zeroblob(). Related internal API renaming.
FossilOrigin-Name:
980d559fff6e55d1e2ef39f242a8a09313a936cfb141807db475bcceff924869
stephan [Wed, 27 Sep 2023 10:29:07 +0000 (10:29 +0000)]
Add missing license headers to JNI annotation classes and extend the definition of @NotNull to include 0L as the equivalent of null to account for the current rework of how pointers are passed from Java to C.
FossilOrigin-Name:
bccdfeb9efde20410bde545893fb98ce5c0c4d04a8e7797b868ba8994120e1db
stephan [Wed, 27 Sep 2023 09:58:36 +0000 (09:58 +0000)]
Rework the JNI sqlite3_backup APIs to the new pointer-passing approach.
FossilOrigin-Name:
48aeb1e2cdeb4aec85c4f63a1f809215cd4b473791169e72b5ddf6d6bdc2f7b7
stephan [Tue, 26 Sep 2023 21:37:52 +0000 (21:37 +0000)]
Start reworking JNI methods such that they pass void pointers from Java to C instead of passing their strongly-typed wrappers, as that is reportedly significantly faster than passing the wrapper objects to C and extracting the pointers there. There are still many, many functions left to rework for this.
FossilOrigin-Name:
66c814dd473731703ee00e1ff610acfdccf09d1b87dd2355795ed697d4ed5d3e
drh [Tue, 26 Sep 2023 21:22:46 +0000 (21:22 +0000)]
Fix harmless compiler warnings in the testfixture testing utility.
FossilOrigin-Name:
5a39a02d2dfd9ed6171cd0bd434b2bc268d0ed8ead6e1a396d1603266d9493ef
stephan [Tue, 26 Sep 2023 19:49:35 +0000 (19:49 +0000)]
JNI: implement AutoCloseable for the sqlite3 and sqlite3_stmt classes, and adjust a few tests to use it. Override Object.finalize() for sqlite3 class but not sqlite3_stmt (where it triggers a JVM crash for as-yet-unknown reasons).
FossilOrigin-Name:
b633d8bbdbd43464ee03058c273e5188117b9538ed5d5148a1a3851e4adf6410