SQLite

Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

200 most recent check-ins using file tool/build-shell.sh version 950f47c6

2024-04-02
18:48
Fix typos in comments. Provided ".wheretrace" debugging output for the interstage heuristic module. Do omit automatic index loops in the interstage heuristic. (Leaf check-in: 357d9513 user: drh tags: branch-3.28)
18:31
Fix table-valued functions so that they will work as the right table in a LEFT JOIN. Ticket [2ae0c599b735d59e] (check-in: 1f97086d user: drh tags: branch-3.28)
11:54
Add a heuristic in between the two solver() passes of the query planner that tries to prevent a very slow query plan in cases where the output row count estimate is imprecise. (check-in: 74b247d9 user: drh tags: branch-3.28)
2023-11-29
16:26
Fix a duplicate assert() caused by the second cherrypick in the previous check-in. (check-in: f10d4fc4 user: drh tags: branch-3.28)
16:07
Remove Window objects from the corresponding Select.pWin list when they are deleted, as they are, for example, when the ORDER BY clause is optimized out. (check-in: f9c6e6a7 user: drh tags: branch-3.28)
2023-10-19
21:05
Ensure that when an ephemeral cursor is reopened with a second invocation of to OP_OpenEphemeral, the sequence counter is reset and the cache marked as stale. Fix for [9cdc5c46]. (check-in: d4bfa8d2 user: drh tags: branch-3.28)
2023-10-12
20:03
Fix a problem with an fts5 secure-delete on a rowid/term pair that follows a legacy delete of the same pair. (Leaf check-in: f5913e76 user: dan tags: branch-3.42)
2023-09-15
20:04
Drop support for the view-scan optimization as it was causing multiple performance regressions. In its place, reduce the estimated row count for DISTINCT subsqueries by a factor of 8. (check-in: 796a65fa user: drh tags: branch-3.28)
2023-09-08
19:32
Fix a problem with fts5 secure-delete mode causing fts5 to corrupt its records. (check-in: cc0f82a4 user: dan tags: branch-3.42)
2023-09-02
22:07
Eliminate a redundant NK_DbAboutToClose notification. (Leaf check-in: eccffaa7 user: larrybr tags: cli_extension)
22:00
Issue NK_DbAboutToClose notifications for any shell DB about to be closed, whether presently visible in ShellExState or not. (check-in: 8e6e54e4 user: larrybr tags: cli_extension)
2023-08-10
01:03
Treat all args to --glob as a single glob. (check-in: 4737bd34 user: stephan tags: jni)
00:58
Remove --print's ability to read ahead. (check-in: 15cfee97 user: stephan tags: jni)
00:34
Replace the SQLTester infrastructure with a line-oriented, non-regex-heavy parser. Add --column-names command. (check-in: 88863908 user: stephan tags: jni)
2023-08-09
23:47
Port the SQLTester 'v1' commands to the 'v2' evaluation bits. Still TODO is swapping out v1 with these separate impls. (check-in: 0cf57e5b user: stephan tags: jni)
22:30
Correct REQUIRED_PROPERTIES handling to not fail if there are no properties. (check-in: 7a19bef4 user: stephan tags: jni)
22:18
More for the SQLTester rework. Can read input and dispatch commands, but only --print is currently implemented. (check-in: 4fa2ad33 user: stephan tags: jni)
19:51
Initial sketches of a line-by-line parser for SQLTester to overcome its compatibility shortcomings. Far from complete. (check-in: 43534cd0 user: stephan tags: jni)
18:25
Adapt TestScript to skip REQUIRED_PROPERTIES, per [7a07863e082664da], and improve a couple of adject reasons-for-skipping messages. (check-in: f937097e user: stephan tags: jni)
17:47
Add an extra constraint to the test-script-interpreter.md spec. (check-in: 7a07863e user: drh tags: jni)
17:23
SQLTester --result command: do not double-{}-wrap error messages and do not throw on db error. (check-in: f7be20f5 user: stephan tags: jni)
17:04
Move the test command body's trim() back into the TestScript class (to simplify Command-level code) but do it after double-verbose has had the chance to emit it as-is (so that debug output is not mangled by the trim). (check-in: f15ecb68 user: stephan tags: jni)
16:56
Tweak the SQLTester --verbose and double-verbose output a bit for legibility. (check-in: 46b79afa user: stephan tags: jni)
16:29
Strip --oom commands from SQLTester input since (A) we can't currently do anything with them and (B) they can appear as body content of --testcase commands and the current parser cannot deal with that. If --verbose is provided once, emit the name and args of each command as it's run. If --verbose is used twice or more, also emit the command's body text, if any. (check-in: 0770e846 user: stephan tags: jni)
16:03
Update the definition of "special characters" for the SQLTester and correct the code to match it. (check-in: 217f6e0c user: stephan tags: jni)
15:46
Extend TestScript to be able to report why it should be skipped. Expand the test-skipping rules to account for the current spec doc. Add the {} empty-string case to the spec doc. (check-in: 4fcc8cb0 user: stephan tags: jni)
14:47
Add a test for the --null command. (check-in: 83ac815d user: stephan tags: jni)
14:43
Extend SQLTester glob support with '#'. (check-in: 756ef83f user: stephan tags: jni)
14:24
Implement the SQLTester's result escaping rules. (check-in: 61bb9508 user: stephan tags: jni)
13:51
Add --json and --json-block SQLTester commands. (check-in: 478129d9 user: stephan tags: jni)
13:16
Add SQLTester --tableresult command. (check-in: 8c5b6d89 user: stephan tags: jni)
12:05
Clean up the SQLTester output a bit by using the module name, instead of filename, where appropriate. (check-in: 5323e4fd user: stephan tags: jni)
11:10
Document SQLTester's --print command and add some argument validation to it. (check-in: ab9c945b user: stephan tags: jni)
11:05
Rework how SQLTester's Command objects are dispatched and how TestScript stores its command entries. (check-in: f929f1f7 user: stephan tags: jni)
09:56
Some minor tweaks in SQLTester in prep for larger refactoring. (check-in: 1d93f93a user: stephan tags: jni)
2023-08-08
22:10
Remove the current-statement tracking from the JNI internals because it will break down in the face of client-side mixed-mode native/java code, e.g. in cases like SQLTester. This makes tracing of sqlite3_stmt a micron slower but also reliably correct. (check-in: 4c0ec89d user: stephan tags: jni)
21:22
Adapt JNI build to be buildable with or without SQLTester. (check-in: adae7d78 user: stephan tags: jni)
21:05
Add SQLTester dup() and dup_count() UDFs. Correct arg handling of the --run command. (check-in: 0dba3073 user: stephan tags: jni)
20:41
Correct --result arg count check and add infrastructure to let us add custom C-side behavior to SQLTester via an auto extension. (check-in: bb832170 user: stephan tags: jni)
20:15
If SQLTester now treats a no-args --result as comparing against an empty string. (check-in: 49005ca5 user: stephan tags: jni)
20:02
Add glob/notglob commands to SQLTester and complete the interrupted-midway impls of the strglob() and strlike() JNI bindings. (check-in: 4ba98ec0 user: stephan tags: jni)
19:20
When SQLTester hits an unknown command, emit a warning and skip the rest of that script instead of aborting the whole run, per /chat discussion. Reduce verbosity a bit. (check-in: 3e78d22d user: stephan tags: jni)
14:58
Correct the spacing output of multi-select SQL blocks for SQLTester --result. (check-in: 8d98645a user: stephan tags: jni)
14:49
Updates to the test script interpreter spec: Rather than failing immediately upon encountering an incompatibility, simply abandon the rest of that particular input file. (check-in: d2c99b96 user: drh tags: jni)
14:40
A number of baby steps for SQLTester.java. It can now handle basic --result cases. (check-in: 0404f688 user: stephan tags: jni)
14:25
Add a few words of clarification on how the SQLite Test Script Interpreter should be initialized to start each test script. (check-in: 3aa2b5a5 user: drh tags: jni)
13:05
Correct JNI sqlite3_prepare() to emit a null stmt handle when the C counterpart succeeds but results in a NULL pointer. (check-in: 94628f88 user: stephan tags: jni)
11:46
Implement the new/open/close SQLTester commands. (check-in: dc823bf0 user: stephan tags: jni)
11:46
Add a JNI-layer sqlite3.toString() for debugging. (check-in: 45669164 user: stephan tags: jni)
10:58
Bind sqlite3_strlike/strglob() to JNI. (check-in: eb5440f7 user: stephan tags: jni)
09:45
SQLTester: add print command and improve argument error reporting infrastructure. (check-in: 1b6e84f6 user: stephan tags: jni)
00:59
Add missing license header. Minor cleanups in SQLTester. (check-in: 5be50fd5 user: stephan tags: jni)
00:37
Rework SQLTester dispatching and add stub impls for several commmands. (check-in: 9e61af75 user: stephan tags: jni)
2023-08-07
23:59
Add command dispatcher to SQLTester. (check-in: e0a06931 user: stephan tags: jni)
23:04
SQLTester now ignores tests which contain constructs specified in the spec doc. (check-in: ecaeee65 user: stephan tags: jni)
22:32
SQLTester can now split a test script into a series of individual commands. (check-in: d3d1accc user: stephan tags: jni)
22:02
SQLTester can now read a script and strip it of all noise content. (check-in: 59bd3928 user: stephan tags: jni)
21:04
Initial skeleton for adding an SQL-driven test script interpreter for the JNI bindings. (check-in: 2aa8f0ed user: stephan tags: jni)
11:18
When converting a Java exception to a db error message, use Throwable.toString() instead of getMessage() so that the exception type's name is included. More internal API renaming for consistency. (check-in: 2d44720d user: stephan tags: jni)
10:59
Lots of JNI internal API renaming, for consistency, and moving-around of utility functions. Make it safe for more callback types to throw. (check-in: 9a494394 user: stephan tags: jni)
10:01
JNI API renaming to better match the C API. (check-in: 6e0bd03d user: stephan tags: jni)
01:06
Make sqlite3_stmt() Java ctor private - it's only constructed from JNI code. (check-in: ce82c42f user: stephan tags: jni)
00:29
Minor internal cleanups and additional test metrics. (check-in: fa0a6b6e user: stephan tags: jni)
00:06
Bind the auto-extension APIs to JNI. (check-in: 746a5fa0 user: stephan tags: jni)
2023-08-06
22:09
Rework the sqlite3_open(_v2)() order of operations so that pending auto-extension support can get ahold of the open-time Java state despite the Java/C (sqlite3*) binding not having yet been established. (check-in: 34da294a user: stephan tags: jni)
21:29
Completely rework how the JNI sqlite3_open(_v2) and sqlite3_prepare(_vN)() bindings deal with output pointers to give the JNI side full control over the origin of db and stmt handles (necessary for solving chicken/egg situations in auto-extensions and prepare-time trace). Lots of adjacent internal API renaming. (check-in: 644999ca user: stephan tags: jni)
20:01
Start adding JNI-side support for auto extensions, but hit a brick wall which requires slightly awkward semantics changes in the JNI bindings for sqlite3_open(_v2)() to resolve, so stash this #if'd out for the time being. (check-in: 77a32d23 user: stephan tags: jni)
15:01
Doc cleanups. (check-in: 5f56b007 user: stephan tags: jni)
14:19
Bind sqlite3_config() to JNI for call variants taking (int,int*) and (int,const char *) variadic arguments. (check-in: 6119289d user: stephan tags: jni)
13:02
JNI-internal cleanups and API renaming. Add a C-side java-string-to-utf8 conversion. (check-in: 672d8579 user: stephan tags: jni)
11:05
Remove doc outdated warning about sqlite3_trace_v2() JNI binding being incompatible with MUTF-8. Use new to-string capability to simplify Fts5ExtensionApi::xColumnText() JNI binding. (check-in: ebcfc237 user: stephan tags: jni)
10:49
Add a way to convert from standard UTF-8 to a Java string (JNI lacks this capability). (check-in: 07dd082c user: stephan tags: jni)
10:14
Bind sqlite3_db_filename() and (closely related) (A) add many more docs about the UTF-8/MUTF-8 discrepancy (B) start adding internals to enable us to perform the standard-UTF-8-to-Java conversion from C. (check-in: 586720fa user: stephan tags: jni)
2023-08-05
22:41
Bind sqlite3_set_authorizer() to JNI. (check-in: e0fa0313 user: stephan tags: jni)
21:35
Refactor the per-JNIEnv cache from a fixed-size static array to a linked list of dynamically-allocated entries. Uncache all per-db state (which is necessarily JNIEnv-specific) when the corresponding JNIEnv is uncached. (check-in: 9dd8b784 user: stephan tags: jni)
20:19
Add SQLite3Jni.uncacheJniEnv(), a way for Java threads to clear their thread-specific cached state from the JNI bindings when they're about to terminate (or are otherwise done using the library). (check-in: 7468f876 user: stephan tags: jni)
19:20
In the JNI docs, note that the sizeof SQLITE_TRANSIENT and SQLITE_STATIC should ideally be the same as the platform's pointer size. (check-in: 7d4ac44e user: stephan tags: jni)
12:48
JNI internal refactoring and cleanups. (check-in: 7397973a user: stephan tags: jni)
11:16
Bind Fts5ExtensionApi::xUserData() to JNI and extend xCreateFunction() to accept that argument. In test code, use assert() instead of exceptions if assert() is enabled so that test failures (exceptions) thrown via callbacks do not get suppressed (which they otherwise necessarily are to avoid crashing the host app). (check-in: e4383737 user: stephan tags: jni)
04:30
Add missing Fts5PhraseIter.java to the build. (check-in: 96281ad0 user: stephan tags: jni)
04:23
Bind fts5_api::xCreateFunction() to JNI and demonstrate it with a test. (check-in: c653bf16 user: stephan tags: jni)
01:28
Start adding fts5_api to JNI. (check-in: 14d18fe9 user: stephan tags: jni)
00:40
Bind the remaining Fts5ExtensionApi methods to JNI, noting that all are completely untested because the higher-level bits needed to do so are still missing. (check-in: 23383c1d user: stephan tags: jni)
2023-08-04
15:38
More work on the JNI binding of fts5 customization (still a long ways to go). (check-in: 1a246fd2 user: stephan tags: jni)
13:27
Eliminate code duplication in the two JNI tester classes. (check-in: 63e7bbe3 user: stephan tags: jni)
13:03
FTS-related JNI refactoring. Move FTS-specific tests into their own class and dynamically load it, if possible, from the main test app. (check-in: b7a8428f user: stephan tags: jni)
12:44
More work towards binding FTS5 customization to JNI. Add Fts*.java files missing from previous checkin. (check-in: 91263178 user: stephan tags: jni)
11:08
Start including fts5 customization bits into JNI, but it's far from functional. (check-in: abaf5edd user: stephan tags: jni)
09:53
Improve internal error handling in the JNI create_function() impl. (check-in: 2c88390f user: stephan tags: jni)
08:39
More work towards fts5 customzation in JS. (Leaf check-in: ce2a65d8 user: stephan tags: wasm-fts5)
2023-08-03
22:43
Minor internal cleanups in the JS-side fts5 cleanup steps. (check-in: 2666f52e user: stephan tags: wasm-fts5)
21:14
Retain all xDestroy method WASM proxies created for fts5_api::xCreateFunction() until the db is closed, then free them all at once. (check-in: f4b9743a user: stephan tags: wasm-fts5)
20:45
Rework the fts5 db-close cleanup to avoid that fts5 internally calls a just-unbound-from-wasm xDestroy() method. There is still work to do here to cover the case of fts5 functions being replaced (in which all xDestroy methods have to be retained until the db is closed). (check-in: 795f2242 user: stephan tags: wasm-fts5)
20:02
Part 2 of the fix from [a0f808363318c00fd1db78b]. (check-in: ce0674b1 user: stephan tags: wasm-fts5)
18:46
Resolve the timing/ordering issue of a JS-to-WASM-converted xDestroy() function being uninstalled from WASM right before the underlying native call tries to call it. This has been a long-unnoticed bug which appears only when removing such functions or replacing then. (check-in: a0f80836 user: stephan tags: wasm-fts5)
16:21
More infrastructure towards binding FTS5 customization support to WASM. (check-in: 163e3e44 user: stephan tags: wasm-fts5)
16:02
Fix a discrepancy between sqlite3_values_to_js() and its API docs/intended behavior. (check-in: 16658b3c user: stephan tags: wasm-fts5)
07:20
Initial work on exposing the FTS5 APIs to wasm, per request in the forum. This builds and loads the structs into JS but is completely untested. (check-in: 52c8b73a user: stephan tags: wasm-fts5)
2023-08-02
18:20
If a query has an ORDER BY clause that only refers to result columns of the left-most table and the left most table is a MATERIALIZED common table expresion, then attempt to push the ORDER BY clause down into the subquery. (Leaf check-in: 8e7a70b2 user: drh tags: order-by-push-down)
17:29
More JNI-internal docs. Correct handling of a Java exception if a trace callback throws. (check-in: 306b269a user: stephan tags: jni)
17:20
Internal doc additions in the JNI bits. (check-in: b5664364 user: stephan tags: jni)
16:06
Performance optimization for JSON rendering logic. (check-in: ea0b9aec user: drh tags: trunk)
13:45
Remove an unreachable branch in the ascii-to-floating-point conversion that was added by [e989a37ff9d5b52e]. (check-in: c4347e44 user: drh tags: trunk)
13:38
Stricter enforcement of the idea that a MATERIALIZED common table expression is an optimization fence. (check-in: 354425f8 user: drh tags: trunk)
13:29
Remove a condition from query flattening that is now taken care of by the caller. Factor out the reverse_unordered_selects processing from the main loop of sqlite3WhereBegin() for performance. (Closed-Leaf check-in: f068f105 user: drh tags: materialize-order-by)
12:39
Simplify the select.c logic that enforces the optimization fence around a MATERIALIZED common table expression. Do not allow the reverse_unordered_selects setting to affect a fenced CTE that itself has an ORDER BY clause. (check-in: 165b9bda user: drh tags: materialize-order-by)
11:06
Never flatten a CTE that is labeled MATERIALIZED. This is really something of a bug fix because the documentation says that a MATERIALIZED CTE is an optimization barrier. (check-in: b7ef9796 user: drh tags: materialize-order-by)
00:09
When a query is inside an AS MATERIALIZED CTE, do not attempt the omit-ORDER-BY optimization. If the developer specifies MATERIALIZED, that means he wants the sort to actually happen. (check-in: aa769ee7 user: drh tags: materialize-order-by)
2023-08-01
19:10
Avoid ASAN warnings when converting over-sized long double values into double. (check-in: e989a37f user: drh tags: trunk)
16:41
Filter the wasmfs-specific JS module result type check out of non-wasmfs builds. (check-in: ef7c1210 user: stephan tags: trunk)
16:38
Fix part 2 of 2 for /fiddle: a make deps problem which caused fiddle to load but fail to run when sqlite3.c was missing. (check-in: 6011bc26 user: stephan tags: trunk)
16:17
Fix part 1 of 2 for /fiddle not running: build flags which were renamed during refactoring. (check-in: 214ffeef user: stephan tags: trunk)
11:03
Fix an assert() in fts5_index.c that might fail when dealing with corrupt records. (check-in: aa55c83f user: dan tags: trunk)
10:19
More docs for the Java side of the JNI bindings. (check-in: d8e9bcee user: stephan tags: jni)
09:44
Internal exception-handling cleanups in the JNI bindings. (check-in: 057b1d4f user: stephan tags: jni)
08:48
Minor JNI-related doc tweaks and code re-ordering. (check-in: b663b27e user: stephan tags: jni)
01:07
Remove redundant comparison operator. (check-in: 01898432 user: drh tags: trunk)
00:34
Restore part of the UPDATE one-pass optimization that was removed by check-in [2c56b984a0bd3be5]: only disable one-pass if the WHERE clause contains a subquery. Allow subqueries in the SET expressions. Fix for performance problem reported by forum post 8ab195fd44e75ed0. (check-in: 42916af9 user: drh tags: trunk)
2023-07-31
22:03
Restrict the new column cache to table-btree, which is the common case anyhow. That way, writes to indexes do not need to clear the column cache. (check-in: 659284ab user: drh tags: trunk)
20:02
The original column-cache implementation from check-in [ab1edcc7fedcf279] (merged to trunk at [771fe35074b50b8d]) is unsound. This check-in fixes the issue. Had to give back a little performance, the optimization is still a overall win. (check-in: ec95e970 user: drh tags: trunk)
17:39
Add bit to sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS) that will disable the one-pass optimizating in DELETE and UPDATE. (check-in: 22f6dd5c user: drh tags: trunk)
17:20
Improved debug tracking of the Parse.nQueryLoop value. (check-in: 4a8a1749 user: drh tags: trunk)
13:52
Experimentally change the JNI sqlite3_trace_v2() callback type to have more convenient access to the current Java-side sqlite3_stmt at the cost of some uncomfortably fiddly current-statement tracking in the JNI layer. Subject to change. (check-in: 459db332 user: stephan tags: jni)
12:10
Add some JNI-internal metrics, accessible via passing -v when running Tester1.java. Document an OpenJDK bug which leads to incorrect -Xlint:jni warnings. (check-in: a5d68a6b user: stephan tags: jni)
10:55
Correct a mis-cast in the JNI wrapper which just happened to accidentally work. Update JNI binding of sqlite3_context_db_handle() to return the bound-at-open() db instance instead of a new/temp proxy object. (check-in: 9faca5d9 user: stephan tags: jni)
10:42
Add another test for JNI-bound scalar UDFs. (check-in: 8b322d92 user: stephan tags: jni)
10:22
Update some internal docs for the past two checkins. Add a way to dump out some debug info about the current JNI environment. (check-in: ac9b8bb1 user: stephan tags: jni)
10:08
Refactor the busy-handler-specific JNI hook type to use the generic hook type. (check-in: d9efdc6d user: stephan tags: jni)
09:45
Refactor the collation-specific JNI hook type to use the generic hook type. (check-in: 02c1d3b6 user: stephan tags: jni)
09:28
Internal JNI doc tweaks. (check-in: f4aa2c82 user: stephan tags: jni)
07:15
Consolidate triplicated xDestroy()-calling code. Remove some unnecessary casts. (check-in: 24c0763d user: stephan tags: jni)
2023-07-30
18:41
Internal JNI API renaming. (check-in: fcfc0706 user: stephan tags: jni)
17:24
Internal JNI refactoring towards consolidating support for callbacks with and without finalizers. (check-in: 120983a5 user: stephan tags: jni)
13:47
Mark the Java wrapper classes of the C-native types as 'final' (cannot be subclassed). (check-in: 4fd3d936 user: stephan tags: jni)
13:30
Minor tweaks and optimizations in the JNI bindings. (check-in: 41fb5898 user: stephan tags: jni)
11:36
Bind sqlite3_collation_needed() to JNI. Related adjacent cleanups and fixes. (check-in: 16ff1676 user: stephan tags: jni)
10:47
Internal JNI refacoring to support the pending sqlite3_collation_needed() callback. Correct a bug in the linked-list handling of PerDbStateJni which triggered an assert(). (check-in: 7ac6614e user: stephan tags: jni)
09:45
Incremental checkin to minimize the diff while narrowing in on an assertion caused by refactoring. (check-in: 2d7a91b1 user: stephan tags: jni)
08:12
Consolidate some warnings for java callbacks which must not throw but do. (check-in: 5e592ed2 user: stephan tags: jni)
07:44
Bind sqlite3_update_hook() to JNI. (check-in: a5bbaa90 user: stephan tags: jni)
06:44
Bind sqlite3_rollback_hook() to JNI. (check-in: 5f8ee440 user: stephan tags: jni)
06:00
Add commit hook failure to JNI tests. (check-in: be4459b4 user: stephan tags: jni)
05:50
Bind sqlite3_commit_hook() to JNI. (check-in: c687297f user: stephan tags: jni)
04:31
Bind sqlite3_progress_handler() to JNI. Add some metrics to Tester1.java. (check-in: 437ecfe8 user: stephan tags: jni)
03:54
Add tests for SAHPoolUtil.exportFile() and importDb(). (check-in: 4aa88b8f user: stephan tags: trunk)
2023-07-29
22:58
Do not try to add MEM_Term to an MEM_Static string either. (check-in: 8920dcef user: drh tags: trunk)
21:22
Do not try to apply MEM_Term to a MEM_Ephem strings. (check-in: 2a378a66 user: drh tags: trunk)
20:13
Fix a buffer overread in the fts5_structure virtual table (test code). (check-in: b837aff7 user: dan tags: trunk)
17:05
Simplification to the sqlite3_stmt_explain() implementation. (check-in: dd5eb4c7 user: drh tags: trunk)
15:53
SAHPoolUtil.importDb() now accepts either a byte array or ArrayBuffer. (check-in: 3848f04e user: stephan tags: trunk)
15:31
Enhancements to the new sqlite3_stmt_explain() interface implementation and documentation. (check-in: dc98ac6b user: drh tags: trunk)
2023-07-28
21:38
Fix doc error noted in the forum and a misspelling. (check-in: 6b79cc7d user: larrybr tags: trunk)
20:59
Do not allow the same JSON parse to be input to both arguments to the json_patch() routine. (check-in: 8e781c67 user: drh tags: trunk)
19:07
Merge the latest trunk enhancements into the wal-shm-exceptions branch. (check-in: c44fb4d0 user: drh tags: wal-shm-exceptions)
19:00
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: b8731493 user: drh tags: reuse-schema)
18:52
Merge the latest trunk enhancements into the bedrock branch. (check-in: 1d6ded32 user: drh tags: bedrock)
18:47
Merge the latest trunk enhancements into the wal2 branch. (check-in: c1fa1cb5 user: drh tags: wal2)
18:44
Internal JNI binding docs. (check-in: 991c6619 user: stephan tags: jni)
18:43
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 7407dda8 user: drh tags: begin-concurrent)
18:37
Add the sqlite3_stmt_explain() API. (check-in: 0443c0ef user: drh tags: trunk)
18:02
Fix an incorrect file path in ext/jni/README.md (check-in: bcefa2df user: stephan tags: jni)
16:12
Minor tweaks to the JSON performance measurement documentation. (check-in: 0bed957e user: drh tags: trunk)
15:58
Fix minor typos in the JNI README.md file. (check-in: e21cf2e8 user: drh tags: jni)
14:20
Enhancements to the JSON performance testing scripts and instructions to cover the recent optimizations involving updates to large JSON strings that indexed. (check-in: f9213289 user: drh tags: trunk)
13:52
JSON performance improvements: (1) Add a cache for large string values on OP_Column to avoid having to extract the string multiple times. (2) Internal JSON caching improvements. (check-in: 771fe350 user: drh tags: trunk)
12:59
A failed attempt to add a new sqlite3_result_zeroterminated() interface that is a hint to SQLite that a TEXT result does have a zero terminator. The idea is to avoid unnecessary copying of TEXT values. This seems like an unnecessary complication at the moment, but maybe I'll return to this later. Note that this check-in does not work - it is a proof of concept only. (Closed-Leaf check-in: a0de0110 user: drh tags: sqlite3_result_zeroterminated)
11:52
Correct a recently-introduced falsehood in ext/wasm/README.md regarding ssh port forwarding. (check-in: 2a3f3a9c user: stephan tags: trunk)
11:30
Mark an unreachable branch as ALWAYS(). (Closed-Leaf check-in: 8fd06d11 user: drh tags: json-opt)
10:37
Minor java cleanups recommended by a modern IDE. (check-in: f92a9bba user: stephan tags: jni)
10:01
Add Java tests which ensure that xFinal() is called with no aggregate context when the result set is empty. (check-in: 7ac8c66a user: stephan tags: jni)
09:54
Tweaks to the Java-side UDF docs. (check-in: 48e0079d user: stephan tags: jni)
09:25
More Java docs about making use of the aggregate context. Change the JNI mapping to set the sqlite3_context::aggregateContext member directly, instead of via a superflous setter, because that way is faster. (check-in: 7af0cb99 user: stephan tags: jni)
01:51
More docs and cleanups related to the aggregate UDF state. Correct the OOM check to behave properly if xFinal() is called without a matching xStep(), xValue(), or xInverse(). (check-in: ff53f1cc user: stephan tags: jni)
01:19
Add an OOM check to the previous check-in. Minor internal API renaming. (check-in: 6b56e4d6 user: stephan tags: jni)
01:12
Add support making use of sqlite3_aggregate_context() (in a roundabout way) from Java to accumulate state within aggregate and window UDFs. (check-in: 64057498 user: stephan tags: jni)
00:54
Remove some unnecessary and incorrect code that was mistakenly added in the previous check-in. (check-in: d3f458dc user: drh tags: json-opt)
2023-07-27
23:51
Switch to using jsonParseCached() for json_patch(). (check-in: 2ed9c59e user: drh tags: json-opt)
22:53
Reformulate jni tests to not require the -ea jvm flag to enable assert(). (check-in: dc356667 user: stephan tags: jni)
22:42
Add locking test for BusyHandler and clear up new -Xlint:jni warnings introduced by the busy-handler binding. (check-in: 7dcde2bf user: stephan tags: jni)
22:05
Bind sqlite3_busy_handler(). Correct mapping of pointers for, and cleanup of, JNI-level per-db state. (check-in: 52474779 user: stephan tags: jni)
20:32
Replace some www: interwiki references in the JNI readme with their full URLs to make the doc more portable. (check-in: 63ce0c9b user: stephan tags: jni)
20:28
If the input JSON to a json function that uses cache comes from an RCStr value, then use that RCStr value in the parse rather than making a copy. (check-in: 509ae9c1 user: drh tags: json-opt)
20:12
Merge trunk into jni branch for compiler warning fixes. (check-in: 0514fd34 user: stephan tags: jni)
20:08
Fix a couple of compiler warnings in fts5_index.c. (check-in: bf71faa2 user: dan tags: trunk)
20:02
Initial check-in of JNI (Java Native Interface) bindings for the core C API. (check-in: b5374b9e user: stephan tags: jni)
19:39
The OP_Column opcode caches large column values coming from overflow pages. (check-in: ab1edcc7 user: drh tags: json-opt)
19:13
Add the contentless_delete=1 option to fts5. For creating contentless tables that support DELETE and REPLACE statements. (check-in: d66b182d user: dan tags: trunk)
18:19
Merge trunk enhancements into the json-opt branch. (check-in: 5739a16a user: drh tags: json-opt)
17:50
Dynamically determine whether the wasm.xWrap() argc check can be applied, depending on how the wasm environment exposes its exports. (check-in: fd59226b user: stephan tags: trunk)
15:00
Dynamically determine whether the wasm.xWrap() argc check workaround for JSPI is necessary, instead of baking it in to JSPI builds. (Edit: closing jspi branch. Introducing JSPI would require making parts of the C API wrapper async.) (Closed-Leaf check-in: 86bb464f user: stephan tags: jspi)
01:38
Accommodate a breaking change in emcc 3.1.44. (check-in: 2c5dd341 user: stephan tags: trunk)
01:35
Accommodate a breaking change in emcc 3.1.44. (check-in: 4ce38603 user: stephan tags: jspi)
00:21
Fix a performance regression in JSON associated with generating small snippets of JSON from a larger JSON string. See forum thread 15d6bd9cd37202a7. (check-in: 837f2907 user: drh tags: trunk)
2023-07-26
23:22
Reduce the number of memory allocations when parsing JSON. (check-in: 9edd6716 user: drh tags: trunk)
21:53
Minor changes to make coverage testing easier. (check-in: ec8b4338 user: drh tags: trunk)
19:22
Change a switch() case to default for coverage. (check-in: 04f49707 user: drh tags: trunk)
19:11
Make sure jsonReplaceNode() always leaves the JsonParse in a consistent state even if an error is encountered. (check-in: 01d52232 user: drh tags: trunk)
18:34
Add a comment describing the contents of the ExceptionInformation[] array for win32 EXCEPTION_IN_PAGE_ERROR exceptions. No changes to code. (check-in: 8e203542 user: dan tags: wal-shm-exceptions)
18:13
Make sure jsonReplaceNode() always leaves the JsonParse in a consistent state even if an error is encountered. (Closed-Leaf check-in: 29c7b1cb user: drh tags: mistake)
18:11
Initial experimentation with getting JSPI (JavaScript Promise Integration) support working. It builds, but requires disabling func argument count validation checks on sqlite3.wasm.xWrap()-processed exports and it crashes cryptically in wasm when the tests are run. (check-in: 5b178f92 user: stephan tags: jspi)