SQLite

Timeline
Login

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

8007 check-ins using file ext/misc/closure.c version dbfd8543

2024-01-12
16:33
Fix a usan complaint about signed integer overflow. (Leaf check-in: 16aa7297 user: drh tags: branch-3.43)
15:38
Fix a signed integer overflow usan complaint in fts5. This is fixed on trunk by [a76a636b23], but that is a large commit that adds new features. (check-in: 4b2d02f2 user: dan tags: branch-3.43)
2023-12-15
21:39
Fix a spurious "misuse of aggregate function" error that could occur when an aggregate function was used within the FROM clause of a sub-select of the select that owns the aggregate. (check-in: 122cd0ba user: drh tags: branch-3.43)
2023-11-29
16:26
Fix a duplicate assert() caused by the second cherrypick in the previous check-in. (Leaf 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-11-10
13:13
Fix a potential UAF caused by JSON parser cache spill. (Leaf check-in: ce3fc4fc user: drh tags: bedrock-3.43)
2023-10-28
04:11
Remove the SQLITE_MAX_ALLOCATION_SIZE flag (set to 536mb) from the WASM build because it can unduly limit db exports via sqlite3_serialize(), as reported in forum post 75524f7342c1ba45. (check-in: 747b4e3a user: stephan tags: branch-3.43)
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)
20:17
Increase the size of some variables associated with the PMA sorter in order to avoid any possibility of a signed integer overflow. (check-in: 72597cee user: drh tags: branch-3.43)
2023-10-17
13:47
Fix a JSON bug introduced 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. (check-in: 3161c2cd user: drh tags: branch-3.43)
2023-10-14
17:34
Merge the version-3.43.2 changes into the begin-concurrent-3.43 branch. (Leaf check-in: f3fb30af user: drh tags: begin-concurrent-3.43)
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-10-11
21:08
Add the tokendata=1 option to ignore trailing token-data when querying an fts5 table. (check-in: 12293518 user: dan tags: fts5-token-data)
17:34
Fix the use of an uninitialized value that occurs when doing a json_insert() of a string value that contains embedded U+0000 characters. (check-in: 7dcd9cfe user: drh tags: branch-3.43)
2023-10-10
15:34
Fix a bug in the mkautoconfamal.sh script so that the "snapshot-tarball" and "amalgamation-tarball" makefile targets work again when run from outside of the source tree. (check-in: 3a79cf25 user: drh tags: branch-3.43)
13:55
Merge the 3.43.2 release changed into the reuse-schema-3.43 branch. (Leaf check-in: 5fefa147 user: drh tags: reuse-schema-3.43)
12:14
Version 3.43.2 (check-in: 4310099c user: drh tags: release, branch-3.43, version-3.43.2)
2023-10-09
22:50
Use snprintf() in place of sprintf() in a debugging function in the CLI. (check-in: 88a11890 user: drh tags: branch-3.43)
14:59
Add a TCL script that does various verification checks on the source tree to make sure that generated code has been updated correctly. (check-in: dc8681c4 user: drh tags: branch-3.43)
14:12
Change the TEA version number to 3.43.2 also. (check-in: 170ab8d1 user: drh tags: branch-3.43)
14:10
Update the version number to 3.43.2. (check-in: 0bd1199b user: drh tags: branch-3.43)
12:51
Fix a potential UAF caused by JSON parser cache spill. (check-in: 5b09212a user: drh tags: branch-3.43)
2023-10-07
08:11
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. (check-in: 83846af5 user: drh tags: branch-3.43)
2023-10-06
19:01
Add tests for the sqlite3changegroup_schema() API. (check-in: 5dab481c user: dan tags: session-alter)
12:22
Remove an unused static variable from shell.c.in in order to silence a harmless compiler warning. (check-in: 47757712 user: drh tags: trunk)
12:15
Increase the size of some variables associated with the PMA sorter in order to avoid any possibility of a signed integer overflow. Chromium fuzzer issue 1489025. (check-in: dc3be3af user: drh tags: trunk)
00:06
Improvements to coping with malformed JSONB. (check-in: 563cde40 user: drh tags: jsonb)
2023-10-05
23:05
Better error detection when doing a lookup on a JSONB. (check-in: 6e8e0eed user: drh tags: jsonb)
22:52
Improvements to comments. No changes to code. (check-in: ac74d787 user: drh tags: jsonb)
20:17
Turn an unreachable branch into an assert(). (check-in: 0f751991 user: drh tags: jsonb)
19:09
Add the sqlite3changegroup_schema() API. To allow changegroups to handle differences in schema created by ALTER TABLE ADD COLUMN. (check-in: 309deee2 user: dan tags: session-alter)
18:33
Fix the parsing of non-standard "Infinity" and "NaN" values from text into JSONB. (check-in: df1fbbeb user: drh tags: jsonb)
18:09
Change the json_valid(X) routine to return true whenever X is a blob that could plausibly be a valid JSONB. (check-in: 425f0b85 user: drh tags: jsonb)
17:52
Fix the text-to-JSONB parser so that it handles some JSON5 floating point literals correctly. (check-in: 564edb3b user: drh tags: jsonb)
16:33
Slightly stricter testing for when a BLOB is valid JSONB: If the element is a null, true, or false, its payload size must be zero. (check-in: 487781be user: drh tags: jsonb)
15:05
Fix a memory leak following a syntax error in jsonb(). (check-in: bf4b36ed user: drh tags: jsonb)
15:02
Allow the PG-style syntax for the PATH operand on the right-hand side of the ->> and -> operators. (check-in: bae5071b user: drh tags: jsonb)
11:22
Merge trunk enhancements into the jsonb branch. (check-in: be5907b6 user: drh tags: jsonb)
11:09
Improved detection of corrupt databases in balance_nonroot(). dbsqlfuzz d1cf013c50a620b68c2a5bd240d29afd65e5f58e. (check-in: f4aa1bfc user: drh tags: branch-3.43)
11:06
Improved detection of corrupt databases in balance_nonroot(). dbsqlfuzz d1cf013c50a620b68c2a5bd240d29afd65e5f58e. (check-in: a2464bbb user: drh tags: trunk)
11:04
Do not squelch exceptions from SAHPool VFS importDb() - rethrow them. Problem reported in forum post c80fc578809b80a3. (check-in: 325bcdea user: stephan tags: trunk)
10:35
Remove a stray blank line from the beginning of btree.c. No functional code changes. (check-in: c89983dc user: drh tags: trunk)
2023-10-04
21:15
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. (check-in: a3f435ec user: dan tags: session-alter)
12:49
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. (check-in: 770308db user: drh tags: trunk)
11:52
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 post 4380363682708ece. (check-in: 1765f3b5 user: drh tags: trunk)
11:04
Hard fail the ./configure script if it is unable to find a working tclsh. Forum post 4380363682708ece. (Closed-Leaf check-in: 9f640283 user: drh tags: error-no-tclsh)
2023-10-03
22:40
Fix a memory leak in JSON group-aggregates when the output is JSONB. (check-in: 08e7db13 user: drh tags: jsonb)
21:54
Fix a bug in the jsonReturnFromBlob() function that causes a positive result for a negative value for when a JSON integer is too large and needs to be converted into double. (check-in: dca684da user: drh tags: jsonb)
20:58
Fix problems in the "json" output column of the json_tree() virtual table for the case when the input is JSONB. (check-in: fefa4475 user: drh tags: jsonb)
20:01
Augment the jsonBlobChangePayloadSize() routine so that it tries to shift content in order to render the payload size in its minimal form. (Closed-Leaf check-in: 562e8e7b user: drh tags: jsonb-opt1)
19:37
Improved handling of OOM while translating the JsonNode representing into the BLOB representation. (check-in: ef595671 user: drh tags: jsonb)
19:06
Fixes for fts5 expression parser module to allow embedded 0x00 bytes in tokens. (check-in: 342c8d07 user: dan tags: fts5-token-data)
17:07
Update fts5_decode() to allow for embedded 0x00 bytes in tokens. (check-in: e0511200 user: dan tags: fts5-token-data)
11:36
Merge the latest trunk enhancements into the jsonb branch. (check-in: e6406a98 user: drh tags: jsonb)
10:59
Fix a problem in the JSONB parser that comes up following an OOM. (check-in: 355acfb1 user: drh tags: jsonb)
10:43
Fix an issue with the use of jsonb_group_array() and jsonb_group_object() when used by window functions. (check-in: 808bd349 user: drh tags: jsonb)
2023-10-02
23:56
New test cases for JSONB. (check-in: 6d4aeff5 user: drh tags: jsonb)
20:16
Fix jsonb_insert() so that it does not behave like jsonb_set(). New test cases added. (check-in: 54197149 user: drh tags: jsonb)
17:12
JNI: when fetching text-or-blob/length pairs, fetch the text-or-blob first, then the length, as the API docs suggest. (check-in: e4f9d394 user: stephan tags: trunk)
17:06
Fix the length of the string in the new concat() and concat_ws() functions. (check-in: 32524322 user: drh tags: trunk)
15:56
Remove an ALWAYS() from a branch that can in fact be false following an OOM fault. (check-in: 3a1feb1c user: drh tags: trunk)
15:37
Revisit the opfs-sahpool's handling of sqlite3_vfs::xGetLastError(). This impl seems to be in line with what the library internal expects but it requires more testing (via purposely-induced I/O errors) before merging. (check-in: c53fd21f user: stephan tags: wasm-xGetLastError)
14:51
New test cases for JSONB. (check-in: d624c31e user: drh tags: jsonb)
14:44
Pointer-casting-related fixes for JNI on 32-bit ARM (pi4 armv7l). (check-in: 54441039 user: stephan tags: trunk)
13:35
Allow json_replace() to accept JSONB arguments as the new value. (check-in: 95eb7b37 user: drh tags: jsonb)
13:20
Improvements to error handling for BLOB inputs on JSON. (check-in: 14f20ecb user: drh tags: jsonb)
12:40
Gather forward references into a single place for the JSON code. Allow JSONB arguments to json_array() and json_object() and similar. (check-in: c352201b user: drh tags: jsonb)
2023-10-01
18:59
Fix problems following OOM in JSONB parsing. (check-in: 0d8cd6b5 user: drh tags: jsonb)
12:15
Add JNI binding for sqlite3_normalized_sql(). (check-in: 2532e566 user: stephan tags: trunk)
11:53
Make JNI binding of sqlite3_value_frombind() return boolean instead of int and add tests for it. (check-in: 906e2ed3 user: stephan tags: trunk)
2023-09-30
18:13
Changes so that fts5 can handle tokens with embedded '\0' bytes. (check-in: c027c092 user: dan tags: fts5-token-data)
17:08
Fix JNI binding to compile without SQLITE_ENABLE_PREUPDATE_HOOK. Add build option to disable all optional ENABLE flags. (check-in: c04022b7 user: stephan tags: trunk)
16:50
Restore the trunk version of sqlite3_user_data(). Fix the xColumn for virtual tables so that the sqlite3_context contains a valid but NULL user data pointer. (check-in: 15ffd932 user: drh tags: jsonb)
16:19
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. (check-in: 5e387275 user: stephan tags: trunk)
14:48
JNI: rename sqlite3_errmsg16() to sqlite3_errmsg(), as the 16 suffix is superfluous there. (check-in: df25b216 user: stephan tags: trunk)
14:34
Expose sqlite3_stmt_busy() to JNI. (check-in: 5733aa5f user: stephan tags: trunk)
14:34
Finish adding jsonb_ versions for all JSON routines that return JSON text. (check-in: 6daa7b69 user: drh tags: jsonb)
13:16
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 post dd42df144651d779. (check-in: 1545f0f7 user: stephan tags: branch-3.43)
13:13
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 post dd42df144651d779. (check-in: fd463254 user: stephan tags: trunk)
10:59
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. (check-in: 082b8668 user: stephan tags: trunk)
10:37
Merge in and close jni-ptr-passing branch. The remaining pointer-passing adaptation can be done incrementally without affecting the interface. (check-in: 7927c424 user: stephan tags: trunk)
10:31
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. (Leaf check-in: ec82f725 user: stephan tags: jni-ptr-passing)
09:41
More work towards the new pointer-passing mechanism in JNI, and code-adjacent cleanups. (check-in: 6c63987e user: stephan tags: jni-ptr-passing)
2023-09-29
22:37
Update json_each() and json_tree() so that they work with JSONB inputs. (check-in: bb5e50ff user: drh tags: jsonb)
19:47
The u.zJContent field of JsonNode for a string or label should NOT include the quotation mark delimiters. Ever. This is an inefficiency that really ought to be fixed on trunk, but that can wait until this branch lands. (check-in: 96f545f6 user: drh tags: jsonb)
16:37
Additional refactoring and cleanup. (check-in: 45dd1760 user: drh tags: jsonb)
15:56
Add test case to ensure the assert() removed by [f090af77] no longer fails. (check-in: 615ab717 user: dan tags: trunk)
15:53
Remove an incorrect assert(). (check-in: f090af77 user: drh tags: trunk)
15:18
Bad edit (Closed-Leaf check-in: c794aeb3 user: drh tags: mistake)
12:45
Improvements to comments and procedure names for clarity in the JSON implementation. (check-in: 9b620d81 user: drh tags: jsonb)
11:17
Describe the JSONB encoding in a header comment to the json.c source file. (check-in: 1c0cba34 user: drh tags: jsonb)
2023-09-28
20:34
JNI: correct a NullPointerException triggered via SQLTester. (check-in: 0a873de7 user: stephan tags: jni-ptr-passing)
19:11
Fix some minor memory issues so that all legacy tests now pass. (check-in: 1744bfc6 user: drh tags: jsonb)
18:23
Allow the sqlite3_user_data() function to be invoked with a NULL argument or with an sqlite3_context pointer from a virtual table. It returns NULL in both cases. (check-in: 2f496873 user: drh tags: jsonb)
17:41
Merge trunk changes into the jsonb branch for the compiler warning fixes from two days ago. (check-in: cee113cc user: drh tags: jsonb)
17:27
The json_extract() function now works on BLOBs without the need to translate into an array of JsonNode objects. This is much faster. (check-in: 5853065b user: drh tags: jsonb)
17:23
Extract directly from BLOB is now complete and appears to work. (Closed-Leaf check-in: 3de58ec9 user: drh tags: jsonb-direct-extract)
17:07
Miscellaneous bugs fixed. (check-in: 5c0815fa user: drh tags: jsonb-direct-extract)
15:56
Improvements to json_extract() to better support JSONB. Still not 100% working. (check-in: 8c825761 user: drh tags: jsonb-direct-extract)
15:00
Clarify serialization API doc w.r.t. buffer validity and usage, instigated by forum post 8922e2ad2ad41205. No code changes. (check-in: b488b9fb user: larrybr tags: trunk)
11:19
Adapted the JNI bindings for the sqlite3_value_...() and (pre)update hook APIs to the new pointer-passing mechanism. (check-in: 4182f027 user: stephan tags: jni-ptr-passing)
10:50
Convert the remaining macro-generated JNI bindings to the new pointer-passing mechanism. (check-in: 250fd6ae user: stephan tags: jni-ptr-passing)
10:27
Convert the macro-generated JNI bindings which take a db pointer to the new pointer-passing mechanism. (check-in: 5f47fb77 user: stephan tags: jni-ptr-passing)
10:20
Work toward getting json_extract() to operate directly on the BLOB, omitting the translation into a JsonNode array. (check-in: c1feba70 user: drh tags: jsonb-direct-extract)
2023-09-27
16:55
Performance tests for JSONB added. (check-in: 7c1be8e3 user: drh tags: jsonb)
14:41
Adapted JNI sqlite3_blob_...() and sqlite3_close...() to the new pointer-passing mechanism. (check-in: 0b22c8ef user: stephan tags: jni-ptr-passing)
11:01
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. (check-in: 980d559f user: stephan tags: jni-ptr-passing)
10:29
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. (check-in: bccdfeb9 user: stephan tags: jni-ptr-passing)
09:58
Rework the JNI sqlite3_backup APIs to the new pointer-passing approach. (check-in: 48aeb1e2 user: stephan tags: jni-ptr-passing)
2023-09-26
21:37
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. (check-in: 66c814dd user: stephan tags: jni-ptr-passing)
21:22
Fix harmless compiler warnings in the testfixture testing utility. (check-in: 5a39a02d user: drh tags: trunk)
19:49
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). (check-in: b633d8bb user: stephan tags: trunk)
19:46
Merge partial-index constant value fixes from trunk into the jsonb branch. (check-in: 700bdbd7 user: drh tags: jsonb)
19:38
Fix yet another assert() in the partial-index constant value optimization. (check-in: f459d080 user: drh tags: trunk)
19:30
Add in many jsonb_xxxx() interfaces. Still uses the internal JsonNode representation for transformations and search, but it does at least conform to the desired API design. Largely untested. (check-in: e6045b4e user: drh tags: jsonb)
19:26
Remove a NEVER() from a condition in the partial-index constant value optimization that can sometimes be true. (check-in: 63aea8c3 user: dan tags: trunk)
15:13
Merge all the latest trunk enhancements into jsonb branch. (check-in: ac242c4d user: drh tags: jsonb)
14:57
Remove unreachable code from the partial-index constant value optimization ([8d4160910d651246]). (check-in: 7ad38254 user: drh tags: trunk)
09:46
Remove some outdated JNI docs. (check-in: 2ca5cbbb user: stephan tags: trunk)
07:43
Minor JNI doc updates. No code changes. (check-in: 63687cc6 user: stephan tags: trunk)
2023-09-25
17:46
In partial index scans, if the WHERE clause implies a constant value for a table column, replace occurences of that table column with the constant. This increases the likelihood of the partial index being a covering index. (check-in: 8d416091 user: dan tags: trunk)
17:21
Another very minor tweak to code on this branch to save cycles. (Closed-Leaf check-in: 2c805dc6 user: dan tags: partial-index-terms)
17:14
When parsing JSON text into the BLOB format, only use node type JSONB_TEXTJ for an unquoted object label if the object label contains escape sequences. (check-in: a82ebbac user: drh tags: jsonb)
15:25
Change the order of an if..else... in new code to make it slightly faster. (check-in: f80dc644 user: dan tags: partial-index-terms)
14:20
Enable -Wall for the compiler on --enable-debug builds. (check-in: 63a7b521 user: drh tags: trunk)
13:23
As a temporary measure, try to translate the BLOB JSON format into the legacy node format for processing. (check-in: 14f2e95a user: drh tags: jsonb)
11:12
Fix a bad interaction between LEFT JOIN, bloom filters and partial indexes. (check-in: 5775f92b user: dan tags: partial-index-terms)
00:39
Cause sqlite3_exper_new() to replicate UDFs and custom collations early enough to appear in virtual column expressions during schema copy. forum post e030aa4b3a (check-in: 8fc2c455 user: larrybr tags: expert-enhancement)
2023-09-24
22:51
Make expert changes acceptable to C89. (check-in: a4f03c22 user: larrybr tags: expert-enhancement)
19:47
Merge expert changes to accept UDFs and custom collations. (check-in: 8ead1b5e user: larrybr tags: expert-enhancement)
19:38
Add minimal exercise of expert acceptance of UDFs and custom collations. (Closed-Leaf check-in: 0f6bbb79 user: larrybr tags: expert-udfs)
19:28
Sync w/trunk prior to merge back. (check-in: 2d290854 user: larrybr tags: expert-udfs)
19:13
Resolve the JNI FTS5 test5() failure and remove some nearby dead code. (check-in: 5655c51f user: stephan tags: trunk)
19:00
Give expert ability to deal with custom collations. (check-in: ac1dc1b6 user: larrybr tags: expert-udfs)
2023-09-23
21:31
Add extra tests for changes on this branch. (check-in: cb45f5b0 user: dan tags: partial-index-terms)
19:25
Avoid an error when parsing a schema that contains indexes with WHERE clauses containing unknown collation sequences. (check-in: d5dd39e3 user: dan tags: partial-index-terms)
18:52
Fix a failing assert() caused by changes on this branch. (check-in: d0e21f20 user: dan tags: partial-index-terms)
18:49
Fix a harmless compiler warning. (check-in: 7c421025 user: drh tags: partial-index-terms)
15:34
Add extra tests for the fts5 xPhraseQuery API. (check-in: b5edea16 user: dan tags: trunk)
06:50
Resolve the JNI FTS5 test5() crash, caused by two unrelated typos in JNI callback signature strings. That test now fails with an expected-vs-got mismatch but no longer dies in the native code. (check-in: 0233f310 user: stephan tags: trunk)
06:37
Remove an invalid optimization from JNI code and add a missing check check for Java-side exception. (check-in: b8151f87 user: stephan tags: trunk)
2023-09-22
20:21
In partial index scans, if the WHERE clause implies a constant value for a table column, replace occurences of that table column with the constant. This increases the likelihood of the partial index being a covering index. (check-in: 66ed7abd user: dan tags: partial-index-terms)
16:20
Fix minor parse-to-BLOB bugs. (check-in: 8b53b2e6 user: drh tags: jsonb)
14:33
Add the ability to render a binary BLOB back into valid canonical JSON. (check-in: 0b70cb77 user: drh tags: jsonb)
14:20
Give expert ability to deal with UDFs. (check-in: 3406b05b user: larrybr tags: expert-udfs)
12:16
Begin adding code to render binary JSON back into text. Very incomplete. This is an incremental check-in. (check-in: b817dd86 user: drh tags: jsonb)
11:20
Improvements to the JSON binary BLOB format design. (check-in: 2c89ae5d user: drh tags: jsonb)
2023-09-21
18:16
Reorganize the code to put the new JSONB routines together, for easier editing. (check-in: dc23e783 user: drh tags: jsonb)
17:51
Initial development code for an experimental binary BLOB encoding for JSON. (check-in: 8131b3c2 user: drh tags: jsonb)
2023-09-18
20:42
Add extra tests for java Fts5ExtensionApi API. (check-in: f9d62b85 user: dan tags: trunk)
18:12
Extra tests for java Fts5ExtensionApi interface. (check-in: c923893f user: dan tags: trunk)
2023-09-17
16:36
Remove a NEVER() in btree.c that could actually be reached, with the approriate database corruption. (check-in: d1fd00e0 user: drh tags: trunk)
2023-09-16
18:18
Fix resolution of "rowid" and similar identifiers in queries that use nested joins. (check-in: 37ec43d9 user: dan tags: trunk)
17:11
Enable "OR IGNORE" support via SQLITE_VTAB_CONSTRAINT_SUPPORT for internal-content (not contentless or external-content) fts5 tables. (check-in: c362bde4 user: dan tags: trunk)
16:39
Add a NEVER() to an unreachable branch. (Closed-Leaf check-in: 6b6eb389 user: drh tags: nested-from-rowid-expansion)
16:23
Fix minor code indentation inconsistencies. No function changes. (check-in: 05107a0a user: drh tags: nested-from-rowid-expansion)
16:12
Fix a harmless compiler warning. (check-in: 9e9ff4ca user: drh tags: nested-from-rowid-expansion)
14:42
Further tests and assert() statements for the change on this branch. (check-in: 1c202d54 user: dan tags: nested-from-rowid-expansion)
2023-09-15
20:57
Fix resolution of unqualified "rowid" identifiers in queries with nested joins. (check-in: bbcbd3d5 user: dan tags: nested-from-rowid-expansion)
20:28
Simplifications and performance optimizations for the RTree extension. (check-in: 04a333f5 user: drh tags: trunk)
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)
19:51
Drop support for the view-scan optimization (check-in [609fbb94b8f01d67]) 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: f911f1c4 user: drh tags: trunk)
19:27
Minor simplification to the DISTINCT output row count change. (Closed-Leaf check-in: 0738386d user: drh tags: rethink-viewscan)
19:00
Do not reduce subquery output row count estimates due to DISTINCT until after the decision of whether or not to use an index for ORDER BY has been made. (check-in: 27390051 user: drh tags: rethink-viewscan)
18:36
Allow expressions like "<tbl>.rowid" to refer to implicit rowid columns of tables in nested FROM clauses. (check-in: 59a1bbc6 user: dan tags: nested-from-rowid-expansion)
16:15
Experimental: Assume that a DISTINCT clause on a subquery reduces the number of rows returned by that subquery by a factor of 8. (check-in: 5a940e47 user: drh tags: rethink-viewscan)
14:06
The view-scan optimization was added to enhance the performance of one specific query, but it causes performance regressions on a host of others. Disable it (at least temporarily) in order to try to find an alternative way of fixing the one specific query that it was created to fix - an alternative way that does not cause performance problems for other unrelated queries. (check-in: d9625a9e user: drh tags: rethink-viewscan)
10:27
Do not try to convert a double into an unsigned 64-bit integer, as that does not work on all platforms. A double can only be converted into a signed 64-bit integer. (check-in: 4ce5a03e user: drh tags: branch-3.43)
10:24
Do not try to convert a double into an unsigned 64-bit integer, as that does not work on all platforms. A double can only be converted into a signed 64-bit integer. This is a fix for the problem reported in forum post 9f6db917e1c05d40. (check-in: ce339046 user: drh tags: trunk)
2023-09-14
20:56
Tests for java versions of Fts5ExtensionApi.xSetAuxdata() and xGetAuxdata(). (check-in: 858fa236 user: dan tags: trunk)
20:02
JNI: move XTokenizeCallback interface out of the Fts5 object - that level of indirection is a holdover from when those classes were in the core package. (check-in: 385ec085 user: stephan tags: trunk)
20:01
Add a few more tests for Fts5ExtensionApi methods. (check-in: 4ce2a7e8 user: dan tags: trunk)
17:42
Add a test for the java version of Fts5ExtensionApi.xRowid(). (check-in: 227facf8 user: dan tags: trunk)
16:45
According to forum post 9f6db917e1, older MSVC compilers are unable to convert a double directly into an unsigned long long int, but must first go through a signed long long int. Work around this by restricting the range of doubles that are converted into long long integers so that only the lower 63 bits are used. (Closed-Leaf check-in: 0ab05871 user: drh tags: legacy-msvc-workaround)
16:02
Document the use of OPFLAG_ISNOOP as the P2 argument on OP_Delete. No functional code changes. (check-in: d88f41b2 user: drh tags: trunk)
14:05
Avoid a segfault in test program showdb.c that could occur when analyzing a corrupt db. (check-in: 6bf3e906 user: dan tags: trunk)
13:10
Improve the sqlite3IntFloatCompare() routine so that it is testable. (check-in: bb221381 user: drh tags: trunk)
10:46
Do not set the global bUseLongDouble flag based purely on sizeof(long double) being more than 8. That is a necessary but not sufficient condition to use the long double routines. Instead, do a run-time test to verify that long double really does provide extra precision. (check-in: aa999d49 user: drh tags: trunk)
01:46
Reduce the number of calls to sqlite3_mprintf() made by RTree. (Closed-Leaf check-in: f158b7d4 user: drh tags: rtree-performance)
2023-09-13
21:32
JNI: enable the fts5-customization bits by default but elide them from the docs until it's clearer where they're headed. Unrelated minor doc tweaks. (check-in: 21adb1ae user: stephan tags: trunk)
20:35
Improved comments on the hasHighPrecisionDouble() routine. No changes to the underlying code. (Closed-Leaf check-in: 810c635c user: drh tags: runtime-longdouble-test)
20:06
Determine at start time whether or not the underlying hardware supports high-precision long double computations. (check-in: 9a854b91 user: drh tags: runtime-longdouble-test)
17:30
Omit the Reinsert algorithm from RTree. This causes most benchmarks to run faster, at the expense of having a slightly less dense and hence larger index (example: 33 entries/node versus 34 entries/node). (check-in: b3049a1d user: drh tags: rtree-performance)
17:16
Doc corrections for the previous checkin. (check-in: 9ea0a9f3 user: stephan tags: trunk)
17:11
Add JNI sqlite3_prepare_multi(), based on feedback. (check-in: fa1c1534 user: stephan tags: trunk)
14:07
Performance optimization to cellContains() in RTREE. (check-in: 43cde22b user: drh tags: rtree-performance)
13:12
In the ChooseLeaf algorithm of RTREE, do an initial pass through the cells of a node looking for solutions that involve no cell enlargement. Only look for the minimum cell enlargement if the enlargement is non-zero for all cells. This results in a performance improvement by reducing the number of calls to cellUnion(). (check-in: 59f0e239 user: drh tags: rtree-performance)
12:06
Reduce the number of calls to cellArea() in the ChooseLeaf() algorithm of rtree. (check-in: c633fe6b user: drh tags: rtree-performance)
11:36
Remove unused variable from the ChooseLeaf algorithm in r-tree. (check-in: fb2e4a80 user: drh tags: rtree-performance)
11:24
Replace an if() condition in fts5 that is always true with an assert(). (check-in: 2170312c user: dan tags: trunk)
2023-09-12
23:21
CLI .import to accept EOF in lieu of record terminator on last field of CSV (with multiple field records), per RFC 4180. forum post 5b21c25bdfa (check-in: 6f7842f5 user: larrybr tags: trunk)
23:11
Fix a use-after-free error in fts5 that could occur when querying the "rank" column immediately after another connection changes its definition. (check-in: dfc42411 user: drh tags: branch-3.43)
18:36
Fix a use-after-free error in fts5 that could occur when querying the "rank" column immediately after another connection changes its definition. forum post a2dd636330. (check-in: cb54c2da user: dan tags: trunk)
17:49
Clarify some metrics output in Tester1.java. (check-in: 4ae7199a user: stephan tags: trunk)
17:06
Re-add the fts5 decls to sqlite3-jni.h, removed in a rebuild without fts5 enabled. Need a better solution for this problem. (check-in: 6f269790 user: stephan tags: trunk)
17:03
Rename JNI sqlite3_errmsg() to sqlite3_errmsg16() for overall constency with the text()/text16() family of functions. (check-in: c4a8d8a5 user: stephan tags: trunk)
16:33
JNI readme fix. (check-in: 7dde000e user: stephan tags: trunk)
14:36
64-bit builds on Windows default to using UTF-8 output (as if the -utf8 command-line option had been specified.) 32-bit builds continue to use Windows code pages. There is also a new -no-utf8 command-line option to force the use of legacy code pages. (check-in: d8c7560e user: drh tags: trunk)
14:09
Show the "(utf8)" tag on the CLI banner in Windows if in UTF8 mode. (Closed-Leaf check-in: 822699a4 user: drh tags: cli-utf8)
2023-09-11
20:09
Add the -no-utf8 option to the Windows CLI to cause UTF-8 mode to be omitted. (check-in: 4cb799c6 user: drh tags: cli-utf8)
20:02
Make the -utf8 option the default behavior in the CLI on Windows for 64-bit builds. (check-in: 8b3c306d user: drh tags: cli-utf8)
15:35
Remove a harmlessly unused variable from FTS5. (check-in: 958d62c7 user: drh tags: branch-3.43)
15:28
Refuse to build amalgamation-tarball and snapshot-tarball if the TEA version number disagrees with ./VERSION. (check-in: ad5cc375 user: drh tags: branch-3.43)
15:27
Refuse to build amalgamation-tarball and snapshot-tarball if the TEA version number disagrees with ./VERSION. (check-in: 3308fdda user: drh tags: trunk)
15:20
Merge in JNI's significant divergence since it adopted sqlite3_client_data(). (check-in: e8e07dbb user: stephan tags: trunk)
15:04
Fix the TEA version number to be 3.43.1 (check-in: e00f1fed user: drh tags: branch-3.43)
14:55
Add support for the sqlite3_get_clientdata() and sqlite3_set_clientdata() interfaces, to better support JNI. (check-in: 9806c0dd user: drh tags: trunk)
13:06
Merge version 3.43.1 into the reuse-schema-3.43 subbranch. (check-in: d96586b5 user: drh tags: reuse-schema-3.43)
12:01
Version 3.43.1 (check-in: 2d3a40c0 user: drh tags: release, branch-3.43, version-3.43.1)
2023-09-10
10:56
Roll back [84e38341aeab] because a direct pointer comparison is ill-advised when the client-data string is dynamically allocated. (Closed-Leaf check-in: 7b884832 user: stephan tags: db-client-data)
2023-09-09
17:53
Remove out-of-date comment regarding use of Parse.pConstExpr. (check-in: 71548f72 user: dan tags: trunk)
15:30
Merge post-3.43.0 wal2 fixes into the bedrock-3.43 branch. (check-in: 48ecf390 user: drh tags: bedrock-3.43)
15:22
Merge post-3.43.0 wal2 fixes into the wal2-3.43 sub-branch. (Leaf check-in: f82b1a0b user: drh tags: wal2-3.43)
11:20
In the JNI build, emit a reminder to not check in the javac-generated sqlite3-jni.h when FTS5 is disabled because changes in that feature flag result in unnecessary and large diffs in checked-in generated code. (Closed-Leaf check-in: caceb52f user: stephan tags: jni-client-data)
07:52
Disable FTS5 in the JNI build by default until it can be thoroughly tested. This is mainly so that the public-facing javadoc does not include it. (check-in: 6f25f02b user: stephan tags: jni-client-data)
2023-09-08
20:24
Merge candidate patches for version 3.43.1 into the reuse-schema-3.43 branch. (check-in: c94be460 user: drh tags: reuse-schema-3.43)
20:19
Merge the latest candidate patches for 3.43.1 into the bedrock-3.43 branch. (check-in: 4cefd16e user: drh tags: bedrock-3.43)
20:14
Merge the latest 3.43.1 candidate patches into the wal2-3.43 branch. (check-in: b4491c9f user: drh tags: wal2-3.43)
20:09
Merge patches queued for version 3.43.1 into the begin-concurrent-3.43 branch. (check-in: c7867985 user: drh tags: begin-concurrent-3.43)
19:35
Fix a problem with fts5 secure-delete mode causing fts5 to corrupt its records. (check-in: fb24ca17 user: drh tags: branch-3.43)
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)
19:18
Add extra tests for [4b60a1c3]. (check-in: 6357491b user: dan tags: trunk)
18:34
Fix a problem with fts5 secure-delete mode causing fts5 to corrupt its records. (check-in: 4b60a1c3 user: dan tags: trunk)
16:49
Fix a sanitizer runtime error in wal2 code (that (1 << 31) cannot be represented as an int). (check-in: 79a920c0 user: dan tags: wal2)
16:07
Fix an apparently harmless buffer-overrun that could occur on this branch when committing multi-file transactions in wal2 mode. (check-in: ffe043ba user: dan tags: bedrock)
16:05
Fix an apparently harmless buffer-overrun that could occur on this branch when committing multi-file transactions in wal2 mode. (check-in: dde9fcbd user: dan tags: wal2)
2023-09-07
17:54
Add -DSQLITE_OMIT_LOOKASIDE=1 to the "Sanitize" configuration in testrunner_data.tcl. (check-in: a917ebf1 user: dan tags: trunk)
16:53
Enhance the ./configure script and its associated Makefile.in so that the --with-linenoise=DIR argument cause the linenoise command-line editing library located in directory DIR to be linked with the sqlite3 CLI. (check-in: 6c7822b5 user: drh tags: trunk)
16:36
Enhance the ./configure script and its associated Makefile.in so that the --with-linenoise=DIR argument cause the linenoise command-line editing library located in directory DIR to be linked with the sqlite3 CLI. (Closed-Leaf check-in: 9c4e4928 user: drh tags: wrong-branch)
14:10
Fix a bad assert() in FTS3. (check-in: 61d2074c user: drh tags: branch-3.43)
14:04
Fix a buffer overread in the sessions extension that could occur when processing a corrupt changeset. (check-in: 6009c871 user: drh tags: branch-3.43)
13:53
Fix a buffer overread in the sessions extension that could occur when processing a corrupt changeset. (check-in: 0e4e7a05 user: dan tags: trunk)
13:48
Fix a harmless compiler warning in the sqldiff.c utility. (check-in: e6390a65 user: drh tags: trunk)
13:43
Add the "tool-zip" makefile target with the intention of using it to build the "sqlite-tool-*.zip" deliverables. deliverables. (check-in: 06e4af49 user: drh tags: trunk)
11:48
Version number to 3.43.1. (check-in: fdfe4d60 user: drh tags: branch-3.43)
02:13
Fix a problem with the new xIntegrity method for virtual tables, and also fix a bad assert() in FTS3 that was found by the new xIntegrity method. (check-in: 52bbf44f user: drh tags: trunk)
2023-09-06
17:07
Add documentation to sqlite3_get/set_clientdata() to make it clear that these are security-sensitive interfaces that should not be exposed to potential attackers. (check-in: 2837061d user: drh tags: db-client-data)
16:51
Add the xIntegrity method to the sqlite3_module object, thus enabling PRAGMA integrity_check to operate on virtual tables. Make use of this new method in the FTS3/4, FTS5, and RTREE virtual tables. (check-in: 2f08e7d2 user: drh tags: trunk)
16:22
Fix unreachable branches. (Closed-Leaf check-in: f00fc163 user: drh tags: vtab-integrity-check)
14:00
Change the xIntegrity virtual table method signature so that it returns an integer error code and writes the error message into a parameter. (check-in: f1d4024a user: drh tags: vtab-integrity-check)
12:52
Add the xIntegrity method to the sqlite3_module object. Implement this method in RTREE, FTS3/4, and FTS5 so that "PRAGMA integrity_check" also verifies the correctness of shadow tables associated with those virtual tables. (check-in: 17bede8c user: drh tags: vtab-integrity-check)
07:39
Move Java-side FTS5 bits into the fts5 subpackage to (A) make it easy to optionally bundle it (or not) and (B) set a precedent for puting extension APIs in their own package. (check-in: 4c773e1f user: stephan tags: jni-client-data)
06:54
Java FTS5 API renaming, for consistency. (check-in: 5e4cc9f3 user: stephan tags: jni-client-data)
2023-09-05
15:43
Add debugging routines to check each page for corruption after it it is manipulated by the fts5 secure-delete code, and to log said page via sqlite3_log() if it is found to be corrupt. (Leaf check-in: da4b7385 user: dan tags: fts5-secure-delete-debug)
15:03
Fix a few SQLITE_MISUSE returns so that they call sqlite3MisuseError(). (check-in: 93f74490 user: drh tags: trunk)
2023-09-04
16:48
Add tests for, and source code comments to, fts5. No changes to code. (check-in: b12afff4 user: dan tags: trunk)
12:50
Do not make assumptions about the byteorder of PowerPC processors. (check-in: 4a2498fe user: drh tags: trunk)
06:15
In JNI routines which set an OutputPointer.value, always do so, even on error, for consistency. (check-in: d0df62f0 user: stephan tags: jni-client-data)
05:58
Remove several unnececessary functions. (check-in: 84433c72 user: stephan tags: jni-client-data)
05:34
Move an internal utility class out of the public Java API. (check-in: 8e1ae319 user: stephan tags: jni-client-data)
04:23
Expose sqlite3_bind_parameter_name() to JNI. Extend the definition of null for the @NotNull annotation, to consider closed/finalized Java-side handles wrapping C-side resources as null for its purposes. (check-in: fc34e2bf user: stephan tags: jni-client-data)
2023-09-03
15:01
In mksqlite3c.tcl, pass EXTRA_SRC files through verbatim instead of applying the post-processing needed for sqlite's own source files. (check-in: 44f3d7d0 user: stephan tags: extra-src)
14:41
Add the missing sqlite3_blob_read() to [9a9945c405cf]. Elaborate on the definition of the @NotNull annotation. (check-in: 85952b4a user: stephan tags: jni-client-data)
14:13
Expose the sqlite3_blob_...() APIs to JNI. (check-in: 9a9945c4 user: stephan tags: jni-client-data)
12:46
Expose sqlite3_system_errno() to JNI. (check-in: bac54da2 user: stephan tags: jni-client-data)
12:32
Expose sqlite3_stmt_status() to JNI. (check-in: d266acc2 user: stephan tags: jni-client-data)
12:17
Expose sqlite3_randomness() to JNI. (check-in: de969224 user: stephan tags: jni-client-data)
11:58
Expose sqlite3_get/set_auxdata() to JNI. (check-in: 0de32717 user: stephan tags: jni-client-data)
11:16
Expose sqlite3_get_autocommit() to JNI. (check-in: 67391c65 user: stephan tags: jni-client-data)
11:08
Remove some unnecessary code. (check-in: c7f9bbbb user: stephan tags: jni-client-data)
10:36
Add a couple more sqlite3_backup tests. (check-in: 5c2cf89d user: stephan tags: jni-client-data)
10:23
Export the sqlite3_backup_...() APIs to JNI. (check-in: 865a3df5 user: stephan tags: jni-client-data)
09:28
Export the sqlite3_keyword_...() family of functions to JNI. (check-in: bd554db3 user: stephan tags: jni-client-data)
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)
21:55
Also add support for EXTRA_SRC in the Makefile for MSVC. (check-in: bfc18ef4 user: mistachkin tags: extra-src)
19:35
Performance optimization to the OP_MakeRecord opcode. (check-in: 2aef9af3 user: drh tags: trunk)
14:36
Add sqlite3_config(SQLITE_CONFIG_LOG) support to Java and correct clearing of SQLITE_CONFIG_SQLLOG. Correct missing names in propagated UDF exception messages. (check-in: 652e2e82 user: stephan tags: jni-client-data)
12:53
Expose sqlite3_complete() to JNI. Slightly widen the definition of "canonical" for the purposes of the @Canonical annotation. Add a few new tests. (check-in: a59fe0cd user: stephan tags: jni-client-data)
11:26
Duplicate code consolidation. (check-in: a1872ae9 user: stephan tags: jni-client-data)
10:18
Remove a superfluous level of indirection in the JNI internals. (check-in: 8dca6f76 user: stephan tags: jni-client-data)
08:51
Further JNI cleanups. (check-in: 30e38173 user: stephan tags: jni-client-data)
08:04
Optimize sqlite3_get/set_clientdata() for the presumably common case of a static string pointer. (check-in: 84e38341 user: stephan tags: db-client-data)
05:37
Add EXTRA_SRC build var. If set, it is treated like a list of files, each of which gets appended verbatim to sqlite3.c. The intent is to enable easily extending the amalgamation. Requested in/around forum post 3fcc655f0ac0efe8. (check-in: 934b8433 user: stephan tags: extra-src)
2023-09-01
17:51
Add a timer to the JS SQLTester app to warn if it appears that loading the module has failed, which is commonly caused by the test scripts not being compiled. (check-in: f9c1f9ca user: stephan tags: jni-client-data)
16:28
Correct a Tester1.java test which inadvertently created a spurious db file in the current dir. Unrelated minor cleanups. (check-in: 016bbdad user: stephan tags: jni-client-data)
14:20
Make the JNI-internal metrics opt-in rather than opt-out so client builds won't have them by default. Unrelated doc tweaks. (check-in: aa72d25a user: stephan tags: jni-client-data)
13:27
Make JNI interfaces of sqlite3_column/value_text() match the C ones better. Internal JNI cleanups and simplifications. (check-in: eb24f972 user: stephan tags: jni-client-data)
11:30
In the OPFS VFS' importDb() methods, overwrite the header bytes 18 and 19 with 1 instead of 0. Correct a potentially leaked/unclosed SharedAccessHandle when importDb() throws. (check-in: 6795a610 user: stephan tags: branch-3.43)
11:10
Second half of [1c532e80]. (check-in: 8ca1d815 user: stephan tags: trunk)
11:05
In the OPFS VFS' importDb() methods, overwrite the header bytes 18 and 19 with 1 instead of 0. Both seem to work, but 1 is correct. (check-in: 1c532e80 user: stephan tags: trunk)
10:37
Remove some newly-dead code. (check-in: dc0fa76b user: stephan tags: jni-client-data)
10:32
Expose sqlite3_limit() to JNI and remove the all SQLITE_ macros from the Java interface which are not exposed via sqlite3.h (SQLITE_MAX_... and SQLITE_THREADSAFE_...). (check-in: 5fe5b0a5 user: stephan tags: jni-client-data)
09:43
JNI build improvements. Rename a Java class. Get the jar target working again. (check-in: d086b784 user: stephan tags: jni-client-data)
06:50
Expose sqlite3_stmt_explain(), sqlite3_stmt_isexplain(), and sqlite3_stmt_readonly() to JNI. Remove a mutex lock made superfluous by sqlite3_client_data(). (check-in: 208b786a user: stephan tags: jni-client-data)
2023-08-31
19:35
Export sqlite3_txn_state() to JNI. (check-in: d732f71d user: stephan tags: jni-client-data)
18:34
Minor JNI cleanups. (check-in: 2e2bb841 user: stephan tags: jni-client-data)
18:26
Do not disable unused columns in a UNION ALL sub-query if any component of the sub-query is DISTINCT. (check-in: 0d50d271 user: drh tags: branch-3.43)
18:00
Do not disable unused columns in a UNION ALL sub-query if any component of the sub-query is DISTINCT. Problem introduced by [7c2d3406000dc8ac] and reported by forum post aeae62275ebbf584. (check-in: c84d5602 user: dan tags: trunk)
15:24
Add convenience overloads of JNI sqlite3_table_column_metadata() to simplify usage. (check-in: faf4e6d3 user: stephan tags: jni-client-data)
14:57
Export sqlite3_(db_)free_memory() and sqlite3_table_column_metadata() to JNI. Further internals renaming for consistency and legibility. (check-in: 7c86aa34 user: stephan tags: jni-client-data)
2023-08-30
18:51
Use mutexes to make sqlite3_set_clientdata() and sqlite3_get_clientdata() threadsafe. (check-in: 443ea20d user: drh tags: db-client-data)
18:45
Replace JNI's per-db-instance state tracking with the new sqlite3_set/get_clientdata(). (check-in: e7c11d34 user: stephan tags: db-client-data)
18:38
Fix the json_array_length() function so that it gives the correct result even when its JSON input comes from json_remove(). (check-in: d63d9ee3 user: drh tags: bedrock-3.43)
18:34
Fix the json_array_length() routine so that it reports the correct answer even if its JSON input comes from the output of json_remove(). (check-in: 8b390d7e user: drh tags: wal2-3.43)
18:27
Fix a bug in json_array_length() introduced in version 3.43.0 If the JSON input comes from json_remove(), the removed array entries are still counted as part of the array length. (check-in: db7cb6cb user: drh tags: branch-3.43)
18:19
Fix a bug in json_array_length() introduced in version 3.43.0 by check-in [df099ad713011b67]. If the JSON input comes from json_remove(), the removed array entries are still counted as part of the array length. Bug report in forum post 0560d5e482. (check-in: 69a63595 user: drh tags: trunk)
17:41
Remove another unreachable branch in the sqlite3_set_clientdata() logic. (check-in: 57e31e6b user: drh tags: db-client-data)
17:14
Remove an unreachable branch, and improve documentation of sqlite3_set_clientdata(). (check-in: 565c68ad user: drh tags: db-client-data)
16:34
Fix the AVG() and TOTAL() functions so that they work with infinities. (check-in: 9877c7c8 user: drh tags: bedrock-3.43)
16:24
Fix the AVG() and TOTAL() functions so that they work with infinitites. (check-in: 988e5308 user: drh tags: wal2-3.43)
16:08
Fix the AVG() and TOTAL() functions so that they work with infinitites. (check-in: 97e20716 user: drh tags: branch-3.43)
16:03
Fix the AVG() and TOTAL() functions (after the SUM() fix of [77d3dcd283595c52]) so that they work with infinitites. Fixes a bug introduced by check-in. [c63e26e705f5e967]. Bug reported by forum post 8960fb40cc. (check-in: 6df6f17c user: drh tags: trunk)
15:51
Further tweaking in both SQLTesters. (check-in: 46b0eb98 user: stephan tags: trunk)
15:42
Fix to the sqlite3_get_clientdata() interface. (check-in: 937cd176 user: drh tags: db-client-data)
15:20
New experimental API for attaching client data to a database connection. (check-in: d542837f user: drh tags: db-client-data)
14:20
When a JS SQLTester script throws, report the exception details back to the UI regardless of whether it's fatal. (check-in: 273d3b05 user: stephan tags: trunk)
13:07
Add a JS implementation of Java's SQLTester. (check-in: b530792a user: stephan tags: trunk)
11:54
Add a UI, of sorts, to the JS SQLTester. (Closed-Leaf check-in: 249e82b9 user: stephan tags: js-tester)
00:22
Add a mechanism with which to import external SQLTester scripts into the JS testing tool. (check-in: bb08ba02 user: stephan tags: js-tester)
2023-08-29
21:30
Add directives support to JS SQLTester comparable to the Java impl. This brings the two to feature parity. (check-in: 7cef4a83 user: stephan tags: js-tester)
20:44
More fleshing out of JS SQLTester. (check-in: 8c503dfb user: stephan tags: js-tester)
20:37
Merge the latest branch-3.43 fixes into the bedrock branch. (check-in: 7e3e0075 user: drh tags: bedrock-3.43)
20:24
Merge the branch-3.43 fixes into the wal2 branch. (check-in: 903e9974 user: drh tags: wal2-3.43)
20:19
Fix a test case problem in wal2recover2.test. (check-in: 9e927eed user: drh tags: wal2)
20:01
JS SQLTestRunner can now run the Java impl's core-most sanity tests, missing only support for directives. (check-in: 5e798369 user: stephan tags: js-tester)
18:28
New conversion letters added to strftime(): %e, %k, %I, %l, %R, %P, %p, %T, %u. (check-in: 058722b2 user: drh tags: trunk)
15:39
Get the JS SQLTester command handlers in place sans those which have to run SQL. (check-in: d21b1217 user: stephan tags: js-tester)
15:38
Change the version number to 3.44.0 to begin the next development cycle. (Should have done this a few check-ins ago.) (check-in: 253fe4a4 user: drh tags: trunk)
15:24
Add support for the CONCAT() and CONCAT_WS() SQL functions, modeled after the PostgreSQL behavior. (check-in: 0b434ca7 user: drh tags: trunk)
13:28
Get the basic parsing pieces and command dispatching in place in the JS SQLTester. (check-in: 8fcc2a55 user: stephan tags: js-tester)
11:22
Init bits of a port of Java's SQLTester to JS. Far from complete. (check-in: 60eec5ce user: stephan tags: js-tester)
10:50
Change a variable from "int" to "i64" to make it easier to prove that it cannot overflow. (check-in: 00a8b3a2 user: dan tags: trunk)
00:10
Remove some dead code. Add a skeleton SQLTester script for fts5. (check-in: 6c83e31f user: stephan tags: trunk)
2023-08-28
23:18
Factor out a superfluous struct member. (check-in: 76d3911c user: stephan tags: trunk)
22:52
Further minor internal JNI simplifications. (check-in: 1808d12e user: stephan tags: trunk)
21:27
Improve threadability of the JNI collation-related bindings and add infrastructure for similar cases. (check-in: f02dad66 user: stephan tags: trunk)
20:21
Correct JNI mapping of collations to be 1-db-to-many-collations. (check-in: b927b0f5 user: stephan tags: trunk)
20:14
Updates to testrunner.tcl so that it runs fuzztest using multiple jobs. (check-in: ceeabe9f user: dan tags: trunk)
20:02
Fix the "sdevtest" testrunner.tcl command so that it correctly enables asan on windows. (Closed-Leaf check-in: 64631923 user: dan tags: testrunner)
18:15
Fixes for testrunner.tcl on windows. (check-in: 26ae0908 user: dan tags: testrunner)
16:28
Another fix for valgrind permutation. Remove the "copydir" table column - just add a [cp] or [copy] command to the test script where this functionality is required. (check-in: 448b9a57 user: dan tags: testrunner)
16:22
Remove a pair of what are arguably unnecessary mutex locks (and often hit). More JNI-internal cleanups. (check-in: ecf07a01 user: stephan tags: trunk)
16:05
Update tool/mkctimec.tcl to account for [fe7365254d343e]. (check-in: 349aac7e user: stephan tags: trunk)
15:58
Add support for the -DSQLITE_EXTRA_AUTOEXT=name compile-time option. forum thread 00829394c74a670f. (check-in: fe736525 user: drh tags: trunk)
14:59
Duplicate code consolidation. (check-in: 71f23974 user: stephan tags: trunk)
13:18
Move a metrics counter so that it can be used to indirectly witness the race condition fix from [f5274e00f17d58e0] by recording varying final values for that metric across consecutive multi-threaded test runs. (check-in: 54d2209d user: stephan tags: trunk)
13:06
Resolve a JNI-side race condition. Removed a now-extraneous struct member. Internal API renaming for consistency. (check-in: f5274e00 user: stephan tags: trunk)
12:57
Fix an issue with infinity handling by the SUM() function that goes back to the extended-precision SUM() enhancement of check-in c63e26e705f5e967. Problem reported by forum post 1c06ddcacc86032a. (check-in: 692266ab user: drh tags: branch-3.43)
12:20
Fix an issue with infinity handling by the SUM() function that goes back to the extended-precision SUM() enhancement of check-in [c63e26e705f5e967]. Problem reported by forum post 1c06ddcacc86032a. (check-in: 77d3dcd2 user: drh tags: trunk)
12:06
Resolve a condition which could cause an is-interrupted db to call its progress callback. (check-in: a0d0f1aa user: stephan tags: trunk)
11:22
Fix the valgrind permutation on this branch. (check-in: ccbf0676 user: dan tags: testrunner)
11:10
Further JNI cleanups and javadoc additions. (check-in: c393b1c9 user: stephan tags: trunk)
07:28
Lots of javadoc-related tweaks. (check-in: cfe06f90 user: stephan tags: trunk)
05:48
Correct a package renaming bug in the previous check-in and start applying the @Canonical annotation to functions to distinguish canonical API functions and Java-specific APIs. (check-in: 8a016006 user: stephan tags: trunk)
05:39
Move the JNI annotations into the annotation subpackage. (check-in: e4dedf90 user: stephan tags: trunk)
05:06
Resolve a makefile bug which causes sqlite3-worker1-bundler-friendly.mjs to be built incorrectly. Reported in forum post a874e435cf4690c1. (check-in: 289d2a0e user: stephan tags: branch-3.43)
04:59
Resolve a makefile bug which causes sqlite3-worker1-bundler-friendly.mjs to be built incorrectly. Reported in forum post a874e435cf4690c1. (check-in: 9d68c7ef user: stephan tags: trunk)
2023-08-27
15:15
Reimplement JNI's sqlite3_value_text() as a native instead of a Java-side proxy. Unrelated minor simplifications. (check-in: 401dd6ee user: stephan tags: trunk)
14:47
Generic cleanups in Tester1.java. (check-in: fbc1b631 user: stephan tags: trunk)
13:43
Remove JNI sqlite3_column_java_object(), as the protection rules of sqlite3_values makes it impossible to implement safely. Add JNI sqlite3_bind_java_object(). (check-in: 29bd4a23 user: stephan tags: trunk)
11:28
Correct the signature mismatch between JNI sqlite3_column/value_text16() and add related tests. (check-in: 77f6e70f user: stephan tags: trunk)
10:40
Make JNI sqlite3_trace_v2() thread-safe. Re-add a piece removed in [bae4d022aad9b] to work around a JVM crash which is unpredictably triggered by its substitute. Fix the THREADMODE=0 JNI build. Further internal API simplifications. (check-in: 3f9f7a9c user: stephan tags: trunk)
09:12
Factor out an unnecessary struct member. JNI sqlite3_shutdown() now frees up the various object-recycling bins. Doc touchups. (check-in: bae4d022 user: stephan tags: trunk)
08:10
Factor out a superfluous JNI class. Doc and code style cleanups. (check-in: 0f37f271 user: stephan tags: trunk)
07:26
JNI code reorgs and simplify the failing-alloc interface a bit. (check-in: deed5797 user: stephan tags: trunk)
2023-08-26
22:34
Apply the JNI OOM checks to memory returned by JDK APIs, as distinct from our APIs. (check-in: 1ff78582 user: stephan tags: trunk)
21:13
Eliminate a superfluous JNI-internal middle-man class. (check-in: daede0f8 user: stephan tags: trunk)
21:04
Updates to testrunner.tcl so that it runs "make fuzztest" using multiple jobs. (check-in: 7596ea70 user: dan tags: testrunner)
21:02
Whether or not OOM is always fatal in JNI is now a compile-time option. (check-in: 320a34c0 user: stephan tags: trunk)
19:34
Correct a string length misuse in JNI sqlite3_result_error() in an OOM case. Unrelated minor JNI cleanups. (check-in: 4252f56f user: stephan tags: trunk)
18:15
Remove a bunch of commented-out debug output. (check-in: b4948848 user: stephan tags: trunk)
18:01
Re-order some out-of-order JNI APIs. Correct JNI sqlite3_open_v2() behavior in a particular OOM condition. (check-in: 49d3be00 user: stephan tags: trunk)
17:36
Two significant typo fixes for [1a30919bfbb686]. (check-in: 6a6ee6dd user: stephan tags: trunk)
17:30
Bind sqlite3_db_handle() to JNI. (check-in: 1a30919b user: stephan tags: trunk)
16:55
Correct a potential duplicate xDestroy() being triggered for Java-side collations. (check-in: 25331172 user: stephan tags: trunk)
16:29
Recycle per-UDF JNI state. (check-in: cf406528 user: stephan tags: trunk)
14:55
Code consolidation cleanups. (check-in: d6b5ecd2 user: stephan tags: trunk)
12:19
Add -sqllog flag to the JNI 'tests' target because it hits APIs which are otherwise not tested. (check-in: cc3153ed user: stephan tags: trunk)
11:57
JNI internal cleanups and docs. (check-in: b7b26bfb user: stephan tags: trunk)
10:51
Remove the Java BusyHandler.xDestroy() method - it should not have had one. Eliminate the last of the potentially-significant MUTF-8 cases. (check-in: c852f1eb user: stephan tags: trunk)
10:20
Improve threading support for all types of JNI-side callback hooks, making them safe to invoke if another thread is busy replacing them. (check-in: f2af7bbf user: stephan tags: trunk)
2023-08-25
16:43
Move the 3 Java SQLFunction subclasses from inner classes to package scope. (check-in: 21fd47a6 user: stephan tags: trunk)
16:26
Missed a straggler when renaming Java classes in [8ca528006533ac1]. Document threading limitations. (check-in: 5786b95f user: stephan tags: trunk)
14:17
Hopefully the last major API rename in the JNI bits: rename all lower_camel_case classes which do not have direct counterparts in the C API to UpperCamelCase, as that's more idiomatic. Java types which reflect C-style types are unaffected. (check-in: 8ca52800 user: stephan tags: trunk)
13:23
More Java API renaming for consistency. (check-in: 4e457778 user: stephan tags: trunk)
12:29
Re-enable SQLITE_THREADSAFE=0 in the JNI build and add multitest target which builds and runs the tests in all 3 threading modes. (check-in: 6b1c816f user: stephan tags: trunk)
11:32
Code restructuring. Force SQLITE_THREADSAFE in JNI builds for the time being, as threadsafe==0 leads to as-yet-mysterious JNI-level reference errors. (check-in: 5a099caa user: stephan tags: trunk)
11:06
Remove incorrect (but harmless) dependency on source code file "sessionfuzz-data1.db" from main.mk and Makefile.in. (check-in: 17d56c02 user: dan tags: trunk)
04:27
Only build in the JNI-side metrics tracking in SQLITE_DEBUG builds. (check-in: 646e7fc3 user: stephan tags: trunk)
04:02
Javadoc and internal API cleanups. (check-in: 10a43cba user: stephan tags: trunk)
02:57
Replace all of the JNI XyzHook/Handler classes with snake_cased ones which follow unified naming conventions to make them easier to apply. (check-in: 76e62a38 user: stephan tags: trunk)
00:27
javadoc additions. (check-in: bedf33d4 user: stephan tags: trunk)
2023-08-24
22:28
Re-frame the incongruous SQLite3Jni.uncacheThread() API as sqlite3_java_uncache_thread(). (check-in: 7232b033 user: stephan tags: trunk)
21:45
Update some outdated JNI docs and account for a function renamed earlier this evening. (check-in: 3f684ef5 user: stephan tags: trunk)
21:31
Do not pre-allocate sqlite3_aggregate_context() for Java UDFs, as it unduly complicates UDF initialization. (check-in: e8308f0c user: stephan tags: trunk)
19:08
Add doc/testrunner.md, for documenting the testrunner.tcl script. (check-in: 9c69a284 user: dan tags: trunk)
18:43
More code legibility and style improvements in the JNI pieces. Start work on a javadoc build. (check-in: 62b404d6 user: stephan tags: trunk)
17:25
Doc, code style, and legibility cleanups. (check-in: cf185bcd user: stephan tags: trunk)
15:42
Doc style fixes. (check-in: 862f9828 user: stephan tags: trunk)
15:11
Add a new non-goal to the JNI README.md. (check-in: 53000cda user: stephan tags: trunk)
14:49
Merge the jni-threading branch into trunk, eliminating the JNI API's prior threading limitations. (check-in: 3739c8aa user: stephan tags: trunk)
14:43
Merge into trunk improvements made to the wasm APIs which were too late for 3.43. (check-in: ac9da5c7 user: stephan tags: trunk)
14:31
Correct JNI layer's misuse of an sqlite3-internal error-reporting API (no mutex held). Style cleanups. Eliminate lookups of per-thread state by approximately 85% across the test suite. (Closed-Leaf check-in: 1f46ba8d user: stephan tags: jni-threading)
14:17
Ensure that db mutex is held when using sqlite3ErrorWithMessage() to avoid a potential assertion in debug builds. (Closed-Leaf check-in: b8f6a50a user: stephan tags: wasm-post-343)
13:42
Fix a test case problem in wal2recover2.test. (check-in: 81361769 user: dan tags: bedrock)
13:32
Version-3.43.0 for the reuse-schema branch. (check-in: 6f1bcd6a user: drh tags: reuse-schema)
13:26
Version 3.43.0 for the bedrock branch. (check-in: e7b1ee1a user: drh tags: bedrock)
13:19
Version 3.43.0 for the wal2 branch. (check-in: b5970fc4 user: drh tags: wal2)
13:17
Version 3.43.0 for the begin-concurrent branch. (check-in: e67bf282 user: drh tags: begin-concurrent)
12:36
Version 3.43.0 (check-in: 0f80b798 user: drh tags: trunk, release, major-release, version-3.43.0)
12:01
Change a variable name in fts5FlushOneHash() to avoid shadowing another. (check-in: 3f5bec9a user: dan tags: trunk)
11:57
Add more JNI docs, tests, and a handful of Java-side overloads. (check-in: d19a431f user: stephan tags: jni-threading)
2023-08-23
18:42
Fix typo in the Lemon documentation. (check-in: 5daeb318 user: drh tags: trunk)
18:29
More changes to documents for GitHub-style markdown. (check-in: f20f84ef user: drh tags: trunk)
18:26
Fix the Markdown in the compile-for-windows.md document so that it works on GitHub. Improved header text in README.md. (check-in: a25360c0 user: drh tags: trunk)
17:52
JNI cleanups regarding building with certain features disabled. (check-in: a9e6d515 user: stephan tags: jni-threading)
17:15
Remove unnecessary jclass-type struct members. (check-in: d67255f7 user: stephan tags: jni-threading)
16:41
Some thinking-out-loud about how to implement vtabs in Java. In no way complete. (Closed-Leaf check-in: 49c24c29 user: stephan tags: jni-vtab)
13:36
Add a note to the JNI README explaining why the Java API has callback names like xFunc() and xPreUpdate(). (check-in: 415447a3 user: stephan tags: jni-threading)
13:17
Bind sqlite3_preupdate_hook() and friends to JNI. (check-in: d0c425b5 user: stephan tags: jni-threading)
12:53
Minor adjustments to the wording about pull requests in the README.md file. (check-in: 6b2d68af user: drh tags: trunk)
10:36
Bind a subset of sqlite3_config() to JNI: threading modes and sqllog. (check-in: fce8ecaf user: stephan tags: jni-threading)
10:20
The pageOnDirtyList() assertion is too slow even for debugging builds, for some corner cases. It makes the query appear to hang. So make it an EXPENSIVE_ASSERT instead. (check-in: bb9dcdaf user: drh tags: trunk)
09:05
Numerous minor cleanups and code style conformance improvements. (check-in: 6c92d884 user: stephan tags: jni-threading)
00:17
Improve C-side exception handling from Java-side UDF callbacks. (check-in: aebbc24a user: stephan tags: jni-threading)
2023-08-22
23:00
Minor Tester1.java cleanups. (check-in: 70d93695 user: stephan tags: jni-threading)
22:13
Fix Tester1 so that exceptions triggered via threads are not silently ignored. Disable auto-extension tests in multi-thread mode because concurrent threads rightfully interfere with that. (check-in: 56b2a077 user: stephan tags: jni-threading)
20:10
More work on the JNI multi-threaded test runner. (check-in: 9a74ad71 user: stephan tags: jni-threading)
18:36
Disassociate JNI db handles from the thread that created them, as it's no longer relevant. (check-in: 8b78b737 user: stephan tags: jni-threading)
17:51
Correct JNI binding of sqlite3_shutdown() to clean up all cached JNIEnv objects. (check-in: 02e86869 user: stephan tags: jni-threading)
17:36
JNI internal cleanups and correct two leaked db handles in test code. (check-in: f927a30b user: stephan tags: jni-threading)
16:44
Fix a harmless memory leak in the sqldiff utility. (check-in: 724bc157 user: drh tags: trunk)
15:47
Merge the trunk Makefile enhancements into the reuse-schema branch - especially the new "sdevtset" makefile target. (check-in: f55f5e9d user: drh tags: reuse-schema)
15:30
Move the JNI per-thread cache of NativePointerHolder refs into global space. This allows better-targeted mutex locks and incidentally eliminates the lagginess and post-run hangs in Tester1's multi-thread mode (presumably caused by deadlocks). (check-in: e209f56a user: stephan tags: jni-threading)
15:19
Add makefile target "sdevtest" - like "mdevtest" except asan and usan enabled for the non-debug test. (check-in: a449d650 user: dan tags: trunk)
13:41
Update version number in autoconf/tea/configure.ac. (check-in: 055ae724 user: dan tags: trunk)
11:34
Move most of the per-JNIEnv global Java class refs into the global state, saving a bit of per-thread overhead. (check-in: 7342bf57 user: stephan tags: jni-threading)
11:20
Update autoconf/Makefile.msc (by running mkmsvcmin.tcl) to support the "ASAN=1" option. (check-in: 17028ba7 user: dan tags: trunk)
2023-08-21
23:45
Minor JNI cleanups. (check-in: b88910aa user: stephan tags: jni-threading)
18:31
Merge latest changes from the wal2 branch into this one. (check-in: 4d8df0c4 user: dan tags: bedrock)
18:25
Fix problems related to structured-exception-handling on this branch. (check-in: d3d77e35 user: dan tags: bedrock)
18:03
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 76a99a2c user: drh tags: begin-concurrent)
18:02
Merge latest trunk changes into this branch. (check-in: 135bf72c user: dan tags: wal2)
17:53
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: e94f09f1 user: drh tags: reuse-schema)
17:49
Fix problems related to structured-exception-handling on this branch. (check-in: dd86c272 user: dan tags: begin-concurrent)
17:26
Fix MSVC testfixture.exe builds. (check-in: 7004c902 user: dan tags: begin-concurrent)
16:14
Fix an undefined integer overflow in fts5. (check-in: f5c50349 user: dan tags: trunk)
15:29
ifdef adjustments so that SQLITE_OMIT_WAL works with SQLITE_USE_SEH. (check-in: 0462a261 user: drh tags: trunk)
14:40
Fix another UBSAN inaccuracy in fuzzcheck. (check-in: a6fb9de8 user: drh tags: trunk)
14:28
Address minor inaccuracies in fuzzcheck and RTREE found by UBSAN. (check-in: a64e6c2f user: drh tags: trunk)
2023-08-19
14:49
JNI cleanups. (check-in: 0a841310 user: stephan tags: jni-threading)
12:34
Merge trunk into jni-threading branch. (check-in: 8254479c user: stephan tags: jni-threading)
12:32
JNI doc additions. (check-in: 0c7ac34f user: stephan tags: jni-threading)
11:52
JNI test code cleanups. (check-in: e202b6e6 user: stephan tags: jni-threading)
11:26
Minor JNI cleanups. (check-in: 1cecb9e0 user: stephan tags: jni-threading)
10:43
Add multi-thread run mode to JNI Tester1. It works but hangs on exit sometimes for Java reasons as yet not understood. (check-in: bdbaf7a4 user: stephan tags: jni-threading)
08:22
Replace JNI::NewStringUTF() for the remaining cases where output may be incompatible with MUTF-8. It is now only used when we know the output to be plain ASCII. (check-in: 2d955eef user: stephan tags: jni-threading)
08:12
shell.c.in help text typo fix. No functional changes. (check-in: c3190332 user: stephan tags: trunk)
2023-08-18
15:39
Rename the decimal_sci() function to decimal_exp(). Forum post fa027bb0ab. (check-in: c48f1be8 user: drh tags: trunk)
15:17
Avoid running test case sort2.2.3 under address-sanitizer. It runs out of memory on some 32-bit platforms. (check-in: 925be753 user: dan tags: trunk)
14:41
Improve exception handling in OpfsDb.importDb(). (check-in: a4eedd63 user: stephan tags: wasm-post-343)
14:16
Extend the importDb() method of both OPFS VFSes to (A) support reading in an async streaming fashion via a callback and (B) automatically disable WAL mode in the imported db. (check-in: 9b1398c9 user: stephan tags: wasm-post-343)
12:15
Enhance the CLI and the fuzzcheck utility programs to report whether they are compiled as 32-bit or 64-bit for things like the --version option. (check-in: ec7eeb05 user: drh tags: trunk)
11:36
Enhance the notes on compiling for Windows11 to explain how to do 32-bit builds on a 64-bit system. (check-in: dd749e40 user: drh tags: trunk)
2023-08-17
22:04
Remove some obsolete JNI-internal docs. (check-in: 00a2a373 user: stephan tags: jni-threading)
17:48
Do not allow bound parameters in the ON CONFLICT clause of an UPSERT. dbsqlfuzz 9983e2c77634a8ccf33b5c91fa9982599de5f9e9 (check-in: 3c067093 user: drh tags: trunk)
16:59
Fix an error in documentation comments in fts5.h. (check-in: 24d96bd6 user: dan tags: trunk)
16:49
Add extra test to fts5synonym2.test. (check-in: 39ea11be user: dan tags: trunk)
16:06
Add "Windows-Sanitize" configuration to "testrunner.tcl release" tests on windows. (check-in: e68b46dc user: dan tags: trunk)
15:14
Have all test names in json101.test start with "json101". (check-in: af56d7b6 user: dan tags: trunk)
15:11
Enable address sanitizer in Makefile.msc by adding the ASAN=1 argument on the nmake command line. (check-in: 3eaadaff user: drh tags: trunk)
14:19
Fix a possible UAF in SEH if an exception occurs at an inopportune moment during WAL processing. (check-in: 91b91037 user: drh tags: trunk)
13:13
Tighten up the JNI auto-ext handling. (check-in: c09c8d05 user: stephan tags: jni-threading)
12:44
Minor internal JNI cleanups and fixes. (check-in: 0e9437de user: stephan tags: jni-threading)
10:49
Remove the FIXME markers related to threading. Code style cleanups. (check-in: 154ab26d user: stephan tags: jni-threading)
09:49
Add SQLITE_EXTRA_AUTOEXT, similar to SQLITE_EXTRA_INIT but adds a builtin auto-extension provided by the client. Suggestion from forum post 00829394c74a670f. (Closed-Leaf check-in: 423e7727 user: stephan tags: extra-autoext)
2023-08-16
17:23
Refinements to instructions on compiling for Windows. (check-in: d543c36c user: drh tags: trunk)
17:12
Improved instructions on how to build SQLite on Windows 11 and similar. (check-in: 0f6b2b33 user: drh tags: trunk)
15:27
Make sqlite3_stmt_explain() accessible to loadable extensions. (check-in: a237a31f user: drh tags: trunk)
15:10
Mix the current process ID into the randomness used for generating temporary filenames on Windows. (check-in: 775a36ee user: drh tags: trunk)
14:18
Update testrunner.tcl to use environment variable %NUMBER_OF_PROCESSORS% when running under tclsh on windows. Also modify the internal database schema used by testrunner.tcl to be compatible with old versions of SQLite. (check-in: 6542ed3b user: dan tags: trunk)
13:55
Fix test script problem preventing veryquick.test from running. (check-in: e7388657 user: dan tags: trunk)
2023-08-15
21:44
Cherrypick [00ac653562a6] to remove stray JNI debug output. No functional changes. (check-in: e12d70f3 user: stephan tags: trunk)
20:57
Cherrypick [653ed92dc391] (went to wrong branch). Doc change only, no code changes. (check-in: 79a14457 user: stephan tags: trunk)
18:52
Update testrunner.tcl to make it easier to add things like mdevtest. (check-in: a531b71c user: dan tags: trunk)
18:08
Improve the portability of the src-verify.c tool on Windows. (check-in: 4068d94a user: drh tags: trunk)
14:53
Fix problems in fts5 test code. (check-in: c16ed3b1 user: dan tags: trunk)
13:01
Add note about the current threading limitation to ext/jni/README.md. No code changes. (check-in: 653ed92d user: stephan tags: wasm-post-343)
12:27
Use a dodgy substitute if the INFINITY macro is not available. See forumpost 8e66e19bb9. (check-in: 4ae72c89 user: drh tags: trunk)
11:58
Fix the PRAGMA case_sensitive_like command so that the LIKE function continues to be innocuous after the PRAGMA. Forum post 925dc9f67804c540. (check-in: 84c268c3 user: drh tags: trunk)
10:57
Fix an off-by-one error causing a buffer overread in test2.c. (check-in: e1edf95e user: dan tags: trunk)
09:26
Minor reshaping of Tester1 moving towards making a multi-threaded run mode. (check-in: f104c14c user: stephan tags: jni-threading)
09:16
Remove a piece of stray debug output. No functional changes. (check-in: 00ac6535 user: stephan tags: wasm-post-343)
2023-08-14
19:10
Fix the autoconf makefile for the CLI such that it disables double-quoted strings by default, as all other builds of the CLI do. forum post 9794b6aaa5. (check-in: 85fd4f0e user: drh tags: trunk)
18:21
Fix a problem in sqlite3_snapshot_recover() introduced by the [8a6b0c24937e855b] merge. (check-in: c2577eb0 user: dan tags: trunk)
17:12
Bring handling of the Java auto-ext handler more in line with the core in terms of locking and mutability during traversal. This removes the explicit synchronous requirement from the Java open() and auto-ext bindings. (check-in: 42994b95 user: stephan tags: jni-threading)
14:21
Remove some obsolete, commented-out makefile code. No functional or build changes. (check-in: ea574cd5 user: stephan tags: wasm-post-343)
13:33
Change the name of the ".binary" command in the CLI to ".crnl". The sense of the setting is inverted. The original ".binary" still works for backwards compatibility but is now undocumented. ".crnl" is also undocumented on machines where it is a no-op (all machines other than Windows). forum thread 8bd0b0fbdbc12477 (check-in: 544de2da user: drh tags: trunk)
13:27
More work on the JNI-specific mutexes. Rework the NativePointerHolder cache lookup to be slightly simpler and O(1) instead of O(N). (check-in: c84ded0e user: stephan tags: jni-threading)
12:20
Fix harmless compiler warnings reported by MSVC. (check-in: 391e21bb user: drh tags: trunk)
12:05
Enable SEH be default in Windows builds. (check-in: faae792f user: drh tags: trunk)
08:28
JNI-internal docs and removal of obsolete code. (check-in: b62d9325 user: stephan tags: jni-threading)
2023-08-13
20:58
Internal API renaming for clarity's sake. (check-in: 911e4fc5 user: stephan tags: jni-threading)
12:40
Add a mutex for auto-extensions, tied in to the open() process since that's the route into auto-extensions. (check-in: 8da97e0d user: stephan tags: jni-threading)
10:28
Add some docs and metrics for the new mutex internals. (check-in: 33d1780b user: stephan tags: jni-threading)
10:22
Remove SQLITE_DEBUG from JNI build. (check-in: 82f004cf user: stephan tags: trunk)
09:53
An initial attempt at protecting the JNI global state via mutexes at the C level instead of relying on Java's synchronized keyword. It seems to work but increases the run time of the single-threaded SQLTester batch by roughly 3 times. (Correction: it was just run on a slower machine. Cursory testing suggests that runtime performance hit might be, but likely isn't, as high as 10%.) (check-in: c64e6a52 user: stephan tags: jni-threading)
2023-08-12
23:47
Bind sqlite3_interrupt() and sqlite3_is_interrupted() to JNI but with caveats regarding mutexing of the JNIEnv cache. Add a loud warning to the JNI 'dist' target that it should be built with JDK8 (a.k.a. Java 1.8) for compatibility reasons. (check-in: fbf99a24 user: stephan tags: jni-threading)
21:39
Merge the Java Native Interface (JNI) binding into trunk. (check-in: 48b13edc user: stephan tags: trunk)
21:08
Update wasm's push-testing rule to exclude files which were recently removed from the build. (check-in: 0a6930a7 user: stephan tags: trunk)
20:50
Correct JNI .jar rules to only include *.java/class files, not *.* (*~ files). (Closed-Leaf check-in: 1ba77540 user: stephan tags: jni)
19:58
Fix the mdevtest target so that it works with msvc. (check-in: 01f49448 user: dan tags: trunk)
19:25
Fix testrunner.tcl so that it restarts itself using [testfixture] if its current interpreter does not support [package require sqlite3]. (check-in: 408be98d user: dan tags: trunk)
18:23
Have the mdevtest target support the OPTS variable on unix. (check-in: 940f58d9 user: dan tags: trunk)
17:36
Add "mdevtest" target to makefiles. Equivalent to running "devtest" on both debug and non-debug builds. (check-in: af354fbc user: dan tags: trunk)
15:37
More JNI docs. (check-in: 290028d3 user: stephan tags: jni)
15:09
Further simplifications in the interface of the OutputPointer family of Java classes. (check-in: 962c3e0d user: stephan tags: jni)
12:16
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: d2b0ddcc user: drh tags: reuse-schema)
10:39
Tweaks and docs for the OutputPointer family of Java classes. (check-in: 265c8fd0 user: stephan tags: jni)
10:27
Bind sqlite3_db_status() to JNI. (check-in: b79477a0 user: stephan tags: jni)
10:06
Bind sqlite3_status(64)() to JNI. (check-in: cefb6614 user: stephan tags: jni)
2023-08-11
22:40
Modernize the sqlite3 shell man page a bit, per forum request. (check-in: 3bc0693c user: stephan tags: trunk)
21:25
Add timing info to SQLTester. (check-in: b69b5fac user: stephan tags: jni)
21:24
Merge trunk into jni branch. (check-in: 4f0aeeba user: stephan tags: jni)
20:32
Fix a makefile deps problem which caused ext/jni build to fail if sqlite3.c/h were not created beforehand. (check-in: 101de670 user: stephan tags: jni)
19:38
Merge latest trunk changes, including support for handling of structured-exceptions in MSVC builds, with this branch. (check-in: cb3cf9ba user: dan tags: begin-concurrent)
19:36
Merge latest wal2 changes, including support for handling of structured-exceptions in MSVC builds, with this branch. (check-in: 331f2f3e user: dan tags: bedrock)
19:33
Merge latest trunk changes, including support for handling of structured-exceptions in MSVC builds, with this branch. (check-in: 00bfae9f user: dan tags: wal2)
19:31
If SQLITE_USE_SEH is defined, handle structured-exceptions thrown by MSVC builds if the *-shm file mapping is accessed after it becomes invalid for some reason. (check-in: 8a6b0c24 user: dan tags: trunk)
18:59
Minor SQLTester test tweaks and have 'make tester' include the out-of-tree tests if they are found. (check-in: 6c8538d8 user: stephan tags: jni)
18:31
Fix a problem with handling savepoints in BEGIN CONCURRENT transactions. (check-in: ca422d00 user: dan tags: bedrock)
18:25
Fix a problem with handling savepoints in BEGIN CONCURRENT transactions. (check-in: 4a5c0439 user: dan tags: begin-concurrent)
18:04
Bind sqlite3_sql() and sqlite3_expanded_sql() to JNI. Start marking C-side functions which would need explicit mutex support if we remove 'synchronized' from their Java entry points (but there are many more left to mark). (check-in: c7fb32d1 user: stephan tags: jni)
17:45
Add a doc link for the new sqlite3_js_posix_create_file(). (check-in: 0d7aac45 user: stephan tags: trunk)
17:38
Add sqlite3.capi.sqlite3_js_posix_create_file() and oo1.OpfsDb.importDb() as alternatives for the newly-deprecated sqlite3_js_vfs_create_file(). (check-in: da6eaf8d user: stephan tags: trunk)
14:31
Deprecate sqlite3_js_vfs_create_file() because, it was discovered today, its out-of-scope use of the sqlite3_vfs, sqlite3_file, and sqlite3_io_methods APIs triggers unresolvable assertions in the core when built with SQLITE_DEBUG. (check-in: f3647a3a user: stephan tags: trunk)
11:46
Merge all the latest trunk enhancements into the bedrock branch. (check-in: 859932eb user: drh tags: bedrock)
11:40
Merge the latest trunk enhancements into the wal2 branch. (check-in: fe1bf30c user: drh tags: wal2)
11:34
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 7cb2b4e3 user: drh tags: begin-concurrent)
11:30
Provide the -DSQLITE_LEGACY_JSON_VALID compile-time option to restore the (incorrect) legacy behavior of json_valid(NULL). (check-in: 00bc9f1b user: drh tags: trunk)
11:24
Fix bug in the test case for the previous check-in. (Closed-Leaf check-in: c5daae88 user: drh tags: legacy-json-valid)
11:23
Update test scripts specific to this branch so that they work on windows. (check-in: f0ca13ed user: dan tags: wal2)
11:12
Up until version 3.42.0, there was a bug in json_valid() such that it would return False (0) for a NULL input. That bug is fixed in 3.42.0. This check-in adds a compile-time option -DSQLITE_LEGACY_JSON_VALID that restores the old buggy behavior for applications that depend on it. (check-in: 15c2eadb user: drh tags: legacy-json-valid)
2023-08-10
21:50
Mark _all_ JNI binding funcs as synchronized so that Java can lock them and protect our global-state access. The alternative is writing a mountain of C-side code to do the same thing. (check-in: afe190a9 user: stephan tags: jni)
21:29
Work around jdk8 and jdk19 mangling the C name of sqlite3_db_config() differently. Correct the variadic arg handling of the JNI-side subset of sqlite3_db_config() options. (check-in: 746894c3 user: stephan tags: jni)
21:20
Add tests for structured-exception-handling and wal2. Fix a problem with the same. (Leaf check-in: 87242777 user: dan tags: wal2-shm-exceptions)
20:52
Add a working dist zip file for the JNI bits. (check-in: d6a4d212 user: stephan tags: jni)
18:58
Experimental merge of the wal-shm-exceptions and wal2 branches. (check-in: fd58c616 user: dan tags: wal2-shm-exceptions)
18:57
Initial pass at 'make dist' rules for the JNI bundle, but they still need a bare-bones, posix-make-compatible makefile to include in the bundle. (check-in: ff54e66a user: stephan tags: jni)
18:50
New testcase() macro in the tokenizer, to better document its behavior. (check-in: b2fdac0b user: drh tags: trunk)
17:39
Merge trunk into jni branch for the newly-relocated version-info tool. (check-in: cc8e8cba user: stephan tags: jni)
17:32
Move ext/wasm/version-info.c to tool/ for re-use in build other dist bundles. (check-in: 4b0871fd user: stephan tags: trunk)
17:07
Merge latest trunk changes into this branch. (Leaf check-in: 3ed89c34 user: dan tags: wal-shm-exceptions)
17:04
Mark test script wal2big.test as "TESTRUNNER: slow". (check-in: ae7f3bcb user: dan tags: wal2)
17:03
Merge latest trunk changes into this branch. (check-in: 72f7807b user: dan tags: wal2)
16:42
Add SQLTester --keep-going flag to allow it to continue to the next script after an error. (check-in: 4d635f78 user: stephan tags: jni)
13:10
Document that auto-extensions registered via JNI will fail if they open a db (to avoid triggering an endless loop in the auto-extensions). Discover the hard way that JDKv19 creates different mangled JNI names for some functions than JDKv8. Start reformatting much of the JNI API decls in prep for making them even longer. (check-in: 99c0941f user: stephan tags: jni)
12:36
Resolve two assertions in the auto-extension JNI which were triggered via new SQLTester infrastructure. Move SQLTester's db-init SQL injection into an auto-extension. (check-in: 2952906c user: stephan tags: jni)
11:15
Make test completion status more visible at a glance on modern terminals. (check-in: a4e96c30 user: stephan tags: jni)
11:04
Disable REQUIRED_PROPERTIES handling in SQLTester, per /chat. Scripts with that directive are now skipped. (check-in: ddc534cb user: stephan tags: jni)
10:58
Add a visual indicator (emoji) to TestScript verbose messages, dependent on the message's level of verbosity. (check-in: dc323d38 user: stephan tags: jni)
10:44
Add the current --testcase name to SQLTester --verbose output. (check-in: f8736740 user: stephan tags: jni)
10:34
More SQLTester docs. Add --verbosity command to help zoom in on script areas while debugging. Spice up test-start/end output with some emoji. (check-in: 8dd08021 user: stephan tags: jni)
05:25
Give DbException the option of closing the db to simplify error handling in one case. (check-in: 908c9a44 user: stephan tags: jni)
05:14
Initial version of REQUIRED_PROPERTIES support for SQLTester, with TEMPSTORE_(FILE/MEM) and RECURSIVE_TRIGGERS options. (check-in: 48d16c9d user: stephan tags: jni)
04:24
Generic cleanups and fixes in SQLTester. (check-in: fc5d3cc3 user: stephan tags: jni)
02:09
Change the SQLite3Jni API annotations to use SOURCE retention (used only at compile-time). (check-in: 3c3fea6b user: stephan tags: jni)
01:44
Move all of the SQLTester code into a single file, since it's only got 1 public class. Remove 'public' from many methods which don't need it. Add more documentation to it. (check-in: 2815d676 user: stephan tags: jni)
01:19
Defer static JNI-side init of SQLTester until main() is called so that its auto-extensions do not leak over to clients of the main library. (check-in: e461fdd5 user: stephan tags: jni)
01:05
Merge trunk into jni branch. (check-in: 52fa6f78 user: stephan tags: jni)
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)
17:36
Minor cleanups in sqlite3Int.h. By reordering some fields in the Parse object, it packs more tightly and uses less memory and less CPU to initialize. (check-in: aa6de539 user: drh tags: trunk)
16:53
Fix an issue in the amalgamation generator in which it was not correctly expanding the SQLite version in the header comment. (check-in: 293f6191 user: drh tags: trunk)
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)
17:09
Enhance sqlite3_vtab_nochange() so that it works with "UPDATE ... FROM ..." statements. Use this to allow some updates on fts5 contentless-delete tables. (check-in: 27ff86e4 user: dan tags: trunk)
16:15
Changes so that sqlite3_vtab_nochange() works with "UPDATE ... FROM...". Use this to allow UPDATE on a contentless fts5 table if new values are supplied for all indexed columns. (Closed-Leaf check-in: 16cd2161 user: dan tags: fts5-contentless-delete)
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)
09:44
Rename fts5_api pContext parameters to pUserData, per /chat discussion. This is a cosmetic change made to reduce confusion between those parameters and the two other context-type parameters in that API. (check-in: 2ca064d8 user: stephan tags: trunk)
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)
19:15
Tiny doc typo fixes from forum post 31eb707250. No code changes. (check-in: 8ede5008 user: stephan tags: trunk)
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
16:01
In the opfs-sahpool VFS's importDb() and exportFile() methods, throw if the actually-wrote/read amounts differ from the expected-to-write/read amounts, per feedback in forum post a4122e986f. (check-in: a617ebf4 user: stephan tags: trunk)
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:29
Merge the json_remove() bug fix from trunk into the bedrock branch. (check-in: a8872aa5 user: drh tags: bedrock)
13:27
Eliminate code duplication in the two JNI tester classes. (check-in: 63e7bbe3 user: stephan tags: jni)
13:24
Merge the json_remove() bug fix from trunk into the wal2 branch. (check-in: e6c066ca user: drh tags: wal2)
13:19
Fix a bug in the jsonLookup() routine used to search JSON. Bug was introduced by the recent (unreleased) JSON caching enhancements check-in [a4c1af616e672a0d] merged into trunk at [df099ad713011b67]. (check-in: ba7a66db user: drh tags: trunk)
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:10
Change comment on Fts5ExtensionApi.iVersion from "always set to 3" to "always set to 2". (check-in: b7de399c user: dan tags: trunk)
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:45
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 them. (check-in: 031c9a76 user: stephan tags: trunk)
08:41
Part 2 of the fix from [a0f808363318c00fd1db78b]. (check-in: 5c310422 user: stephan tags: trunk)
08:39
More work towards fts5 customzation in JS. (Leaf check-in: ce2a65d8 user: stephan tags: wasm-fts5)
2023-08-03
23:26
Merge the latest trunk enhancements into the bedrock branch. (check-in: 877ffece user: drh tags: bedrock)
23:22
Merge the latest trunk enhancements into the wal2 branch. (check-in: 6fa71e11 user: drh tags: wal2)
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)
18:14
Fix harmless scan-build warnings. (check-in: 65a8716d user: drh tags: trunk)
16:22
Fix a discrepancy between sqlite3_values_to_js() and its API docs/intended behavior. (check-in: 7b85c68f user: stephan tags: trunk)
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)
13:30
Fix build problems associated with SQLITE_OMIT_WSD and SQLITE_OMIT_TRIGGER. (check-in: de031a5e user: drh tags: trunk)
13:07
Fix a test case whose value changes under the no_optimization permutation due to the recent change to add the ability for SQLITE_TESTCTRL_OPTIMIZATION to disable one-pass. (check-in: 976e39c6 user: drh tags: trunk)
12:41
Unix builds now assume the presence of nanosleep() in the standard library. The -DHAVE_NANOSLEEP=0 compile-time option can be used to build on systems (if any still exist) where this is not the case. (check-in: 779d5dc8 user: drh tags: trunk)
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)
17:51
Add the ".scanstats vm" command to the shell tool. For profiling VM code in SQLITE_ENABLE_STMT_SCANSTATUS builds. (check-in: 0cbec399 user: dan tags: trunk)
16:41
Improve the output when ".scanstats vm" is enabled. (Closed-Leaf check-in: 7df08fd3 user: dan tags: scanstatus-exp)
14:18
Improved caching and reuse of JSON parses. (check-in: df099ad7 user: drh tags: trunk)
13:17
Change the debugging "json_parse(X)" function so that it shows a more complete description of the JsonParse object on standard output and returns the mimified JSON. Former behavior was to return the text of a decode of the aNode array. (check-in: 1bf85d4e user: drh tags: json-opt)
11:53
More comment improvements in json.c. Do not run jsonLookup() following an OOM error. (check-in: cd5fda8c user: drh tags: json-opt)
11:43
Improved comments and other cleanup for the changes on this branch. (check-in: bac953a8 user: drh tags: json-opt)
11:41
Remove the batch SQL runner from the JS build's 'all' target, as it's long-since unused and adds noticable build time. Add makefile comments about JSPI. (check-in: b8f708e3 user: stephan tags: trunk)
11:11
Add SAHPoolUtil.getFileNames() method, and tests for it, per forum feedback. Add a test to demonstrate that two SAH pools can coexist so long as they have different names. (check-in: 72dc3f8c user: stephan tags: trunk)
11:00
Fix jsonForceRCStr() to also add the NULL terminator. (check-in: 134b01f3 user: drh tags: json-opt)
07:57
Reformulate [907dfc4a7aa1] using awk instead of sed for better cross-platform portability. (check-in: 82ff7cc6 user: stephan tags: trunk)
01:15
Merge the latest trunk fixes into the json-opt branch. (check-in: ef4e1664 user: drh tags: json-opt)
01:12
Add the concept of an RCStr string - a "Reference Counted String". Use these to keep track of big JSON strings that might need to be used in multiple places at the same time with different lifetimes. Add two different JSON string values to each parse - one with and one without changes. The net result is a large reduction in the number of parses that occur when doing an UPDATE of a indexed JSON field using json_replace() or similar. (check-in: a4c1af61 user: drh tags: json-opt)
01:05
Extend the enhancement to json_set() and json_replace(). Clean up cruft. (Closed-Leaf check-in: 2dbb22c7 user: drh tags: json-opt-rcstr)
00:48
Add the JsonParse.zAlt field to old revised JSON text after a change. Demonstrate that this elminates the need for reparsing after a change by using it in the json_remove() function. This is an incremental check-in containing lots of cruft. (check-in: f930b139 user: drh tags: json-opt-rcstr)
2023-07-25
20:26
Clarify ownership of the various objects involved in parsing JSON. (check-in: afe02a39 user: drh tags: json-opt-rcstr)
18:28
Incremental improvements to JSON parsing - trying to fold in the RCStr object. (check-in: 4cb15d93 user: drh tags: json-opt-rcstr)
17:54
Fix a harmless "set-but-not-used" compiler warning in sqlite3session.c. (check-in: 54b3c43f user: dan tags: trunk)
17:11
Merge trunk changes into this branch. (Closed-Leaf check-in: 719973d7 user: dan tags: fts5-contentless-delete)
16:48
Add extra test for 'deletemerge'. (check-in: bc33cff4 user: dan tags: fts5-contentless-delete)
15:48
Change the name of the fts5 'delete-automerge' option to 'deletemerge'. And add tests for it. (check-in: 1079300d user: dan tags: fts5-contentless-delete)
15:43
Fix a minor problem with error reporting in JSON. (check-in: c456e4a8 user: drh tags: json-opt-rcstr)
15:08
Create the new RCStr class of strings and try to use them for JSON storage. (check-in: c1b87250 user: drh tags: json-opt-rcstr)
13:53
Further tests for 'delete-automerge'. (check-in: ca26c7a3 user: dan tags: fts5-contentless-delete)
12:26
Reformulate a (sed -i) construct in ext/wasm/GNUmakefile to account for Mac's sed -i being different than GNU's. (check-in: 907dfc4a user: stephan tags: trunk)
00:13
First attempt to cache modified JSON parses. Does not work. This is an incremental check-in. (Leaf check-in: 075eb09a user: drh tags: json-opt-wcache1)
2023-07-24
23:27
It is an error to try to insert a BLOB value into JSON. (check-in: 28c6e964 user: drh tags: json-opt)
22:45
Clean up some #defines in json. (check-in: 327fff50 user: drh tags: json-opt)
22:34
Rework the JSON parse structure to facilitate better caching. Passes all tests. (check-in: ecdcb1de user: drh tags: json-opt)
19:13
Add the fts5 'delete-automerge' integer option. A level is eligible for auto-merging if it has a greater than or equal percentage of its entries deleted by tombstones than the 'delete-automerge' option. Default value is 10. (check-in: b314be66 user: dan tags: fts5-contentless-delete)
17:59
Incremental progress toward improved caching of parsed JSON. (check-in: f2c06388 user: drh tags: json-opt)
15:41
Resolve an ES6 module export construct which is incompatible with node.js, as reported in forum post b9680fa9ad. (check-in: 80927c39 user: stephan tags: trunk)
13:30
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: e0e7b01e user: drh tags: reuse-schema)
13:24
Merge the latest trunk enhancements into the bedrock branch. (check-in: a6f34439 user: drh tags: bedrock)
13:20
Merge the latest trunk enhancements into the wal2 branch. (check-in: b2e56f62 user: drh tags: wal2)
13:15
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 967be041 user: drh tags: begin-concurrent)
12:59
Update the latest trunk enhancements into the wal-shm-exceptions branch. (check-in: 3187ee3f user: drh tags: wal-shm-exceptions)
12:37
Merge the latest trunk enhancements into the json-opt branch. (check-in: 00bfc491 user: drh tags: json-opt)
2023-07-23
22:14
When writing the filename header in a opfs-sahpool file, ensure that all remaining bytes in that part of the header are zeroed out to avoid the downstream problems reported in forum post d50ec48a293988a5. (check-in: c1b080e3 user: stephan tags: trunk)
2023-07-22
19:57
Add the opfs-sahpool sqlite3_vfs implementation to JS, offering an alternative to the other OPFS VFS (with tradeoffs). (check-in: d2e602cd user: stephan tags: trunk)
19:47
Integrate contentless delete with auto-merge. (check-in: 85c1589a user: dan tags: fts5-contentless-delete)
16:37
Do not read past the end of a text buffer looking for a zero terminator, as that space might not be initialized. If the buffer is owned, just set the null terminator. This is a better fix for the OSSFuzz-detected use-of-initialized-value problem. (check-in: 931bccb0 user: drh tags: trunk)
15:21
Fix a harmless use-of-initialized-value warning from OSSFuzz that results from recent large string optmizations. (check-in: 1a6b3dd1 user: drh tags: trunk)
2023-07-21
22:28
Performance enhancements for queries using very large string values. (check-in: 3661b9cd user: drh tags: trunk)
22:22
Mark an unreachable branch as NEVER(). (Leaf check-in: 414a4d66 user: drh tags: big-function-text)
21:10
Fix fts5 incremental optimization so that it too can handle an index that consists of a single segment with one or more tombstone hash pages. (check-in: e61c9b08 user: dan tags: fts5-contentless-delete)
19:33
Ensure the fts5 'optimize' command correctly rewrites any index that consists of a single segment and one or more tombstone hash pages. (check-in: f4926006 user: dan tags: fts5-contentless-delete)
19:17
Fix harmless compiler warning introduced by the previous check-in. (check-in: 06f829e9 user: drh tags: big-function-text)
18:38
Avoid a potentially large strlen() in sqlite3DecOrHexToI64(). (check-in: 5413b02b user: drh tags: big-function-text)
18:09
Further improvements to large string handling in relation to JSON. (check-in: 1e5df0aa user: drh tags: big-function-text)
15:07
Fix harmless compiler warning about signed/unsigned comparison. (check-in: 75cc3c89 user: drh tags: big-function-text)
15:01
Multiple optimizations that try to preserve or infer the zero-terminated property of TEXT values. Avoid unnecessary copying of text values destined to become function parameters. All changes help improve performance of doing UPDATEs on large JSON values that are indexed multiple ways. (check-in: d0278cde user: drh tags: big-function-text)
11:09
More infrastructure changes towards improving JSON cache performance. Incremental check-in. (check-in: 1955e66c user: drh tags: json-opt)
10:51
Minor internal cleanups in the opfs-sahpool VFS. (Closed-Leaf check-in: 74ad31e2 user: stephan tags: opfs-sahpool)
09:10
Internal cleanups in the async part of the JS library bootstrap phase. (check-in: b6d57ab6 user: stephan tags: opfs-sahpool)
2023-07-20
23:25
Minor internal cleanups in JS code. (check-in: 21a2ca9f user: stephan tags: opfs-sahpool)
20:29
Fix some divide-by-zero errors that could occur when handling corrupt tombstone hash records. (check-in: 7567ca06 user: dan tags: fts5-contentless-delete)
20:09
Avoid an infinite loop that could be entered when dealing with corrupt fts5 tombstone hash pages. (check-in: 69ce2ce0 user: dan tags: fts5-contentless-delete)
17:45
Experimental framework upon which to build a better JSON parse structure that supports cached of modified JSON. All of these changes are tentative and subject to change or removal. Incremental check-in. (check-in: e384163a user: drh tags: json-opt)
16:07
Add tests and fixes for the new code on this branch. (check-in: 5aac50e9 user: dan tags: fts5-contentless-delete)
09:06
Filter the OPFS VFSes out of the sqlite3-node.mjs build. Add another level of subdirectory to the sahpool to later enable transparent support of client-provided files under the VFS's root dir. Rework the awkward sahpool-via-oo1 mapping. (check-in: 080a4d0a user: stephan tags: opfs-sahpool)
2023-07-19
23:02
Performance enhancements to the JSON parser and code generator. (check-in: 0a745897 user: drh tags: trunk)
20:23
Revise the new JSON parser performance test to make the test run 25 times longer, and thus provide a more repeatable number. (check-in: bee9e403 user: drh tags: trunk)
19:23
Describe JSON parser performance testing procedure in test/json/README.md (check-in: c47056e1 user: drh tags: trunk)
18:47
Fix various issues with code added to this branch. (check-in: 8d09011f user: dan tags: fts5-contentless-delete)
17:47
More internal refactoring and docs for opfs-sahpool. (check-in: 64ccf617 user: stephan tags: opfs-sahpool)
17:46
Update the development-over-ssh docs for the wasm build. (check-in: 500109bd user: stephan tags: opfs-sahpool)
17:24
Further improvement to JSON parser performance. (check-in: 144c8ccf user: drh tags: json-opt)
15:06
Further performance enhancements to JSON parsing and rendering. Total performance gain for large JSONs so far on this branch is about 11%. (check-in: adb4d6b0 user: drh tags: json-opt)
13:50
Performance optimization for parsing large JSONs that contain lots of text. (check-in: c9fbe018 user: drh tags: json-opt)
13:31
Major restructuring of opfs-sahpool to improve maintainability and hopefully make it easier to reuse these pieces in the upcoming JSPI-based VFS experiment. (check-in: 534481cd user: stephan tags: opfs-sahpool)
12:52
Enhance the JSON parser cache such that it is able to extract lines from the cache and use them for writing, though they then have to be evicted from the cache. This was an experiment in trying to reduce the amount of parsing needed for a big UPDATE, but it does not seem to help any. Retained for reference only. (Closed-Leaf check-in: 2e6fbebc user: drh tags: json-write-cache)
11:33
Appearance and legibility improvements for tester1.js. (check-in: 4fd3ed1b user: stephan tags: opfs-sahpool)
10:17
Merge the latest trunk enhancements into the sqlite3_stmt_explain branch. (Closed-Leaf check-in: 06eae046 user: drh tags: sqlite3_stmt_explain)
09:52
Two minor improvements to sum(), one of which was inspired by forum post af5be98dbc. (check-in: a0d3e757 user: drh tags: trunk)
08:18
Internal refactoring in opfs-sahpool. Move OPFS tests to the end of tester1.c-cpp.js. (check-in: 6bd5a741 user: stephan tags: opfs-sahpool)
2023-07-18
21:06
Do not use the viewscan optimization on a query that has only a single loop, as the cost adjustments can cause problems for outer queries. Proposed fix for the performance regression reported by forum post 64d36440e473516c. (check-in: 76152ad2 user: drh tags: trunk)
20:41
Improved ".wheretrace" for the VIEWSCAN optimization. (check-in: 27057ea7 user: drh tags: trunk)
19:52
Fix various problems with fts5 contentless_delete=1 tables. (check-in: 0d005112 user: dan tags: fts5-contentless-delete)
19:47
More opfs-sahpool tests. (check-in: 60713fa9 user: stephan tags: opfs-sahpool)
19:27
Fix a shadowed var in opfs-sahpool and add more tests. (check-in: 9c8a73af user: stephan tags: opfs-sahpool)
18:52
Further refactoring of opfs-sahpool and start integrating it into tester1.c-pp.js. (check-in: 91c78923 user: stephan tags: opfs-sahpool)
17:43
Merge the FTS5 memory leak fix from trunk. (check-in: fb65cb73 user: drh tags: fts5-contentless-delete)
17:29
Enhance the sqlite3_stmt_explain() interface so that avoids unnecessary reprepare operations. (check-in: 050f773a user: drh tags: sqlite3_stmt_explain)
16:29
Fix memory leak in fts5 introduced by [def41225]. (check-in: 4dcad2db user: dan tags: trunk)
16:24
Major restructuring of the opfs-sahpool bits to better support multiple instances per app (each sandboxed from each other). Eliminate the pesky promise resolution race condition when two such instances are loaded in parallel. (check-in: 95e5fa49 user: stephan tags: opfs-sahpool)
15:06
Experimental (untested, non-working) changes that try reduce the number of reprepares generated by sqlite3_stmt_explain(). I think I see an easier way to do this now, so I'm parking this experiment on a branch to pursue the new idea. (Closed-Leaf check-in: c2fba6a6 user: drh tags: sqlite3-stmt-explain-opt1)
13:55
Merge trunk changes with this branch. (check-in: 5f66eb4e user: dan tags: fts5-contentless-delete)
13:55
Fix a buffer overrun in fts5 that could occur in 'secure-delete' mode when dealing with corrupt database records. (check-in: def41225 user: dan tags: trunk)
12:09
Refactor opfs-sahpool to support multiple instances, each with a separate VFS name and directory. (check-in: d036eaf6 user: stephan tags: opfs-sahpool)
2023-07-17
18:40
Fix cases where a row is inserted into a contentless_delete=1 fts5 table and then deleted within the same transaction. (check-in: d928856a user: dan tags: fts5-contentless-delete)
17:59
Do not allow the 'delete' command to be used on contentless_delete=1 fts5 tables. (check-in: cc694b83 user: dan tags: fts5-contentless-delete)
11:47
Merge trunk changes into this branch. (check-in: c4fb2f2e user: dan tags: fts5-contentless-delete)
07:43
Another -DSQLITE_TEMP_STORE=3 to 2 change for the wasm build. (check-in: 5ad8f998 user: stephan tags: opfs-sahpool)
07:14
sahpool vfs: rename defaultCapacity to initialCapacity, per feedback. (check-in: 2c9c95d0 user: stephan tags: opfs-sahpool)
07:13
Change wasm build's -DSQLITE_TEMP_STORE=3 to -DSQLITE_TEMP_STORE=2, primarily so that clients can optionally shift temp files from memory to OPFS storage. (check-in: 764430e8 user: stephan tags: opfs-sahpool)
2023-07-16
21:07
Remove an extraneous JS script import. (check-in: 5a205b25 user: stephan tags: opfs-sahpool)
20:42
Add sqlite3-vfs-opfs-sahpool.js to ext/wasm/api/README.md. (check-in: 58d05201 user: stephan tags: opfs-sahpool)
20:20
Minor doc tweaks. (check-in: 0cb0d7a9 user: stephan tags: opfs-sahpool)
19:29
Correct a missing assignment. Minor doc additions. (check-in: 1c4957d0 user: stephan tags: opfs-sahpool)
19:20
Doc tweaks only, no code changes. (check-in: 044c28df user: stephan tags: opfs-sahpool)
17:51
Add a way to remove the opfs-sahpool's persistent state from OPFS or unlink() an individual file. Doc cleanups. (check-in: 80982daa user: stephan tags: opfs-sahpool)
16:52
Move SAH pool configuration options from the library-level config to a config passed to the VFS install routine. Extend and document the PoolUtil object. (check-in: d2ed9955 user: stephan tags: opfs-sahpool)
14:07
speedtest1.js: only install opfs-sahpool if it's provided via --vfs flag, to avoid locking errors in concurrent speedtest1 tabs with other VFSes. Add opfs-sahpool reserveMinimumCapacity(). (check-in: aa94c8ab user: stephan tags: opfs-sahpool)
12:02
During "opfs" VFS init, check for URL param opfs-disable and, if set, do not install the VFS. Added per forum suggestion to provide a way to help rule out misinteraction between the "opfs" and "opfs-sahpool" VFSes. (check-in: 29905b7a user: stephan tags: opfs-sahpool)
11:49
Micro-optimizations in opfs-sahpool. (check-in: 52f23db9 user: stephan tags: opfs-sahpool)
10:02
Redefine what the opfs-sahpool installation promise resolves to. Fix addCapacity(). Add utility methods to import/export files. (check-in: 809c6f4d user: stephan tags: opfs-sahpool)
2023-07-15
21:08
Minor cleanups in the opfs-sahpool VFS. (check-in: 279e0907 user: stephan tags: opfs-sahpool)
19:08
Correct opfs-sahpool VFS after the pebkac involving the previous speedtest1 runs. Make that VFS explicitly opt-in to avoid certain unfortunate locking situations. (check-in: 41bf1fe3 user: stephan tags: opfs-sahpool)
18:57
Store large tombstone hash tables in multiple database records. Ensure the same hash tables handle rowid 0. (check-in: 4410e60d user: dan tags: fts5-contentless-delete)
16:48
Add the experimental sqlite3_stmt_explain(S,E) interface. (check-in: 5683743d user: drh tags: sqlite3_stmt_explain)
16:30
speedtest1 JS: only add --memdb flag by default if no --vfs is provided. (check-in: 676ffe62 user: stephan tags: opfs-sahpool)
11:37
Rename opfs-sahpool removeCapacity() to reduceCapacity(). (check-in: fff68e9f user: stephan tags: opfs-sahpool)
11:23
opfs-sahpool VFS now seems to work, in that it runs fine (and blazingly fast) in speedtest1. Add sqlite3.config options for the high-level configurable parts of opfs-sahpool. (check-in: 5d92d5f4 user: stephan tags: opfs-sahpool)
01:02
More work on porting the sahpool bits. Revert to random backing-store names because it works better with the capacity-reduction algorithm. (check-in: b4e005fd user: stephan tags: opfs-sahpool)
2023-07-14
23:02
Switch opfs-sahpool to use deterministic backing-store file names. Delay VFS registration until after the pool's files are all opened. Fail vfs init if the client's OPFS API has an async FileSystemSyncAccessHandle.close() method (indicating that it's outdated). (check-in: 7c6697ed user: stephan tags: opfs-sahpool)
21:48
Integrate the opfs-sahpool VFS into the JS build and get it loading (but it's still far from functional). (check-in: ef96e6b5 user: stephan tags: opfs-sahpool)
21:17
Initial sketches for an alternate OPFS VFS which uses a pool of pre-opened SyncAccessHandles to bypass the need for a dedicated I/O worker and the COOP/COEP HTTP response headers. Currently completely non-functional. (check-in: a93de9f2 user: stephan tags: opfs-sahpool)
21:06
Minor internal cleanups in the OPFS VFS. (check-in: 984d491e user: stephan tags: trunk)
12:21
Minor wasm build cleanups. (check-in: 816b503f user: stephan tags: trunk)
2023-07-13
18:35
Reintroduce WASMFS+OPFS support, albeit as a separate (less portable) WASM build. (check-in: 7e4c594e user: stephan tags: trunk)
18:13
Minor cleanups related to reintroducing wasmfs support. (Closed-Leaf check-in: 6918a927 user: stephan tags: wasmfs-2023)
17:27
More work on the wasmfs build and its test apps. (check-in: 953b8557 user: stephan tags: wasmfs-2023)
16:33
Get speedtest1 wasmfs variant running again. (check-in: 0f77e031 user: stephan tags: wasmfs-2023)
14:49
Fix an off-by-one error in tests for cells overflowing the end of pages. The error is completely harmless for the default page cache, but might cause false-positive SQLITE_CORRUPT errors in systems that use an application-defined page caches that pack pages tightly together in memory. (check-in: ce6793e9 user: drh tags: trunk)
14:08
Significant surgery on the wasm build on the way to incorporating wasmfs as a first-class build option. (check-in: 215c37fc user: stephan tags: wasmfs-2023)
10:41
More work on the wasmfs build. Resolve the inconsistent argument type passed to sqlite3InitModule() in such builds. (check-in: 4850a9e2 user: stephan tags: wasmfs-2023)
04:54
Minor cleanups in the wasmfs build. (check-in: f64477f2 user: stephan tags: wasmfs-2023)
04:26
Get wasmfs build and its bare-bones test app working again, albeit currently in ES6 mode only. (check-in: 647761ed user: stephan tags: wasmfs-2023)
03:46
Replace 'self' with 'globalThis' in some JS test code. (check-in: 53eeffc9 user: stephan tags: trunk)
01:51
JS: change the default OPFS VFS journal mode from PERSIST to DELETE, as DELETE is faster in current browsers. (check-in: a061a43e user: stephan tags: trunk)
01:48
Remove obsolete ext/wasm/api/sqlite3-wasi.h. (check-in: f661a6e0 user: stephan tags: trunk)
2023-07-12
20:24
Avoid a case of an infinite loop in fts5 when dealing with corrupt records. (check-in: 0e801f11 user: dan tags: fts5-contentless-delete)
19:34
Fix a crash that may occur when handling corrupt records in contentless_delete=1 mode. (check-in: 74d7610a user: dan tags: fts5-contentless-delete)
18:38
Get access to SQL functions and virtual tables used for debugging and analysis of FTS5 using SQLITE_FTS5_DEBUG and without the need for SQLITE_TEST. (check-in: 383de8e2 user: drh tags: fts5-contentless-delete)
09:30
Internal JS doc fix. (check-in: 7c5ea022 user: stephan tags: trunk)
09:16
Correct handling of the speedtest1 --without-rowid flag in the HTML front-end to speedtest1.wasm. Reduce default speedtest1-with-OPFS workload size in ext/wasm/index.html to speed up manual testing. (check-in: 2daba2cd user: stephan tags: trunk)
2023-07-11
20:57
Have contentless_delete=1 tables support REPLACE statements. (check-in: 2f553a66 user: dan tags: fts5-contentless-delete)
20:19
Have contentless_delete=1 tables support regular DELETE statements, instead of just the special INSERT syntax. (check-in: fffb8616 user: dan tags: fts5-contentless-delete)
19:54
Reduce divergence between branches: trunk and wal-shm-exceptions. (check-in: d38ed6b1 user: drh tags: trunk)
18:55
Use a hash-table instead of a flat list to store tombstone rowids. (check-in: 948267b0 user: dan tags: fts5-contentless-delete)
15:52
Get fault injection for testing working correctly. Other code clean-up. (check-in: ff492277 user: drh tags: wal-shm-exceptions)
2023-07-10
20:44
Begin adding support for deleting rows from contentless fts5 tables. (check-in: e513bea8 user: dan tags: fts5-contentless-delete)
19:21
Minor style changes to the previous MSVC makefile changes on this branch. (check-in: 4c950872 user: mistachkin tags: wal-shm-exceptions)
19:13
Compile for SEH if the USE_SEH=1 option is specified on the nmake command line. (check-in: 0e67a82f user: drh tags: wal-shm-exceptions)
18:16
Fix a warning. Unclear yet if the code is correct this way or not. (check-in: 2df4fd76 user: drh tags: wal-shm-exceptions)
18:05
Merge the latest trunk enhancements into the wal-shm-exceptions branch. (check-in: f655d08d user: drh tags: wal-shm-exceptions)
2023-07-08
19:28
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 7a9cb6f4 user: drh tags: reuse-schema)
19:16
Merge the latest trunk enhancements into the bedrock branch. (check-in: 35bfb5bf user: drh tags: bedrock)
19:09
Merge all the latest trunk enhancements into the wal2 branch. (check-in: f0793653 user: drh tags: wal2)
19:00
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 3d0823c4 user: drh tags: begin-concurrent)
17:42
Always use the "LL" suffix on 64-bit integer literals. (check-in: 07d95ed6 user: drh tags: trunk)
14:27
Fix harmless scan-build warnings. (check-in: beab3c98 user: drh tags: trunk)
2023-07-07
18:49
Omit the use of memmove() in sqlite3FpDecode() in an attempt to avoid spurious warnings from valgrind. Also makes the code slightly smaller and faster. (check-in: b409943a user: drh tags: trunk)
16:58
Proof of concept for a new sqlite3_function_needed() interface. (Leaf check-in: cd67edc0 user: drh tags: need-function)
12:18
For the "Valgrind" test scenario, set LONGDOUBLE_TYPE=double as valgrind does not correctly emulated extended precision on x64. (check-in: d3532eae user: drh tags: trunk)
12:08
Add option 2 to SQLITE_TESTCTRL_USELONGDOUBLE to move the setting to its defaults. Enhance the CLI and testfixture to make use of this value. Base the default on sizeof(LONGDOUBLE_TYPE) rather than on sizeof(long double). (check-in: 64e6bd1c user: drh tags: trunk)
2023-07-06
20:34
Improved handling of integer inputs to the new sum() implementation. (check-in: 31561c63 user: drh tags: trunk)
18:29
A more precise implementation of sqlite3RealToI64(). (check-in: 8813317c user: drh tags: trunk)
17:55
Merge all recent trunk enhancements into the wal-shm-exceptions branch. (check-in: e59cea2d user: drh tags: wal-shm-exceptions)
17:14
Fix octet_length() test cases so that they work when the database encoding is utf16. (check-in: ad2e3962 user: drh tags: trunk)
15:44
Use the Kahan-Babushka-Neumaier algorithm to improve the accuracy of sum(). (check-in: c63e26e7 user: drh tags: trunk)
14:45
Fix minor inaccuracies in the new sum() algorithm. (Closed-Leaf check-in: e3f7a960 user: drh tags: kahan-babuska-neumaier-summation)
13:19
Experimental attempt to boost the accuracy of sum() using the Kahan-Babuska-Neumaier algorithm. (check-in: ebc5edd3 user: drh tags: kahan-babuska-neumaier-summation)
00:55
Use "volatile" isntead of "#pragma" to get floating point calculations working correctly when compiling with GCC for x86 machines. (check-in: 9427f426 user: drh tags: trunk)
2023-07-05
22:05
This is alternative work-around for the x86 float-point problem that uses "volatile" rather than compile-specific #pragmas. (Closed-Leaf check-in: 1d972a69 user: drh tags: fix-dekker-with-volatile)
19:56
Improved comments on the work-around to the GCC x86 floating point wonkiness. (check-in: 7b4c1673 user: drh tags: trunk)
18:59
Work around for an apparent GCC bug. See forum post ee7278611394034c for details. (check-in: 5d9e9364 user: drh tags: trunk)
15:34
Make the order of operations explicit for the error term of Dekker double-precision multiply. (check-in: 28f57b34 user: drh tags: trunk)
14:42
Simplification of the dekkerMul2() subroutine. (check-in: bfe6432a user: drh tags: trunk)
12:00
Add the ieee754_inc(r,N) function to the ieee754.c extension. (check-in: 9a36f269 user: drh tags: trunk)
2023-07-03
18:32
Enhance the sqlite3AtoF() function so that it can operate with or without long double and provides accurate results in both cases. (check-in: fd987508 user: drh tags: trunk)
18:18
Enhance sqlite3AtoF() so that it honors the USELONGDOUBLE test-control. Enable the test/atof1.test module on non-intel platforms. (Closed-Leaf check-in: b7850fd4 user: drh tags: fp-to-decimal-refactor)
15:30
Store the fp-speed-1.c test program used to measure relative performance of SQLite versus the standard library, in the test/ directory. A header comment explains how to use it. (check-in: eaff3762 user: drh tags: trunk)
15:11
Add the --nolongdouble option to speedtest1.c. (check-in: 6bf6018a user: drh tags: trunk)
15:03
Improved precision of binary-to-decimal conversion of floating-point values on all systems but especially non-x86 systems that lake extended precision hardward floating point. (check-in: 32befb22 user: drh tags: trunk)
14:56
Whether or not to use the long-double floating point conversion technique is now a test-control setting. (check-in: 02ae6caf user: drh tags: fp-to-decimal-refactor)
12:58
New test cases for floating-point conversions. (check-in: 9435ed76 user: drh tags: fp-to-decimal-refactor)
11:44
Use Dekker double-precision floating point to do the value normalization step in sqlite3FpDecode() for systems on which "long double" is 8 bytes or less. (check-in: 51f492b4 user: drh tags: fp-to-decimal-refactor)
11:39
Final clean-up of the idea of using Dekker double-precision floating computations to improve accuracy. (Closed-Leaf check-in: 40285d63 user: drh tags: fp-to-decimal-branch1)
10:35
Squeeze as many bits as we can out of normalization. (check-in: 25d1ad6d user: drh tags: fp-to-decimal-branch1)
10:18
Faster Dekker multiplication that removes the restriction on input magnitude. (check-in: 2994caf5 user: drh tags: fp-to-decimal-branch1)
10:00
Fix one constant in the normalization logic. Improved error output from atof1.test. (check-in: d3c48807 user: drh tags: fp-to-decimal-branch1)
09:07
Replace the dodgy error estimating logic in the previous check-in with full-up Dekker double-double multiplication, and this idea works much better. There are still a few inaccuracies, but it is much closer. (check-in: 4fa6938d user: drh tags: fp-to-decimal-branch1)
00:51
The fptest(X) routine used for exploring another idea for improving fp-to-decimal conversion without the use of long double. (Leaf check-in: d9a883d7 user: drh tags: fp-to-decimal-branch2)
00:40
An idea for improving accuracy of fp-to-decimal conversion for systems that do not have "long double". Does not quite work. Retained only for documentation purposes. (check-in: 70224333 user: drh tags: fp-to-decimal-branch1)
2023-07-01
20:21
This check-in adds the use of "long double" to sqlite3FpDecode() which when run on x86 using a compiler that translates "long double" into binary80, causes all legacy tests to pass. But on a system where "long double" is just an alias for "double", some of the tests are still failing. (check-in: ce06982f user: drh tags: fp-to-decimal-refactor)
18:33
Reinstate the fpdecode() SQL function for testing, but only when compiled with SQLITE_DEBUG. (check-in: 07eab52e user: drh tags: fp-to-decimal-refactor)
17:56
Improved rounding policy. (check-in: 6f1122e9 user: drh tags: fp-to-decimal-refactor)
15:23
Improved response to Infinity and NaN. Remove the termporary fpdecode() function. (check-in: 76ab8ae8 user: drh tags: fp-to-decimal-refactor)
14:03
Progress towards fixing corner-case floating-point formatting issues. (check-in: 1138b8d1 user: drh tags: fp-to-decimal-refactor)
2023-06-30
23:42
Fix an issue with the "+" attribute in printf(). (check-in: bdfd1eb1 user: drh tags: fp-to-decimal-refactor)
23:18
Begin cutting over sqlite3FpDecode() into printf(). The code in this check-in gets a lot right, but there are still some formatting discrepencies. (check-in: c134d423 user: drh tags: fp-to-decimal-refactor)
19:41
Add decimal rounding to the sqlite3FpDecode() routine. (check-in: 27871140 user: drh tags: fp-to-decimal-refactor)
19:14
Add experimental ".scanstats vm" command to the shell tool. (check-in: e727640f user: dan tags: scanstatus-exp)
19:13
Fix an error in the previous commit on this branch. (check-in: 47c11ca9 user: dan tags: scanstatus-exp)
18:59
Add the "nexec" and "ncycle" columns to the bytecode virtual table. For accessing counters collected when SQLITE_DBCONFIG_STMT_SCANSTATUS is enabled. (check-in: f7b163a3 user: dan tags: scanstatus-exp)
18:35
Experiments with a new algorithm for converting ieee-754 binary64 numbers into decimal. (check-in: e923405e user: drh tags: fp-to-decimal-refactor)
18:31
Add support for sqlite3_stmt_scanstatus_v2() profiling of GROUP BY clauses that use a temp b-tree, and for sub-queries implemented as co-routines. (check-in: 7afad1f7 user: dan tags: trunk)
18:23
Improve support for sqlite3_stmt_scanstatus_v2() profiling of sub-queries implemented as co-routines. (Closed-Leaf check-in: 4e8718dc user: dan tags: scanstatus-exp)
17:14
Add support for sqlite3_stmt_scanstatus_v2() profiling of GROUP BY clauses that use a temp b-tree. (check-in: 796eadcc user: dan tags: scanstatus-exp)
16:16
Add extra debugging code for sqlite3_stmt_scanstatus_v2() to test1.c. (check-in: f936f101 user: dan tags: trunk)
14:01
Completely unwind the enhanced precision sum() from [a915f15a916af698] so as not to offend UBSAN and OSS-Fuzz. (check-in: 85be05b6 user: drh tags: trunk)
12:59
Omit the doubleToReal() function in vdbemem.c. Use the equivalent sqlite3RealToI64() function in its place. (check-in: 625820e8 user: drh tags: trunk)
11:51
Make the sum() function less precise and slower in order to avoid harmless signed integer overflow UBSAN warnings from OSS-Fuzz. (check-in: 1be0646a user: drh tags: trunk)
2023-06-29
23:03
Cleanup and commenting of the new DECIMAL extension code. No functional changes. (check-in: 51244816 user: drh tags: trunk)
20:28
Enhancements to the DECIMAL extension: (1) If the argument to decimal(X) is a floating point value (or an 8-byte blob), the floating point value is expanded into its exact decimal representation. (2) Function decimal_sci(X) works the same except it returns the result in scientific notation. (3) New function decimal_pow2(N) returns the full decimal expansion of the N-th integer power of 2. (check-in: 8baf8c10 user: drh tags: trunk)
17:58
Sync w/trunk (check-in: fe9aa2e9 user: larrybr tags: cli_extension)
17:48
Fix harmless compiler warnings about unused function arguments. (check-in: 24927c13 user: drh tags: trunk)
17:36
Improve the range of floating-point numbers that can be handled as integers for numeric-to-text conversion. (check-in: 41580ba4 user: drh tags: trunk)
17:26
Further refine the dtostr() testing function in the CLI so that it takes an optional second parameter which is the number of significant digits to display. (check-in: 2f9d4444 user: drh tags: trunk)
16:48
Change the (undocumented) dtostr() SQL function in the CLI so that it only shows the first 26 significant digits - 10 more digits than are available in a 64-bit double. (check-in: d758859f user: drh tags: trunk)
14:49
Add the decimal_sci(X) function to the Decimal extension for showing a decimal value in scientific notation: +D.DDDDDe+DD (check-in: 61d49239 user: drh tags: trunk)
12:14
CLI enhancements to facilitate SQLite core testing: (1) Add built-in functions strtod() and dtostr() that convert text to floating point and back using C-library routines. (2) Do not disable all of ".testctrl" without --unsafe-testing, but only those subcommands of .testctrl that are actually dangerous. (check-in: 669996a8 user: drh tags: trunk)
2023-06-28
12:02
Enhance the SUM() aggregate (and related AVG() and TOTAL()) so that the running sum is accurate to about 100 bits. (check-in: a915f15a user: drh tags: trunk)
11:46
Improved accuracy of floating-point conversion constants as suggested by forum post 598d32f6135c41c1. (check-in: 4943e8a1 user: drh tags: trunk)
2023-06-26
19:57
Simple test cases for the enhanced SUM() function. (Closed-Leaf check-in: c66ef244 user: drh tags: extended-precision-fp)
19:35
Use ideas from T. J. Dekker in "A Floating-Point Technique for Extending the Available Precision" (1971-07-26) to enhance the accuracy of the SUM() aggregate function in cases where input magnitudes vary wildly. (check-in: 439fc00f user: drh tags: extended-precision-fp)
17:23
Fix CLI .sha3sum error message for keyword identifiers, reported in forum post 7cbe081746dd. (check-in: bc27bda1 user: larrybr tags: branch-3.42)
17:08
Fix CLI .sha3sum error message for keyword identifiers, reported in forum post 7cbe081746dd. (check-in: 9d7813dd user: larrybr tags: trunk)
07:20
Replace some JS 'self' references with 'globalThis', as reported via the npm subproject. (check-in: b6ae8491 user: stephan tags: branch-3.42)
07:05
Replace some JS 'self' references with 'globalThis', as reported via the npm subproject. (check-in: d4e66dfc user: stephan tags: trunk)
2023-06-25
20:23
Fix typo in the README.md file. (check-in: 6d435d1d user: drh tags: trunk)
2023-06-23
11:10
Add support for the octet_length() SQL function, with low-level optimizations that avoid loading large string content from disk when the argument to octet_length() is a table column. (check-in: fa5f7786 user: drh tags: trunk)
2023-06-22
21:19
Optimize the argument to the octet_length() function so that it does not attempt to read content from disk. (Closed-Leaf check-in: 8b8ea4e3 user: drh tags: octet_length)
15:26
basic test cases for octet_length(). (check-in: 034a5fe2 user: drh tags: octet_length)
14:50
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 905c6c9d user: drh tags: reuse-schema)
14:40
Merge the latest trunk enhancements into the bedrock branch. (check-in: 0551b79b user: drh tags: bedrock)
14:20
Merge the latest trunk enhancements into the wal2 branch. (check-in: 80ac494f user: drh tags: wal2)
13:28
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 5bd26fea user: drh tags: begin-concurrent)
13:01
Merge recent trunk enhancements into the octet_length branch. (check-in: d35c2148 user: drh tags: octet_length)
01:03
Simplification to the getAndInitPage() routine that results in improved performance. (check-in: 2e9734c2 user: drh tags: trunk)
2023-06-21
21:47
Improved comment on the getAndInitPage() in btree.c. No code changes. (check-in: dc468cfd user: drh tags: trunk)
18:12
This is a failed attempt to optimize the usage of the page cache in sqlite3BtreeIndexMoveto() by deferring calls to sqlite3PagerUnref() for child pages of the btree until we are sure those pages will not be reused. The code does not work in two senses: (1) Many tests still fail. (2) The performance gain is less than 2 million cycles and does not seem worth the extra risk and complication. (Closed-Leaf check-in: 84731a1f user: drh tags: pcache-opt)
14:48
Sync w/trunk (for CLI -cachetrace) (check-in: a61f9377 user: larrybr tags: cli_extension)
14:11
Add the --pcachetrace option to the CLI. (check-in: 61dfa92b user: drh tags: trunk)
2023-06-20
17:45
Omit unnecessary calls to table locking routines in the common case when there is no shared cache. (check-in: f94f3021 user: drh tags: trunk)
16:26
Avoid unnecessary calls to sqlite3DeleteTable() with NULL pointers. (check-in: 4a35f391 user: drh tags: trunk)
15:48
Avoid unnecessary calls to sqlite3CodeRowTrigger(). (check-in: 27c174db user: drh tags: trunk)
11:46
Performance optimization in sqlite3VdbeAddOp4Int(). (check-in: 456a2432 user: drh tags: trunk)
2023-06-19
23:27
Avoid unnecessary NULL pointer checks on calls to sqlite3WalkExpr(). (check-in: 73d86a12 user: drh tags: trunk)
20:54
Small performance improvement and size reduction by recognizing that no SQL keywords have less than 2 characters. (check-in: 6b3d25b7 user: drh tags: trunk)
18:16
Add the sqlite3_commit_status() API. For querying a connection for (a) the ranges of wal/wal2 frames written after a successful commit, and (b) the conflicting frame following a failed commit of a BEGIN CONCURRENT transaction. (check-in: 4b08d4da user: dan tags: bedrock)
13:09
Fix large integer constants so that they work on older C compilers. (check-in: 3c94f878 user: drh tags: trunk)
2023-06-17
23:53
Cure tclshext build warning. Sync w/trunk. (check-in: e9f21191 user: larrybr tags: cli_extension)
15:42
Fix harmless compiler warnings that show up on 32-bit RaspberryPI builds. (check-in: bc4d20f3 user: drh tags: trunk)
15:22
In date/time functions, fix the rendering of "subsecond" and the computeHMS() routine to better deal with floating point rounding errors that arise on some 32-bit systems. (check-in: e46a00ae user: drh tags: trunk)
01:56
Sync w/trunk. (check-in: 746733c1 user: larrybr tags: cli_extension)
2023-06-16
19:45
Clear MSVC warnings and fix a typedef issue with MSVC build. (check-in: b0cb4cfc user: larrybr tags: cli_extension)
14:39
Address various harmless compiler warnings from forum post d526da8ee4. (check-in: 365caf2f user: drh tags: trunk)
11:05
Fix the pager such that if the xOpen() message sends back the SQLITE_OPEN_MEMORY flag, the pager is opened in journal-mode MEMORY, even if compiled with SQLITE_OMIT_DESERIALIZE. No changes to the logic as long as that OMIT flag is omitted. We need to better document the behavior of xOpen to describe this. (check-in: da1252b2 user: drh tags: trunk)
02:18
More doc tweaks, one teensy enhancement, and a new feature bug fix (check-in: 1073ef06 user: larrybr tags: cli_extension)
2023-06-15
16:02
Updates to the README.md file. (check-in: fa5cb6da user: drh tags: trunk)
15:43
Fix harmless typo in a comment. (check-in: 6937986a user: drh tags: trunk)
2023-06-14
13:45
Add SQLITE_DBCONFIG_RANDOM_SCANORDER. This option causes unconstrained table and index scan to happen in a random order, in order to help detect under-constrained queries in applications. Closed because this feature does not add any new capabilities that are not already available with SQLITE_DBCONFIG_REVERSE_SCANORDER, but it does make the behavior non-deterministic, and hence more difficult to test. (Closed-Leaf check-in: 33021986 user: drh tags: random-scanorder)
12:19
Work around what appears to be a GCC 32-bit optimization problem in the computeHMS() routine of the date/time logic. (check-in: aebdbcbe user: drh tags: trunk)
2023-06-13
23:04
Improve and add docs for extensible shell. (check-in: 1a57af86 user: larrybr tags: cli_extension)
18:10
Improved sqlite3_error_offset() values for bare column errors on '*' and 'table.*' expressions in SELECT statements. (check-in: 118fe600 user: drh tags: trunk)
16:55
Extended the time-diff format so that it can have a 5-digit year. This enables time differences to span the full range of dates supported by SQLite. Also fix some inaccuracies in the computation of time differences and add new test cases. (check-in: d57ddbf4 user: drh tags: trunk)
2023-06-12
18:22
Initialize a local variable in FTS3 to avoid a GCC compiler warning. (check-in: 7ec4ab32 user: drh tags: trunk)
18:11
Finish .parameter improvements. (no set <cast_op> anymore, not useful enough for its apparent complexity) (check-in: bbbdb864 user: larrybr tags: cli_extension)
14:26
The decision was made to halt work on this enhancement. See the discussion beginning with forum post 4c8a673560d7999a. The changes on this branch work, but they add unnecessary user complexity with no corresponding benefit. (Closed-Leaf check-in: c8ef3b78 user: drh tags: newbie-safe-aggregates)
14:16
Fix a buffer over-read that could occur as part of an fts5 secure-delete operation on a database containing corrupt fts5 records. dbsqlfuzz a463eac437783bcd246cc675b87842618a569cae (check-in: 44fdc798 user: drh tags: branch-3.42)
14:12
Make sure temporary sqlite3_value objects used by STAT4 are reset to NULL prior to being reused, to prevent a memory leak associated with the custom xDel string value destructor. dbsqlfuzz 65209ab5d5730e4fd14fff9d024325a77239036e. (check-in: 2cf197a2 user: drh tags: branch-3.42)
14:09
Defer setting the BTS_PAGESIZE_FIXED flag until after we are certain there are no errors and the page size has been set. Forum post b901808856. (check-in: cefaf128 user: drh tags: branch-3.42)
14:03
Extra space to prevent a buffer overread on corrupt STAT4 records. dbsqlfuzz 7128d1b41ce9df2c007f9c24c1e89e2f1b2590ca. (check-in: 566c4c14 user: drh tags: branch-3.42)
13:57
Simplify a memcpy() in defragmentPage(). It now might copy more content than is strictly necessary, but runs faster and uses less code space. Possible reasons for the improved performance: (1) the copy is now always 8-byte aligned, (2) fewer intermediate results are required which means less register pressure which helps the compiler to optimize the subroutine. (check-in: 1292d676 user: drh tags: branch-3.42)
13:53
Fix CLI fault on missing -nonce reported by forum post f8c14a1134. (check-in: 67cf7c40 user: drh tags: branch-3.42)
13:49
Fix a problem causing bloom filters to be used less efficiently than they might be. Problem reported by forum post 06c3f01da6. (check-in: 56d9bb7a user: dan tags: trunk)
13:46
Fix a problem causing an infinite loop in the recovery extension when processing a corrupt free-block list. (check-in: d21c06b7 user: drh tags: branch-3.42)
13:43
Fix an issue with sqldiff reported by forum post 9bd2155bdfae25a7. (check-in: 50721074 user: drh tags: branch-3.42)
13:31
Check-in [70e12efd1b189560] left a path through lockBtree() that failed to set the BTS_PAGESIZE_FIXED flag. That omission is fixed by this check-in. dbsqlfuzz 02c9ab74eb0619c9ae3b894ce157fae1d7f94645 (check-in: 30dcc872 user: drh tags: trunk)
11:06
Fix a buffer over-read that could occur as part of an fts5 secure-delete operation on a database containing corrupt fts5 records. dbsqlfuzz a463eac437783bcd246cc675b87842618a569cae (check-in: a35c50ec user: dan tags: trunk)
2023-06-11
22:05
Merge the latest trunk enhancements into the newbie-safe-aggregates branch. (check-in: 75a877a9 user: drh tags: newbie-safe-aggregates)
21:58
Make sure temporary sqlite3_value objects used by STAT4 are reset to NULL prior to being reused, to prevent a memory leak associated with the custom xDel string value destructor. dbsqlfuzz 65209ab5d5730e4fd14fff9d024325a77239036e. (check-in: 88be7075 user: drh tags: trunk)
2023-06-10
19:33
Defer setting the BTS_PAGESIZE_FIXED flag until after we are certain there are no errors and the page size has been set. (check-in: 70e12efd user: drh tags: trunk)
18:40
Fix an assert that can go bad if STAT4 content is corrupt. This is a follow-up to the previous check-in. (check-in: ac1d3860 user: drh tags: trunk)
17:27
Add documentation for SQLITE_DBCONFIG_STRICT_AGGREGATE. (check-in: 76fb9151 user: drh tags: newbie-safe-aggregates)
17:15
Merge the latest trunk enhancements into the newbie-safe-aggregates branch. (check-in: e19e20fb user: drh tags: newbie-safe-aggregates)
17:05
Extra space to prevent a buffer overread on corrupt STAT4 records. dbsqlfuzz 7128d1b41ce9df2c007f9c24c1e89e2f1b2590ca. (check-in: b9913528 user: drh tags: trunk)
10:37
Enhance fuzzcheck so that it understand the sqlite3_db_config() and optimization settings from unused bits in the database header, which dbsqlfuzz is now using. (check-in: 918708c6 user: drh tags: trunk)
09:24
Fix a potential UAF in the parser caused by the changes on this branch. (check-in: c29ec769 user: drh tags: newbie-safe-aggregates)
08:19
Add CFLAGS_FIDDLE to ext/wasm/fiddle.make as a way to pass on additional compilation flags to the fiddle build from the CLI, e.g. CFLAGS_FIDDLE=-DSQLITE_STRICT_AGGREGATE. Expose SQLITE_DBCONFIG_STRICT_AGGREGATE to JS. (check-in: 0b017208 user: stephan tags: newbie-safe-aggregates)
2023-06-09
19:24
Naming consistency: Always use the singular "STRICT AGGREGATE", not the plural. (check-in: 275d056e user: drh tags: newbie-safe-aggregates)
18:58
Improved sqlite3_error_offset() values for bare column errors on '*' and 'table.*' expressions in SELECT statements. (check-in: 446ad162 user: drh tags: newbie-safe-aggregates)
18:30
The -DSQLITE_STRICT_AGGREGATES compile-time option enables SQLITE_DBCONFIG_STRICT_AGGREGATE by default. (check-in: cd1f6b27 user: drh tags: newbie-safe-aggregates)
15:54
Simplify a memcpy() in defragmentPage(). It now might copy more content than is strictly necessary, but runs faster and uses less code space. Possible reasons for the improved performance: (1) the copy is now always 8-byte aligned, (2) fewer intermediate results are required which means less register pressure which helps the compiler to optimize the subroutine. (check-in: 6e5607ae user: drh tags: trunk)
13:08
Experimental change to add a per-connection option that raises an error if a bare column appears in an aggregate query. (check-in: f5878911 user: drh tags: newbie-safe-aggregates)
06:04
More .parameter improvements, a WIP for ".parameter set <cast_op> ..." (check-in: 2b51dcda user: larrybr tags: cli_extension)
01:11
Sync w/trunk. Fix spelling nits. Add ".parameter edit ..." improvements. (check-in: d73f065b user: larrybr tags: cli_extension)
2023-06-08
20:49
Remove SQLITE_EXTENSION_INIT macros from dbdata.c. (check-in: 106ec745 user: dan tags: trunk)
16:19
Improvements to the src-verify.c utility program so that it continues to muddle through a corrupt manifest file, making the most sense of it that it can and reporting "manifest" has having changed at the end. (check-in: 157b5d25 user: drh tags: trunk)
15:30
Fix the amagamation generator so that it works one a clean source tree. (check-in: f502610d user: drh tags: trunk)
15:27
Include source provenance in the header comment of the amalgamation. (check-in: e3eb5af9 user: drh tags: trunk)
12:52
Enhance Lemon so that it remembers which -D command-line options are actually used in the grammar and includes a list of all such options in the header of the generated output file. (check-in: c47a4dbd user: drh tags: trunk)
2023-06-07
23:10
Add spell-checking for all comments in main sources. (./src/ .c .h .in) make target "misspell" tells of misspelled words for which no exceptions have been put into tool/custom.txt . (check-in: 5332abf0 user: larrybr tags: trunk)
17:03
Fix straggler misspellings and tidy the custom dictionary. Also include pickups from forum post c61fb09afd. (Closed-Leaf check-in: 8c291d99 user: larrybr tags: spell-check)
15:00
Remove additional traces of FTS1 and FTS2 that were missed by [2bb50d5aedef0fd2] (check-in: 9a12bac5 user: drh tags: trunk)
14:47
Remove unused, legacy shell script "mkso.sh" from the root of the repo. (check-in: 57f75e48 user: drh tags: trunk)
08:40
Add a C-source spell-checking facility. make misspell (on Nix) (check-in: 26c1bb4b user: larrybr tags: spell-check)
2023-06-06
01:07
More ExportHandler use. Sync w/trunk. Fix .archive UB. (check-in: 4fd4240f user: larrybr tags: cli_extension)
2023-06-05
17:12
Fix compiler warning in src-verify.c. (check-in: 2d58c774 user: drh tags: trunk)
13:57
Update the README.md file to talk about the verify-source makefile target. (check-in: aa8e79e1 user: drh tags: trunk)
11:30
Remove extraneous console trace output from previous check-in. (check-in: c9f6e36d user: stephan tags: trunk)
11:26
Add a JS test confirming that binding of statement parameters in a subquery works. (check-in: 5dfaf0bc user: stephan tags: trunk)
01:05
Generalize the src-verify.c utility program and provide additional documentation in the header comment. (check-in: 7ed84046 user: drh tags: trunk)
00:57
Minor cosmetic normalizations for the MSVC makefile. (check-in: c9fda8d6 user: mistachkin tags: trunk)
2023-06-04
22:59
Fix harmless compiler warnings in tool/src-verify.c (check-in: 0e79ee97 user: drh tags: trunk)
22:56
Enhancement to tool/src-verify.c to also check the manifest.uuid file. (check-in: a39a5694 user: drh tags: trunk)
22:41
Add a prototype implementation for the "verify-source" Makefile target. (check-in: ed876ff6 user: drh tags: trunk)
2023-06-03
11:22
Prototype implementation of the octet_length() SQL function. (check-in: 2db989c8 user: drh tags: octet_length)
2023-06-02
21:31
Clarify sqlite3_is_interrupted() return. No code change. (check-in: b6c2d3d2 user: larrybr tags: trunk)
20:27
Get built-in ExportHandler instances to do more of .mode work. Replace atexit() with something that works for (not quite) "main" returns. Sync w/trunk. (check-in: a588dd9f user: larrybr tags: cli_extension)
18:05
Restore the LEFT JOIN strength reduction that was partially lost in [d747afda5683ca5f] when strength reduction was generalized to all OUTER JOINs. (check-in: 2d962b84 user: drh tags: trunk)
13:31
Do that last CLI fix more simply, using established means. (check-in: a1823b29 user: larrybr tags: trunk)
12:56
Fix CLI fault on missing -nonce reported by forum post f8c14a1134. (check-in: cd24178b user: larrybr tags: trunk)
00:03
Fix the OUTER JOIN strength reduction theorem prover's handling of the CASE operator. (check-in: 73d7b14b user: drh tags: trunk)
2023-06-01
20:38
Generalize the LEFT JOIN strength reduction optimization so that it works for RIGHT and FULL JOIN as well. Rename it to the "OUTER JOIN strength reduction" optimization. (check-in: d747afda user: drh tags: trunk)
16:40
If the filename argument to sqlite3_load_extension() is an empty string, then raise an error. It turns out that if dlopen() is called with an empty filename, it tries to load the current executable. And then if the caller requests some other function from the current executable, mischief can result. (check-in: d0168855 user: drh tags: trunk)
00:28
Add an ALWAYS() on an unreachable branch. (check-in: a00928d4 user: drh tags: trunk)
00:01
Fix the LEFT JOIN strength reduction for IN operators in the WHERE clause. Further simplifications and refinement of the algorithm. (check-in: 96c72dde user: drh tags: trunk)
2023-05-31
18:52
Add a comment to explain why both sides of an AND must be non-null-row in order for the overall expression to be non-null-row. No code changes. (check-in: 8396032c user: drh tags: trunk)
18:35
Improved detection of when the LEFT JOIN strength reduction optimization can be applied. (check-in: f544a8e4 user: drh tags: trunk)
12:42
Minor enhancement to the sqlite3_trace_v2() documentation. No code changes. (check-in: fba97230 user: drh tags: trunk)
11:03
Fix a problem causing an infinite loop in the recovery extension when processing a corrupt free-block list. (check-in: 5a516c6c user: dan tags: trunk)
2023-05-30
16:40
Enhancements to date/time functions: (1) Add support for time-shift modifiers of the form (+|-)YYYY-MM-DD HH:MM:SS.SSS (2) Add the timediff(A,B) SQL function that returns the time-shift modifier sufficient to move B to A. (check-in: 574bf370 user: drh tags: trunk)
14:46
Simplifications to the new timediff() logic. (Closed-Leaf check-in: d6954259 user: drh tags: timediff)
14:10
Minor tweak to the OPFS async proxy to attempt to account for a spurious high-load console error message which was reported via the sqlite-wasm npm project. (check-in: a61467d1 user: stephan tags: trunk)
13:27
Minor internal JS doc fix. No code changes. (check-in: 68abee3c user: stephan tags: trunk)
11:51
New test cases for the timediff enhancements. (check-in: f14633ce user: drh tags: timediff)
11:13
Allow date/time modifiers of the form (+/-)YYYY-MM-DD without the following HH:MM:SS.SSS. (check-in: fa9237a8 user: drh tags: timediff)
02:50
Problems fixed. All tests are passing now. (check-in: cff293b0 user: drh tags: timediff)
02:16
Improvements to the timediff() function. Test cases added. Not all test cases are passing. (check-in: 2cf65181 user: drh tags: timediff)
2023-05-29
20:33
New date/time modifier: (+|-)YYYY-MM-DD HH:MM(:SS.SSS)? (check-in: 3832b8a9 user: drh tags: timediff)
18:01
Prototype implementation of a proposed "timediff(X,Y)" SQL function. (check-in: 054a1951 user: drh tags: timediff)
2023-05-27
20:08
Fix an issue with sqldiff reported by forum post 9bd2155bdfae25a7. (check-in: 736a79c1 user: drh tags: trunk)
19:34
Add extra tests for fts5, large rowids and "ORDER BY rowid DESC". No changes to code. (check-in: b5b5eaee user: dan tags: trunk)
00:03
CLI much closer to being callable. (fewer exit() calls) ^C interrupt response improved. Sync w/trunk. Some diagnostic code removed. Some refactoring for sake of FIDDLE build. Streamline main(), by moving code to more dedicated routines and otherwise. Make -quiet more useful. (check-in: bff3a9a8 user: larrybr tags: cli_extension)
2023-05-25
16:49
Add ability for the JS Worker1.exec() API to report the number of changes made to the caller, per request in forum post d0b19483642e20dd. (check-in: 6e79505d user: stephan tags: trunk)
2023-05-23
19:11
Minor cleanups in demo JS code, per forum feedback. (check-in: 80c7c036 user: stephan tags: trunk)
17:43
Avoid performing aggregate processing more than once for a single expression. (check-in: 1bc54971 user: drh tags: branch-3.42)
17:35
Avoid performing aggregate processing more than once for a single expression. Forum post 36ff78b2a3. (check-in: 367b4cc5 user: dan tags: trunk)
15:22
When converting an aggregate expression to AGG_COLUMN, be sure to remove the EP_Unlikely flag if it is present. (check-in: 20c8a924 user: drh tags: branch-3.42)
15:16
When converting an aggregate expression to AGG_COLUMN, be sure to remove the EP_Unlikely flag if it is present. Forum post fbfe330a2009d036. (check-in: 48e65f18 user: drh tags: trunk)
14:05
Fix a buffer overread in the recovery extension that might occur on 32-bit platforms. (check-in: ff4a9a2b user: dan tags: trunk)
11:47
Add test cases for the recovery extension. No changes to code. (check-in: cec49c7d user: dan tags: trunk)
2023-05-22
20:36
Avoid duplicate WIN32_LEAN_AND_MEAN #define. Fix a trivial nit likely never observed. (check-in: 81ffcf41 user: larrybr tags: trunk)
16:35
When a floating-point RTREE is presented with large integer constraints - integers that are too big to be represented exactly by a float - then take extra steps to ensure that all possibly relevant entries in the RTREE are returned, even in boundary cases. Fix for the problem identified by forum post da70ee0d0d. (check-in: bfd8d910 user: drh tags: trunk)
11:02
Fix a buffer overrun that could occur in fts5 when processing corrupt records. dbsqlfuzz 0c6d3451d115974bc27ebed9b14b7a8e13ea05f3. (check-in: 4891dbd9 user: dan tags: trunk)
2023-05-21
05:06
First serious stab at FIDDLE-build-ready. Fix a flub with absent -A option for some builds. (check-in: bfc36f0f user: larrybr tags: cli_extension)
02:48
CLI code cleanup and shuffle for clarity. Moderate refactoring to exploit commmon patterns. Extend OOM simulation for debug builds. Plug one leak. Fix trivial nit copied from trunk. (check-in: b64ef7f9 user: larrybr tags: cli_extension)
2023-05-19
18:26
Extend detection of the INSERT...RETURNING locking case to the DB.selectValue(s)/selectArray/selectObject() family of functions. Add tests for INSERT/UPDATE...RETURNING with those functions. (check-in: 58be212d user: stephan tags: branch-3.42)
18:23
Extend detection of the INSERT...RETURNING locking case to the DB.selectValue(s)/selectArray/selectObject() family of functions. Add tests for INSERT/UPDATE...RETURNING with those functions. (check-in: 3181c505 user: stephan tags: trunk)
17:59
Minor doc typo fix. (check-in: 4533be08 user: stephan tags: trunk)
17:52
oo1.Stmt.finalize() no longer throws, but instead returns the same as the C API. oo1.DB.exec() now triggers the INSERT...RETURNING locking failure as an exception via reset() instead of finalize(). Some code-adjacent internal API renaming for clarity's sake. (check-in: 15f105c7 user: stephan tags: branch-3.42)
17:50
oo1.Stmt.finalize() no longer throws, but instead returns the same as the C API. oo1.DB.exec() now triggers the INSERT...RETURNING locking failure as an exception via reset() instead of finalize(). Some code-adjacent internal API renaming for clarity's sake. (check-in: 4ee6b3aa user: stephan tags: trunk)
16:42
Improved documentation for sqlite3_reset(), in response to forum post a72bab3dea. (check-in: 1dfeb3dc user: drh tags: trunk)
16:39
sqlite3.oo1.Stmt.reset() and finalize() now throw if their underlying C-level APIs return non-0, in order to avoid silent failure in certain locking-related cases. (check-in: db36a9ef user: stephan tags: branch-3.42)
16:34
sqlite3.oo1.Stmt.reset() now throws if sqlite3_reset() returns non-zero, analog to [f23eb5c6d365]. (check-in: 487ae12c user: stephan tags: trunk)
16:25
CLI resmanage used wherever resources should not be leaked upon abrupt (OOM) termination. (check-in: 1687d123 user: larrybr tags: cli_extension)
16:12
Add a basic INSERT RETURNING test for the oo1.DB.exec() API. (check-in: d29d62cf user: stephan tags: trunk)
15:54
sqlite3.oo1.Stmt.finalize() now throws if sqlite3_finalize() returns non-zero. This is intended to address the INSERT RETURNING case covered in forum post 36f7a2e7494897df. (check-in: f23eb5c6 user: stephan tags: trunk)
12:46
Correct typo in an 'extern' decl name, reported in forum post 1d4342156439233b. (check-in: 3bb1d7b3 user: stephan tags: branch-3.42)
12:41
Correct typo in an 'extern' decl name, reported in forum post 1d4342156439233b. (check-in: 6ac18827 user: stephan tags: trunk)
11:48
Change the RTREE engine so that equality comparisons of floating point values are duplicated in the byte-code so that the comparisons are done using 64-bit floats and consistent results are always obtained. Forum post da61c4a1b5b4af19. (check-in: 4ec0f0a3 user: drh tags: trunk)
2023-05-18
23:42
CLI resmanage use to 100% by commands, 84% by LOC. WIP (check-in: 48f81d8f user: larrybr tags: cli_extension)
23:28
Fix incorrect b-tree root page reports from the enhanced PRAGMA integrity_check output introduced in version 3.42.0. (check-in: 0a0b7a2d user: drh tags: branch-3.42)
23:25
Fix incorrect b-tree root page reports from the enhanced PRAGMA integrity_check output introduced in version 3.42.0. (check-in: 9b538f62 user: drh tags: trunk)
23:16
Incorrect fix. (Closed-Leaf check-in: 81b1bce7 user: drh tags: mistake)
2023-05-17
19:23
Fast-path the btree transaction start for the common case where a transaction is already active. (check-in: 798c3ff2 user: drh tags: trunk)
16:13
Simplification, performance improvement, and size reduction in the codeAllEqualityTerms() function of the code generator. (check-in: 4fbe0265 user: drh tags: trunk)
15:46
New assert() statements to verify that Expr.iColumn is never used as an array index when its value is negative. (check-in: 6084c5fb user: drh tags: trunk)
15:22
More CLI resmanage use (75% LOC) (check-in: 3428ce82 user: larrybr tags: cli_extension)
13:21
Improved assertions on substExpr(). (check-in: 6dbd5b3c user: drh tags: trunk)
11:45
Avoid an assert() failure that could occur in SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds when a WITH clause attached to an UPDATE or DELETE statement created a CTE of the same name as the table being modified. (check-in: 60f03e32 user: drh tags: branch-3.42)
11:31
Avoid an assert() failure that could occur in SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds when a WITH clause attached to an UPDATE or DELETE statement created a CTE of the same name as the table being modified. (check-in: 8edf56d1 user: dan tags: trunk)
03:57
Further CLI resmanage use. (69% by LOC, 53% by command count) Some renames for clarity. (check-in: c010e1a7 user: larrybr tags: cli_extension)
00:47
Resolve the JS-side corner case reported in forum post 7774b773937cbe0a by not caching oo1.Stmt.columnCount. (check-in: adee1440 user: stephan tags: branch-3.42)
00:32
Increase the version number to 3.42.1 (check-in: da0c662b user: drh tags: branch-3.42)
00:29
Fix two assert() statements that failed to take into account the likely() built-in function. This does not impact production code. (check-in: 634fe4c2 user: drh tags: branch-3.42)
00:26
Fix two assert() statements that failed to take into account the likely() built-in function. This does not impact production code. (check-in: 8504fe81 user: drh tags: trunk)
2023-05-16
20:37
Further extend use of CLI resmanage. (40% of dot commands) (check-in: 0cdab9f1 user: larrybr tags: cli_extension)
14:45
Use CLI resmanage to ensure input redirection is unwound on abort. Remove unused resmanage feature. Extend no-leak-on-abort fraction. Detect OOM in .cd . (check-in: 24308527 user: larrybr tags: cli_extension)
14:20
Increase the version number to 3.43.0 in order to begin the next development cycle. (check-in: 7874023c user: drh tags: trunk)
14:18
Resolve the JS-side corner case reported in forum post 7774b773937cbe0a by not caching oo1.Stmt.columnCount. (check-in: 37d44e8c user: stephan tags: trunk)
13:11
Merge all 3.42.0 release enhancements into the reuse-schema branch. (check-in: d67b6c39 user: drh tags: reuse-schema)
13:04
Merge all 3.42.0 release changes into the bedrock branch. (check-in: 1348c2a5 user: drh tags: bedrock)
13:00
Merge all 3.42.0 release changes into the wal2 branch. (check-in: 137057f9 user: drh tags: wal2)
12:56
Merge all 3.42.0 release changes into the begin-concurrent branch. (check-in: 804bb138 user: drh tags: begin-concurrent)
12:36
Version 3.42.0 (check-in: 831d0fb2 user: drh tags: trunk, release, version-3.42.0)
12:34
Update the tool/mkmsvcmin.tcl script so that it prints a one-line message to explain what it has done. (check-in: 4254f086 user: drh tags: trunk)
2023-05-15
23:43
CLI debug build ready for testing whether OOM handling is well-behaved. (check-in: 3cec1488 user: larrybr tags: cli_extension)
21:33
Fix CLI memory leak upon loading any shell extension. (check-in: b91cec47 user: larrybr tags: cli_extension)
19:17
Fix a C++-style variable declaration in the generate_series() extension. (check-in: 1d3e0089 user: drh tags: trunk)
17:24
Limit the number of nested NOT nodes in an fts5 expression to 256. (check-in: 01219e69 user: dan tags: trunk)
17:20
Increase the stack size available to fuzzcheck to 8MB on Windows. (check-in: 2290dc68 user: drh tags: trunk)
17:14
Limit the number of nested NOT nodes in an fts5 expression to 256. (Closed-Leaf check-in: 0e5c1ee4 user: dan tags: fts5-expr-limit)
10:55
Add the --wait command-line option to fuzzcheck. (check-in: 5a479a2c user: drh tags: trunk)
03:48
Make generate_series() correct on ones complement ALUs and acceptable to UBSAN. (check-in: 4c5cd3e6 user: larrybr tags: trunk)
02:06
As evidenced by forum post f3f546025a, the new RIGHT JOIN related restriction on the push-down optimization implemented by [da3fba18742b6e0b] also needs to apply to the automatic index (a.k.a. hash-join) optimization and to the Bloom filter optimization. Computation of the restriction is now moved into the sqlite3ExprIsSingleTableConstraint() routine. (check-in: 4902015d user: drh tags: trunk)
01:02
Simplify the interface to constructAutomaticIndex(). (check-in: c5da1655 user: drh tags: trunk)
2023-05-13
20:01
Fix windows-specific problems in test scripts sessionnoop2.test and sessionrowid.test. (check-in: e4989c11 user: dan tags: trunk)
19:38
Remove unnecessary call to sqlite3_dbdata_init() from shell.c. (check-in: 84ca2000 user: dan tags: trunk)
19:13
Add an "#ifndef SQLITE_HAVE_SQLITE3R" directive to shell.c.in, to avoid including the recovery code a second time if the shell is being compiled with sqlite3r.c. (check-in: 6f1a60fb user: dan tags: trunk)
16:54
Extend CLI resource manager usage. Improve interface to it for clarity and simplicity. (check-in: fd379f22 user: larrybr tags: cli_extension)
15:55
Add the "--unsafe-testing" option to invocations of the shell tool made by test script reuse5.test. (check-in: d6971af7 user: dan tags: reuse-schema)
15:34
Mention that sqlite3_mutex_free() accepts NULL as a no-op. (no code change) (check-in: 603d9ad5 user: larrybr tags: trunk)
15:21
Merge the latest 3.42.0 changes into the reuse-schema branch. (check-in: 515bb26e user: drh tags: reuse-schema)
15:17
Merge the latest 3.42.0 changes from trunk into the begin-concurrent branch. (check-in: 18c5e16b user: drh tags: begin-concurrent)
15:10
Merge the latest 3.42.0 beta changes into the bedrock branch. (check-in: d55ba8bb user: drh tags: bedrock)
15:07
Merge the latest 3.42.0 beta from trunk into the wal2 branch. For some reason, the previous merge didn't work. Probably a PEBKAC. (check-in: 3bbfbdcd user: drh tags: wal2)
15:00
Merge the latest 3.42.0 beta changes into the wal2 branch. (check-in: 771361e1 user: drh tags: wal2)
07:23
CLI closer to doing full cleanup on error exits. Needs testing with OOM simulation. (check-in: 8751f93f user: larrybr tags: cli_extension)
05:13
Fix compilation issue seen with MSVC. (check-in: 67001887 user: mistachkin tags: trunk)
2023-05-12
21:21
CLI resource management applied to about 30% of shell source. A few minor flaws fixed. Comments begin to describe OOM responses. (check-in: ce25a079 user: larrybr tags: cli_extension)
19:06
Fix harmless compiler warning caused by [0772ddf56713d013]. (check-in: f06c16a8 user: drh tags: trunk)
19:02
Add multi-threaded test for "INSERT ... RETURNING ..." and SQLITE_BUSY errors. (check-in: 559cb1c6 user: dan tags: trunk)
15:45
Make the regexp extension more robust against OOM errors during compilation of the recognizer engine. Forum post f50aecd5e8. (check-in: 0772ddf5 user: drh tags: trunk)
14:51
Fix unlikely strange result of CLI edit(). (check-in: ab3797e8 user: larrybr tags: trunk)
13:20
Ensure the _O_U16TEXT is defined for Windows builds of the CLI. Forum post c80aa942dc6bf2. (check-in: 504effa8 user: drh tags: trunk)
12:57
Remove a stray CR from end of line in a source file. (check-in: 48139fb9 user: drh tags: trunk)
12:45
Fix harmless typos in comments. (check-in: 607c3efb user: drh tags: trunk)
10:52
Ensure that all prepared statements are expired and forced to reprepare whenever the database text encoding changes. Forum post 43cbfc4d23. (check-in: 469718f1 user: drh tags: trunk)
2023-05-11
21:47
More CLI resource manager use. Catch more OOMs. Eliminate some opportunities to lose resources under OOM conditions. Conform to coding guidelines. (check-in: efdcf109 user: larrybr tags: cli_extension)
21:15
Add restriction (5) to the omit-noop-join optimization. Fix for the issue reported by [forum/forumpost/49f2c7f690|forum post 49f2c7f690]. (check-in: 3e9c9bbd user: drh tags: trunk)
18:03
Fix a minor typo in a comment. No code changes. (check-in: 607cfb5b user: drh tags: trunk)
17:25
Fix the rbu_exclusive_checkpoint=1 option so that it works with a zipvfs database in pass-through mode. (check-in: caca67d3 user: dan tags: trunk)
17:04
For CLI: Cure an old leak and one segfault. Get all shell tests to pass (by altering expected error output in some cases.) Ready now for full use of CLI resource manager. (check-in: 0f55868e user: larrybr tags: cli_extension)
03:11
WIP, CLI resource manager worked in, barely used yet. (Leaking one object.) (check-in: dbd00bca user: larrybr tags: cli_extension)
2023-05-10
21:08
Doc typo fix. No code changes. (Closed-Leaf check-in: e841b142 user: stephan tags: oo1-no-cache-Stmt.columnCount)
21:06
Resolve the JS-side corner case reported in forum post 7774b773937cbe0a by not caching oo1.Stmt.columnCount. (check-in: c3d25c3a user: stephan tags: oo1-no-cache-Stmt.columnCount)
16:04
Enhance the split-sqlite3c.tcl script so that it uses single-character extensions on subordinate source files, even when the number of subordinates exceeds 9. This is not yet needed, but might be soon. (check-in: 4150e416 user: drh tags: trunk)
13:56
Fix harmless compiler warnings from the CBMC compiler. (check-in: 5bc17cbc user: drh tags: trunk)
11:05
Rename sqlite3IsTableConstraint() to sqlite3IsSingleTableConstraint() and improve its header comment, in an attempt to make the code easier to reason about. No functional changes - should generate identical machine code. (check-in: 5dae8974 user: drh tags: trunk)
10:03
Add a missing comma to the documentation for the OP_Jump opcode. No changes to code. (check-in: 7e2c2b1c user: drh tags: trunk)
09:51
Begin use of a resource manager for CLI. (check-in: 1527d429 user: larrybr tags: cli_extension)
00:45
Get TCL extension to build and extensible shell tests to pass. (check-in: 05ecd8a5 user: larrybr tags: cli_extension)
00:33
New restriction on the push-down optimization to prevent an ON or USING clause on the left side of a RIGHT JOIN from being pushed down into a subquery that is on the right side of that RIGHT JOIN. Forum post a7d4be7fb6. This is similar to an earlier problem fixed at [1783655ea422185e]. Also add comments to describe previously undocumented push-down optimization restrictions. (check-in: da3fba18 user: drh tags: trunk)
00:20
Fix bug in fall-back logic of CLI .clone (check-in: 0dcd9785 user: larrybr tags: trunk)
00:15
Passes shell{1-8}.test . (check-in: 76734a4b user: larrybr tags: cli_extension)
2023-05-09
21:53
sqlite3x builds too. Fails a few shell2.test TCL tests. (check-in: 2749aea2 user: larrybr tags: cli_extension)
21:20
Made to build (again). (check-in: 3eb19495 user: larrybr tags: cli_extension)
2023-05-08
21:35
WIP, sync with trunk to pickup 22 weeks of shell library enhancements. (check-in: 00d0d5b1 user: larrybr tags: cli_extension)
16:26
Fix recover1.test so that it works with DEFAULT_AUTOVACUUM builds. (check-in: 4ffae48e user: dan tags: trunk)
13:47
Improved error handling when ".open" fails in the CLI. (check-in: 38544b11 user: drh tags: trunk)
13:38
In editPage(), if an attempt is made to edit an empty 64KB page, then take the slow path through rebuildPage(), in order to maintain strict invariants in the editPage() code. Forum post 0f37727c0d. (check-in: a865e574 user: drh tags: trunk)
11:11
Ensure that the label for a JSON object really is a string and not an array or object that just happens to end with a string. dbsqfuzz 32f62ed8676d0a153dbe756aeae3202d3670fe50. (check-in: c335737c user: drh tags: trunk)
10:51
Add tests for recovering data to a lost-and-found table from a utf-16 db. No code changes. (check-in: 832f6e9f user: dan tags: trunk)
2023-05-07
03:23
It turns out that pagerExclusiveLock() can be called with the lock state already set to RESERVED if the SQLITE_FCNTL_PERSIST_WAL setting is set and a specific sequence of multiple journal mode changes occur. Enhance pagerExclusiveLock() to deal with this. Forum post 8130545bc6 (check-in: 2bb8d977 user: drh tags: trunk)
2023-05-05
20:22
Fix a comment in the JSON logic. No code changes. (check-in: 3f30ea5e user: drh tags: trunk)
19:36
Fix a buffer overrun that could occur when using the format() function to format a very small real value with the "," modifier. (check-in: 910e770a user: dan tags: trunk)
15:52
Reduce the maximum depth of nesting in json objects to 1000. (check-in: c7697a0d user: dan tags: trunk)
15:28
Do not attempt to run json502.test with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 66648506 user: dan tags: trunk)
14:16
Updates to compile-time option usage and especially to the compile-time option test script in tool/omittest.tcl. (check-in: fece588b user: drh tags: trunk)
14:14
Fix the pager2-3.1 test case so that it does not run if a required dependence (shared-cache) is omitted from the build. Fix for forum post 7a028538a7. (check-in: a77c8a78 user: drh tags: trunk)
11:47
Allow virtual tables to prepare writes to shadow tables in defensive mode from with xRelease() callbacks - even if the xRelease() is invoked from within sqlite3_finalize(). (check-in: a1710649 user: dan tags: trunk)
11:33
Improved formatting of comments on SQLITE_CONFIG_xxx defines as those comments are used by documentation. (check-in: 2cb840bc user: drh tags: trunk)
2023-05-04
20:28
Add the "subsecond" modifier to the date/time functions. (check-in: 6fcb5a94 user: drh tags: trunk)
20:19
Add some tests of subsecond modifier for date/time functions. Sync with trunk. (Closed-Leaf check-in: 6499ebff user: larrybr tags: subsec-modifier)
14:44
Enhance the format() function so that the "," modifier works for floating point numbers in addition to integers. (check-in: 83683e10 user: drh tags: trunk)
14:41
Merge latest wal2 changes into this branch. (check-in: b2e0800b user: dan tags: bedrock)
14:31
Update this branch with latest changes from trunk. (check-in: 49777032 user: dan tags: wal2)
13:07
Add support for the comma (,) modifier to %f formats in the format() function. (Closed-Leaf check-in: 7080e196 user: drh tags: comma-format)
11:29
Fix a bug in cursor hints that can cause references to tables that have not been opened. Cursor hints are intended for use by COMDB2 only and should not appear in production builds, so this should not be a factor for the vast majority of users. (check-in: d3370d59 user: drh tags: trunk)
2023-05-03
14:10
Add another assert() to FTS5 to demonstrate that a pointer is never NULL. (check-in: b8a84a1b user: drh tags: trunk)
13:57
Add an assert() to fts5_config to ensure that a potential OOM is being handled correctly. (check-in: fe9c2076 user: dan tags: trunk)
13:48
Protect a macro argument with parentheses in FTS5. (check-in: bc07fe51 user: drh tags: trunk)
13:33
Add a comment to the [0512f82a2cde7447] change to link it to its TH3 test case. (check-in: 1281d4d9 user: drh tags: trunk)
13:03
Enhancement to showwal such that it shows what the page hash should be on a hash mismatch. (check-in: 960dc970 user: drh tags: trunk)
11:27
Conform CLI double-quoted escaping to what its doc says. (check-in: 910535ba user: larrybr tags: trunk)
10:56
Fix a problem in test script changebatch1.test. (check-in: 98ecffdf user: dan tags: begin-concurrent)
07:30
In the zipfile extension, leave the catalog list in a consistent state when the last entry is removed from the list. forum post f03f1e4c5a5c9959. (check-in: 1b489d00 user: drh tags: trunk)
06:48
If the page size is wrong on the page1 content inside a WAL file, then running VACUUM could trigger an assert(). This check-in changes that assert() into a branch that returns SQLITE_CORRUPT. Forum post 4ef9b37d74d2d2e8 (check-in: 0512f82a user: drh tags: trunk)
06:38
Improved detection of excess recursion on arrays and objects in the JSON parser. Fixes a problem detected by dbsqlfuzz. (check-in: d40fd592 user: drh tags: trunk)
05:00
Do not overflow the Index.aSample[] array if the same index appears in the sqlite_stat4 table under multiple names because it is a WITHOUT ROWID primary key index. Forum post 537d8ab118df7edd (check-in: 9350a25a user: drh tags: trunk)
04:21
Do not even attempt to load the sqlite_stat4 table if the use of STAT4 is disabled using sqlite3_test_control(). (check-in: 0bf94c77 user: drh tags: trunk)
02:32
Fix CLI mishandling of OOM during .import _of_ a DB. Reported by forum post 7ed4a250d3. (check-in: 30da3f0e user: larrybr tags: trunk)
01:25
In the CLI, ensure that the argument to quoteChar() is not a NULL pointer due to a prior OOM. (check-in: 776d1a47 user: drh tags: trunk)
2023-05-02
21:26
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: d08fa7d4 user: drh tags: reuse-schema)
21:10
Update this branch with latest changes from trunk. (check-in: 6f22c767 user: dan tags: begin-concurrent)
20:34
Fix a problem with the sqlite3changeset_size() API and rowid tables. (check-in: 92ade220 user: dan tags: trunk)
19:58
Merge the latest trunk enhancements into the wal2 branch. (check-in: 0215dcc7 user: drh tags: wal2)
19:33
Give CLI quoted args hex escapes (as documented.) (Closed-Leaf check-in: 90e434a6 user: larrybr tags: cli-hex-escape)
18:03
Cure CLI hang on .import with high-ASCII column separator. (check-in: aac8ac63 user: larrybr tags: trunk)
17:33
Allow for lower-case "nan" to mean NaN in JSON. (check-in: 6bee0a19 user: drh tags: trunk)
16:34
Interpret negative arguments to sqlite3_sleep() as zero. (check-in: 2b542326 user: drh tags: trunk)
11:12
Improved handling of NULL arguments to json_valid() and json_error_position(). Forum post 06c6334412. (check-in: ab78e694 user: drh tags: trunk)
10:22
Fix typo in comment. Forum post 3da7d9c445. (check-in: 41a8a15c user: drh tags: trunk)
00:33
Minor code change in the CLI to make a UAF warning from scan-build go away. (check-in: ad6aae76 user: drh tags: trunk)
2023-05-01
20:42
Fix harmless compiler warnings. (check-in: 342af5b4 user: drh tags: trunk)
20:09
The gcc definition of the SQLITE_INLINE macro is not compatible with string ANSI, so disable it if the -std=c89 command-line option is used. (check-in: 62d703d8 user: drh tags: trunk)
19:59
Fix harmless compiler warnings in FTS5. (check-in: f6210017 user: drh tags: trunk)
19:28
Remove xFileControl() handling from the OPFS VFS altogether, re-routing all syncing through xSync() instead. This eliminates superfluous syncing introduced in [a371374148a2], as discussed in forum thread 647d2f811dbc2dfe. (check-in: f809de7f user: stephan tags: trunk)
18:52
Fix harmless compiler warnings. (check-in: 0a926994 user: drh tags: trunk)
18:28
Add support for JSON5. (check-in: f8c3ed23 user: drh tags: trunk)
15:59
Fix typos in comments in sqlite3session.h preventing documentation from being correctly generated. (check-in: ab75170d user: dan tags: trunk)
15:57
New enhancements to the sqlite3_db_config() constants documentation. (check-in: d74011a3 user: drh tags: trunk)
15:42
Expose the SQLITE_DBCONFIG_STMT_SCANSTATUS and SQLITE_DBCONFIG_REVERSE_SCANORDER sqlite3_db_config() options to JS. (check-in: 0a7024af user: stephan tags: trunk)
15:15
Implement full xSync() for the OPFS VFS. The previous implementation was not correct for journal files. Reported in forum post 647d2f811dbc2dfe. (check-in: a3713741 user: stephan tags: trunk)
14:50
Fix typos in documentation comments in sqlite3.h. (check-in: 6a8b0078 user: drh tags: trunk)
11:24
Do not apply the "AND false" optimization if either operand comes from the ON clause of a join. Fix for the problem identified by forum post 96cd4a7e9e. (check-in: d095da0e user: drh tags: trunk)
03:56
Fix abbreviated paths for objects such that they work even if the object key begins with '$'. (Closed-Leaf check-in: 1b991c78 user: drh tags: json5)
2023-04-30
23:52
Fix a problem with json_patch() when one side or the other is JSON5. dbsqlfuzz bc10593a4ba8e7a7862593532285be31f00f8e41 (check-in: e18c0899 user: drh tags: json5)
20:37
Accept the full ECMAScript 5.1 IdentifyName syntax for keys in objects. (check-in: 9be2c875 user: drh tags: json5)
19:45
All JSON to understand floating point literals "Inf" and "QNaN" and "SNaN" in any case, without the SQLITE_EXTENDED_NAN_INF compile-time option. This extension is always available. (check-in: fb551145 user: drh tags: json5)
19:34
Omit the json_valid() function. Change the name of json_error() to json_error_position(). Use "NOT json_error_position(X)" as a substitute for "json_valid5(X)". (check-in: 34c4e900 user: drh tags: json5)
2023-04-29
18:40
Merge all the latest trunk enhancements into the JSON5 branch to facilitate testing of the JSON5 branch. (check-in: 30d12ede user: drh tags: json5)
18:31
Fix a crash that could occur in fts5 'secure-delete' mode when operating on corrupt records. (check-in: 2e85b0e3 user: dan tags: trunk)
17:35
More ALWAYS() macros. (check-in: 770b09f7 user: drh tags: json5)
17:13
Add ALWAYS macros on unreachable branches in the new JSON5 logic. (check-in: 91e15ed9 user: drh tags: json5)
16:31
Simplification of the logic that normalizes JSON5 integer literals into canonical JSON integer literals. Improved reporting of OOM. (check-in: 01ee613c user: drh tags: json5)
16:00
Do not allow leading zeros on non-zero numeric literals in JSON. (check-in: 3e914943 user: drh tags: json5)
15:42
Cure CLI generate_series() overflow bug (noted by forum post #754e2d4db2a5) and bring behavior with negative step arguments closer to as-documented and eponymous function in PostgreSQL. (check-in: 07383758 user: larrybr tags: trunk)
15:29
Replace duped generate_series() test with another corner case. (Closed-Leaf check-in: fb2f0878 user: larrybr tags: generate_series-revamp)
12:29
Sync w/trunk, improve generate_series() variable names. (check-in: ecbf7e13 user: larrybr tags: generate_series-revamp)
12:13
Minor fixes to to the JSON% parser. (check-in: 2fe684cd user: drh tags: json5)
00:59
Correctly recognize an isolated U+feff as a space character in JSON5. (check-in: 4473dc8e user: drh tags: json5)
2023-04-28
23:39
Add tests for generate_series(), fix a so bug found, and change an existing test that enforced varying rowid-to-value mapping with query ordering. (That no longer varies.) (check-in: 9605db4a user: larrybr tags: generate_series-revamp)
23:38
Bug fixes in the logic to skip over JSON5 comments. (check-in: c736b77a user: drh tags: json5)
23:19
Bug fix in the offset computation for json_error(). (check-in: 8f7ab5d9 user: drh tags: json5)
21:25
Revise generate_series() extension (in CLI) to address overflow reported in forum post #754e2d4db2a5 and to make behavior better match the like-named PostgreSQL function. (check-in: beeea3e1 user: larrybr tags: generate_series-revamp)
17:38
Improvements to the accuracy of json_error(). Add the extension SQL functions random_json(SEED) and random_json5(SEED). (check-in: 8d09dc1c user: drh tags: json5)
14:48
Add the json_error(X) function that returns the 1-based character offset to the first syntax error in JSON5 string X, or 0 if there are no errors. (check-in: 901ad995 user: drh tags: json5)
13:25
Fix indentation and omit trailing whitespace in the random JSON generator script. (check-in: 629db09f user: drh tags: json5)
11:02
Fix json_tree() so that it is able to deal with the JNODE_RAW labels of a JSON5 object. (check-in: f56528d4 user: drh tags: json5)
10:23
Merge all the latest trunk fixes and enhancements into the json5 branch. (check-in: b5ca15cf user: drh tags: json5)
10:10
Do not assert() a bad string representation in an sqlite3_value after an OOM. dbsqlfuzz c822a17a23c524a0ac7cfb203c7198209da15de8. (check-in: 91fee79a user: drh tags: trunk)
00:28
Make CLI .load slightly harder to abuse. (check-in: 2779f927 user: larrybr tags: trunk)
00:19
In the CLI, early out from the output_quoted_string() routine if the input string is NULL. forum post 8a22c0bfa7. (check-in: 2881978d user: drh tags: trunk)
2023-04-27
23:59
Use a new technique to detect fresh OOM faults in columnName() that does not rely on there being no OOMs prior to entry into columnName(), as [forum/forumpost/fb6811c2f9|forum post fb6811c2f9] demonstrates a technique which could cause an OOM prior to entry into columnName(). (check-in: a63346d6 user: drh tags: trunk)
23:44
Remove a faulty assert() from the CLI. Forum post 726c4f7db0. (check-in: 4bbebb6b user: drh tags: trunk)
23:40
Remove an ALWAYS() macro that can in fact sometimes be false. Forum post f0e872fcee. (check-in: d85880e4 user: drh tags: trunk)
23:29
Test cases added, and some bugs fixed. (check-in: bc84a82e user: drh tags: json5)
22:17
Fix compilation issues seen with older versions of MSVC. (check-in: 4ba2a651 user: mistachkin tags: trunk)
21:31
Adjust OSTRACE usage so that it works with the changes in the previous check-in. (check-in: 1eb4573e user: mistachkin tags: trunk)
19:30
Further optimizations to the JSON parser. (check-in: bb8f1c16 user: drh tags: json5)
19:27
Dynamically resize the node hash table used by the rtree module. (Leaf check-in: f94f3da5 user: dan tags: rtree-batch-insert)
19:13
Faster implementation of numberic literal parsing in JSON. (check-in: 58398292 user: drh tags: json5)
18:28
Add support for hexadecimal integer literals in JSON. (check-in: 85e00c9e user: drh tags: json5)
17:32
All floating point literals "NaN" and "Infinity". Additional variants of these literals are available if compiled with SQLITE_EXTENDED_NAN_INF. (check-in: c13346af user: drh tags: json5)
16:57
Fix handling of reverse solidus in string literals. Allow decimal points in floating point literals to occurs and the beginning or end of the mantissa. (check-in: d92a6ab2 user: drh tags: json5)
16:24
Fix the handling of escape solidus in the JSON routines. (check-in: 676877ac user: drh tags: json5)
15:48
JSON string literals may span multiple lines by escaping new line characters. (check-in: 66da4bd4 user: drh tags: json5)
15:11
Allow the labels on JSON objects to be unquoted identifier names. (check-in: fb428db3 user: drh tags: json5)
14:38
Performance optimization in the JSON parser. (check-in: 5a88ba74 user: drh tags: json5)
13:55
Fix a problem on windows sometimes causing SQLITE_NOMEM to be returned if an error occurred while opening a temp file. (check-in: c22a39a6 user: dan tags: trunk)
13:44
Permit JSON5 whitespace in all contexts of objects and arrays. (check-in: 93f3ab26 user: drh tags: json5)
12:24
Translate JSON5-only string literal escape sequences into the JSON equivalents. (check-in: 14e82f36 user: drh tags: json5)
2023-04-26
20:41
Fix some problems with the rtree module and existing tests on this branch. (check-in: 50e8a30b user: dan tags: rtree-batch-insert)
20:26
Implement some of the JSON5 enhancements to string and numeric literals. This is an incremental check-in of work in progress. (check-in: 9508efa9 user: drh tags: json5)
18:50
Fix a typo in a printf() format string the sessions module. (check-in: 14d1c4a8 user: dan tags: trunk)
18:23
When changing a large integer into a floating point value, cancel the string representation. Fix for forum post 5c74a3bc4a. (check-in: 3e2da8a7 user: drh tags: trunk)
17:30
Partial implementation of JSON5 numeric literal extensions. Use a switch() statement in the parser for better performance. (check-in: 78404dc3 user: drh tags: json5)
15:58
Improvement to the way the JSON performance measure scripts work → keep the test database in the directory of the test, not in the source tree. (check-in: ac411dbd user: drh tags: json5)
15:19
Work toward implementing JSON5 whitespace. Untested and incomplete. (check-in: d262c059 user: drh tags: json5)
13:52
Fix to the json-speed-check.sh script. (check-in: d839c954 user: drh tags: json5)
13:25
Add scripts for JSON performance testing. (check-in: 3051d6a7 user: drh tags: json5)
2023-04-25
21:24
The json_valid() function only returns true for pure JSON. JSON5 (or at least that subset of JSON5 that has been so far implemented) is accepted by all routines, but json_valid() still returns false for JSON5 inputs. The new json_valid5(X) routine returns true or false if X is or is not valid JSON5. All of this is experimental and subject to change. (check-in: 5d33ab77 user: drh tags: json5)
20:41
Allow the sessions module to be configured to capture changes from tables with no explicit PRIMARY KEY. (check-in: 5d4431bc user: dan tags: trunk)
15:12
If an ON clause to the left of a RIGHT JOIN is false, that does not imply that the query returns no rows. (Leaf check-in: 4011b9d3 user: drh tags: branch-3.41)
14:54
Remove unused variable ltoj accidentally added by [1783655e]. (check-in: faa1575c user: dan tags: trunk)
14:37
Avoid assuming that an expression in an ON() clause that evaluates to zero implies that the query will return zero rows when the query contains a RIGHT JOIN. Forum Post 95849acbe1. (check-in: 1783655e user: dan tags: trunk)
11:52
Fixes to SQL extension functions base64() and base85(). (check-in: ab3331f4 user: drh tags: branch-3.41)
04:28
Handle newline-trimmed input TEXT correctly in base64, base85 UDFs, an issue exposed in forum post 8d6ed893c0. (check-in: 8f637aae user: larrybr tags: trunk)
02:44
Check for OOM sqlite_value_x() returns in base64, base85 extensions, a partial response to forum post 74dd86263e. (check-in: e6f9c0b1 user: larrybr tags: trunk)
2023-04-24
23:14
Allow trailing commas in objects and arrays of JSON. (check-in: 4031b231 user: drh tags: json5)
21:08
Hold the RTREE node cache open and defer writes until the very end of the INSERT statement, for a 20x performance improvement on the test script identified at forum post 6b8bca17bb884ef3. However, there are still bugs and tests will crash. Follow-up: Performance improvements were not real. The bugs caused incorrect answers. In reality, no performance improvement seen. (check-in: b35cb745 user: drh tags: rtree-batch-insert)
19:23
Update the compile-time detection of architecture byte-order in the RTREE extension so that it is aligned with the latest enhancements in the core. (check-in: 122431d3 user: drh tags: trunk)
19:22
Allow the sessions module to be configured to capture changes from tables with no explicit PRIMARY KEY. (Closed-Leaf check-in: 8a612f08 user: dan tags: sessions-rowid-tables)
19:14
Mistake → branched off of the wrong branch. (Closed-Leaf check-in: 491bd51d user: drh tags: mistake)
04:25
Add a note about the journaling mode in the OPFS VFS. No code changes. (check-in: e79c95fc user: stephan tags: trunk)
2023-04-23
00:12
CLI to have "undocumented" dot-commands, not usually shown by .help (check-in: 17f5dd2d user: larrybr tags: trunk)
2023-04-22
23:43
Import fixes from trunk into the branch-3.41. (check-in: 58a1d94c user: drh tags: branch-3.41)
22:32
The sqlite_stat4.idx field is case insensitive. It should work even if some entries use a different case than others. Fix for forum post 6c118daad0f1f5ef. (check-in: f097ca70 user: drh tags: trunk)
20:47
Avoid a crash in fts5 when combining an empty expression with another. (check-in: 33681ff3 user: dan tags: trunk)
20:22
Enhance the ".tables" command in the CLI so that it is able to deal gracefully with an OOM situation. (check-in: 5157fd1c user: drh tags: trunk)
20:07
The assertion-fault fix in [53a61f7423a7f057] was not quite complete. This additional change enhances it to deal with WITHOUT ROWID tables. No changes to deliverable code. (check-in: 4d5af42c user: drh tags: trunk)
17:41
Add the --unsafe-testing command-line option to the CLI. Without this option, features of the CLI that are intended for testing and that might result in incorrect answers, assertion faults, and/or corrupt database files if misused are disabled. Fix for the unfounded concerns raised by 13 separate forum posts last night. (check-in: f28256a9 user: drh tags: trunk)
16:46
Add --unsafe-testing invocation option to CLI. Needs some tests added and changed. (Closed-Leaf check-in: b3d9ac05 user: larrybr tags: shell-for-test)
12:47
Fix an incorrect assert() statement in btree.c as found by forum post d03345d572713fe6. (check-in: cd485b30 user: drh tags: trunk)
12:37
Fix a incorrect assert() statement in the pre-update hook logic. No changes to production code. Fix for the problem reported by forum post 19b217bfe709a072. (check-in: 53a61f74 user: drh tags: trunk)
12:11
Fix harmless compiler warning in [1489e7f53a4863b3]. (check-in: da907dbc user: drh tags: trunk)
11:33
Also fix no-length string intolerance for CLI json mode. (check-in: 3ac19840 user: larrybr tags: trunk)
11:29
Early out from sqlite3Prepare() following an OOM to avoid possible problems further along in the parse. Fix for the NULL pointer dereference reported by forum post 2e5131839365682a. (check-in: f35ce7c1 user: drh tags: trunk)
11:24
CLI to handle absurd string length limit better. forum post 5180af725f1cc375 (check-in: 1489e7f5 user: larrybr tags: trunk)
09:26
Avoid need for cast in CLI shell_check_oom() calls. (check-in: c88550ef user: larrybr tags: trunk)
09:14
Fix unchecked return in CLI .dbi command. (Forum post 79e2cd1bc) (check-in: 81a74ee9 user: larrybr tags: trunk)
2023-04-21
15:37
Change the return type of the ts_read/write() family of functions from int to ssize_t, per report in forum post 947169d5e7. (check-in: 7809e7ce user: stephan tags: trunk)
15:30
Add a new modifier to date/time functions: "subsecond". May be abbreviated as just "subsec". This modifier causes functions to try to show fractional seconds if they do not already. (check-in: 03f2a15e user: drh tags: subsec-modifier)
2023-04-20
20:07
Increase CLI tolerance of artificially low memory. (check-in: 13f26386 user: larrybr tags: trunk)
16:15
CLI .ar made to enforce getting a proper subcommand. (check-in: 104ab105 user: larrybr tags: trunk)
10:40
Fix a function declaration so that it correctly appears as private in the amalgamation. Forum post ec8c77516c. (check-in: 1864569b user: drh tags: trunk)
10:26
Fix a broken assert() in the recovery extension. Forum post 82a88f5812. (check-in: 8a1ad137 user: dan tags: trunk)
2023-04-19
20:29
Add tests for the progress-handler callback with the fts5 'secure-delete' feature. (check-in: 48505ad9 user: dan tags: trunk)
18:36
Improved rebustness of the pcache tracing logic. (check-in: 0a43235b user: drh tags: trunk)
18:32
Remove unreachable legacy code. (check-in: e3e7fb87 user: drh tags: trunk)
17:13
Fix a segfault that could occur if a non-empty in-memory database was the destination of a backup operation from a database with a smaller page size. (check-in: d3724158 user: drh tags: branch-3.41)
17:07
Fix a segfault that could occur if a non-empty in-memory database was the destination of a backup operation from a database with a smaller page size. Forum post 679b4de86e763d52. (check-in: 020968f8 user: dan tags: trunk)
15:39
Do not remove pages from the cache of an in-memory database due to a failure to acquire the page due to it being larger than the maximum page size. (check-in: 551b9dac user: drh tags: branch-3.41)
15:35
Do not remove pages from the cache of an in-memory database due to a failure to acquire the page due to it being larger than the maximum page size. Fix for forum post a19bb49140. (check-in: 982b3556 user: drh tags: trunk)
14:26
Fix ambiguity in the header comment to the sqlite3PagerUnrefNotNull() routine. No code changes. (check-in: d419e65e user: drh tags: trunk)
13:56
Fix a debugging printf() in pcache.c. This only comes up on custom builds. (check-in: f2d67567 user: drh tags: trunk)
13:39
Correct use of an undefined symbol in one of the OPFS VFS loading failure error reporting cases (copy/paste error). (check-in: c81c968b user: stephan tags: trunk)
13:30
Add pager debug tracing of truncate operations. (check-in: 0daadf36 user: drh tags: trunk)
12:08
Attempt to suppress harmless compiler warnings reported by forum post fc98845c06. (check-in: f6e6c5f9 user: drh tags: trunk)
2023-04-18
23:05
CLI to cease dumping back to OS shell on single ^C when interactive. (check-in: ba8e4378 user: larrybr tags: trunk)
22:53
Add comment on CLI ^C fix (because it is a bit subtle.) (Leaf check-in: 19c062f1 user: larrybr tags: cli-no-dump)
22:28
CLI to cease dumping back to OS shell on single ^C when interactive. (check-in: 7b1f6352 user: larrybr tags: cli-no-dump)
20:02
Make use of F_BARRIERFSYNC as an alternative to F_FULLFSYNC when it is available. (Leaf check-in: 3c517ba5 user: drh tags: barrier-fsync)
16:44
Ensure that the VACUUM command is not confused by alternative encodings when it is the first command run on new database connection. (check-in: 441f4e4a user: drh tags: branch-3.41)
15:21
Ensure that the VACUUM command is not confused by alternative encodings when it is the first command run on new database connection. Forum post 09503b4d33. Problem introduced by check-in [a02da71f3a80dd8e]. (check-in: 8b0fe63f user: drh tags: trunk)
14:17
Another fix to the indexed expressions in aggregate queries with GROUP BY enhancement of ticket 99378177930f87bd and implemented by check-in b9190d3da70c4171 to address a problem described by forum post f34e32d120. (check-in: c37e7610 user: drh tags: branch-3.41)
14:13
Another fix to the indexed expressions in aggregate queries with GROUP BY enhancement of ticket [99378177930f87bd] and implemented by check-in [b9190d3da70c4171] to address a problem described by forum post f34e32d120, (check-in: 5acc3ef8 user: drh tags: trunk)
11:35
Add the --fullsync option to speedtest1. (check-in: 960fe54c user: drh tags: trunk)
11:33
Fix an assert() in fts5 that could fail following an OOM or IO error. (check-in: 49595083 user: dan tags: trunk)
2023-04-17
23:59
When CLI -utf8 active, do no translation to MBCS for output to Windows console. plus code style improvements (check-in: 25edf608 user: larrybr tags: trunk)
22:28
Minor coding style changes. (Leaf check-in: 481aa3cc user: mistachkin tags: cli-utf8)
21:18
When CLI -utf8 active, do no translation to MBCS for output to Windows console. (check-in: cc1d4296 user: larrybr tags: cli-utf8)
18:32
Fix some problems with using fts5 options 'secure-delete' and detail=none together. (check-in: 4d3f27ba user: dan tags: trunk)
11:41
Fix problems handling corrupt records in new fts5 code. (check-in: 2f63d4a8 user: dan tags: trunk)
10:39
Fix an assert() in fts5 that may be true when dealing with corrupt records. (check-in: e8de2774 user: dan tags: trunk)
2023-04-15
21:00
Change a memcpy() to memmove() in new fts5 code. (check-in: 8de45425 user: dan tags: trunk)
19:58
Fix a use-after-free that could follow an OOM or IO error in fts5 when using 'secure-delete' mode. (check-in: 904be83d user: dan tags: trunk)
19:13
Avoid dropping the error code following an OOM in fts5 when using 'secure-delete' mode. (check-in: 9ee24a49 user: dan tags: trunk)
17:56
Add -utf8 option to CLI, for improved console behavior on Windows. (check-in: 414010d2 user: larrybr tags: trunk)
17:47
Add the 'secure-delete' option to the fts5 extension. For configuring fts5 to delete old entries directly from the full-text index instead of using delete keys. (check-in: 394980e4 user: dan tags: trunk)
16:12
For CLI -utf8, set output codepage too. Adjust PP vars so that the code can be entirely omitted for targets pretending to be "WIN32" but not quite doing so. (check-in: 543594a7 user: larrybr tags: cli-utf8)
2023-04-14
21:34
Fix stray edits in comments in last check-in. (check-in: fa3ce7f0 user: larrybr tags: cli-utf8)
21:23
Set CLI -utf8 option and build with line-editing package to be mutually exclusive. Integration of console-invasive UTF-8 handling with line-editing takeover of console may come later. (check-in: 047344a9 user: larrybr tags: cli-utf8)
19:56
Cure CLI double-prompting (by ditching gcc fgetws()), general cleanup. Work remaining is to avoid effect of -utf8 when a line editor is linked/used as part of CLI. (check-in: 73a5f542 user: larrybr tags: cli-utf8)
18:00
Further tests for fts5 secure-delete mode. (Closed-Leaf check-in: c5a47063 user: dan tags: fts5-secure-delete)
17:00
Add extra OOM test for the new code on this branch. (check-in: 846ae7e0 user: dan tags: fts5-secure-delete)
16:11
Add tests for the new feature on this branch. (check-in: 0268d1a5 user: dan tags: fts5-secure-delete)
15:42
Fix a typo in the aggfault.test test script. (check-in: e915bff7 user: drh tags: branch-3.41)
14:36
Fix SQLITE_OMIT_VIRTUALTABLE builds of testfixture. (check-in: 430ec1a6 user: dan tags: trunk)
13:34
Update test script recoverbuild.test so that it may be run using old test harnesses that run more than one test script in a process. (check-in: 5135aab0 user: dan tags: trunk)
10:46
When setting the column types on a subquery, ensure that the COLFLAG_HASCOLL flag is cleared from column names from when the collating sequence name has been removed. (check-in: de61bdc9 user: drh tags: branch-3.41)
10:40
When setting the column types on a subquery, ensure that the COLFLAG_HASCOLL flag is cleared from column names from when the collating sequence name has been removed. Forum post 6916dacf83. (check-in: 8d9dcd7c user: drh tags: trunk)
10:35
Fix a cosmetic indentation issue. (check-in: 90deb844 user: drh tags: trunk)
00:23
Avoid double de-quoting of table names when processing RESTRICT actions in foreign key constraints. (check-in: 5af7abff user: drh tags: branch-3.41)
00:20
Avoid double de-quoting of table names when processing RESTRICT actions in foreign key constraints. Chromium 1405220. Problem introduced by [9e503e2d0428c9e8] 2009-09-28 for version 3.6.19. (check-in: bb2b5ab1 user: drh tags: trunk)
2023-04-13
18:49
Fix an obscure issue with ALTER TABLE RENAME that comes up with triggers that have UPDATE statements that contain errors. (check-in: cf651dee user: drh tags: branch-3.41)
18:44
Fix an obscure issue with ALTER TABLE RENAME that comes up with triggers that have UPDATE statements that contain errors. Forum post ff3840145a. (check-in: c4845a7c user: drh tags: trunk)
15:11
Remove an ALWAYS() that can sometimes be false. And fix a code-generator issue associated with very unusual use of window functions. (check-in: fc127437 user: drh tags: branch-3.41)
14:53
Add extra test cases to window1.test. (check-in: ebc844fb user: dan tags: trunk)
14:50
Fix a code-generator issue associated with very unusual use of window functions. Both the expr.c or the window.c changes will each independently fix the problem. They are both included in this patch for defense in depth. Forum post 0d48347967. (check-in: 1ba22631 user: drh tags: trunk)
14:14
Get CLI utf8_fgets() to not consume more input than it returns. Get console setup restoration to happen for all non-crash exits. (check-in: b4fa233d user: larrybr tags: cli-utf8)
2023-04-12
20:23
Unwrap the loop in the WAL hash function. (check-in: eb94ae13 user: drh tags: trunk)
19:40
Automatically set HAVE_PREAD and HAVE_PWRITE on linux, as has been done in MacOS for a long time now. (check-in: 2f7a36d2 user: drh tags: trunk)
18:57
Small performance enhancement to integer-to-text conversion. (check-in: cfb3dba9 user: drh tags: trunk)
18:18
Avoid leaking a database handle in test script rbuexlock.test. (check-in: 2edf98d1 user: dan tags: trunk)
18:06
Remove temporary debugging code accidentally left on this branch. (check-in: 0a0f6487 user: dan tags: fts5-secure-delete)
17:54
WIP: CLI option to take control of console on Windows and make it support UTF-8 input pasting (or typing). Needs work to become robust per "ToDo:". (check-in: 82438239 user: larrybr tags: cli-utf8)
17:40
Add the 'secure-delete' option to fts5. Used to configure fts5 to aggressively remove old full-text-index entries belonging to deleted or updated rows. (check-in: 4240fd09 user: dan tags: fts5-secure-delete)
2023-04-11
19:38
New #ifdef to enable building with -DSQLITE_OMIT_WINDOWFUNC. (check-in: e1ff83fa user: drh tags: trunk)
15:06
Remove an ALWAYS() that can sometimes be false. Add a test case that makes the test false. Forum post 6c5678e3da. (check-in: c8fb143d user: drh tags: trunk)
02:10
Better handling of OOM errors in the cursor-hint logic. dbsqlfuzz 60cd5fff91974af91c2c3692beb4a2d7fdafef46 (check-in: 68fcfb58 user: drh tags: trunk)
2023-04-10
23:21
For sha3 extension, mention NIST standard implemented. (check-in: 529ab138 user: larrybr tags: trunk)
18:44
New assert() statements to validate the parameters to sqlite3BtreeCursorHint(). Fix a problem with the construction of those parameters discovered by forum post 0b53708c95. (check-in: 4c5a3c5f user: drh tags: trunk)
13:20
Sync the vt02.c test virtual table with TH3, in order to pull in the fix for long delays when there are huge OFFSET values. (check-in: 49ba0300 user: drh tags: trunk)
2023-04-09
20:48
Fix an assertion fault that can occur when compiling with both SQLITE_ENABLE_UNKNOWN_SQL_FUNCTIONS and SQLITE_ENABLE_STAT4. (check-in: 2b02862d user: drh tags: branch-3.41)
20:44
Fix an assertion fault that can occur when compiling with both SQLITE_ENABLE_UNKNOWN_SQL_FUNCTIONS and SQLITE_ENABLE_STAT4. (check-in: 9ff69e59 user: drh tags: trunk)
10:23
Fix a faulty assert() in whereRangeScanEst() that should only apply if there are not prior errors. (check-in: 450d8ad8 user: drh tags: branch-3.41)
10:09
Fix a faulty assert() in whereRangeScanEst() that should only apply if there are not prior errors. dbsqlfuzz 567ad91132879cbab8172b38c6a68ad40fa8d650. (check-in: 8ba9b08b user: drh tags: trunk)
2023-04-08
19:27
Fix a couple harmless compiler warnings seen with MSVC. (check-in: 1b864a37 user: mistachkin tags: trunk)
19:23
Fix a typo in [83e84531b46814ae] that changed the value of SQLITE_DBCONFIG_STMT_SCANSTATUS. (check-in: b7177653 user: drh tags: trunk)
16:51
Faster implementation of keywordCode() - the routine that determines if an identifier is really a keyword and if so, which keyword. (check-in: 0ff3d3d5 user: drh tags: trunk)
13:31
Fix a harmless compiler warning. (check-in: c9559ba6 user: drh tags: trunk)
13:01
Optimizations to btree.c save about 4.5 million CPU cycles: (1) Clone insertCell() into a separate insertCellFast() routine for use by sqlite3BtreeInsert(). (2) Mark allocateSpace() as always-inline. (3) Improved coalesence of adjacent free blocks in pageFreeArray(). (check-in: 5c12c400 user: drh tags: trunk)
2023-04-07
18:27
Guard against oversized cells in the newly enhanced pageFreeArray(). (Closed-Leaf check-in: 2dcdbb50 user: drh tags: btree-freespace-opt)
16:30
Add NEVER on an unreachable branch. (check-in: 9b3febbd user: drh tags: btree-freespace-opt)
15:49
Fix an assert(). (check-in: 7eff46ba user: drh tags: btree-freespace-opt)
15:07
Tweaks to the new insertCellFast(). (check-in: 203a581a user: drh tags: btree-freespace-opt)
14:33
Clone insertCell() into insertCellFast() for use by sqlite3BtreeInsert() for a substantial performance increase. (check-in: f225afd9 user: drh tags: btree-freespace-opt)
14:03
Fix a problem causing the rbu_exclusive_checkpoint=1 to be ignored with zipvfs databases. (check-in: d8f50b31 user: dan tags: trunk)
13:21
Small performance improvement in freeSpace(). (check-in: 8dc5292e user: drh tags: btree-freespace-opt)
11:55
Try to use a heap to make coalescence of adjacent free slots faster when freeing space on a btree page. Turns out that the overhead of managing the heap overwhelms any performance gain and the result is slower. (Closed-Leaf check-in: 5d7e833f user: drh tags: deadend)
11:18
Add further tests for the rbu_exclusive_lock=1 URI option. (check-in: c07b62be user: dan tags: trunk)
2023-04-06
20:14
Increase the size of the cache of free blocks inside of pageFreeArray() to reduce the number of calls to freeSpace(). (check-in: 27c59f1e user: drh tags: btree-freespace-opt)
17:41
Work around a harmless assertion fault associated with sqlite3VdbeMemAboutToChange() such that the detection of stale values in registers is preserved in debugging builds, but we avoid a false-positive assertion fault in cases involving a virtual table with a LIMIT clause in an IN-operator loop. (check-in: 9511d17e user: drh tags: branch-3.41)
17:29
Work around a harmless assertion fault associated with sqlite3VdbeMemAboutToChange() such that the detection of stale values in registers is preserved in debugging builds, but we avoid a false-positive assertion fault in cases involving a virtual table with a LIMIT clause in an IN-operator loop. dbsqlfuzz 3fd70d4ab4950acf1deb8f610a7a7c67cd38713b (check-in: 56ea2c2f user: drh tags: trunk)
15:32
A prepared statement that aborts due to SQLITE_SCHEMA should not invalidate cursors in other prepared statements that are already running. (check-in: 4eee8401 user: drh tags: branch-3.41)
13:35
A prepared statement that aborts due to SQLITE_SCHEMA should not invalidate cursors in other prepared statements that are already running. See forum post cae4367d9b for the original trouble report. (check-in: 857d0f5e user: drh tags: trunk)
02:26
In the CLI, during error processing while looking for a word boundary, avoid being deceived by malformed input that has a very long sequence of 0x80 characters. Also fix a problem in the zipfile extension for when a corrupt zipfile has a zero-length filename. (check-in: 5323ee77 user: drh tags: branch-3.41)
01:05
In the CLI, during error processing while looking for a word boundary, avoid being deceived by malformed input that has a very long sequence of 0x80 characters. forum post ab93a23ba1. (check-in: 82609d5a user: drh tags: trunk)
00:59
In the zipfile extension, defend against corrupt ZIP files that contain a zero-length filename. Forum post b15f5e3ad8. (check-in: 46db2e42 user: drh tags: trunk)
00:18
In the new .scanstatus command in the CLI, make sure the database is opened before invoking sqlite3_db_config(). Forum post 6e26dcf544. (check-in: 1cd993c4 user: drh tags: trunk)
2023-04-05
03:00
Remove an ALWAYS() that can now be false due to the prior check-in. (check-in: 3bfdb410 user: drh tags: branch-3.41)
02:55
Add a test case for the ALWAYS() macro removed by the previous check-in. (check-in: 68a1a837 user: drh tags: trunk)
02:50
Remove an ALWAYS() that might now be false due to the prior check-in. (check-in: fc689935 user: drh tags: trunk)
02:25
Fix the function that determines the collating function for an expression tree to handle new cases that arise as a result of the recently added ability to use indexed expressions in aggregate queries. (check-in: b29dea0d user: drh tags: branch-3.41)
02:21
Fix the function that determines the collating function for an expression tree to handle new cases that arise as a result of the recently added ability to use indexed expressions in aggregate queries. [forum/forumpost/0713a16a44|Forum post 0713a16a44]. (check-in: cc5041f3 user: drh tags: trunk)
2023-04-04
19:56
Shell to use SQLITE_SHELL_HAVE_RECOVER consistently (correcting check-in 0421cc03e0efa8f1) (check-in: 5b980d72 user: larrybr tags: trunk)
18:59
Fix an incorrect entry in the array that maps sqlite3_value values into actual datatype numbers. (check-in: 80d518fb user: drh tags: branch-3.41)
18:55
Fix an incorrect entry in the array that maps sqlite3_value values into actual datatype numbers. dbsqlfuzz f660c659bcec48577a43d3bab37f46baaa22f59e (check-in: fa8537dc user: drh tags: trunk)
18:48
Remove an assert() statement that is no longer valid due to enhancements to query planner for improved use of indexes. (check-in: 93fb8c66 user: drh tags: branch-3.41)
18:10
Remove an assert() statement that is no longer valid due to enhancements to query planner for improved use of indexes. Forum post dc16ec63d3. (check-in: 2b23dd24 user: drh tags: trunk)
17:35
Expose the new SQLITE_VTAB_USES_ALL_SCHEMAS to JS. (check-in: b7ef09be user: stephan tags: trunk)
08:49
Omit shell call to sqlite3_dbdata_init() when it is omitted. (check-in: 0421cc03 user: larrybr tags: trunk)
2023-04-03
23:55
When translating arguments of aggregate functions into references to expression indexes, make sure to only translate them for the current aggregate when there are nested aggregates. (check-in: 7ea98aba user: drh tags: branch-3.41)
23:49
When translating arguments of aggregate functions into references to expression indexes, make sure to only translate them for the current aggregate when there are nested aggregates. Forum post 409ebc7368. (check-in: 898bfa1a user: drh tags: trunk)
20:11
Improved diagnostic output from PRAGMA vdbe_addoptrace. (check-in: 050958c1 user: drh tags: trunk)
18:00
When changing a COLLATE expression node into TK_AGG_COLUMN because the nodes value is contained in an indexed expression, be sure to clear the EP_Collate property from the expression node. (check-in: af0f55cf user: drh tags: branch-3.41)
17:46
When changing a COLLATE expression node into TK_AGG_COLUMN because the nodes value is contained in an indexed expression, be sure to clear the EP_Collate property from the expression node. Fix for the assertion faults reported by forum post e45108732c and forum post 44270909bb. (check-in: cf6454ce user: drh tags: trunk)
15:01
Add the SQLITE_VTAB_USES_ALL_SCHEMAS option to sqlite3_vtab_config(). Update the sqlite_dbpage, sqlite_dbdata, and sqlite_dbptr virtual tables to make use of that interface. This was formerly handled by the internal sqlite3VtabUsesAllSchemas() routine that was called directly from sqlite_dbpage. But since sqlite_dbdata and sqlite_dbptr are an extension, an external interface to that functionality had to be provided. dbsqlfuzz 1a29c245175a63393b6a78c5b8cab5199939d6a8 (check-in: bcd51abe user: drh tags: trunk)
12:48
Make the sqlite_dbdata and sqlite3_dbptr virtual tables accessible to the CLI. (check-in: c0eff028 user: drh tags: trunk)
12:45
Stronger constraint checking in allocateSpace(). (check-in: 0f9e65b6 user: drh tags: branch-3.41)
12:33
Stronger constraint checking in allocateSpace(). dbsqlfuzz 93d4c9ff5ef7cd29f16e767af1ee71c29ec5a4c0 (check-in: 9e968f4f user: drh tags: trunk)
2023-04-02
20:56
With the -DSQLITE_ENABLE_JSON_NAN_INF compile-time option, non-standard JSON numeric values "Inf", "Infinity", "-Inf", "-Infinity", "NaN", "QNaN", and "SNaN" are all accepted. SQLite should never generate these values, but it will accept that with the appropriate compile-time option. (check-in: 0a050e90 user: drh tags: trunk)
20:46
More off-by-one errors in the new JSON parsing. (Closed-Leaf check-in: dbc99662 user: drh tags: json-nan-inf)
20:27
Fix an off-by-one error in the recognition of -Infinity. (check-in: f7ebf3e6 user: drh tags: json-nan-inf)
18:49
Earlier detection of corruption in sqlite3BtreeDelete(). dbsqlfuzz a4c48c291d6e40157a1b749a05eaa7c7faf5a625. (check-in: 728633c0 user: drh tags: branch-3.41)
16:43
Earlier detection of corruption in sqlite3BtreeDelete(). dbsqlfuzz a4c48c291d6e40157a1b749a05eaa7c7faf5a625. (check-in: 978dc71c user: drh tags: trunk)
14:53
Clear executable bit on base64.c (check-in: ec1ddbce user: larrybr tags: trunk)
2023-04-01
23:29
Allow special floating-point value names in JSON: "inf", "-inf", "infinity", "-infinity", "nan", "qnan", and "snan". All are converted into valid JSON values: 9e999, -9e999, or null. Requires the SQLITE_ENABLE_JSON_NAN_INF compile-time option to operate. (check-in: fc8793e5 user: drh tags: json-nan-inf)
16:14
Swat grammar nit on README.md (check-in: 715c00e5 user: larrybr tags: trunk)
15:51
Fix harmless compiler warnings. (check-in: a4fb2864 user: drh tags: trunk)
13:14
Improved error messages from PRAGMA integrity_check. Identify the root of the tree when a problem is found in a b-tree, making it easier to track the problem to a specific table or index. (check-in: a1cb152e user: drh tags: trunk)
12:22
In the b-tree module use %u instead of %d to print unsigned quantities such as page numbers and offsets. (check-in: 33ac62d8 user: drh tags: trunk)
2023-03-31
23:59
Omit the the count-of-view optimization if there is a HAVING clause. (check-in: a8faea28 user: drh tags: branch-3.41)
23:48
Omit the the count-of-view optimization if there is a HAVING clause. This fixes a problem that originated with check-in [9322a7c21f1c22ba]. dbsqlfuzz 6a107e3055bd22afab31cfddabc2d9d54fcbaf69 (check-in: babe2b5e user: drh tags: trunk)
16:27
Merge recent trunk fixes into the nan-inf branch. (Leaf check-in: a51fb9d7 user: drh tags: nan-inf)
2023-03-30
19:14
Earlier error detection for index expression usage by aggregate functions. dbsqlfuzz 29214ace4e25c98d2ddff8fbcf97afdda23f28b9 (check-in: cf8dd8cd user: drh tags: branch-3.41)
19:05
Earlier error detection for index expression usage by aggregate functions. dbsqlfuzz 29214ace4e25c98d2ddff8fbcf97afdda23f28b9 (check-in: 8e841e7f user: drh tags: trunk)
16:08
Omit a branch that is no longer needed following [c9c4f287652933eb]. (check-in: 960a488a user: drh tags: trunk)
12:19
Fix an error in new test script test/aggfault.test. (check-in: 8724fe74 user: dan tags: trunk)
11:28
Cherrypick three fixes from trunk. (check-in: 5583ea82 user: drh tags: branch-3.41)
11:05
Fix a crash that could follow an OOM error while processing aggregate functions. (check-in: 804435a2 user: dan tags: trunk)
2023-03-29
21:58
Avoid having OP_SeekScan jump over an OP_IdxGT or OP_IdxGE that follows the OP_SeekGE opcode. Fix for [b50528af4468237c]. (check-in: c9c4f287 user: dan tags: trunk)
18:54
Fix a problem with sqlite3_stmt_scanstatus() calls made from within an SQLITE_TRACE_STMT callback made from within a trigger. (check-in: 1fa78faf user: dan tags: trunk)
17:26
Back out elements (1) and (2) from [96ec8306457eebf5]. (check-in: d8b17615 user: drh tags: nan-inf)
16:28
Merge recent trunk fixes into the nan-inf branch. (check-in: 248bf629 user: drh tags: nan-inf)
15:16
Another #ifdef to omit code that is only used by STAT4. (check-in: 445c7556 user: drh tags: trunk)
14:42
New #ifdefs to omit code that is unused except under STAT4. (check-in: 09a9b30b user: drh tags: trunk)
11:40
Enhance PRAGMA integrity_check so that it can detect that a NOT NULL column contains a NaN value and report that as an error. (check-in: fbc27e18 user: drh tags: branch-3.41)
11:36
Enhance PRAGMA integrity_check so that it can detect that a NOT NULL column contains a NaN value and report that as an error. dbsqlfuzz f144b642fe6f1a1c196f258ac6e60118a0cb59b2. (check-in: 7638d975 user: drh tags: trunk)
00:05
Modify the OP_IsType opcode so that it does not need to distinguish between NaN and other floating point values. Later: This branch causes an unnecessary slowdown of PRAGMA integrity_check. Check-in [7638d9755dc90fd3] does a better job of detecting when a NaN value occurs in a NOT NULL column. (Closed-Leaf check-in: 242cb36c user: drh tags: istype-opcode-refactor)
2023-03-28
16:13
Fix a weird corner case in aggregate function processing that results from the recent addition of support for index expressions on aggregate queries. (check-in: 36fd948e user: drh tags: branch-3.41)
16:02
Fix a weird corner case in aggregate function processing that results from the recent addition of support for index expressions on aggregate queries. Forum post bad532820c. (check-in: c34fd9fe user: drh tags: trunk)
11:21
Fix multiple problems with RETURNING on a DML statement against a view. (1) Do not allow a RETURNING clause to trick the code generator into thinking that the view being updated has an INSTEAD OF trigger. (2) Generate all result columns for a view in a DML statement. (3) The automatic covering index for a view should cover all result columns of the view. (check-in: b49816fc user: drh tags: branch-3.41)
11:18
Fix multiple problems with RETURNING on a DML statement against a view, all inspired by forum post dc3b92cfa0. (1) Do not allow a RETURNING clause to trick the code generator into thinking that the view being updated has an INSTEAD OF trigger. (2) Generate all result columns for a view in a DML statement. (3) The automatic covering index for a view should cover all result columns of the view. (check-in: c8bedef0 user: drh tags: trunk)
2023-03-27
13:57
Remove a meaningless JS test. Add a timer to the OPFS async-side worker loader in an attempt to catch a browser-specific quirk in which the worker loading silently fails, per discussion in/around [forum post a708c98dcb3ef|forum:a708c98dcb3ef]. (check-in: 4fc1904b user: stephan tags: trunk)
13:27
Do not allow constant factoring during PRAGMA integrity_check, since the constants might be stored in registers that are later reused for other purposes. (check-in: a4b5f499 user: drh tags: branch-3.41)
13:24
Do not allow constant factoring during PRAGMA integrity_check, since the constants might be stored in registers that are later reused for other purposes. dbsqlfuzz dc9ab26037cf5ef797d28cd1ae0855ade584216d. Problem discovered by a new assert() statement added in [6f8b97f31a4c8552]. (check-in: 0bba27b7 user: drh tags: trunk)
13:10
Improvements to register allocation, especially in the ANALYZE command. New assert() statements added to help verify that memory allocation is correct, and to help fuzzer find lingering errors. (check-in: 636f6fad user: drh tags: branch-3.41)
2023-03-26
16:36
Improvements to register allocation, especially in the ANALYZE command. New assert() statements added to help verify that memory allocation is correct, and to help fuzzer find lingering errors. (check-in: 6f8b97f3 user: drh tags: trunk)
11:54
Disable factoring of constant values during ANALYZE. This is a temporary fix for forum post 07de5f6216. The register allocation logic in ANALYZE needs to be completely refactored, but that will take longer. This check-in will serve to resolve the issue until a better fix can be devised. (check-in: c3967d12 user: drh tags: trunk)
2023-03-25
23:56
When the left table of a RIGHT JOIN is used inside an aggregate function and the left table employs an index on expressions, then make sure the expressions evaluate to NULL for the cases where the left table should be NULL. (check-in: c51df77e user: drh tags: branch-3.41)
23:52
When the left table of a RIGHT JOIN is used inside an aggregate function and the left table employs an index on expressions, then make sure the expressions evaluate to NULL for the cases where the left table should be NULL. Fix for forum post 9b491e1deb. (check-in: ffe23af7 user: drh tags: trunk)
23:40
Add usage detection to the NULL value generator for the left table of a RIGHT JOIN inside of an aggregate. (Closed-Leaf check-in: 4d05a009 user: drh tags: rightjoin-agg-idxexpr)
22:42
When reading sqlite_stat4 data during query planning, be sure to expand zeroblobs prior to running comparisons. (check-in: 60f4d19d user: drh tags: branch-3.41)
22:37
When reading sqlite_stat4 data during query planning, be sure to expand zeroblobs prior to running comparisons. Fix for the issue identified by forum post 5275207102. (check-in: 5c8dd8df user: drh tags: trunk)
21:01
When the left table of a RIGHT JOIN is used inside an aggregate function and the left table employs an index on expressions, then make sure the expressions evaluate to NULL for the cases where the left table should be NULL. Proposed fix for forum post 9b491e1deb. More testing an analysis needed - there is a FIXME in this check-in. (check-in: 3572b40a user: drh tags: rightjoin-agg-idxexpr)
19:46
In the byte-code generator, when the result of an expression needs to be in a particular register, always use the sqlite3ExprCode() routine because it has the smarts to know whether to use OP_Copy or OP_SCopy. Do not try to OP_SCopy inline because an OP_Copy might be required. (check-in: 2d439ccc user: drh tags: branch-3.41)
19:44
In the byte-code generator, when the result of an expression needs to be in a particular register, always use the sqlite3ExprCode() routine because it has the smarts to know whether to use OP_Copy or OP_SCopy. Do not try to OP_SCopy inline because an OP_Copy might be required. Fix for the problem identified by forum post 5522082cfc. (check-in: c104e5c6 user: drh tags: trunk)
18:41
Add the tag-20230325-1 comment that was omitted from the prior check-in. (check-in: a13c01d0 user: drh tags: trunk)
18:33
The fix at [13c8c60bb6b4447b] was incomplete in that it failed to clear the reusable register cache that might contain registers in the STAT4 buffer region. This additional change corrects the problem. (check-in: 671bf6f5 user: drh tags: branch-3.41)
18:31
The fix at [2bf5413dc2c19d5f] was incomplete in that it failed to clear the reusable register cache that might contain registers in the STAT4 buffer region. This additional change corrects the problem. Forum post 83cb4a95a0. Test case in TH3. (check-in: 5d554e4d user: drh tags: trunk)
12:27
Even tighter bounds on the maximum length of the filename for sqlite3_load_extension(). (check-in: 78729141 user: drh tags: trunk)
03:17
Tighter constraints on the maximum length of the filename handed over to sqlite3_load_extension(), due to forum post a43074729e. This is a follow-on to [01f3877c7172d522] and forum post 08a0d6d9bf. (check-in: 9f351bde user: drh tags: trunk)
02:07
New test case to further validate the fix at [221fdcec964f8317]. Forum post d34ad68c36. (check-in: a6e218a6 user: drh tags: trunk)
02:02
Fix a problem in cursor-hints for WITHOUT ROWID tables. (check-in: fc8ec188 user: drh tags: branch-3.41)
01:50
Fix CLI non-handling of OOM. (check-in: 44c76f00 user: drh tags: branch-3.41)
01:29
Fix CLI non-handling of OOM reported at Forum post 6872514e04. (check-in: 6f6a0fd6 user: larrybr tags: trunk)
2023-03-24
22:24
Remove undocumented, vestigial SQL functions in the CLI that were once used for the ".recover" command but are now no longer needed. This is a fix for the problem described by forum post be9c294ee0. (check-in: 74d14900 user: drh tags: branch-3.41)
22:17
Remove undocumented, vestigial SQL functions in the CLI that were once used for the ".recover" command but are now no longer needed. (check-in: 1ef461aa user: drh tags: trunk)
21:35
Fix possible integer overflow in bounds checking for the debugging function "shell_int32()" found in the CLI. This change does not affect the core SQLite. Forum post be9c294ee0. (check-in: 62114711 user: drh tags: trunk)
21:27
Fix an error in the OP_SeekScan opcode. (check-in: b95e6933 user: drh tags: branch-3.41)
21:24
Fix an error in the OP_SeekScan opcode added by check-in [4a43430fd23f8835]. Problem reported by forum post 8cc1dc0fe9. (check-in: 651a13fc user: drh tags: trunk)
20:41
Increase the version number to 3.41.3. (check-in: 9a19c6ce user: drh tags: branch-3.41)
20:39
Fix the handling of indexed expressions in an outer query that appear as corelated values inside an aggregate function within a subquery. (check-in: 76b90f26 user: drh tags: branch-3.41)
20:35
Fix the handling of indexed expressions in an outer query that appear as corelated values inside an aggregate function within a subquery. Forum post 79cf371080. (check-in: d8259877 user: drh tags: trunk)
19:17
Fix a problem in cursor-hints for WITHOUT ROWID tables used in a RIGHT JOIN. Forum post 591006b1cc. (check-in: 221fdcec user: drh tags: trunk)
17:15
Add a JS test which checks for the issue described in forum post 895425b49a. (check-in: 98d30400 user: stephan tags: trunk)
17:01
Fix byte-code register allocation in ANALYZE for STAT4 when there multiple indexes with differing numbers of columns. (check-in: 13c8c60b user: drh tags: branch-3.41)
16:57
Fix byte-code register allocation in ANALYZE for STAT4 when there multiple indexes with differing numbers of columns. forum post bc39e531e5. This problem arose when expression indexes were added by check-in [2131a5ca53f0e9b0]. (check-in: 2bf5413d user: drh tags: trunk)
2023-03-23
19:22
Fix test cases so that they work when SQLITE_ENABLE_NAN_INF is defined. (check-in: 95c7af79 user: drh tags: nan-inf)
12:00
Fix #ifdefs that use the wrong preprocessor macro. (check-in: 0aecf360 user: drh tags: nan-inf)
10:58
The attempt to bring STAT4 up to 100% MC/DC at [55a26c67ed4a3a93] and at [168fa2fb22b8c1ad] are incorrect. Back them out and replace them with a simple NEVER() macro. Error reported by forum post dc4854437b. (check-in: 76e683c5 user: drh tags: branch-3.41)
10:54
The attempt to bring STAT4 up to 100% MC/DC at [55a26c67ed4a3a93] and at [168fa2fb22b8c1ad] are incorrect. Back them out and replace them with a simple NEVER() macro. Error reported by forum post dc4854437b. (check-in: 5992370a user: drh tags: trunk)
2023-03-22
20:21
Add the SQLITE_ENABLE_NAN_INF compile-time option which makes the following behavior changes: (1) sqlite3_value_double(NULL) returns NaN, (2) SQLite preserves NaN values rather than converting them to NULL. (3) CAST statements understand "NaN" and "Inf" and make the right conversions. (4) Non-standard JSON is never generated by SQLite JSON routines, but those routines will accept floating point literals "NaN", "Inf", and "-Inf". (check-in: 96ec8306 user: drh tags: nan-inf)
19:57
Internal cleanups in JS code. No functional changes. (check-in: 8fbdf7d1 user: stephan tags: trunk)
16:55
The floating-point-to-text conversion with the zero-padding option now renders NaN as "null". (check-in: ad59fa17 user: drh tags: trunk)
16:37
For consistency, the ".mode json" output from the CLI now renders infinity in the same format as the JSON functions. (check-in: abee339d user: drh tags: trunk)
16:24
The double-to-text conversion renders infinity as 9e999, so that JSON output is compliant and so that values can be round-tripped. (check-in: b52081d0 user: drh tags: trunk)
16:01
In the CLI, the magic parameter :inf and :nan bind floating point values Infinity and NaN, respectively, as an aid to testing SQLite's handling of those quantities. (check-in: c70a61d8 user: drh tags: trunk)
14:51
Update the version number for the TEA tarball to 3.42.0, to match the core. (check-in: 03e6918e user: drh tags: trunk)
13:47
Merge the 3.41.2 patch into the reuse-schema-3.41 subbranch of reuse-schema (Leaf check-in: 995fa4d0 user: drh tags: reuse-schema-3.41)
13:35
Merge the 3.41.2 patches into the bedrock-3.41 subbranch of bedrock. (Leaf check-in: b7a144c4 user: drh tags: bedrock-3.41)
13:25
Merge the 3.41.2 patch into the wal2-3.41 subbranch of wal2. (Leaf check-in: db44f17a user: drh tags: wal2-3.41)
11:56
Version 3.41.2 (check-in: 0d1fc92f user: drh tags: release, version-3.41.2, branch-3.41)
11:12
Increment the version number in the TEA configure script to 3.41.2. (check-in: 2bb74aa5 user: drh tags: branch-3.41)
2023-03-21
14:20
Add ALWAYS() on a branch this is always true now due to [84417bbd144b2197]. (check-in: badf7d0e user: drh tags: trunk)
12:29
Add the fuzzcheck-asan.exe target to the MSVC makefile. (check-in: 0901bc02 user: drh tags: trunk)
11:56
Add the fuzzcheck-asan target to the main posix makefile. (check-in: 55e94add user: drh tags: trunk)
11:27
Fix a valgrind error and potential buffer overread when handling a corrupt database. (check-in: cb8b34fa user: drh tags: branch-3.41)
11:13
Fix a valgrind error and potential buffer overread when handling a corrupt database. (check-in: b1e0cd64 user: dan tags: trunk)
2023-03-20
20:22
Reinsert two NEVER() macros for b-tree branches that were previously needed for [b6a82f3c3b9d89fd] but which are now obsolete due to [73f0036f045bf371]. Later: dbsqlfuzz quickly found new cases for which those two branches are needed. The new test cases have been added to TH3. (Closed-Leaf check-in: 3065dadb user: drh tags: backout)
18:35
Minor change to btreeNext() to facilitate coverage testing. (check-in: 20b3ef04 user: drh tags: trunk)
15:50
Fix a problem causing a cursor to retain an out-of-date cell-info cache when processing a DISTINCT query on values that are identical according to their collation sequence, but different on disk. (check-in: b0281184 user: drh tags: branch-3.41)
14:59
Fix a problem causing a cursor to retain an out-of-date cell-info cache when processing a DISTINCT query on values that are identical according to their collation sequence, but different on disk. Forum post e123e6cde4. (check-in: 1b3abc1d user: dan tags: trunk)
10:43
Back out the extra margin added to the input buffer of the CLI, as it is not needed. (check-in: ac8d1e5d user: drh tags: trunk)
01:59
Fix problems with the sqlite3_error_offset() function and its use in the CLI. (check-in: d5cd6c88 user: drh tags: branch-3.41)
01:55
A better fix for the sqlite3_error_offset() problem on generated columns. (check-in: 770b3e67 user: drh tags: trunk)
00:53
Expression errors in generated columns should not generate non-negative sqlite3_error_offset() returns. Second of two defenses against [33aa4c0de8a62e33]. (check-in: 2adb4e0d user: drh tags: trunk)
00:48
When reporting errors in the CLI, ignore the output of sqlite3_error_offset() if the value returned is clearly out-of-range. One of two lines of defense against [33aa4c0de8a62e33]. (check-in: 26adbb80 user: drh tags: trunk)
2023-03-19
21:53
Increase the size of ref-count values in the pager layer to 64-bits, to avoid any reasonable possiblity of overflowing the counters. (check-in: 824611ad user: drh tags: branch-3.41)
21:48
Increase the size of ref-count values in the pager layer to 64-bits, to avoid any reasonable possiblity of overflowing the counters. There is a performance and memory penality for this. Forum post b741f15a35. (check-in: 6c5d99a8 user: drh tags: trunk)
10:30
Avoid a buffer overread in fts3 that could occur when processing a corrupt record. (check-in: 1f91fe4b user: drh tags: branch-3.41)
2023-03-18
16:12
Avoid a buffer overread in fts3 that could occur when processing a corrupt record. (check-in: 02ac2297 user: dan tags: trunk)
2023-03-17
20:31
Fix json rendering so that it shows positive and negative infinity as 9.0e+999 and -9.0e+999 respectively. (Closed-Leaf check-in: efce4690 user: drh tags: numeric-only-json)
19:18
Add the ability to name functions using one of the join keywords like CROSS FULL INNER LEFT NATURAL OUTER RIGHT. (check-in: 0910b192 user: drh tags: trunk)
19:07
Add test cases for functions named the same as join keywords. (Closed-Leaf check-in: 94944b23 user: drh tags: functions-named-left)
14:22
Fix a potential buffer overread in the recovery extension. (check-in: 78836713 user: dan tags: branch-3.41)
14:18
Fix a potential buffer overread in the recovery extension. (check-in: 0b3b5bf9 user: dan tags: trunk)
12:25
Ensure that an error does not delete the Table object out from under the xConstruct method of a virtual table. dbsqlfuzz 7cc8804a1c6d4e3d554d79096e6ea75a7c1c7d2d (check-in: c5bd0ea3 user: drh tags: branch-3.41)
10:43
Ensure that an error does not delete the Table object out from under the xConstruct method of a virtual table. dbsqlfuzz 7cc8804a1c6d4e3d554d79096e6ea75a7c1c7d2d (check-in: df4928c9 user: drh tags: trunk)
10:30
Increase the version number to 3.41.2 (check-in: 122f12f5 user: drh tags: branch-3.41)
00:42
Add safety margin on the CLI input buffer for tickets [33aa4c0de8a62e33], [b97e6c5e6a91d97f], [2971fbe3f993e95a], and [2971fbe3f993e95a]. (check-in: 741af08a user: drh tags: trunk)
00:10
Fix assert() statements that would (incorrectly) fire if an IF NOT EXISTS trigger that already exists contained two or more RETURNING clauses. (check-in: 9b43b34d user: drh tags: branch-3.41)
00:01
Fix assert() statements that would (incorrectly) fire if an IF NOT EXISTS trigger that already exists contained two or more RETURNING clauses. Tickets [89d259d45b855a0d] and [d15b3a4ea901ef0d]. (check-in: 648899e4 user: drh tags: trunk)
2023-03-16
21:05
Correctly handle SELECT DISTINCT ... ORDER BY when all of the result set terms are constant and there are more result set terms than ORDER BY terms. (check-in: 097512b6 user: drh tags: branch-3.41)
20:54
Correctly handle SELECT DISTINCT ... ORDER BY when all of the result set terms are constant and there are more result set terms than ORDER BY terms. Fix for these tickets: [c36cdb4afd504dc1], [4051a7f931d9ba24], [d6fd512f50513ab7]. (check-in: 12ad822d user: drh tags: trunk)
12:28
Additional debug/test output from the query invariant checker showing the row-number that is being checked. (check-in: e4b6eb58 user: drh tags: trunk)
11:50
Update the tracing output for the query-invariant checker such that it shows the SQL that is run to verify that a found query-invariant discrepency is valid. Changes to testing logic only. (check-in: 8f45ad27 user: drh tags: trunk)
10:21
Do not use the one-pass optimization on an UPDATE if there is a subquery in the WHERE clause, since if the subquery is hidden behind a short-circuit operator, the subquery might not be evaluated until after one or more rows have been updated. (check-in: b5d8a9a6 user: drh tags: branch-3.41)
10:17
Do not use the one-pass optimization on an UPDATE if there is a subquery in the WHERE clause, since if the subquery is hidden behind a short-circuit operator, the subquery might not be evaluated until after one or more rows have been updated. Fix for the problem reported by forum post 0007d1fdb1. This is the same problem that was fixed by [73f0036f045bf371] only for UPDATE instead of DELETE. (check-in: 2c56b984 user: drh tags: trunk)
09:16
Remove a NEVER() from btreeNext(). (check-in: 40623f5a user: drh tags: branch-3.41)
09:12
Fix a broken assert() in the recovery extension. (check-in: 048711e4 user: drh tags: branch-3.41)
09:07
Remove a NEVER() from btreeNext() that dbsqlfuzz 460aa158f9a2c41145831cc924296cde1f312b3f found could sometimes be reached. I will find a way to test that branch later. (check-in: 1dffeffe user: drh tags: trunk)
02:30
Another approach at attempting to contain the damage caused by corruption that leaves MemPage.isInit clear. Works better than the previous but is still not perfect. (Closed-Leaf check-in: ba964eb0 user: drh tags: corruption-in-btree-init)
01:20
When the btreeInitPage() routine detects database corruption, it should continue to the end and set MemPage.isInit before it returns SQLITE_CORRUPT, because if it leaves MemPage.isInit unset, then can cause difficulty later. dbsqlfuzz 460aa158f9a2c41145831cc924296cde1f312b3f (check-in: 44e83f8b user: drh tags: corruption-in-btree-init)
2023-03-15
18:05
Disallow the one-pass optimization for DELETE if the WHERE clause contains a subquery. (check-in: 25e18318 user: drh tags: branch-3.41)
17:58
Disallow the one-pass optimization for DELETE if the WHERE clause contains a subquery. Fix for the problem reported by forum post e61252062c9d286d. This fix is more restrictive than necessary. It could be relaxed if the subquery does not involve the table that is the subject of the DELETE. (check-in: 73f0036f user: drh tags: trunk)
13:53
Fix a broken assert() in the recovery extension. (check-in: 4c4e66f2 user: dan tags: trunk)
2023-03-14
20:16
Fix Bloom filters on an expression index. (check-in: 11e0256b user: drh tags: branch-3.41)
20:08
Fix Bloom filters on an expression index. forum post 2e427099d5 and forum post d47a0e8e3a. This problem goes back to the original introduction of Bloom filters (check-in [633bfeeea2bccdd4]) for SQLite version 3.38.0. (check-in: c028fb66 user: drh tags: trunk)
2023-03-13
16:08
Include CLI's tip for -- in all builds. Better show optionality of its non-option arguments. (check-in: 9e2c771d user: larrybr tags: trunk)
2023-03-11
23:29
The cherry-pick merge at [371838562a675c1b] caused a performance regression for some queries, which is here fixed. (check-in: 6d6d95fc user: drh tags: branch-3.41)
23:21
The check-in at [198b3e33dcfd74c7] caused a performance regression for some queries, which is here fixed. Problem reported by forum post b405033490fa56d9. (check-in: dc9f025d user: drh tags: trunk)
12:27
Allow functions named using keywords "CROSS", "FULL", "INNER", "LEFT", "NATURAL", "OUTER", and "RIGHT". (check-in: eeac3d5e user: drh tags: functions-named-left)
00:15
CLI help to reflect no-more-options option (check-in: 30d95a12 user: larrybr tags: trunk)
2023-03-10
21:27
Fix a typo in a comment. No code changes. (check-in: 76acc075 user: drh tags: trunk)
20:54
Give CLI a no-more-options option. (--) (check-in: 08227887 user: larrybr tags: trunk)
13:36
Fix a problem with the fts5 snippet() function that shows up when snippets just 1 token in length are requested. (check-in: 96d5116d user: dan tags: trunk)
12:47
Merge the 3.41.1 patches into the bedrock branch. (check-in: 2780cc9f user: drh tags: bedrock-3.41)
12:13
Version 3.41.1 (check-in: 20399f3e user: drh tags: release, version-3.41.1, branch-3.41)
11:57
Export SQLITE_FCNTL_RESET_CACHE to JS. (check-in: 6195cfc8 user: stephan tags: trunk)
00:59
Merge the branch-3.41 patches into the reuse-schema branch. (check-in: af08bd3e user: drh tags: reuse-schema-3.41)
00:21
Merge the latest 3.41 patches into a new branch called wal2-3.41. (check-in: e67bfc76 user: drh tags: wal2-3.41)
2023-03-09
22:09
Replace a lingering use of 'self' with 'globalThis' in JS code, for node compatibility. (check-in: 7e3782b5 user: stephan tags: trunk)
16:11
Reinstate some test cases accidentally removed by [cb023fe28560ce0f]. (check-in: 870de61f user: dan tags: trunk)
16:04
In the Bloom filter optimization, hash all strings and blobs into the same value, because we do not know if two different strings might compare equal even if they have different byte sequences, due to collating functions. Formerly, the hash of a string or blob was just its length. This could all be improved. (check-in: cc8a0ee4 user: drh tags: branch-3.41)
15:08
Fix countofview.test so that it works with SQLITE_OMIT_PROGRESS_CALLBACK builds. (check-in: d55a7742 user: dan tags: branch-3.41)
15:08
Fix countofview.test so that it works with SQLITE_OMIT_PROGRESS_CALLBACK builds. (check-in: 2fc7c3fc user: dan tags: trunk)
14:14
Update the version number to 3.41.1 (check-in: e4e2e647 user: drh tags: branch-3.41)
13:58
Merge count-of-view optimization fixes from trunk. But count-of-view is still off by default for this branch. (check-in: cbbe8986 user: drh tags: branch-3.41)
08:51
Experimental addition of sqlite3-node.mjs, for node.js, based on feedback from forum post ac7a94d4f77db235 and related off-list discussions. Build changes only - no code changes. (check-in: a5db97fa user: stephan tags: trunk)
01:35
Fix a possible NULL pointer dereference due to the sqlite3_interrupt() enhancement in the 3.41.0 release. (check-in: 66d24a22 user: drh tags: branch-3.41)
2023-03-08
23:05
Fix a possible NULL pointer dereference due to the sqlite3_interrupt() enhancement at [bd8fa10e59f58886]. Reported by forum post f5a2b1db87. (check-in: 84417bbd user: drh tags: trunk)
22:48
Backout the OP_MakeRecord optimization as it does not work. (check-in: 25017312 user: drh tags: trunk)
18:05
Export the new SQLITE_CHANGESETAPPLY_IGNORENOOP flag to JS. (check-in: ac7359b2 user: stephan tags: trunk)
18:03
Add the SQLITE_CHANGESETAPPLY_IGNORENOOP flag, which may be passed to sqlite3changeset_apply_v2() to have it ignore changes that would be no-ops if applied to the database (e.g. deleting a row that has already been deleted), instead of considering them conflicts. (check-in: cb023fe2 user: dan tags: trunk)
17:09
Small performance improvement in the OP_MakeRecord opcode. (check-in: ca89daef user: drh tags: trunk)
14:37
Keep the historical datatype ("INT", not "NUM") for a table created as follows: "CREATE TABLE t1 AS SELECT CAST(123 AS INT) AS value;". The use of FLEXNUM only occurs on compound queries. (check-in: dc1033af user: drh tags: branch-3.41)
14:28
Change to [44135d6ea84f7ba6] that retains the historical datatype ("INT", not "NUM") for a table created as follows: "CREATE TABLE t1 AS SELECT CAST(123 AS INT) AS value;". The use of FLEXNUM only occurs on compound queries. (check-in: 6d5b5896 user: drh tags: trunk)
10:05
Extend wasm build to support a custom sqlite3.c to support building against sqlite3-see.c. The JS code now binds the SEE-specific functions if it detects an SEE build. (check-in: dd8612c8 user: stephan tags: trunk)
00:47
Fix a problem in the count-of-view optimization that can lead to incorrect bytecode. dbsqlfuzz 23d782160b71c3f8f535ccb2da313dfc8eb8c631. (check-in: f4500953 user: drh tags: trunk)
00:04
Fix an assertion fault added by [65ffee234787213c]. (check-in: d00e68ba user: drh tags: branch-3.41)
2023-03-07
23:47
Fix a bug introduced 4 days ago by [e95439119ac200cb]: do not set the Expr.affExpr field of a generated column expression if the expression is a RAISE() function, as affExpr has a different meaning for RAISE. Forum post b312e075b5. (check-in: 1096b5a7 user: drh tags: trunk)
19:39
A proposed change to [44135d6ea84f7ba6] that retains the historical datatype ("INT", not "NUM") for a table created as follows: "CREATE TABLE t1 AS SELECT CAST(123 AS INT) AS value;". (Closed-Leaf check-in: a0e54fe2 user: drh tags: flexnum-proposed-fix)
19:23
Improve how sqlite3.initWorker1API() determines whether it's running in a Worker thread. Based on feedback in forum post ac7a94d4f77db235. (check-in: 2f712b83 user: stephan tags: trunk)
19:12
Replace use of 'self' in JS code with 'globalThis', as that works in browsers and node environments. Avoid using globalThis.location if it's not set (e.g. in node). Based on feedback in forum post ac7a94d4f77db235. Minor JS build tweaks. (check-in: dbbe8f25 user: stephan tags: trunk)
12:59
In the JS sqlite3.vfs/vtab utility APIs, use a local reference to StructBinder instead of sqlite3.StructBinder, as that object is removed from the sqlite3 namespace during the final steps of API initialization. Based on feedback from forum post d19d96183badca70. (check-in: 0d89885d user: stephan tags: trunk)
02:24
Fix a couple minor spacing issues in the MSVC makefile. (check-in: 46b3ac6d user: mistachkin tags: trunk)
2023-03-06
23:39
Repair an unintential fork. (check-in: 8b524c84 user: drh tags: trunk)
23:38
Improvements to query invariant testing such that it uses the new SQLITE_DBCONFIG_REVERSE_SCANORDER opcode to sqlite3_db_config() to make more accurate judgements about when a query is ambiguous, and hence when query invariant testing is approprate. (check-in: be9ab292 user: drh tags: trunk)
21:38
Cause CLI to fail noisily when deserialize option used for non-seekable "file". (check-in: 24bd7e82 user: larrybr tags: trunk)
19:04
Add SQLITE_DBCONFIG_REVERSE_SCANORDER for direct C-language access to the "PRAGMA reverse_unordered_selects" setting. (check-in: 83e84531 user: drh tags: trunk)
2023-03-05
07:44
Rename sqlite3-worker1-bundler-friendly.js to sqlite3-worker1-bundler-friendly.mjs and refactor it to work as an ES6 module, based on feedback in forum post a255f89c2eadf4c4. (check-in: af312b13 user: stephan tags: trunk)
07:33
Correct rendering of error messages in demo-worker1.js. Remove some stray EOL whitespace. (check-in: 1d5d515a user: stephan tags: trunk)
2023-03-04
15:49
Cherry-pick the agg-with-indexed-expr optimization fix from trunk. (check-in: b2ad89d3 user: drh tags: branch-3.41)
15:36
Fix to check-in [b9190d3da70c4171] - the agg-with-indexed-expr optimization requested by ticket [99378177930f87bd] - that can cause an incorrect answer if an aggregate subquery has a GROUP BY clause, and that GROUP BY contains a term that is not in the result set, and the outer query makes use of expression indexes. Problem reported by forum post a68313d054. (check-in: e0697387 user: drh tags: trunk)
12:57
Show the output value from OP_AggFinal when doing byte-code tracing. (check-in: 35f10a06 user: drh tags: trunk)
2023-03-03
21:17
Make the SQLITE_DBCONFIG_STMT_SCANSTATUS option on by default in the CLI. (check-in: 5a091911 user: dan tags: trunk)
19:56
Fix a vdbe-coverage macro added by [f418bdd627e84e7d]. (check-in: 77f559d2 user: drh tags: trunk)
19:47
Do not use an expression index on a generated column if generated column has the wrong affinity. (check-in: 65ffee23 user: drh tags: branch-3.41)
19:43
Follow-up to [e95439119ac200cb] to fix a case where a pointer is NULL due to OOM. (check-in: 2535bc8c user: drh tags: trunk)
18:47
Enhance PRAGMA integrity_check so that it can detect when there are extra bytes at the end of an index record, which might cause OP_IdxRowid to malfunction. (check-in: c143f087 user: drh tags: branch-3.41)
18:35
Enhance PRAGMA integrity_check so that it can detect when there are extra bytes at the end of an index record, which might cause OP_IdxRowid to malfunction. dbsqlfuzz c1aa3986534d5feab8d21f28b3c1712df2ef358ba. Test case in TH3. (check-in: f418bdd6 user: drh tags: trunk)
17:11
Cherrypick the "(X IS [NOT] NULL)" fix from trunk onto branch-3.41. (check-in: 0fc7f7c2 user: drh tags: branch-3.41)
16:25
When it is known when preparing a statement that X cannot be NULL or is always NULL, transform the expression (X IS NULL) to integer value 1 or 0 instead of 'true' or 'false'. This is because under some circumstances, "Y IS TRUE" or "Y IS FALSE" may not be equivalent to "Y IS 1" of "Y IS 0". This problem was introduced by [de9c86c9e4cdb34f] and was reported by forum post 2cd11c2d37. (check-in: cc4bb05b user: dan tags: trunk)
15:12
Do not use an expression index on a generated column if generated column has the wrong affinity. dbsqlfuzz 65f5eb57f8859344d5f1f33e08c77ee12960ed83 (check-in: e9543911 user: drh tags: trunk)
10:42
Remove unnecessary call to sqlite3_dbdata_init() from shell.c.in. (check-in: c4d083a3 user: dan tags: trunk)
2023-03-02
14:09
When flattening the right operand of a LEFT JOIN, ensure that the OP_IfNullRow opcode does not NULL-out a subquery result that was computed within OP_Once. (check-in: c80b262c user: drh tags: branch-3.41)
13:49
When flattening the right operand of a LEFT JOIN (check-in [41c27bc0ff1d3135]), ensure that the OP_IfNullRow opcode does not NULL-out a subquery result that was computed within OP_Once. This fixes the problem problem reported by forum post 402f05296d. (check-in: 8fe13f7a user: drh tags: trunk)
06:58
Resolve a parallel build timing issue when building sqlite3.c/h from ext/wasm. For the time being, do not add sqlite3_wasm_extra_init.c to fiddle.wasm because it can cause duplicate definitions of extensions which are already built into the shell (a better resolution for this conflict is pending). No longer add sqlite3_wasm_extra_init.c to speedtest1.wasm because it's useless there. (check-in: 75fdd5b8 user: stephan tags: trunk)
05:51
Rename some vars in the ext/wasm makefiles for consistency's sake. (check-in: c23589d9 user: stephan tags: trunk)
2023-03-01
20:44
When flattening a view that is the right operand of a LEFT JOIN always insert the TK_IF_NULL_ROW expression nodes, even for TK_COLUMN expressions, as the TK_COLUMN might be a column from an outer query and hence still need to be NULLed out. (check-in: 37183856 user: drh tags: branch-3.41)
20:23
When flattening a view that is the right operand of a LEFT JOIN, using the optimization of check-in [41c27bc0ff1d3135], always insert the TK_IF_NULL_ROW expression nodes, even for TK_COLUMN expressions, as the TK_COLUMN might be a column from an outer query and hence still need to be NULLed out. This fixes the problem described by forum post 26387ea7ef. (check-in: 198b3e33 user: drh tags: trunk)
15:28
Make sure subtypes do not cross a subquery boundary even if the function that returned the value with a subtype is buried down inside a larger expression. (check-in: 9dc46031 user: drh tags: branch-3.41)
15:21
Follow-up to [bbaf1f2eb1e1637b]: Make sure subtypes do not cross a subquery boundary even if the function that returned the value with a subtype is buried down inside a larger expression. This fixes a problem identified by forum post 37dd14a538. (check-in: e72661eb user: drh tags: trunk)
13:54
Do not attempt to apply the count-of-view optimization to a CTE. dbsqlfuzz ef8623915d843b150c159166ee4548c78cc6895a (check-in: abc3a383 user: drh tags: trunk)
2023-02-28
21:23
Activate SQLITE_DBCONFIG_STMT_SCANSTATUS in fuzzcheck. (check-in: 4fe1419a user: drh tags: trunk)
20:06
Updates to speedtest1.c and the speed-check.sh test script so that they work with the new SQLITE_DBCONFIG_STMT_SCANSTATUS control. (check-in: bd02df05 user: drh tags: trunk)
20:04
Change the name of SQLITE_DBCONFIG_STMT_SCANSTATS to SQLITE_DBCONFIG_STMT_SCANSTATUS. (check-in: a63e4a15 user: dan tags: trunk)
19:39
Add an sqlite3_db_config() option - SQLITE_DBCONFIG_STMT_SCANSTATS - for enabling and disabling the collection of sqlite3_stmt_scanstats() statistics in SQLITE_ENABLE_STMT_SCANSTATUS builds. Collection of statistics is disabled by default. (check-in: 0f5579be user: dan tags: trunk)
18:06
Only use a Bloom filter on an automatic index if one or more of the key columns in the index can take on non-TEXT values. (check-in: 5916705c user: drh tags: trunk)
14:28
In the Bloom filter optimization, hash all strings and blobs into the same value, because we do not know if two different strings might compare equal even if they have different byte sequences, due to collating functions. Formerly, the hash of a string or blob was just its length. This could all be improved. Fix for the issue reported by forum post 0846211821. (check-in: 090304b8 user: drh tags: trunk)
13:46
When an automatic index creates a Bloom filter, show that in the EXPLAIN QUERY PLAN output. (check-in: d7b2ac1c user: drh tags: trunk)
12:31
Performance optimization in the varint decoder for the cell parser. (check-in: b2b91c7c user: drh tags: trunk)
11:02
Improve the error message generated by the recovery extension if it is used with a non-SQLITE_ENABLE_DBPAGE_VTAB build. (check-in: c1f2a1d5 user: dan tags: trunk)
2023-02-27
21:53
Make the "unref" operation on database pages a method which is part of the PgHdr object. This is a potential performance optimization. (Leaf check-in: 37c5c8aa user: drh tags: unref-opt)
18:55
Minor performance optimization in the computation of an affinity string for an index. (check-in: 07334aa1 user: drh tags: trunk)
14:48
Further to [46639f682975dac6], the parameters of a table valued function that is on the left side of a RIGHT JOIN do not need to be in the ON clause. Add new test cases and tags to associated test cases with the code. (check-in: 18ee689d user: drh tags: trunk)
07:23
Minor doc tweak for the previous commit. (check-in: a8832164 user: stephan tags: trunk)
07:12
Extend wasm build to enable inclusion of client-custom C code, initialized via the SQLITE_EXTRA_INIT mechanism, per discussion in forum post 1e1c04f3ed1bc96b. (check-in: 68a52caf user: stephan tags: trunk)
2023-02-26
21:09
When a table-valued function appears as the right table of a RIGHT JOIN, the argument constraints on the table-valued function should be considered part of the ON clause of the RIGHT JOIN. (check-in: d225d077 user: drh tags: branch-3.41)
20:57
When a table-valued function appears as the right table of a RIGHT JOIN, the argument constraints on the table-valued function should be considered part of the ON clause of the RIGHT JOIN. Fix for the problem reported by forum post 422e635f3beafbf6. Test cases in TH3. Possibly related to the enhancement at [501609eddf2a46d5]. (check-in: 46639f68 user: drh tags: trunk)
19:36
Correct substantive error (DML and DQL versus DML) of last check-in. (Leaf check-in: 703fa854 user: larrybr tags: db_config_ops_rewrite)
19:10
Revise doc for SQLITE_DBCONFIG_* options, for clarification and coverage of all vararg parameters. Also, a grammo nit swat. (check-in: aa25596b user: larrybr tags: db_config_ops_rewrite)
11:52
In the omit-unused-subquery-columns optimization, be sure to remove the EP_Skip and EP_Unlikely flags from the result set expressions that get nulled-out. dbsqlfuzz bf1d3ed6e0e0dd8766027797d43db40c776d2b15. Also fix an incorrect ".selecttrace" code block. (check-in: 83a7f13e user: drh tags: branch-3.28)
11:36
In the omit-unused-subquery-columns optimization, be sure to remove the EP_Skip and EP_Unlikely flags from the result set expressions that get nulled-out. dbsqlfuzz bf1d3ed6e0e0dd8766027797d43db40c776d2b15. (check-in: 21aec65e user: drh tags: trunk)
2023-02-25
16:03
Split out a new variant of cellSizePtr() that applies only to leaf pages, for a small performance increase. (check-in: 22d32eef user: drh tags: trunk)
15:34
Remove an unnecessary and redundant corruption checks in defragmentPage(). (check-in: 2dc7342e user: drh tags: trunk)
15:15
Revert (mostly) to earlier CLI response to -echo and SQL at the command line. (check-in: 1c6cfcf6 user: larrybr tags: trunk)
12:50
Performance optimization on sqlite3_vsnprintf(). (check-in: 4430e6e9 user: drh tags: trunk)
2023-02-24
21:23
Add the "on" option to the ".log" command in the CLI. Allow ".log on" and ".log off" even in --safe mode. Enable the .log command for fiddle builds. (check-in: 6bba9100 user: drh tags: trunk)
21:05
In the CLI, do not emit warnings about the incorrect usage of sqlite3_config() in Fiddle. (check-in: 847021b4 user: drh tags: trunk)
19:58
Fix a problem with the sqlite3sessions_fullchangeset() and sqlite3changebatch_add() APIs on this branch. (check-in: a95a4bce user: dan tags: bedrock)
16:04
Modify the sqlite3_config() interface so that the SQLITE_CONFIG_LOG and SQLITE_CONFIG_PCACHE_HDRSZ opcodes can be called after sqlite3_initialize(). Enhancement request [0b75886e6d48f7c2]. (check-in: 7902fb80 user: drh tags: trunk)
15:59
Back out the SQLITE_CONFIG_URI option from anytime-config. (Closed-Leaf check-in: 0de98b8e user: drh tags: anytime-config)
13:45
Adjust testrunner.tcl to make use of the new number_of_cores TCL command available in testfixture, and to use no more than half the available cores. (check-in: e0122d38 user: drh tags: trunk)
13:25
Add the "number_of_cores" TCL command to the testfixture. (check-in: 16ee5a7b user: drh tags: trunk)
12:55
Merge enhancements from trunk into the anytime-config branch. (check-in: 04b2fdf3 user: drh tags: anytime-config)
11:54
Slightly faster and more precise floating-point to decimal conversion. See forum thread d1387c3979c7f557 for discussion. (check-in: 6dea6f47 user: drh tags: trunk)
01:37
A simpler fix to the problem described by forum thread d1387c3979c7f557. See specifically post 2d2ddc5b70c31de5. This approach is simpler, but it also runs a little slower. (Closed-Leaf check-in: 334d22bc user: drh tags: fp-conversion-simpler)
01:08
Fix an incorrect optimization that was attempted as part of check-in [18de3a8e6b431a07]. (Closed-Leaf check-in: f32055e8 user: drh tags: fp-conversion)
2023-02-23
22:08
Omit unnecessary branches from the enhanced floating-point conversion logic. (check-in: 32b0ba0d user: drh tags: fp-conversion)
21:18
Increased precision of floating-point to decimal conversions when the floating point value has no fractional part. Forum post d1387c3979c7f557 (check-in: 18de3a8e user: drh tags: fp-conversion)
17:12
Provide -DHAVE_LOG2=0 and -DHAVE_LOG10=0 compile-time options for use on systems that lack the log2() and log10() standard math library routines, to cause SQLite to substitute its own alternatives. (check-in: ff3362ab user: drh tags: branch-3.41)
14:43
Fix harmless compiler warnings and a code indentation error. (check-in: de6c5c6b user: drh tags: trunk)
14:22
Allow the sqlite3_config() interface to be invoked at any time for a few choosen options: SQLITE_CONFIG_LOG, SQLITE_CONFIG_URI, and SQLITE_CONFIG_PCACHE_HDRSZ. This list will likely change before release. (check-in: e1702eb4 user: drh tags: anytime-config)
01:52
Provide -DHAVE_LOG2=0 and -DHAVE_LOG10=0 compile-time options for use on systems that lack the log2() and log10() standard math library routines, to cause SQLite to substitute its own alternatives. (check-in: 7ee22f95 user: drh tags: trunk)
2023-02-22
21:47
Enable the count-of-view optimization by default. Enhancement request [eaed8e36ce888f1e]. (check-in: a4aacdd3 user: drh tags: trunk)
21:11
Avoid computing the values for unused result-set columns in subqueries. Performance optimization request [baa5bb76c35a124c]. (check-in: 7c2d3406 user: drh tags: trunk)
20:50
Update the version number to 3.42.0 to begin the next development cycle. (check-in: 65910216 user: drh tags: trunk)
20:42
Remove the push-down optimization restriction that was added by check-in [1ad41840c5e0fa70] because it is no longer needed after the enhancements to compound query processing in check-in [27655c9353620aa5] This resolves the performance regression reported by forum post bcc4375032. (check-in: aa6bd6df user: drh tags: trunk)
2023-02-21
21:26
Update the reuse-schema branch to version 3.41.0. (check-in: bbd35706 user: drh tags: reuse-schema)
21:22
Update the bedrock branch to version 3.41.0 (check-in: dc1d8570 user: drh tags: bedrock)
21:19
Update the wal2 branch to version 3.41.0. (check-in: 7bb1f6dc user: drh tags: wal2)
21:19
Update the begin-concurrent branch to version 3.41.0 (check-in: 918aea50 user: drh tags: begin-concurrent)
20:08
Remove some unnecessary bind() calls in JS code. (check-in: 71215599 user: stephan tags: trunk)
18:47
Unconditionally disable -sSTRICT_JS flag in wasm build because it no longer works with emsdk 3.1.31+. (check-in: b5e0b696 user: stephan tags: trunk)
18:09
Version 3.41.0 (check-in: 05941c2a user: drh tags: trunk, release, version-3.41.0)
13:28
Disable DQS by default in the MSVC makefile for the amalgamation tarball. (check-in: 409a1914 user: drh tags: trunk)
12:42
Yet another comment typo fix. No changes to working code. (check-in: cdbdc801 user: drh tags: trunk)
12:34
Fix a minor typo in a comment. No changes to working code. (check-in: 7981671d user: drh tags: trunk)
12:30
Fix formatting and improved documentation on the various sqlite3_file_control() opcodes. Other minor documentation changes. No changes to working code. (check-in: 13280f72 user: drh tags: trunk)
2023-02-20
19:43
Update the TEA version number to 3.41.0 (check-in: b450a920 user: drh tags: trunk)
16:55
Fix an incorrect #ifdef in the CLI. (check-in: 3c4d29cf user: drh tags: trunk)
2023-02-19
19:16
Fix a harmless compiler warning. (check-in: b2534d8d user: drh tags: trunk)
2023-02-18
21:59
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 38fc1d3d user: drh tags: reuse-schema)
21:52
Merge the lastest trunk code into the bedrock branch. (check-in: 73e9f8d0 user: drh tags: bedrock)
21:42
Merge the latest trunk enhancements into the wal2 branch. (check-in: a36de0c8 user: drh tags: wal2)
21:35
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 6fb8bb2e user: drh tags: begin-concurrent)
20:31
Fix stale requirement marks and fix a typo in the documentation for sqlite3_preupdate_hook(). (check-in: 655991f5 user: drh tags: trunk)
15:50
Fix a harmless UBSAN warning in debugging code of the new unhex() function. (check-in: 315574d5 user: drh tags: trunk)
2023-02-17
22:48
Fix a harmless typo in the test case added by [29fc06465efb948f]. (check-in: e0a0bf56 user: drh tags: trunk)
18:27
Do not allow the COUNTOFVIEW optimization to run if the count() contains a FILTER clause. dbsqlfuzz 4f8e0de6e272bbbb3e1b41cb5aea31e0b47297e3 (check-in: 29fc0646 user: drh tags: trunk)
2023-02-16
21:01
Fix an #ifdef that uses a different macro name from the main branch. (check-in: ad6ac5d3 user: drh tags: branch-3.28)
19:41
A few simple test cases for the omit-unused-subquery-column optimization. (Closed-Leaf check-in: cf8f57c5 user: drh tags: omit-unused-subquery-columns)
19:04
Back-port omit-unused-subquery-column enhancements into the 3.28 branch. (check-in: 57a4e91f user: drh tags: branch-3.28)
18:04
Provide an optimization-disable mask for this optimization. Do not do the optimization if the subquery is an aggregate or is distinct, but allow it to be an ephemeral subquery. Do not omit columns that are used in the ORDER BY of the subquery. (check-in: 6b1a1f37 user: drh tags: omit-unused-subquery-columns)
15:54
Do not perform the omit-unused-subquery-columns optimizations on a subquery that is DISTINCT, as that can lead to incorrect results. (check-in: cc148503 user: drh tags: omit-unused-subquery-columns)
14:29
Do not compute result columns of subqueries that are never used. Make those columns NULL instead. This optimization potentially resolves the enhancement request described by [ticket baa5bb76c35a124c]. (check-in: 0163b697 user: drh tags: branch-3.28)
2023-02-15
19:53
Fix the subquery result column NULL-ifier so that it correctly handles subquery columns past the 63rd column. (check-in: 77b220a7 user: drh tags: omit-unused-subquery-columns)
17:53
Do not compute result columns of subqueries that are never used. Make those columns NULL instead. This optimization potentially resolves the enhancement request described by [ticket baa5bb76c35a124c]. (check-in: 5dec3cc0 user: drh tags: omit-unused-subquery-columns)
2023-02-14
18:09
Update testrunner.tcl to run zipvfs test scripts on unix. (check-in: e6c8e19a user: dan tags: trunk)
2023-02-13
19:32
Ignore extra parentheses around a subquery on the RHS of an IN operator, because that is what PostgreSQL does. (check-in: ecdeef43 user: drh tags: trunk)
18:42
Do not allow WHERE clause terms to match constant string index terms, which can happen if DQS_DDL is enabled. Follow-up to [44200596aa943963]. dbsqlfuzz 54c9db85ed4af7055f5fd0d50877875c82b11d46. (check-in: 2d2b91cc user: drh tags: trunk)
18:37
Allow vector-IN expressions like "(a, b) IN ( (?,?), (?,?) )" to use an index. (check-in: 18a99d9c user: dan tags: trunk)
18:26
Fix compile time option SQLITE_DEFAULT_SYNCHRONOUS so that it works consistently. (check-in: bf6f1ee7 user: dan tags: trunk)
16:10
Allow vector-IN expressions like "(a, b) IN ( (?,?), (?,?) )" to use an index. (Closed-Leaf check-in: 1815b15d user: dan tags: vector-in-fix)
12:46
In the LIKE optimization, do not analyze the new virtual WHERE clause terms until both have been added, since they are expected to be consecutive and the analysis might add complementary terms. This fixes a problem caused by [44200596aa943963] and discovered by dbsqlfuzz and recorded as case 7e3b5983727d843b910b2d9ab556e4afcd777cfb. (check-in: d35de3ad user: drh tags: trunk)
2023-02-11
21:11
Change a variable from 32 to 64-bits to avoid a harmless compiler warning in Xcode. Forum post 402d733c22. (check-in: 0216ce23 user: drh tags: trunk)
2023-02-10
21:53
Do a better job of detecting when a WHERE clause term might be useful to an expression index. Fix for performance regression reported by forum thread e65800d8cb. (check-in: 44200596 user: drh tags: trunk)
17:17
Fix a problem with the fts5 trigram tokenizer and LIKE or GLOB patterns for which contain runs of 2 or fewer non-wildcard characters that are 3 or more bytes when encoded as utf-8. (check-in: 00714b39 user: dan tags: trunk)
14:20
Ensure that the valueFromFunction() routine does not clear a prior parser error. dbsqlfuzz 6fa816f20cf5b62260d635d110b88f38e29d8fe1. (check-in: 73476645 user: drh tags: trunk)
11:05
Minor text-only updates to wasm demo/test HTML and license header. (check-in: f28e2a86 user: stephan tags: trunk)
11:04
Fix ext/wasm/fiddle build, which was silently broken by recent build refactoring. (check-in: dcf53293 user: stephan tags: trunk)
2023-02-09
15:32
Disable the double-quoted string misfeature by default in CLI builds. DQS can be reenabled at run-time using the ".dbconfig dqs_dml" and ".dbconfig dqs_ddl" dot-commands. (check-in: c995932c user: drh tags: trunk)
12:59
Squelch two harmless signedness comparison warnings in shell.c.in. (check-in: bdd3edec user: stephan tags: trunk)
12:47
New test cases added to fuzzdata8.db. (check-in: be67bafc user: drh tags: trunk)
11:51
The "flexnum" affinity that was added by [44135d6ea84f7ba6] needs to also be added to the output of the affinity() built-in function. dbsqlfuzz d309eaa5fe492c9606a8be876c2bc7dedb29d3d8 (check-in: f4ec68ce user: drh tags: trunk)
2023-02-08
20:29
Back out the 'txn' enhancement to date/time functions. The duration of a "transaction" is confused and needs to be straightened out prior to moving forward with this change. (check-in: 4a145f07 user: drh tags: trunk)
19:45
Be careful to maintain the value of 'txn' as long as there are active statements. Withdrawn See the attached Wiki page. (Closed-Leaf check-in: 98d10cb5 user: drh tags: does-not-work)
17:28
Always use 64-bit integers for stats associated with STAT1 and STAT4. (check-in: 6647d1cb user: drh tags: trunk)
17:28
Better fix the problem where optimizing an fts5 table too often causes it to become unreadable (first attempt was [35bed981]). (check-in: 459d986d user: dan tags: trunk)
14:49
Cause gcc warning suppression in shell.c to be nice in other project(s). (check-in: 6b41ba2e user: larrybr tags: trunk)
14:25
Update an assert() in the stat4 code that is only true for a well-formed database. (check-in: 04439f3b user: dan tags: trunk)
14:17
Fix an incorrect assert() in STAT4 logic added just a few days ago on 2023-02-01. (check-in: 168fa2fb user: drh tags: trunk)
12:47
Add the 'txn' date/time format. Change CURRENT_TIMESTAMP and similar to use 'tnx'-style semantics instead of 'now'-style. (check-in: 61cc8ed8 user: drh tags: trunk)
12:31
Test cases to show that CURRENT_TIMESTAMP and similar hold the same value across a transaction. (Closed-Leaf check-in: 7b2fa20e user: drh tags: txn-date)
12:01
Revert the behavior of date/time functions with no arguments so that they once again work like 'now', even while CURRENT_TIMESTAMP and similar work like 'txn'. (check-in: 06180caf user: drh tags: txn-date)
11:34
Change the behavior of date-time functions without any arguments (and thus the CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP variables) so that they work like 'txn' instead of like 'now'. This is an incompatibility with legacy, but brings SQLite into conformance with all other SQL systems. (check-in: 1ac78be5 user: drh tags: txn-date)
08:49
Merge wasi-patches branch into trunk. (check-in: 9902e66a user: stephan tags: trunk)
2023-02-07
23:55
Simplify the code and add test cases. (check-in: d3bed4ca user: drh tags: txn-date)
21:55
Add support for the 'txn' argument to date/time functions that works like 'now' but keeps the same time for the entire transaction. (check-in: 5e4f45af user: drh tags: txn-date)
21:03
Update an if(...) expression in sqlite3InitCallback() to match the same expression on trunk. (check-in: c73babca user: dan tags: reuse-schema)
18:41
Fix a test script problem causing "make test" to fail for non-RBU builds. (check-in: 2abc3f9d user: dan tags: trunk)
16:58
Fix a typo in example documentation code for sqlite3_vtab_in_next(). (check-in: a95dbfae user: drh tags: trunk)
16:23
Fix an pcache memory leak that might occur due to the munmap() enhancement of [754f331614f6f6e6] if "PRAGMA shrink_memory" is used. (check-in: f8c1f9c4 user: drh tags: bedrock)
15:57
Avoid loading (and then discarding) schemas for all attached databases within an ATTACH command. This is inefficient for connections using shared-schema. (check-in: 50174e82 user: dan tags: reuse-schema)
15:29
Merge latest trunk changes into this branch. (check-in: 4d21640c user: dan tags: reuse-schema)
11:39
Merge the latest trunk enhancements into the bedrock branch. (check-in: b7d9f14d user: drh tags: bedrock)
11:19
Fix a dropped error code in wal.c. (check-in: 2537db6f user: dan tags: wal2)
10:58
Fix an assert() in sqlite3WalFindFrame() so that it matches the equivalent assert() on trunk. (check-in: f5bf91d9 user: dan tags: wal2)
2023-02-06
22:25
Merge trunk into wasi-patches branch. (Closed-Leaf check-in: 656d36f5 user: stephan tags: wasi-patches)
21:20
Roll back part of [c54f29d8] which attempted to use symbols which that worker does not have access to. (check-in: 90b12211 user: stephan tags: trunk)
19:00
Fix RBU test scripts to avoid attempting to copy or delete a locked file. (check-in: f25eb898 user: dan tags: trunk)
19:00
Disable an invalid assert(). Add the "WAL2" compile-time property so that test scripts can more easily determine that they are dealing with a WAL2-capable build. (check-in: e9311325 user: drh tags: wal2)
17:48
Merge the latest trunk enhancements into the wal2 branch. (check-in: 44f8f33d user: drh tags: wal2)
17:35
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 46e79167 user: drh tags: begin-concurrent)
16:23
Omit the obsolete client/server test cases. (check-in: 5dde07a9 user: drh tags: trunk)
15:49
Fix the build after the previous change (Closed-Leaf check-in: aea3b6f6 user: drh tags: test-cleanup)
15:46
Remove the long obsolete "client/server" mode tests. (check-in: 08e3114c user: drh tags: test-cleanup)
15:46
Update test scripts speed1.test and speed1p.test so they may be run by testrunner.tcl. (check-in: e761d4b9 user: dan tags: trunk)
14:48
Shorten the status line for testrunner.tcl so that it fits on an 80-character terminal. (check-in: b760a730 user: drh tags: trunk)
14:16
Fix error in the releasetest makefile target from the previous check-in. (check-in: e7fe287d user: drh tags: trunk)
14:11
Update "releasetest" makefile targets to use testrunner.tcl. (check-in: 1b95676b user: drh tags: trunk)
14:01
Add capability to override the JS API's internal use of console.log/debug/warn/error() with client-provided versions via the bootstrap-time config object. (check-in: c54f29d8 user: stephan tags: trunk)
13:36
Fix a formatting problem in scanstatus2.test introduced by [81c118d9]. (check-in: 928ab40e user: dan tags: trunk)
11:43
Add the --fuzztest option to testrunner.tcl. Also, have it print whitespace over the top of the old report line before writing the new. (check-in: d83ce01f user: dan tags: trunk)
11:02
Fix problems with test scripts preventing them from running with SQLITE_DEFAULT_MEMSTATUS=0 builds. Or builds without SQLITE_ENABLE_STAT4. (check-in: c0fbc89e user: dan tags: trunk)
10:47
Fix some test scripts that were failing with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 81c118d9 user: dan tags: trunk)
2023-02-05
20:29
Do not use a Bloom filter if any outer loop lacks STAT1 data, since without STAT1 data, the query planner cannot make an accurate determination of whether or not a Bloom filter will be useful. This fixes the problem reported by forum post 56de336385. (check-in: e6ab96bd user: drh tags: trunk)
17:40
Add the "devtest" makefile target that runs both fuzztest and testrunner. (check-in: c81398c6 user: drh tags: trunk)
17:09
In fuzzcheck, only show the description of each database if the -v option is specified. (check-in: 6a58179a user: drh tags: trunk)
00:47
Restore a test for pBt NULL that was removed by [12a14711afa6cddb] but turned out to be necessary, as dbsqlfuzz quickly showed us. Test case added to TH3. (check-in: 647c89dd user: drh tags: trunk)
00:32
Modify the status line output from testrunner so that each line overwrites the previous rather than scrolling. (check-in: ad4d28cd user: drh tags: trunk)
00:24
Changes to the sqlite_dbpage virtual table to tag or remove unreachable branches. (check-in: 12a14711 user: drh tags: trunk)
2023-02-04
21:25
Avoid running rbu tests under permutation "journaltest", which does not support wal. Fix some other test script problems. (check-in: 92f01869 user: dan tags: trunk)
20:53
Add ALWAYS() and NEVER() macros to unreachable branchs in sqlite_dbpage. (check-in: db875cd6 user: drh tags: trunk)
20:07
Remove an ALWAYS() that can be false in some very rare cases. dbsqlfuzz 2274a23c85a93b870f7eb12fe686073da01abc33 (check-in: a4eb0b0d user: drh tags: trunk)
19:01
Updates to the testrunner.tcl script so that uses a separate sub-process for each test. And so that it runs the release test procedure currently handled by wapptest.tcl. (check-in: 4c3c5875 user: dan tags: trunk)
18:58
Changes so that wapptest.tcl still works. (Closed-Leaf check-in: 7624de3a user: dan tags: testrunner)
18:50
Update testrunner.tcl usage message. (check-in: b7c246bc user: dan tags: testrunner)
18:47
Add testrunner.tcl "njob" and "status" commands. (check-in: 3869cd3d user: dan tags: testrunner)
14:23
Better error message when trying to do an INSERT on an sqlite_dbpage virtual table. (check-in: a98e4908 user: drh tags: trunk)
2023-02-03
21:18
Fixes for testrunner.tcl on windows. (check-in: b98e19fc user: dan tags: testrunner)
19:28
Fix a problem where optimizing an fts5 table too often might cause it to become unreadable. (check-in: 35bed981 user: dan tags: trunk)
18:47
Have testrunner.tcl run various builds as part of the 'release' command. (check-in: ba2fae30 user: dan tags: testrunner)
14:57
Attempt to fix harmless compiler warnings that reportedly appear in clang 15. (check-in: c045d76b user: drh tags: trunk)
12:03
Improved detection of invalid command-line arguments to the showdb and showwal debugging utility programs. (check-in: 75cdaafc user: drh tags: trunk)
11:32
Avoid using Tcl command [clock] in testrunner.tcl. (check-in: b2faf928 user: dan tags: testrunner)
2023-02-02
20:27
Instead of free()ing them, retain allocated page buffers on an internal per-connection reuse-list when a page-cache is reset. (check-in: 754f3316 user: dan tags: bedrock)
20:15
Do not run test script pendingrace.test as part of the inmemory_journal permutation. (check-in: 69d934a1 user: dan tags: testrunner)
19:41
Add configuration data for osx and windows to testrunner_data.tcl (check-in: e45d3465 user: dan tags: testrunner)
16:30
Improved and simplified logic for resolving the various aliases of the schema table. (check-in: 5c19491c user: drh tags: trunk)
15:28
Resolve all possible aliases and variations of the schema table names. (check-in: e7a0112b user: drh tags: trunk)
14:27
Merge latest enhancments into this branch from branch wal2. (Leaf check-in: 5a22010c user: dan tags: begin-concurrent-pnu-wal2)
14:21
Merge trunk enhancements into this branch. (check-in: c9b01802 user: dan tags: wal2)
06:17
Remove automatic installation of JS-global S object for the sake of client libraries which embed this library, per request in the forum. (check-in: 9504f68a user: stephan tags: trunk)
2023-02-01
23:24
Adjustments of assert() statement in STAT4 in order to give 100% MC/DC. (check-in: 55a26c67 user: drh tags: trunk)
20:45
New assert() statements to verify that sqlite3DeleteIndexSamples() is always called with non-NULL parameters. (check-in: 92c71fdd user: drh tags: trunk)
20:14
Update testrunner.tcl to use a separate process for each test script. And to run some extra tests too. (check-in: d090948a user: dan tags: testrunner)
15:41
Just because a CTE is used more than once, does not mean it should be tagged with M10d_Yes and thereby prohibited from participating in the query flattening optimization. See forum thread 1d571c02963. (check-in: 66f29c40 user: drh tags: trunk)
14:17
Fix a comment related to PENDING locks in os_unix.c. No code changes. (check-in: 6b3546c8 user: dan tags: trunk)
2023-01-31
20:43
Fix a race condition during hot-journal rollback on unix that could theoretically cause spurious corruption errors. (check-in: e365dca4 user: dan tags: trunk)
20:21
Fix a race condition during hot-journal rollback that could theoretically cause spurious corruption errors. (Closed-Leaf check-in: 20ea53dd user: dan tags: pending-lock-race)
2023-01-30
20:44
Additional tweaks to the enhancement at [609fbb94b8f01d67] to further reduce the cost estimate for constructing an automatic index on an ephemeral table, in order to resolve the performance problem described by forum post 1d571c0296. (check-in: bf1aae7a user: drh tags: trunk)
2023-01-29
06:01
Two JS file renames which got inadvertently undone while setting up [9062b31174618c0e]. Cosmetic cleanups in ext/wasm/dist.make. (check-in: 0c2fde76 user: stephan tags: trunk)
05:09
Correct the handling of the worker1 and promiser JS files in the face of the bundler-friendly changes. Those files require separate, bundler-friendly copies. (check-in: 9062b311 user: stephan tags: trunk)
2023-01-28
21:06
Do not assume that sub-queries that contain window functions are uncorrelated. (check-in: f2780448 user: dan tags: trunk)
21:01
Show more details about the SrcItem.fg field in tree-trace output. (check-in: 3d05dddd user: drh tags: trunk)
17:37
Fix a problem causing "PRAGMA quick_check" to return spurious corruption errors for a WITHOUT ROWID for which all columns are either virtual or part of the primary key, and for which the order of the columns in the primary key definition is different from the order in the table. (check-in: a7530f89 user: dan tags: trunk)
16:37
Update sqllimits1.test to account for the fact that if an odd value is specified as the length in bytes of a utf-16 string, it is truncated to the largest smaller even number. (check-in: 74508470 user: dan tags: trunk)
09:51
Makefile doc touchups - no code/build changes. (check-in: 3458a481 user: stephan tags: trunk)
09:11
Overhaul ext/wasm/GNUmakefile to consolidate what amounts to much copy/paste/slightly-edit duplication into a single function, called once per distinctive build mode (vanilla, ESM, bundler-friendly). (check-in: 168e5a93 user: stephan tags: trunk)
05:09
Enhance oo1.DB.exec() to simplify returning whole result sets. (check-in: 7b168ee2 user: stephan tags: trunk)
04:20
Add JS bundler-friendly JS build. Minor test code cleanups. (check-in: 24d3a53d user: stephan tags: trunk)
2023-01-27
23:10
Fix compiler warning in base85.c. (check-in: bd9613fd user: drh tags: trunk)
20:25
Update ext/wasm/README-dist.txt for the bundler-friendly build. (Closed-Leaf check-in: 6a5c4f6b user: stephan tags: js-bundler-friendly)
20:15
Add an assert() to help static analyzers. (check-in: e446c8b4 user: drh tags: trunk)
19:59
Do not try to run rbu tests with builds that do not support rbu. (check-in: c74ad902 user: dan tags: trunk)
19:56
Add a feature idea note to DB.exec(), derived from a forum discussion. (check-in: 792f4320 user: stephan tags: js-bundler-friendly)
17:19
Cherrypick [3773934e91c20ca243] into trunk. (check-in: 50cf4300 user: stephan tags: trunk)
17:14
Extract emcc version in JS build and use it to conditionally set build flags. Initially a workaround for Emscripten ticket #18610 but may have other uses. (check-in: 3773934e user: stephan tags: js-bundler-friendly)
07:53
Work around a JS null pointer deref which could be triggered from the dev console, but not (it seems) from client-side code. (check-in: eabb551b user: stephan tags: trunk)
05:37
Merge trunk into wasi-patches branch. (check-in: 2ce89f5e user: stephan tags: wasi-patches)
05:17
Cherrypick [fa784101775b7|emscripten ticket #18609 workaround] into trunk. (check-in: 9a26fae5 user: stephan tags: trunk)
05:14
Work around upstream emscripten 3.1.31 ticket #18609. (check-in: fa784101 user: stephan tags: js-bundler-friendly)
03:18
More work on creating a separate sqlite3.js build which is hopefully friendly to JS bundlers. (check-in: b7b896fb user: stephan tags: js-bundler-friendly)
02:21
Resolve a nested if-block bug in ext/wasm/c-pp.c which caused output after a nested block to be unduly elided. Remove a kludge, added in the previous check-in, which worked around that bug. (check-in: 7a026a4b user: stephan tags: js-bundler-friendly)
01:33
Beginnings of a bundler-friendly build of sqlite3.mjs. Not yet ready for downstream testing. (check-in: 4271bf5f user: stephan tags: js-bundler-friendly)
2023-01-26
20:08
End-of-line whitespace cleanups and doc typo fixes. No code changes. (check-in: bdfd72a0 user: stephan tags: trunk)
18:16
Have some RBU tests run as part of veryquick.test/testrunner.tcl. (check-in: f51406e3 user: dan tags: trunk)
02:18
Improved fix to allow sqlite3_vtab_in_first() to reliably return SQLITE_ERROR. (check-in: b25eec1c user: drh tags: trunk)
2023-01-25
21:28
Fix a harmless compiler warning in FTS3. (check-in: 68d02d3c user: drh tags: trunk)
19:05
Defer calling the destructor for the user data on a module until after the module has disconnected. Forum post b68391eb71fdff73. (check-in: 1ab12228 user: drh tags: trunk)
17:24
Change the instrumentation messages on this branch so that they contain "v=7" instead of "v=6". (Leaf check-in: acea12d9 user: dan tags: schema-version-instr)
17:09
Experimental patch to put page buffers on an internal per-connection list for reuse instead of free()ing them when the page-cache is reset. (check-in: 1e4cfd2f user: dan tags: schema-version-instr)
16:56
Enhance the sqlite3_vtab_in_first() and sqlite3_vtab_in_next() interfaces so that they reliably return SQLITE_ERROR (and not SQLITE_MISUSE) if they are invoked on a parameter that did not have multi-value IN processing enabled via a prior call to sqlite3_vtab_in(). See forum thread a823d4a3d5f73def. (check-in: 144326dc user: drh tags: trunk)
15:45
Fix a problem with fts3 auxiliary functions and one or more NEAR expressions ORed together. (check-in: de4690a1 user: dan tags: trunk)
13:42
Fix another problem with fts3/4 auxiliary functions and NEAR expressions that consist entirely of deferred tokens. (check-in: a8c91c13 user: dan tags: trunk)
2023-01-24
20:17
Add scalar SQL function unhex(). (check-in: 890e9629 user: dan tags: trunk)
17:19
Update unhex() to allow a second argument, specifying a set of characters that are permitted to appear between pairs of hexadecimal digits. (Closed-Leaf check-in: 66c85626 user: dan tags: unhex-function)
11:24
Fix a problem with using fts3 auxiliary functions with expressions like "E AND ...", where E is a NEAR expression that consists entirely of deferred tokens. (check-in: 39bfae4c user: dan tags: trunk)
2023-01-23
21:41
Suppress a harmless compiler warning. Forum post e3f72e9291189925. The code was legal and correct. The revised code is actually less clear in its intent. But at least now there will (hopefully) be no warning. (check-in: 48bb7c88 user: drh tags: trunk)
20:45
Due to a coding error, check-in [8efd61e8518594e3] did not actually use just read transactions if the operation is read-only and the SQLITE_MAX_ATTACHED macro is set to 31 or more. This was due to a misuse of the writeMask field of Parse, pointed out by forum post aa173c18d5. (check-in: 87605668 user: drh tags: trunk)
16:16
Add the missing CARRAY_BLOB macro to the carray.h extension header. (check-in: 10bf639c user: drh tags: trunk)
14:11
Add experimental user function unhex(). (check-in: dbe424b5 user: dan tags: unhex-function)
2023-01-22
21:54
Give CLI .version a place in .help output. (check-in: 5f2dfdcc user: larrybr tags: trunk)
2023-01-21
16:53
Minor API doc cleanups and JS code simplification. (check-in: f608a3a4 user: stephan tags: trunk)
12:18
Merge trunk into wasi-patches branch. (check-in: 6fc20d75 user: stephan tags: wasi-patches)
00:59
Fix a memory leak in the TCL test harness associated with carray. (check-in: 5a316f9f user: drh tags: trunk)
00:19
Fix harmless compiler warnings. (check-in: ded60f5b user: drh tags: trunk)
2023-01-20
21:00
Extend the carray extension to allow the use of BLOB values to be bound as an array of "struct iovec" objects. (check-in: e117a03c user: drh tags: trunk)
19:19
Two branches associated with memdb are now always taken (I believe). Tag them with ALWAYS() to verify this. (check-in: 20b9b5aa user: drh tags: trunk)
17:50
Ensure that the database encoding cannot be changed while there are statements running. And that the connection is left in a valid state after an obscure OOM within sqlite3_deserialize(). (check-in: a02da71f user: dan tags: trunk)
15:13
Add tests for changing the database encoding via RESET_DATABASE/VACUUM. And test that it is not possible to trick another connection with this. (check-in: b869054a user: dan tags: trunk)
13:34
The json_group_array(), json_group_object(), and fts5_source_id() functions should all be deterministic and innocuous. (check-in: edcb83fa user: drh tags: trunk)
2023-01-19
21:05
Add test logging around the pcache1FreePage() loop in pcache1TruncateUnsafe(). (check-in: a057f9cb user: dan tags: schema-version-instr)
18:16
Fix numbering issue in and remove duplicate test from windowB.test. (check-in: fa10e561 user: dan tags: trunk)
2023-01-18
17:39
Emit sqlite3-api.(m)js during the JS build process, which are the JS APIs without the Emscripten/wasm-loading parts. They are hypothetically useful for arbitrary build environments/toolchains but have notable caveats related to the wasm imports, as elaborated on in the makefile. (check-in: 966b55c5 user: stephan tags: trunk)
2023-01-17
19:34
Fix another issue with very large compressed LSM databases. (check-in: d7115426 user: dan tags: trunk)
19:00
Change an now unreachable testcase() into an assert(). (check-in: 517b2c4c user: drh tags: trunk)
18:40
Fix harmless compiler warnings in the CLI. (check-in: 7cf282d3 user: drh tags: trunk)
15:46
Update virtual tables json_each and json_tree so that adding "ORDER BY rowid" to a query does not require an external sort. (check-in: ce18f0ed user: dan tags: trunk)
13:33
Add test cases to confirm that the schema parsing quirk in which an ON CONFLICT clause is accepted and ignored on table CHECK constraints but raises an error on column CHECK constraints. We want to continue supporting this harmless quirk to avoid breaking legacy applications and databases that accidentally use it. (check-in: 92b6a9cd user: drh tags: trunk)
2023-01-16
21:49
Cause .clone to not trip over sequence table as reported at forum post 71ff9e6c4c. (check-in: b44d04f7 user: larrybr tags: trunk)
20:33
Another version of the debug-only logging on this branch. (check-in: 906caf89 user: dan tags: schema-version-instr)
18:13
In the CLI, create our own private version of strncpy() to work around false-positive compiler warnings from Alpine Linux. (check-in: 83f21285 user: drh tags: trunk)
2023-01-14
19:53
Omit the long-disused FTS1 and FTS2 implements from the active source tree. The code will persist forever in the source repository, but there is no point in carrying it around in the latest tarballs where it is never used. (check-in: 2bb50d5a user: drh tags: trunk)
19:36
Add OOM check, per tip at forum post 933479b2d5 (Leaf check-in: c66c7734 user: drh tags: branch-3.40)
19:27
Add OOM check, per tip at forum post 933479b2d5 (check-in: eda84dcf user: larrybr tags: trunk)
19:09
Doc-only fix, per forum post 0cfaf6876b (check-in: eac135fd user: larrybr tags: trunk)
2023-01-13
20:49
Fix another lsm compression-mode bug. (check-in: f9fafc94 user: dan tags: trunk)
19:32
In expression nodes of type REGISTER with sub-type COLUMN, ensure that the iColumn field is set correctly, as otherwise the "IS NULL" operator might be incorrectly optimized. Fix for the problem described by forum post d010a26798915b53. (check-in: 76b440c5 user: drh tags: branch-3.40)
19:29
In expression nodes of type REGISTER with sub-type COLUMN, ensure that the iColumn field is set correctly, as otherwise the "IS NULL" operator might be incorrectly optimized. Fix for the problem described by forum post d010a26798915b53. (check-in: 0819a186 user: drh tags: trunk)
19:00
Fix an error in debugging output discovered while working on the problem with RETURNING reported by forum post d010a26798. (Leaf check-in: 3ae9127f user: drh tags: returning-is-null-fix)
18:20
Add missing "const" on variables in recent RBU fixes. (check-in: 9b8dcd79 user: drh tags: trunk)
15:54
Enhance query planning so that it check for sqlite3_interrupt() calls and periodically invokes the progress handler callback (if any) during long query analyses. (check-in: bd8fa10e user: drh tags: trunk)
15:31
Update documentation for sqlite3_progress_handler(). (Closed-Leaf check-in: 41b4c407 user: drh tags: progress-during-prepare)
11:31
Remove an incorrect legacy assert(). (check-in: 3006b3b3 user: drh tags: progress-during-prepare)
2023-01-12
20:36
Reduce the frequency of calls to sqlite3ProgressCheck(). (check-in: 795aca4a user: drh tags: progress-during-prepare)
19:51
Fix sqlite3_prepare() so that it only invokes the progress handler on every N-th call to sqlite3ProgressCheck(), where N is the progress handler step count. Also fix faulty asserts exposed by the ability to interrupt in the middle of sqlite3_prepare(). (check-in: 05461651 user: drh tags: progress-during-prepare)
19:43
Merge latest trunk changes, including fixes for RBU pass-through mode, with this branch. (check-in: deb26d03 user: dan tags: reuse-schema)
19:28
Do not attempt to run new test file rbupass.test if the "demo" VFS is not available. (check-in: c5d958eb user: dan tags: trunk)
19:11
Avoid crashing when using an RBU VFS with a version 1 parent VFS. (check-in: d149772d user: dan tags: trunk)
17:13
When deleting any old OAL file before starting an RBU update or vacuum, use the same VFS as will be used for the target database, even if this is not the system default. (check-in: 5a86c6cb user: dan tags: trunk)
15:44
Fix a startup race condition that could occur if a wal file grows from 0 bytes while a BEGIN CONCURRENT transaction is running. Cherrypick of [c1feca4d]. (check-in: 2c14f383 user: dan tags: begin-concurrent-pnu-wal2)
15:30
Fix a startup race condition that could occur if a wal file grows from 0 bytes while a BEGIN CONCURRENT transaction is running. (check-in: c1feca4d user: dan tags: begin-concurrent)
13:25
Attempt to provide a mechanism to do early termination of long-running statement preparation by invoking the progress handler at strategic points during sqlite3_parpare(). This experiment shows that sqlite3_prepare() might leave the resulting prepared statement uninitialized following an interrupt. (check-in: 79636f2d user: drh tags: progress-during-prepare)
2023-01-11
22:45
Merge trunk into wasi-patches branch and add missing yes/no result to the configure script's output for the --with-wasi-sdk=PATH test. (check-in: adc0ede0 user: stephan tags: wasi-patches)
20:52
Fix duplicate semicolon in btreeInt.h. Forum post 8db1711ca2 (check-in: 7526c466 user: drh tags: trunk)
17:59
Fix a false-positive in the out-of-range jump detection logic that was added as part of RIGHT JOIN. (check-in: ab5bcb91 user: drh tags: trunk)
17:50
If OP_Rewind has P2 of zero, that is an assertion that the table is never empty. This fixes a false-positive in the out-of-subroutine jump detection logic added in version 3.39.0, and which was causing the assertion on the previous check-in. (Closed-Leaf check-in: 33fd9997 user: drh tags: code-generator-20230111)
16:44
Add an assert() to the byte-code engine that goes off if the OP_Halt opcode is invoked with SQLITE_INTERNAL. This causes the RIGHT JOIN error "Opcode jumps to ... which is outside the subroutine ..." to fail immediately, causing it to come more readily to tester's attention. There is at least one testcase in test/fuzzdata8.db that asserts due to this change. (check-in: b8f99441 user: drh tags: code-generator-20230111)
16:25
Fix problems with compressed LSM databases larger than 2GiB. (check-in: f8842245 user: dan tags: trunk)
16:17
Improved progress-handler and interrupt detection during PRAGMA integrity_check. (check-in: 6db42780 user: drh tags: trunk)
16:02
Fix another 64-bit offset problem in lsm. (Closed-Leaf check-in: 1f3d0bdc user: dan tags: lsm-compress-fixes)
00:27
Add a new sqlite3_is_interrupted() interface that can be used by long-running app-defined functions and similar to see if they need to exit early due to an sqlite3_interrupt() call. (check-in: d030f341 user: drh tags: trunk)
2023-01-10
19:57
When computing the datatypes for columns in a view, use the same datatype name as the underlying table if such is available and is consistent with the computed affinity of the column. Forum thread 7fb1fe9dcf310ef5. (check-in: 497a9836 user: drh tags: trunk)
15:07
Fix handling of unix paths that contain ".." components such that "/" is considered its own parent directory. Forum thread caa46bd1f2f2a255. (check-in: b829dd1b user: dan tags: trunk)
14:33
Improvements to the SQLITE_DIRECTONLY documentation. (check-in: b277ba40 user: drh tags: trunk)
14:31
Fix handling of unix paths that contain ".." components such that "/" is considered its own parent directory. (Closed-Leaf check-in: 3c6cadb3 user: dan tags: unix-path-fix)
2023-01-09
21:10
Fix some problems with large, compressed, lsm databases. (check-in: 956e985f user: dan tags: lsm-compress-fixes)
18:42
Clarify help for .quit. (check-in: 8004a2b7 user: larrybr tags: trunk)
12:01
Fix JSON functions so that they work correctly under PRAGMA trusted_schema. Forum thread c88a671ad083d153. (check-in: 51a5d83c user: drh tags: trunk)
2023-01-07
22:28
Doc-only update, sqlite3_preupdate_hook() return (check-in: 2da51d7e user: larrybr tags: trunk)
13:40
Account for read-only connections on LSM databases with non-default block or page sizes. (check-in: 3a2075b0 user: dan tags: trunk)
2023-01-06
19:03
Fix the threshold for logging "PRAGMA schema_version" slowness. (check-in: ca3854cb user: dan tags: schema-version-instr)
2023-01-05
19:48
One more iteration of "PRAGMA schema_version" instrumentation. (check-in: 0d908106 user: dan tags: schema-version-instr)
14:41
Changes a testcase() into an assert() due to the [e58bba93717cd6ff] change. (check-in: a6251d72 user: drh tags: trunk)
13:55
Remove the unused sqlite3IsMemdb() routine, to avoid a harmless compiler warning. (check-in: 4f512a39 user: drh tags: branch-3.40)
13:41
Fix a problem with applying integer affinity to a MEM_IntReal value. Forum post d270125fae. (check-in: d28d9398 user: drh tags: branch-3.40)
13:35
Fix a problem with applying integer affinity to a MEM_IntReal value. Forum post d270125fae. (check-in: e58bba93 user: dan tags: trunk)
01:32
Increase the version number to 3.40.2. (check-in: 43375ef8 user: drh tags: branch-3.40)
01:29
In the zipfile extension (which is not part of the SQLite amalgamation, but which is included in the CLI by default) ensure that fopen() is not invoked using a NULL filename. Fix for the issue reported by forum post d1c96a9032e564f8. (check-in: e4de5777 user: drh tags: branch-3.40)
01:26
In the zipfile extension (which is not part of the SQLite amalgamation, but which is included in the CLI by default) ensure that fopen() is not invoked using a NULL filename. Fix for the issue reported by forum post d1c96a9032e564f8. (check-in: d32757dd user: drh tags: trunk)
2023-01-04
18:32
Adjustments to the tool/warnings.sh script to account for compiler differences. (check-in: 863c03be user: drh tags: trunk)
17:46
Ensure that LIMIT clauses may be passed through to virtual table implementations even if the WHERE clause uses operators that may only be optimized by virtual, not built-in, tables (!=, functions, MATCH etc.). (check-in: f38caab2 user: dan tags: trunk)
16:54
Employ deliberate_fall_through macro to quiet some compilers. (check-in: 869635fb user: larrybr tags: trunk)
15:18
Enhance PRAGMA integrity_check so that it verifies that the string values stored in indexes are byte-for-byte identical to the values in the table, and not just equivalent according to the collating sequence. dbsqlfuzz 686e2e205e0c0594d3fb524bea0c25e621d1a870. (check-in: 9302e4bf user: drh tags: trunk)
11:58
Remove the unused "sqlite3StackAllocZero()" macro. (check-in: f0ca5720 user: drh tags: trunk)
11:57
Elaborate on the open-in-read-only fallback behavior of the SQLITE_OPEN_READWRITE flag, per user request. Unrelated trailing EOL whitespace cleanups. (check-in: 1003144f user: stephan tags: trunk)
03:14
Remove the JS-side SQLITE_WASM_DEALLOC sanity check which triggers the problem mentioned in [688c5c13d156] and [ae0196d86ee8], for reasons covered in the code comments, per discussion in forum post e5b20e1feb. (check-in: 65ff3200 user: stephan tags: trunk)
2023-01-03
19:27
Small performance increase in the symbol hash table. (check-in: a19597b4 user: drh tags: trunk)
18:51
Avoid an unnecessary call to strlen() in the sqlite3VdbeMemStringify() routine, for a performance increase and size reduction. (check-in: 284382d3 user: drh tags: trunk)
15:11
Small performance improvement in the btreeOverwriteCell() routine. (check-in: df5ea471 user: drh tags: trunk)
2023-01-02
20:52
Add some docs explaining a particular piece of [ae0196d86ee8]. No code changes. (check-in: 7f96803c user: stephan tags: trunk)
20:07
Another reformulation of SQLITE_WASM_DEALLOC to attempt to work around a Safari-specific quirk reported in forum post e5b20e1feb. (check-in: ae0196d8 user: stephan tags: trunk)
2023-01-01
12:22
An alternative solution to mapping SQLITE_WASM_DEALLOC to the proper function pointer in JS, to account for a Safari-specific quirk reported in forum post e5b20e1feb. (check-in: 688c5c13 user: stephan tags: trunk)
2022-12-31
05:26
Remove redundant assignment in kvvfs's decoding. (check-in: 2ffbf0c7 user: peter.d.reid tags: trunk)
05:19
Avoid an infinite loop when an unexpected character is being decoded by kvvfs (check-in: 6909195f user: peter.d.reid tags: trunk)
2022-12-29
18:54
A call to sqlite3_declare_vtab() should not cause DML/DDL authorization failures. (check-in: eed1e030 user: drh tags: trunk)
2022-12-28
14:55
Merge the 3.40.1 changes into the reuse-schema branch. (Leaf check-in: 126c68bd user: drh tags: reuse-schema-3.40)
14:03
Version 3.40.1 (check-in: df5c253c user: drh tags: release, version-3.40.1, branch-3.40)
2022-12-27
22:46
Add sqlite3changeset_new/old_js(), which work like sqlite3_preupdate_new/old_js() but on changesets. (check-in: e8afad63 user: stephan tags: trunk)
14:34
Expose sqlite3_preupdate_hook() and friends to the JS API. (check-in: cc02783a user: stephan tags: trunk)
14:14
Fix a broken assert() in fts5. (check-in: ff1d4561 user: dan tags: branch-3.40)
14:12
Fix a faulty assert() in fts5. (check-in: 4acff807 user: dan tags: branch-3.40)
14:11
Fix an assert() in fts5. Simplify memdb xLock/xUnlock some. (check-in: 43079c52 user: dan tags: branch-3.40)
14:06
Fix a missing 0 at the end of an integer literal in the MEMSYS5 fix. (check-in: e3bc10e8 user: drh tags: branch-3.40)
14:03
Fix a missing 0 at the end of an integer literal in check-in [8da0f0c38a458c57] (check-in: e3776796 user: drh tags: trunk)
13:52
Fix a broken assert() in fts5. (check-in: ff5a9b05 user: dan tags: trunk)
12:25
Add links to module-symbols.html for newly-added APIs. (check-in: 335ef03e user: stephan tags: trunk)
12:17
Add two more tests to [f99f8e3ecfe20]. (check-in: 9cffccd3 user: stephan tags: trunk)
12:13
Expose sqlite3_commit/rollback/update_hook() to JS API. (check-in: f99f8e3e user: stephan tags: trunk)
11:53
Fix minor problems in test scripts where.test and recover1.test. (check-in: 64588bd5 user: dan tags: branch-3.40)
11:40
Add an optional argument to oo1.DB.transaction() to specify an explicit BEGIN qualifier. (check-in: 507335c1 user: stephan tags: trunk)
2022-12-26
17:15
Expose the auto-extension API to JS and reorganize some nearby code. (check-in: 52b229d1 user: stephan tags: trunk)
17:09
Fix an unsafe use of sqlite3_mprintf() in sqlite3_overload_function() identified by forum post: https://sqlite.org/forum/forumpost/95b338860d. (check-in: a3152226 user: drh tags: branch-3.40)
17:02
Prevent the sessions rebaser from generating changesets containing UPDATE records for which non-PK fields are present in the old.* but not the new.* record. Also update the changeset iterator to work around such changesets. (check-in: 629dbe25 user: drh tags: branch-3.40)
16:54
In the unix backend, when implementing the defenses against small file descriptors, delete a file just created if it was opened with O_EXCL|O_CREAT so that it can be created again the next time through the loop. Fix for the problem described by forum post 699af709ab3a8ccf. (check-in: 174acf32 user: drh tags: branch-3.40)
16:45
Fix an over-zealous assert() reported by Yong Heng. (check-in: 1e9dbb5a user: drh tags: branch-3.40)
16:24
Ensure the RETURNING clause is honoured when a row of a temp table is updated by an ON CONFLICT clause. (check-in: ac9568cf user: drh tags: branch-3.40)
16:12
Add the SQLITE_FCNTL_RESET_CACHE verb. Use it to ensure that the page cache is purged before and after a the recovery extension is run. (check-in: 71dd920f user: drh tags: branch-3.40)
16:03
Fix corner cases in UTF8 handling in the REGEXP extension. Forum post 3ffe058b04. (check-in: 93e68b39 user: drh tags: branch-3.40)
15:55
Fix a off-by-one error in code generation that comes up when doing a DISTINCT query against a virtual table with an OR term in the WHERE clause and where the ORDER BY clause has 64 or more references to the result set. Forum post dfe8084751. The error is harmless in production builds, but might cause an assertion fault in a debugging build. (check-in: cbcd7d9b user: drh tags: branch-3.40)
15:44
Fix safe mode authorizer callback to reject disallowed UDFs. Reported at Forum post 07beac8056151b2f. (check-in: 70964b8a user: drh tags: branch-3.40)
15:21
Fix an infinite loop in the MEMSYS5 auxiliary memory allocator that occurs for memory allocations between 500MiB and 1GiB in size. Error introduced by check-in [949133231f8f751a]. The problem only affects builds that include the SQLITE_ENABLE_MEMSYS5 compile-time option. (check-in: c10d40ca user: drh tags: branch-3.40)
15:14
Fix an infinite loop in the MEMSYS5 auxiliary memory allocator that occurs for memory allocations between 500MiB and 1GB in size. Error introduced by check-in [949133231f8f751a]. The problem only affects builds that include the SQLITE_ENABLE_MEMSYS5 compile-time option. (check-in: 8da0f0c3 user: drh tags: trunk)
15:08
Document sqlite3.capi.sqlite3_prepare_v3() as accepting an ArrayBuffer and ensure that it can. (check-in: ae3ae92e user: stephan tags: trunk)
14:55
Correct some internal-use JS docs and update the 'string:flexible' type conversion to accept an ArrayBuffer (as it was recently documented to). (check-in: eff5d3be user: stephan tags: trunk)
14:25
Only add an on-db-close cleanup entry for collations if adding the collation succeeds and xCompare is-a JS function. (check-in: 18a5480f user: stephan tags: trunk)
13:45
Extend [0e69b2c379e618] to support uninstalling stale JS-to-WASM function pointers added on behalf of UDFs. (check-in: 7a46e629 user: stephan tags: trunk)
13:00
Add JS infrastructure which enables sqlite3.capi.sqlite3_close_v2() to clean up stale JS-to-WASM collation function conversions installed on behalf of a given db handle. The same for UDF mappings is TODO. (check-in: 0e69b2c3 user: stephan tags: trunk)
11:13
Reimplement sqlite3.capi.sqlite3_close_v2() and sqlite3session_delete() as a hand-written bindings so that they can attempt to clean up certain (potentially) FuncPtrAdapter-installed functions before closing. Correct the create-function family of JS-to-function-pointer automated conversions to include the UDF's arity as part of the mapping's key so that (un)binding a UDF to different functions for different arities works (and add tests confirming it). Correct a broken doc link in module-symbols.html. (check-in: 60b262ef user: stephan tags: trunk)
01:44
Grammar fixup in comment re SQLITE_TRACE_PROFILE trace event. (check-in: b6dc80cb user: larrybr tags: trunk)
2022-12-25
23:54
module-symbols.html: add some missing links to C-side API docs for recently-added JS counterparts. (check-in: 7d4f4e96 user: stephan tags: trunk)
23:45
Update JS worker #1 API and related tests for recent API changes. (check-in: d797e183 user: stephan tags: trunk)
22:55
Rename the new wasm.irSizeof() to sizeofIR() because that seems clearer. (check-in: 49a83ca3 user: stephan tags: trunk)
22:49
Minor internal API doc correction and extend a test for oo1.DB.selectValues(). (check-in: b7295b1c user: stephan tags: trunk)
22:44
Add sqlite3.oo1.DB.selectValues(). Correct a logic error which could cause DB.selectValue(), DB.selectArray(), and DB.selectObject() to fail to finalize a statement if a call to bind() failed. Add more session API tests. (check-in: 6adc8a10 user: stephan tags: trunk)
20:25
Merge wasm-session-api branch into trunk, adding the session API to the JS/WASM components. (check-in: dfb8b651 user: stephan tags: trunk)
20:22
Add basic session API JS tests. (Closed-Leaf check-in: 64e03260 user: stephan tags: wasm-session-api)
20:05
Add sqlite3.wasm.irSizeof() and extend certain allocation functions to make use of it. (check-in: 1cbc7b18 user: stephan tags: wasm-session-api)
17:12
Add tests confirming that JS sqlite3_exec()'s SQL argument participates in the 'string:flexible' type conversion. (check-in: 926d0c61 user: stephan tags: trunk)
17:09
Replace the "manual" implementation of sqlite3.capi.sqlite3_exec() with a briefer "automated" one via the [7f9ace1b11a67] feature addition. Minor code-adjacent internal cleanups. (check-in: 4888957b user: stephan tags: trunk)
16:20
Remove duplicated JS binding of sqlite3changeset_apply_v2(). (check-in: 2e8336b6 user: stephan tags: wasm-session-api)
15:28
Add the address of the associated db handle to the sqlite3_trace_v2() output originating from sqlite3.oo1.DB's trace flag. (check-in: 0a36568c user: stephan tags: wasm-session-api)
15:14
Update the session-related JS bindings to account for today's internal API changes. (check-in: be63944d user: stephan tags: wasm-session-api)
14:13
Merge trunk into wasm-session-api branch. (check-in: 7f8f1acd user: stephan tags: wasm-session-api)
14:04
Add missing sqlite3_context_db_handle() JS binding. Reimplement sqlite3_set_authorizer() and sqlite3_set_auxdata() JS bindings to take advantage of [7f9ace1b11a67]. Teach FuncPtrAdapter to emit a console.warn() message if it is invoked after the library is bootstrapped, the goal being to inform users that it's an internal API and should not be invoked from client-side code. (check-in: 8e3d4f62 user: stephan tags: trunk)
12:51
Enhance sqlite3.wasm.xWrap.FuncPtrAdapter to be able to handle sqlite3_create_function() and friends and reimplement those bindings to use this feature (this will also simplify certain session API bindings). Interal API changes only with no client-side breakage. (check-in: 7f9ace1b user: stephan tags: trunk)
10:22
Simplify the signature for JS functions, as opposed to function pointers, passed to sqlite3_exec(), eliminating the superfluous initial two arguments. Update related tests to demonstrate both function-passing approaches. (check-in: e7cc70cd user: stephan tags: trunk)
2022-12-24
15:34
Incorporate wasi-sdk RANLIB configure script patch from the VMware OCTO team. (check-in: 478fe96e user: stephan tags: wasi-patches)
15:31
Merge trunk into wasi-patches branch. (check-in: 52f40ab1 user: stephan tags: wasi-patches)
15:28
Replace JS-side use of SQLITE_TRANSIENT with the new SQLITE_WASM_DEALLOC, reducing the amount allocation/copying required by sqlite3_bind_blob/text() and sqlite3_result_blob/text(). Remove the 'experimental' log message from the virtual table tests. (check-in: ffe2999a user: stephan tags: trunk)
14:16
Extend oo1.Stmt.bind() to accept ArrayBuffer instances to bind as blobs. (check-in: f76bd301 user: stephan tags: trunk)
13:46
Add a test for the (failure) case of client-level code calling the oo1.Stmt constructor directly. (check-in: 6a37874d user: stephan tags: trunk)
11:16
oo1.DB.exec() rowMode="$columnName": a minor optimization and a preemtive fix for a hypothetical corner-case bug. (check-in: 0b2df22b user: stephan tags: trunk)
01:59
If sqlite3.oo1.DB.exec()'s callback returns a literal false, stop step()ing over results as if the end of the result set had been reached. Unrelated minor code-adjacent cleanups. (check-in: 33a58c8e user: stephan tags: trunk)
2022-12-23
23:46
Reimplement JS's sqlite3_bind_text/blob() with hand-written bindings to permit more flexible inputs. Add automated JS-to-C function conversion to sqlite3_busy_handler(). sqlite3.wasm.xWrap()'s '*' argument conversion no longer treats JS strings as C-strings: those conversions require explicit opt-in via the 'string' converter (or equivalent). (check-in: 96ba4494 user: stephan tags: trunk)
21:23
Merge trunk into wasm-session-api branch. (check-in: 6cdb036d user: stephan tags: wasm-session-api)
21:10
Internal JS cleanups. Correct part of [ac136925a645] to account for the eTextRep flag being able to hold flags other than the encoding. (check-in: 1dfc03ab user: stephan tags: trunk)
19:33
Merge trunk into wasm-session-api branch. (check-in: f1decc83 user: stephan tags: wasm-session-api)
19:16
Consolidate/unify how the JS bindings of the create_function/collation family of functions react to a non-UTF8 encoding: they now treat a falsy value as SQLITE_UTF8 and fail with SQLITE_FORMAT for an invalid encoding. (check-in: deffe6fb user: stephan tags: trunk)
19:11
Add base64() and base85() to shell sources for the non-configured makefiles, too. (check-in: ac136925 user: larrybr tags: trunk)
19:04
Add base64() and base85() text/blob conversions to the CLI. (check-in: 4bc98a2d user: larrybr tags: trunk)
18:38
Explicitly omit threading and extension loading from the ext/wasm/c-pp binary build to avoid a link error on some systems. (check-in: 5d9a1471 user: stephan tags: trunk)
18:25
Add SQLITE_ENABLE_MATH_FUNCTIONS to the list of feature flags in sqlite3-wasm.c. (check-in: 58503cd1 user: stephan tags: trunk)
18:19
Cherry-pick [c4dab53b8ea3401abd] for sqlite3.wasm.xWrap() optimizations. (check-in: 9b97412d user: stephan tags: trunk)
18:14
Internal cleanups and minor speed optimizations in the sqlite3.wasm.xWrap() infrastructure. (check-in: c4dab53b user: stephan tags: wasm-session-api)
15:05
Another iteration of "PRAGMA schema_version" instrumentation. (check-in: d5a8d6cf user: dan tags: schema-version-instr)
14:49
Fix lots of harmless, nuisance compiler warnings, mostly unused parameter warnings in extensions. (check-in: c14bbe16 user: drh tags: trunk)
14:11
Add sqlite3.capi JS bindings for the sqlite3session_...(), sqlite3changeset_...() and sqlite3changegroup_...() APIs, noting that they are completely untested. Aside from missing tests, these bindings reveal a slight string-argument-type shortcoming in the callback function pointer "reverse binding" which should ideally be resolved before publishing them. (check-in: 0a39172e user: stephan tags: wasm-session-api)
11:46
Additional fixes for yet more completely harmless compiler warnings. (check-in: 7d3772f0 user: drh tags: trunk)
11:46
Initial pieces for binding the session API to JS. Far from complete. See forum post 210e36a1e3 for the discussion. (check-in: cd8c1008 user: stephan tags: wasm-session-api)
11:32
Squelch a new (and, in this case, harmless) compiler warning. (check-in: a02e19dd user: stephan tags: trunk)
2022-12-22
21:32
Asserts added to ensure that the iCompare variable in the bytecode engine is correctly initialized before it is used. (check-in: 7b5900a1 user: drh tags: trunk)
19:12
Avoid having to reinitialize Vdbe.pResultRow upon each call to sqlite3_step() for a small size reduction and performance increase. (check-in: 6a00d67f user: drh tags: trunk)
18:44
Rename the Vdbe.pResultSet field to pResultRow in order to better distinguish it from other variables with similar names. (check-in: 1fd6211e user: drh tags: trunk)
18:35
Small performance optimization associated with shared cache in the byte-code engine. (check-in: 3181331c user: drh tags: trunk)
17:36
Small performance optimization on the OP_Insert opcode. (check-in: 781fdcb9 user: drh tags: trunk)
15:04
Fix an error in the previous commit causing timings to be logged for every "PRAGMA schema_version" command, not just those that are slower than 2 seconds. (check-in: 1e8220c1 user: dan tags: schema-version-instr)
14:29
Different version of "PRAGMA schema_version" instrumentation. (check-in: b9efbc53 user: dan tags: schema-version-instr)
10:53
sessionfuzz.c: use lt/gt brackets instead of double-quotes when #including zlib.h, as reported in forum post 91a104bd65. (check-in: 7d7780c3 user: stephan tags: trunk)
2022-12-21
21:01
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 1bfae9b3 user: drh tags: reuse-schema)
20:43
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: bcab19d2 user: drh tags: begin-concurrent-pnu-wal2)
20:28
Merge the latest trunk enhancements into the wal2 branch. (check-in: 21ebd4cf user: drh tags: wal2)
20:17
Merge the latest trunk enhancements into the begin-concurrent-report branch. (Leaf check-in: 397fb07b user: drh tags: begin-concurrent-report)
20:07
Update the begin-concurrent branch with the latest enhancements on trunk. (check-in: 0c198aee user: drh tags: begin-concurrent)
19:11
More efficient implementation of large precisions on the "%c" format for the built-in printf(). This is an effort to avoid a reported timeout on a (ridiculous) query generated by OSSFuzz. (check-in: 371f9b88 user: drh tags: trunk)
18:28
Sync w/trunk prior to branch-purpose changes. (Leaf check-in: ae8f623f user: larrybr tags: extension_opts)
14:13
Ensure that the expression of a virtual column really is an expression and not just a reference to another column, as a real expression is necessary for the indexed expression coverage optimization to work properly. Forum thread 07b36e3899a9ae21. (check-in: 40549bac user: drh tags: trunk)
12:18
New WHERETRACE entries for adding and removing objects from the Parse.pIdxEpr list as part of indexed expression coverage. Debug and testing changes only - no affect on production builds. (check-in: 4dc438a9 user: drh tags: trunk)
2022-12-20
15:22
Add about 150 new fuzzer cases to test/fuzzdata8.db. (check-in: a8d8d9cd user: drh tags: trunk)
15:02
Add ALWAYS() to always-true branches in the locking logic of the memdb VFS. (check-in: 01fa7602 user: drh tags: trunk)
14:02
Improvement to the dbsqlfuzz fix of [f113eebdbe68246f]. (check-in: 79d62956 user: drh tags: trunk)
01:48
Do not use indexed expressions to replace the expression being indexed on a RIGHT JOIN as that leads to problems, as shown by dbsqlfuzz a644e70d7683a7ca59c71861a153c1dccf8850b9. (check-in: f113eebd user: drh tags: trunk)
2022-12-19
20:14
Fix a faulty assert() in fts5. (check-in: 56901817 user: dan tags: trunk)
19:04
Remove an unused variable. (check-in: 5c4d9414 user: drh tags: trunk)
18:42
Hack for special gettimeofday() instrumentation of "PRAGMA schema_version". (check-in: 44dd01e3 user: dan tags: schema-version-instr)
14:46
Minor sed script tweak in the wasm GNUmakefile for BSD portability, as reported in forum post 4a97813fcbd4f63e. (check-in: 49efcf6d user: stephan tags: trunk)
14:43
Update test-opfs-vfs.js to account for recent API changes. Reported in forum post 4a97813fcbd4f63e. (check-in: 2a636746 user: stephan tags: trunk)
14:06
Fix an assert() in fts5. Simplify memdb xLock/xUnlock some. (check-in: 7fe158aa user: dan tags: trunk)
12:25
Fix a minor problem with the printAggInfo() routine (used on during debugging). (check-in: c8329967 user: drh tags: trunk)
2022-12-18
12:00
JS namespace updates in ext/wasm/api/README.md. (check-in: ca59e736 user: stephan tags: trunk)
10:27
WIP, pre-sync-to-trunk check-in to capture extensive changes to shell source. (WASM and usual shell tweaks) (check-in: 3db119c8 user: larrybr tags: cli_extension)
2022-12-17
22:10
Fix an unnecessarily restrictive assert() in the aggregate logic. dbsqlfuzz 699bee2aa26c5dc84afabf6894685c316d936485 (check-in: 8cc0af81 user: drh tags: trunk)
19:56
Remove slew of inadvertant tabs in favor of spaces. (check-in: 0aa6da69 user: larrybr tags: trunk)
12:49
Add NEVER/ALWAYS to branches that have become unreachable due to recent enhancements. (check-in: b4281db4 user: drh tags: trunk)
11:14
Update wasmfs.make to get WASMFS building again, but changes made to OPFS-over-WASMFS since we last tested it have made it incompatible with how we used it. It can now only be used from worker threads, eliminating the one benefit it had over the sqlite3_vfs OPFS implementation. Remove/amend references to WASMFS in the docs and remove all WASMFS-specific test app links from index.html. (check-in: 32dc98c8 user: stephan tags: trunk)
2022-12-16
18:32
Disallow some of the query invariant tests on SQL statements that contain a GROUP BY since output terms that are no covered by the GROUP BY are indeterminant. (check-in: 28ba1fec user: drh tags: trunk)
13:04
Expose a JS-friendly subset of sqlite3_config() to JS, with the notable caveats that (1) setting up the JS bindings requires starting the library, making sqlite3_config() illegal to call and (2) calling sqlite3_shutdown() in order to make it legal to call sqlite3_config() may undo certain JS-side library initialization. Move sqlite3_(de)serialize() into the int64-mode-only bindings because of their int64 args. (check-in: 62e0c931 user: stephan tags: trunk)
12:07
In the fuzzer invariant checker, do not add new WHERE clause terms that make use of an ambiguous column name. (check-in: d5b46541 user: drh tags: trunk)
11:33
Add a test confirming that exceptions are not passed through C-space if a JS-side sqlite3_set_authorizer() callback throws. (check-in: 5a77c2c7 user: stephan tags: trunk)
11:13
Add sqlite3_set_authorizer() support and related tests to JS. (check-in: 551b8488 user: stephan tags: trunk)
2022-12-15
20:03
Create a new affinity called FLEXNUM that works like NUMERIC except that it never tries to convert integer to real or real to integer. The affinity is only used internally - it is not possible to create a table column with this affinity. This affinity is used on subqueries and views that are built off of a compound SELECT and where the datatype is controlled by a CAST expression. dbsqlfuzz c9ee6f9a0a8b8fefb02cf69de2a8b67ca39525c8 (check-in: 44135d6e user: drh tags: trunk)
18:56
Fix an incompatibility between the Tcl interface and the "memdb" vfs by allowing memdb to accept filenames that begin with '\' characters. (check-in: bd537f20 user: dan tags: trunk)
18:50
Added a couple missing 'not part of the public API' tags on functions in sqlite3-wasm.c. No code changes. (check-in: eb27feec user: stephan tags: trunk)
15:37
Omit the columnTypeImpl() function from the build when SQLITE_OMIT_DECLTYPE is defined, because it is no longer used in that case. (check-in: 751e344f user: drh tags: trunk)
13:45
Fix harmless compiler warnings. (check-in: ddb260cc user: drh tags: trunk)
11:39
Update a test case in scanstatus2.test to account for recent planner enhancements. (check-in: 53e07dc6 user: dan tags: trunk)
11:31
Fix an unsafe use of sqlite3_mprintf() in sqlite3_overload_function() identified by forum post: https://sqlite.org/forum/forumpost/95b338860d. (check-in: 9fa2b94c user: dan tags: trunk)
02:28
Internal refactoring of how sqlite3.wasm.xWrap() handles JS-to-C function pointer conversions, to enable similar conversions to be added more easily. (check-in: 10cfe3fa user: stephan tags: trunk)
02:26
Remove an unnecessary/obsolete Emscripten-specific export. (check-in: fa278022 user: stephan tags: trunk)
2022-12-14
23:53
Fix minor problems in the new sqlite3ExprDataType() function. (check-in: c1d5261b user: drh tags: trunk)
18:34
Adjust the query planner to be more aggressive about using co-routines rather than materializing subqueries and views. Implementation of enhancement request [73ebbb3a3d1a7bd3]. (check-in: 0b58d1b3 user: drh tags: trunk)
18:06
Rename the new peek/pokeF32() and peek/pokeF64() to peek/poke32f() and peek/poke64f() for consistency with related APIs and because they're easier on both the eyes and the fingers. (check-in: cc86f03e user: stephan tags: trunk)
17:52
Merge all the latest trunk enhancements into the coroutines-exp2 enhancement branch. (Closed-Leaf check-in: ea278438 user: drh tags: coroutines-exp2)
17:46
Rework the code that computes the datatypes and affinities for subqueries and views. If the subquery/view is constructed from a compound SELECT where the affinity varies across arms of the compound, set the affinity for the corresponding column in the constructed view to be BLOB so that it is allowed to take on any data type. (check-in: 27655c93 user: drh tags: trunk)
16:40
Slight reformulation of some test code to test multi-arg wasm.peek() call form. (check-in: 349bb28f user: stephan tags: trunk)
14:41
If the SELECT that implements a subquery or a VIEW or a CREATE TABLE AS is a compound with different result datatypes on two or more arms of the compound, then the overall column type becomes BLOB (ANY). (Closed-Leaf check-in: 6ebb178c user: drh tags: refactor-subquery-types)
14:40
Use the new peek/poke() variants throughout tester1.js. (check-in: ef7b7835 user: stephan tags: trunk)
14:28
Add convenience variants of sqlite3.wasm.peek/poke() for each numeric type to help reduce errors related to typos in the final argument (type-name strings). If wasm.xWrap.FuncPtrAdapter is called as a function, instead of a constructor, it now behaves as if it were called as a constructor (previously it threw an exception). (check-in: 14e3fc01 user: stephan tags: trunk)
09:06
Back out the part of the change in [88a05141c28e5ff1] that adds affinity to the materialization of a view, as the affinity can be undefined for a compound query. This passes all TCL tests, but shows failures in the TH3 tests derived from forum post 6f842bc5b2dadcb2, presumably because the WHERE clause of the query uses constraints of the form "source_crs_code='8675'" instead of "source_crs_code=8675". Perhaps further changes on this branch should reimplement affinity on joins in cases where the affinity is unambiguous. (check-in: fe5a77bc user: drh tags: refactor-subquery-types)
08:12
Add a test to demonstrate/verify which object acts as "this" in a oo1.DB.exec() callback. (check-in: 8fc4b3f1 user: stephan tags: trunk)
08:01
A micro-optimization in sqlite3.oo1.DB.exec(). Changed the rowMode option of that method to only accept $X instead of $X, @X, and :X, as the extra options are entirely superfluous and may lead to confusion. (check-in: 82a6c7fd user: stephan tags: trunk)
2022-12-13
19:52
Fix a comment in ext/session/test_session.c. (check-in: bd814af1 user: dan tags: trunk)
19:40
Prevent the sessions rebaser from generating changesets containing UPDATE records for which non-PK fields are present in the old.* but not the new.* record. Also update the changeset iterator to work around such changesets. (check-in: f9cd23df user: dan tags: trunk)
16:59
Remove an unused variable from sqlite3SubqueryColumnTypes(). (check-in: c6e3ff39 user: drh tags: refactor-subquery-types)
16:55
Use standard datatype names for the column datatypes in views and subqueries. (check-in: baf2c241 user: drh tags: refactor-subquery-types)
15:54
Refactor the sqlite3SelectAddColumnTypeAndCollation() routine. Improved comments. Now called sqlite3SubqueryColumnTypes(). (check-in: 4dfb1b45 user: drh tags: refactor-subquery-types)
14:59
Add extra test cases for applying sessions module changesets to databases that have been modified using "ALTER TABLE .. ADD COLUMN". (check-in: a7b404f2 user: dan tags: trunk)
13:33
Slightly faster implementation of sqlite3ExprAffinity(). (check-in: 01cf3278 user: drh tags: trunk)
10:54
Document the role of the sqlite3.client JS API property. (check-in: 5f11f1c7 user: stephan tags: trunk)
08:25
Extend the sqlite3.wasm function pointer argument converter to be able to handle the "two-layered context" of sqlite3_create_collation() and friends and make use of FuncPtrAdapter to perform JS-to-WASM function conversion for them. (check-in: 0a60b721 user: stephan tags: trunk)
00:51
Merge recent trunk changes into the coroutine-exp2 branch. (check-in: c43f433b user: drh tags: coroutines-exp2)
2022-12-12
21:22
Further fix for ticket [57c47526c34f01e8]. If a subquery has a result set column of the form "CAST(expr AS NUMERIC)" do not give that column NUMERIC affinity. NUMERIC affinity always goes to an integer if able, but a CAST to numeric is a no-op if the input is a number. So the two are not equivalent. (check-in: f0325359 user: drh tags: trunk)
18:58
If a subquery has a result column of the form "CAST(... AS NUMERIC)" then give that column no affinity rather than NUMERIC affinity. This is because casting to numeric preserves real values that could be integers but numeric affinity does not. By using no affinity on the column, we make the behavior consistent if the subquery is implemented as a co-routine or is materialized. (Closed-Leaf check-in: ece07d09 user: drh tags: cast-to-numeric)
18:42
Revert part of [9386d6f63468] because the new automatic function pointer binding cannot properly track per-context function mappings when the context is more complex than a single context-type pointer. e.g. it is fine for sqlite3_trace_v2() but it breaks down with sqlite3_create_collation() because that one needs to use the collation name as part of the context key and we cannot sensibly do so with the current code. (check-in: 6cd21b79 user: stephan tags: trunk)
17:33
Add new logging code SQLITE_NOTICE_RBU and use it when logging for the spurious error that RBU injects into SQLite as part of applying an update. (check-in: cd881d35 user: dan tags: trunk)
14:31
Move JS-to-C binding signatures from sqlite3-api-prologue.js to sqlite3-api-glue.js to allow for use of the new/experimental sqlite3.wasm.xWrap() feature which automatically binds JS functions to WASM/C as needed, which simplifies creation of bindings which take C function pointers. Reimplement sqlite3_exec(), sqlite3_create_collation(), sqlite3_progress_handler() to use this new feature. (check-in: 9386d6f6 user: stephan tags: trunk)
11:38
ext/wasm/module-symbols.html: for C APIs which have extended JS-side semantics, link to the JS-side API docs instead of the C docs. (check-in: d5570152 user: stephan tags: trunk)
11:22
ext/wasm/module-symbols.html: add a hyperlink to the API docs for each exported sqlite3_...() function. (check-in: 01d3a9bb user: stephan tags: trunk)
08:16
Rework the internals of how argument/result types are converted to/from wasm in prep for attempting to support automated conversions of function pointer argument types. (check-in: 58052d82 user: stephan tags: trunk)
07:52
Add sqlite3.mjs to the new 'quick' wasm build for the sake of the snapshot build. (check-in: 5a3f2224 user: stephan tags: trunk)
07:31
Expose sqlite3_txn_state() to wasm. (check-in: f6f3397a user: stephan tags: trunk)
07:27
Expose a number of infrequently-used sqlite3_...() functions to wasm whose absences were noticed while documenting. (check-in: 3144e7c0 user: stephan tags: trunk)
2022-12-11
07:53
Minor build tweaks in ext/wasm to create a faster-running build for the common dev-mode cases. No code changes. (check-in: 6a61b14a user: stephan tags: trunk)
2022-12-10
19:22
Ensure that the types and collation sequences of a view are taken from the leftmost component of compound SELECTs, even when column names are explicitly provided for the view. Fix for ticket [679ed6a282a97c51] (check-in: 6f0bf892 user: dan tags: trunk)
17:54
Ensure that the types and collation sequences of a view are taken from the leftmost component of compound SELECTs, even when column names are explicitly provided for the view. Possible fix for [679ed6a2]. (Closed-Leaf check-in: b0e49aa8 user: dan tags: tkt-679ed6a2)
17:45
Remove -flto from wasm build flags, as it increases build time and doesn't seem to have a measurable benefit. (check-in: 35a88747 user: stephan tags: trunk)
17:20
Correct wasm heap corruption introduced in test code added in [e144fd5c88fa4] which led to unpredictable failures. (check-in: 6c1e07e3 user: stephan tags: trunk)
15:41
Remove two incorrect calls to structType.dipose() which prematurely freed objects in use by the virtual table test/demo code. (check-in: 060eb284 user: stephan tags: trunk)
15:13
Expose sqlite3_column_value() to WASM and add sqlite3_column_js(). (check-in: 7783aa4a user: stephan tags: trunk)
12:06
Rerun autoconf using version 2.69 to minimize configure script differences with trunk. (check-in: b6334283 user: drh tags: wasi-patches)
10:24
Refactor the internal JS routines for converting UDF results and errors to JS into public APIs. (check-in: 35d1d63c user: stephan tags: trunk)
07:02
Imply configure flag --disable-shared when --with-wasi-sdk is active because libtool is running gcc for linking the shared lib, which cannot work in a wasi build. (check-in: 9253ba43 user: stephan tags: wasi-patches)
06:44
Add --with-wasi-sdk=DIR flag to configure.ac. This mode compiles but fails to link the DLL because libtool is apparently hard-coded to gcc for the DLL. (check-in: 39c9f441 user: stephan tags: wasi-patches)
05:52
Run configure.ac through autoupdate, as required by autoconf for rebuilding configure. These (many) changes were made entirely by the autotools, except that some whitespace-only changes were reverted by hand to reduce noise, and are a preliminary step to adding a new flag to configure.ac. (check-in: 2be2d5d4 user: stephan tags: wasi-patches)
05:00
Merge trunk into wasi-patches branch. (check-in: 13dade95 user: stephan tags: wasi-patches)
2022-12-09
18:26
Remove the SQLITE_PREPARE_SAFEOPT flag. The name is obsolete and it is at the wrong level. Instead use the SF_UpdateFrom flags on the Select object. (check-in: 78723a9a user: drh tags: coroutines-exp2)
17:33
Do not allow OOM faults in EQP messages associated with automatic indexes on co-routines to go unreported. (check-in: d125d5af user: drh tags: coroutines-exp2)
15:26
Export sqlite3_result_subtype() and sqlite3_value_dup/free/subtype() to WASM. (check-in: 4600a7bb user: stephan tags: trunk)
15:12
Expose sqlite3_value_frombind/nochange/numeric_type() to WASM. Add a flag to sqlite3_value_to_js() to cause it to return undefined, instead of throwing, if no conversion can be found. (check-in: de8fc4bf user: stephan tags: trunk)
14:46
Refactor the sqlite3_value-to-JS conversion from an internal detail to sqlite3.capi.sqlite3_value_to_js() for use with routines like sqlite3_module::xFilter(). (check-in: f6dbf280 user: stephan tags: trunk)
13:49
Fix typo in the SQLITE_DBCONFIG_LOOKASIDE documentation. (check-in: c6e7582a user: drh tags: trunk)
12:12
Remove some unused sqlite3_status() codes from the JS API. Add custom JS wrappers for sqlite3_create_collation/_v2() which accept JS functions (plus tests). Expand the argument options for sqlite3_wasm_db_error() to enable it to translate exception objects to C-level errors. (check-in: 073a2f1e user: stephan tags: trunk)
09:23
Rename the oft-used, verbose sqlite3.wasm.get/setMemValue() and get/setPtrValue() to peek/poke() and peek/pokePtr(). The old names are retained as aliases just in case any client code actually uses them, but they are now deprecated. (check-in: ad0a8139 user: stephan tags: trunk)
08:44
Micro-optimization in the oft-activated JS-to-WASM arguments conversion step. (check-in: ee47e9b8 user: stephan tags: trunk)
07:17
Correct a test bug which broke the previous checkin's wasm tests in higher optimization levels. Test bug - it should not have worked in -O0 mode. (check-in: f07141b7 user: stephan tags: trunk)
05:47
Export sqlite3_status() and sqlite3_stmt_status() to wasm. Expand the arg/return semantics of wasm.get/setPtrValue() and get/setMemValue() to simplify handling of multiple pointers. Edit: tests pass when built with -O0 but fail with -Oz. Moving to branch to work out the breakage. Edit: it was a test bug - one too many levels of pointer indirection. It shouldn't have worked in low-optimization mode. (check-in: e144fd5c user: stephan tags: trunk)
02:23
JS API doc updates. (check-in: 4f80fd3b user: stephan tags: trunk)
02:12
Expose sqlite3_table_column_metadata() to wasm. (check-in: c31eb509 user: stephan tags: trunk)
01:49
Expose sqlite3_db_status() and sqlite3_db_config() to wasm, noting that the latter requires several internal wrappers to account for the various varidic forms (C varargs cannot be bound to wasm). (check-in: d5753668 user: stephan tags: trunk)
00:50
Reorganization and renaming in the new VFS/vtab JS pieces. (check-in: 1c2dda17 user: stephan tags: trunk)
2022-12-08
21:05
Support ".scanstats est" to enable including planner estimates in query profiles. (check-in: 0fe71287 user: dan tags: trunk)
18:18
Further docs and minor cleanups in the JS virtual table helper. (check-in: c31e7488 user: stephan tags: trunk)
17:07
Ease-of-use/legibility improvements in the virtual table JS helpers. (check-in: 54c7ad7e user: stephan tags: trunk)
16:47
Improved comments on the new co-routine logic. Fix a C++-ism in the code. Update test cases to accommodate the more aggressive use of co-routines. (check-in: 9243e850 user: drh tags: coroutines-exp2)
15:00
Initial support for virtual tables implemented in JavaScript. (check-in: a1454744 user: stephan tags: trunk)
13:56
Do not use a co-routine on a subquery that is participating in a self-join. (check-in: ea4306a0 user: drh tags: coroutines-exp2)
12:51
Describe the SQLITE_DBCONFIG_RESET_DATABASE flag's policy regarding virtual tables, per /chat discussion. (check-in: 53dcb81b user: stephan tags: trunk)
10:06
More work on the JS vtable tests. (Closed-Leaf check-in: 51e3c3b5 user: stephan tags: wasm-vtab)
09:06
Got JS non-eponymous vtable working thanks to a hint from Dan. (check-in: 750719b4 user: stephan tags: wasm-vtab)
04:19
Remove some dead JS code and tweak some docs. (check-in: 0ee49545 user: stephan tags: wasm-vtab)
2022-12-07
21:19
Merge the latest fixes and enhancements from trunk into the coroutines-exp2 branch. (check-in: 1c5f4198 user: drh tags: coroutines-exp2)
20:09
Reduce the overhead of SQLITE_ENABLE_STMT_SCANSTATUS some. (check-in: 212927e9 user: dan tags: trunk)
19:51
Fix harmless compiler warning in the dynamic continuation prompt of the CLI. (check-in: 68947b0a user: drh tags: trunk)
19:29
Omit CLI use of pragma_table_xinfo when it is not defined in the build. (check-in: 976c2352 user: larrybr tags: trunk)
17:29
Have sqlite3_stmt_scanstatus() report cycle, loop and row counts separately for creating an automatic index and using that automatic index. (check-in: 3bc9df82 user: dan tags: trunk)
16:58
Streamline and improve testing of the locking in the memdb VFS. Follow-on to [15f0be8a640e7bfa]. (check-in: d71a0837 user: drh tags: trunk)
07:22
Work on an alternate (slightly simpler) approach to binding JS vtabs. Non-eponymous vtabs are not working, for reasons as yet unknown. (check-in: 6a0fefb9 user: stephan tags: wasm-vtab)
03:42
Add addOnDispose() method to Jaccwabyt and code-adjacent minor internal cleanups. (check-in: 6a2723fe user: stephan tags: wasm-vtab)
00:14
Fix a (harmless) off-by-one error in code generation that comes up when doing a DISTINCT query against a virtual table with an OR term in the WHERE clause and where the ORDER BY clause has 64 or more references to the result set. Forum post dfe8084751. NB: The bug is "harmless" in the sense that no harm comes of it in a production build. However, an assertion fault might occur in a debugging build given some really wonky SQL inputs without this fix. (check-in: 04af7ef7 user: drh tags: trunk)
2022-12-06
19:32
Enhance CLI .sha3sum to warn of text fields that are not to-blob-to-text reversible. (check-in: bbde0f36 user: larrybr tags: trunk)
19:25
Merge from trunk prepratory to branch end. (Closed-Leaf check-in: 1d01f848 user: larrybr tags: sha3sum_text_validation)
19:20
Avoid several -Wall warnings in textfixture build. (check-in: 03ae8680 user: larrybr tags: trunk)
18:48
For CLI .sha3sum, emit warning to stderr for any invalidly encoded text fields. (check-in: 8e833ecc user: larrybr tags: sha3sum_text_validation)
18:48
Have sqlite3_stmt_scanstatus_v2() return an NCYCLE value for all loops, not just virtual tables ones. The value returned is the sum of the NCYCLE counts for the various opcodes that move or read data from the table or index cursor associated with the loop. (check-in: 9499b2f5 user: dan tags: trunk)
17:59
Clear a few more -Wall warnings and simplify dynaprompt feature keep/omit macros. (check-in: 540e895d user: larrybr tags: trunk)
15:24
Simplified experimental changes to promote the use of co-routines. Less cruft than the coroutines-exp1 branch, but still does not work. Checked in as a work-in-progress. (check-in: e2318a30 user: drh tags: coroutines-exp2)
15:11
Fix compiler warnings in the new dynamic continuation prompt logic of the CLI. (check-in: 0d80500d user: drh tags: trunk)
13:12
In the unix backend, when implementing the defenses against small file descriptors, delete a file just created if it was opened with O_EXCL|O_CREAT so that it can be created again the next time through the loop. Fix for the problem described by forum post 699af709ab3a8ccf. (check-in: c0cfe058 user: drh tags: trunk)
11:41
Support an SQLITE_SCANSTAT_NCYCLE statistic for "CO-ROUTINE" elements. (check-in: d3f6a207 user: dan tags: trunk)
11:21
JS vtables: add infrastructure related to accessing and modifying sqlite3_index_info. (check-in: 0d77c348 user: stephan tags: wasm-vtab)
09:49
Remove deprecated symbol sqlite3.opfs.OpfsDb, which was renamed to sqlite3.oo1.OpfsDb on 2022-11-29. (check-in: 0ce51bed user: stephan tags: wasm-vtab)
08:46
Rename wasm.cstringToJs() to wasm.cstrToJs() for consistency with other wasm.cstr... APIs. (check-in: cbf483ea user: stephan tags: wasm-vtab)
08:39
Add wasm.cArgvToJs() to support sqlite3_module::xConnect(). (check-in: c3ebdccf user: stephan tags: wasm-vtab)
08:21
Minor internal JS code/docs cleanups. (check-in: 21331bdd user: stephan tags: wasm-vtab)
06:21
Merge trunk into wasm-vtab branch. (check-in: d106edb9 user: stephan tags: wasm-vtab)
06:16
Minor test tweaks. (check-in: f902f3b2 user: stephan tags: wasm-vtab)
06:09
Add a demonstration sqlite3_vtab/module implemented in JS, based on ext/misc/templatevtab.c. Add oo1.selectArrays() and selectObjects(). (check-in: 60482c97 user: stephan tags: wasm-vtab)
05:31
Add optional feature: A CLI continuation prompt which reflects open lexemes and parens, similarly to PG shell. (check-in: f41f18b1 user: larrybr tags: trunk)
05:09
Add optional feature: A CLI continuation prompt which reflects open lexemes and parens, similarly to PG shell. (Leaf check-in: dac2ddc2 user: larrybr tags: dynamic_prompt)
00:54
Highly experimental (and non-working) changes aimed at increasing the number of occasions where a subquery can be implemented using a co-routine rather than being materialized. This is just saving work in progress. (Closed-Leaf check-in: e7d323c1 user: drh tags: coroutines-exp1)
2022-12-05
19:16
Enhance the sqlite3_stmt_scanstatus() API and add sqlite3_stmt_scanstatus_v2(). For creation of enhanced query performance reports. (check-in: 4893b4e3 user: dan tags: trunk)
18:52
Update comments in sqlite.h.in to account for sqlite3_stmt_scanstatus_v2(). (Closed-Leaf check-in: 009462f2 user: dan tags: scanstatus_v2)
18:26
Merge latest trunk changes. (check-in: 1a72777b user: dan tags: scanstatus_v2)
18:19
Add loops and rows counters to "USE TEMP B-TREE FOR ORDER BY" records. Also fix the sqliteHwtime() function so that it returns a 64-bit value. (check-in: 41a0e05e user: dan tags: scanstatus_v2)
15:05
Remove two features of jaccwabyt which were fundamentally flawed, along with approx. 250 lines of unit tests which heavily relied on them. Thankfully, none of the sqlite3.js-level code used those bits. (check-in: a190abc3 user: stephan tags: wasm-vtab)
14:32
Jaccwabyt (JS) doc updates. (check-in: a329a809 user: stephan tags: wasm-vtab)
14:23
Fix a problem in the memdb vfs xLock() function allowing clients to upgrade to EXCLUSIVE locks when other connections are holding SHARED. (check-in: d18cce37 user: drh tags: branch-3.40)
14:20
Regenerate the configure script so that it includes the correct patch number. (check-in: e2ae2ea1 user: drh tags: branch-3.40)
14:20
Add test case that should have been part of previous commit. (check-in: dc7dd2d3 user: dan tags: trunk)
14:13
Expose sqlite3_get/set_auxdata() to wasm. Minor test app CSS tweaks. (check-in: 44659ad3 user: stephan tags: wasm-vtab)
14:12
Fix a problem in the memdb vfs xLock() function allowing clients to upgrade to EXCLUSIVE locks when other connections are holding SHARED. Forum post 5adb92e2baca3678. (check-in: 15f0be8a user: dan tags: trunk)
13:33
Export collation-related APIs and strncmp()/strnicmp() to wasm. (check-in: c3c56d9b user: stephan tags: wasm-vtab)
13:12
Export sqlite3_vtab_collation() to wasm. Rename 'flexible-string' JS argument adapter to 'string:flexible' for consistency. (check-in: 15f8042f user: stephan tags: wasm-vtab)
13:07
Remove SQLITE_EXPERIMENTAL tag from sqlite3_vtab_collation() and fix a related doc typo. (check-in: 35d670b3 user: stephan tags: trunk)
11:54
Rename 'static-string' argument adapter to 'string:static'. Replace JS unit tests which were lost via editing a generated copy of tester1.js instead of the original tester1.c-pp.js input file. (check-in: 9d81d51d user: stephan tags: wasm-vtab)
11:30
Export sqlite3_bind/value/result_pointer() to wasm. Add 'static-string' argument converter to support the lifetime requirements of bind/result_pointer()'s string argument. Correct an endless loop in wasm.cstrlen() when passed a non-C-string argument. (check-in: a9455243 user: stephan tags: wasm-vtab)
10:50
Remove obsolete "experimental" comments on the virtual-table interface documentation in sqlite.h.in. (check-in: 28fc32ab user: drh tags: trunk)
07:51
More work on the JS side of the virtual table APIs. (check-in: cb9881ec user: stephan tags: wasm-vtab)
05:45
Remove some dead code. Improve some error checks and comments. (check-in: 6712fbe4 user: stephan tags: wasm-vtab)
05:30
Initial infrastructure for adding virtual table/table-valued function support to WASM. (check-in: c202d7a0 user: stephan tags: wasm-vtab)
02:52
Improved query planner cost estimates. Fix for ticket [e8b674241947eb3b]. (check-in: 1b779afa user: drh tags: trunk)
02:42
Use the smaller estimated row size for searching IPK tables, but use the original larger row size estimate for scanning, since the leaves can have large rows. (Closed-Leaf check-in: df381899 user: drh tags: qp-tuning)
2022-12-04
23:20
Fix safe mode authorizer callback to reject disallowed UDFs. Reported at Forum post 07beac8056151b2f. (check-in: cefc0324 user: larrybr tags: trunk)
22:13
Fix safe mode authorizer callback to reject disallowed UDFs. Tests to follow. UPDATE: checked into the wrong branch. (Closed-Leaf check-in: 4d934f00 user: larrybr tags: wrong branch.)
08:16
Export sqlite3_result_zeroblob/zeroblob64() to wasm. (check-in: a60e5662 user: stephan tags: trunk)
2022-12-03
21:24
Enhance SQLITE_SCANSTAT_NCYCLE so that it reports on virtual tables. (check-in: 622d8eb3 user: dan tags: scanstatus_v2)
19:04
Increase the nominal row size for IPK index lookups slightly, for better balance. (check-in: 1a61c500 user: drh tags: qp-tuning)
18:21
Add TOTAL rows to the output generated by tool/vdbe_profile.tcl. (check-in: 98005863 user: drh tags: qp-tuning)
18:16
Add CYCLES scanstat measurement to "USE TEMP B-TREE FOR ORDER BY" lines. (check-in: 365011ae user: dan tags: scanstatus_v2)
17:23
Add a test case to show that ticket [e8b674241947eb3b] has been fixed. (check-in: e20de6d4 user: drh tags: qp-tuning)
17:19
Make conglomerateur help with extension packaging. Otherwise a WIP check-in. (check-in: c4214d8d user: larrybr tags: extension_opts)
17:09
Further improvements to the estimated cost of sorting. Take into account the number of columns to be sorted. (check-in: f3290cf8 user: drh tags: qp-tuning)
16:09
Cause CLI .sha3sum to warn of text fields that do not survive CAST(CAST(t as BLOB) AS TEXT) due to invalid UTF encoding. (check-in: 123f2a07 user: larrybr tags: sha3sum_text_validation)
15:41
Correct a memory leak in tester1.js. (check-in: e42b052d user: stephan tags: trunk)
14:58
sqlite3.wasm.allocFromTypedArray() now optionally accepts an ArrayBuffer as its argument. (check-in: 75a1a796 user: stephan tags: trunk)
13:10
Rename wasm.xWrap.resultAdapter() X:free entries to X:dealloc for consistency with wasm.dealloc(). Add an undocumented feature to replace wasm.alloc/dealloc/realloc() with the C-standard allocators (after an allocator misuse led down a several-hour rabbit hole trying to discover a mis-free() violation). Related test updates. (check-in: d9807656 user: stephan tags: trunk)
13:05
Doc typo fix for SQLITE_MAX_ALLOCATION_SIZE in malloc.c. No code changes. (check-in: ed1ed212 user: stephan tags: trunk)
11:51
Move kvvfs xRead()/xWrite() buffer from function-local stack memory to heap memory to accommodate changes in emsdk 3.1.27. (check-in: f1da3241 user: stephan tags: trunk)
11:16
JavaScript: add sqlite3.wasm.realloc(), sqlite3.capi.SQLITE_MAX_ALLOCATION_SIZE, and related tests. (check-in: eeb84ba5 user: stephan tags: trunk)
03:06
wasm build: rename the path to the wasm docs checkout, for clarity and consistency. (check-in: b820db32 user: stephan tags: trunk)
02:42
wasm snapshot and doc-related build automation tweaks. (check-in: 13eb1abd user: stephan tags: trunk)
01:59
Rework the oo1.DB's distinct-per-VFS post-open() step to accept either a batch of SQL or a callback function. Increase OPFS's busy timeout to 10s. (check-in: 9feefe25 user: stephan tags: trunk)
00:52
Tuning the query planner by adjusting the weights that predict the relative performance of sorting and index lookup. (check-in: 9f2806da user: drh tags: qp-tuning)
2022-12-02
20:32
Enhance the sqlite3_stmt_scanstatus() API and add sqlite3_stmt_scanstatus_v2(). For creation of easier to read query performance reports. (check-in: 55800833 user: dan tags: scanstatus_v2)
18:56
Minor internal tweaks to the OPFS VFS. Resolve a missing result code which lead to a null deref in xFileSize(). (check-in: 57dd593e user: stephan tags: trunk)
18:06
OPFS VFS: translate createSyncAccessHandle() exceptions which appear to be locking violations to SQLITE_BUSY. This seems to improve concurrency considerably even with a reduced retry count of 5 (was 6). (check-in: 0d36021d user: stephan tags: trunk)
17:52
For the sqlite3_bind and sqlite3_result interfaces for UTF16 strings, round the number of bytes down to the next even number, to avoid creating a UTF16 string that is an odd number of bytes. Forum post 411199488d065f83. (check-in: b57e3c3d user: drh tags: trunk)
15:31
Use sqlite3_result_int64() instead of sqlite3_result_int() when returning potentially large values from the DBSTAT virtual table, to avoid integer overflows in the result. Forum post ada2ab044f. (check-in: 5652154a user: drh tags: trunk)
11:35
Minor touchups to the JS test index page and test server push rules. (check-in: 0881f3e9 user: stephan tags: trunk)
10:43
wasm builds: explicitly set a default stack size because emsdk 3.1.27 reduced it from 4MB to only 64kb, leading to memory corruption when kvvfs is used (it requires at least twice that for I/O). (check-in: 75811246 user: stephan tags: trunk)
09:23
wasm: after building snapshot zip file, emit instructions for pushing it to the test server. (check-in: 9615c779 user: stephan tags: trunk)
08:51
Correct the problem which triggered the rollback in [7eec635562f6]: an incorrect default db page size (not a multiple of 512 bytes). (check-in: e06e490c user: stephan tags: trunk)
08:38
Roll back the SQLITE_DEFAULT_PAGE_SIZE part of [c260895faacb34] because kvvfs does not work at all with a page size of 8kb. (check-in: 7eec6355 user: stephan tags: trunk)
08:29
sqlite3-wasm.c: code legibility and coding style tweaks. Increase SQLITE_DEFAULT_PAGE_SIZE from 4k to 8k, as that improves OPFS speedtest1 performance by roughly 12%. (check-in: c260895f user: stephan tags: trunk)
07:14
Expand JS tests for db export/import and document reason it cannot currently work with kvvfs. Fix a minor JS build dependencies bug. Update page title with PASS/FAIL prefix for tester1.js to improve overview when launching multiple test tabs. Add ability of tester1 should-run-test predicates to report why a given test is disabled. (check-in: 75f610d3 user: stephan tags: trunk)
03:37
Remove extraneous/unused sqlite3.oo1.version object. Add httpd makefile target. (check-in: 8e4d30ac user: stephan tags: trunk)
03:35
Experimental branch for more flexible selection of extensions and localization of details of incorporation by host. A WIP for now. (check-in: 98be19ba user: larrybr tags: extension_opts)
2022-12-01
15:22
sqlite3_js_create_file() now accepts an ArrayBuffer data source. Add test for OPFS-based export/re-import. The (sqlite3*) argument converter now optionally accepts sqlite3.oo1.DB instances. (check-in: 14a84b67 user: stephan tags: trunk)
04:45
Reformulate and simplify some JS tests related to the previous checkin. (check-in: 9ea2d3dc user: stephan tags: trunk)
03:55
Expand "sqlite3_vfs*" JS-to-WASM function argument conversions to accept VFS names (JS strings) and capi.sqlite3_vfs instances. Implement sqlite3_js_vfs_create_file() to facilitate creation of file-upload features which store the file in VFS-specific storage (where possible, e.g. "unix" and "opfs" VFSes). Correct an argument type check in the SQLite3Error and WasmAllocError constructors. (check-in: e1009b16 user: stephan tags: trunk)
2022-11-30
21:18
Add a testcase() macro to verify that the case of a NOT NULL error message hitting the string length limit. (check-in: 91f50964 user: drh tags: trunk)
20:22
Fix an over-zealous assert() reported by Yong Heng. (check-in: 6ee61f8c user: drh tags: trunk)
19:11
Attempt to rationalize the bits associated with ".wheretrace". Provide a decoder key in sqliteInt.h for what each bit is intended to do. (check-in: 8ec36169 user: drh tags: trunk)
18:21
Rename some JS files from X.js to X.c-pp.js to keep the maintainer, and downstream build customizers, aware that those files contain constructs specific to the c-pp preprocessor and will not run as-is in JS. (check-in: 2eade7c7 user: stephan tags: trunk)
13:44
Always use nanosleep() (instead of usleep() or sleep) if the _POSIX_C_SOURCE macro says it should be available. See Fossil Forum post ab2e2593ae307946 for driver behind this enhancement. (check-in: 6620c57b user: drh tags: trunk)
11:50
Install sqlite3_malloc/sqlite3_free() as the JS-side WASM allocator (as opposed to replacing C-level's malloc()/free() with them). All tests work and this eliminates the potential for allocator discrepancies when using the (de)serialize APIs. (check-in: 95c78f6b user: stephan tags: trunk)
10:05
Merge trunk into wasi-patches branch. (check-in: 64cf34a8 user: stephan tags: wasi-patches)
08:37
Simplify how the OPFS VFS async proxy copies initial state sent to it from the synchronous side of the connection. Make the lock-wait time a multiple of the wait-loop timeout interval. (check-in: eddafaff user: stephan tags: trunk)
07:48
OPFS VFS: remove an invalid TODO and fix a property name typo which caused xCheckReservedLock() to always report false. (check-in: 3b037caa user: stephan tags: trunk)
07:17
Rename some OPFS JS files. Prevent JS bindings of sqlite3_uri_...() from performing JS-to-C-string argument conversion on their first argument, as doing so is specifically illegal. (check-in: 79832808 user: stephan tags: trunk)
05:27
Refactor a significant chunk of the OPFS sqlite3_vfs init code into sqlite3.VfsHelper, and internal-use-only API encapsulating code relevant to creating new VFSes in JS. Intended to assist in pending experimentation with an alternative OPFS VFS. (check-in: e25d7b08 user: stephan tags: trunk)
03:08
Doc and logging text tweaks in the OPFS async proxy and test app. (check-in: 7ce8608e user: stephan tags: trunk)
2022-11-29
18:28
sqlite3.oo1.OpfsDb: default to journal_mode=persist, as current tests show it to be marginally faster than truncate/delete in Chrome v109. Also increase default busy_timeout from 2 seconds to 3, admittedly on a whim. (check-in: d0c8fa30 user: stephan tags: trunk)
18:00
OPFS speedtest1: hide a currently-broken/to-fix WASMFS-build link. (check-in: cde95d38 user: stephan tags: trunk)
17:52
Change the handling of hwtime.h to make it easier to compile performance measurement builds that make use of hwtime.h. This should not affect productions builds. (check-in: f64a2242 user: drh tags: trunk)
11:28
Fix legacy build system main.mk to include basexx.c in testfixture builds. (check-in: 8c9200b7 user: dan tags: trunk)
06:56
Rename one instance of opfs.OpfsDb to oo1.OpfsDb, as per [0c5c51f4fb04]. (check-in: 75b04c9b user: stephan tags: trunk)
06:09
Minor internal cleanups and docs in the OPFS sqlite3_vfs. (check-in: 61799b05 user: stephan tags: trunk)
05:25
Internal restructuring of the OPFS sqlite3_vfs in order to facilitate certain experimentation and improve error reporting/hints if it cannot be activated. Deprecate the name sqlite3.opfs.OpfsDb, preferring sqlite3.oo1.OpfsDb for consistency with JsStorageDb and any future DB subclasses. (check-in: 0c5c51f4 user: stephan tags: trunk)
02:23
Add an explicit warning about the current API-instability of the sqlite3.opfs namespace, which may need to be eliminated based on re-thinking of how the OPFS sqlite3_vfs is registered. Comment changes only - no code. (check-in: 0cb2fd14 user: stephan tags: trunk)
2022-11-28
21:17
Check-in [8d5b76593d82b3a5] contained an error that was causing some obscure error codes to be lost. Fixed here. (check-in: 46cdd363 user: drh tags: trunk)
21:09
Get ext/misc/basexx.c into the testfixture.exe build for MSC. (check-in: bb2c5d08 user: larrybr tags: trunk)
20:08
Fix harmless compiler warnings. (check-in: 8d5b7659 user: drh tags: trunk)
19:42
Implementation of enhancement request [695a1a53dea6b240]: The query planner has improved awareness of when indexes on expressions are covering and adjusts their costs accordingly. (check-in: e3474d79 user: drh tags: trunk)
18:41
Add the SQLITE_FCNTL_RESET_CACHE verb. Use it to ensure that the page cache is purged before and after a the recovery extension is run. (check-in: 6db0bc4b user: dan tags: trunk)
18:17
Test cases added derived from the enhancment ticket. (Leaf check-in: c022c015 user: drh tags: covering-indexed-expr)
16:11
Merge trunk changes into covering-index-expr branch. (check-in: 89d775ad user: drh tags: covering-indexed-expr)
15:23
Rework the covering index checking routine, whereIsCoveringIndex(), so that it can return a "maybe" result for aggregate queries where we are not exactly sure. The index is scored as if it is covering, but the main table is still opened. (check-in: b8eec421 user: drh tags: covering-indexed-expr)
14:51
Add (optional) base64 and base85 UDF extensions. (check-in: b44ab10c user: larrybr tags: trunk)
14:11
Sync w/trunk, zap surplus space. (Closed-Leaf check-in: b8345630 user: larrybr tags: base_convert)
13:47
Ensure the RETURNING clause is honoured when a row of a temp table is updated by an ON CONFLICT clause. (check-in: a2449bcc user: dan tags: trunk)
02:28
Conform CLI .trace arg handling to its help. (check-in: 31546ea3 user: larrybr tags: trunk)
2022-11-27
00:57
Document an OPFS API change in Chrome v108 which does not break our code but does change several formerly async methods to synchronous. No code changes. (check-in: e9dd87e2 user: stephan tags: trunk)
2022-11-26
20:52
Better reporting of when the WHERE clause analysis thinks that an index is covering. (check-in: 17ebcf31 user: drh tags: covering-indexed-expr)
20:48
Show which AggInfo.aCol an Expr node represents in the tree trace debugging logic. Does not affect production builds. (check-in: b8076f4d user: drh tags: trunk)
20:13
Merge trunk fixes into the covering-indexed-expr branch. (check-in: 9ac67ff9 user: drh tags: covering-indexed-expr)
20:12
Fix an incorrect assertion-fault in the "TREETRACE" debugging logic on select.c. The problem does not affect production builds. (check-in: f11bb422 user: drh tags: trunk)
15:24
OPFS VFS: add the opfs-unlock-asap=1 URI flag which tells the VFS to release implicit locks ASAP instead of during VFS idle time. This improves concurrency notably in the test app but brings a significant performance penalty in speedtest1 (roughly 4x slowdown). This is not the final word in OPFS concurrency, but gets us a step further. (check-in: 9542f9ce user: stephan tags: trunk)
14:19
Experimental changes to help the query planner detect when an expression index is coverting. Works somewhat, but there are tests that fail. (check-in: 968c189b user: drh tags: covering-indexed-expr)
2022-11-25
17:05
Relax restriction (8) on the push-down optimization so that it only applies if one or more columns uses a collating sequence other than BINARY. See forum post 3824ced748baa808 and check-in [346a3b12b861ce7b]. (check-in: adbca344 user: drh tags: trunk)
16:32
Fix #ifdefs so that restrictions (8) and (9) of the push-down optimization are still enforced even if compiled with SQLITE_OMIT_WINDOWFUNC. This fixes a bug introduced by check-in [346a3b12b861ce7b]. (check-in: 09e1e42e user: drh tags: trunk)
16:10
Improve the query planner such that it is able to make use of indexed expressions within an aggregate query with GROUP BY. This implements enhancement request [99378177930f87bd]. (check-in: b9190d3d user: drh tags: trunk)
15:52
Add restriction (9) to the push-down optimization: If the subquery is a compound then all arms of the compound must have the same affinity. dbsqlfuzz 3a548de406a50e896c1bf7142692d35d339d697f. (check-in: 1ad41840 user: drh tags: trunk)
13:26
Remove a redundant assert() statement. (Closed-Leaf check-in: e3e1b453 user: drh tags: agg-with-indexed-expr)
13:15
Improve the robustness of the updateAccumulator() routine against OOM. (check-in: d2844f57 user: drh tags: agg-with-indexed-expr)
13:08
Improved comments. Add assert()s to verify that the AggInfo structure is unchanged after registers have been assigned. (check-in: 5200b841 user: drh tags: agg-with-indexed-expr)
2022-11-24
23:35
Correctly deal with IF-NULL-ROW operators when dealing with indexed expressions in aggregates. (check-in: 939cb470 user: drh tags: agg-with-indexed-expr)
20:11
Speed up base85() conversions and sync w/trunk. (check-in: 17b82350 user: larrybr tags: base_convert)
19:02
Take care not to try to add comments to a TK_AGG_COLUMN opcode that does not have an associated Table object because it is a reference to an indexed expression. (check-in: 5fc23863 user: drh tags: agg-with-indexed-expr)
18:45
Change a NEVER() into an assert(). (check-in: a0fd44f4 user: drh tags: agg-with-indexed-expr)
17:58
Fix a test case in fts3expr4.test to account for different locales. (check-in: a2b6883a user: dan tags: trunk)
17:53
More work on the OPFS concurrency testing app. (Closed-Leaf check-in: c0458cac user: stephan tags: opfs-unlock-asap)
16:03
JS documentation cleanups. No code changes. (check-in: 18e89a43 user: stephan tags: trunk)
15:32
Update multiplex3.test to account for the fact that the multiplexor xDelete method may return an error even if it manages to delete the first chunk of a file. (check-in: 1a7f3254 user: dan tags: trunk)
15:04
Add NEVER() and ALWAYS() macros on branches that are believed to be unreachable. (check-in: 3a901e88 user: drh tags: agg-with-indexed-expr)
13:19
New test cases. Fix the logic so that it works for GROUP BY aggregates that do not require sorting. (check-in: ef6ebe79 user: drh tags: agg-with-indexed-expr)
02:59
Speed up base64 conversions, and add test with more data for the baseNN conversion to grind. (check-in: 6c84ae4b user: larrybr tags: base_convert)
02:35
Add sqlite3.oo1.DB.prototype.checkRc() and tests for both that method and its class-level counterpart. (check-in: f7eaa6ba user: stephan tags: trunk)
01:41
Merge the latest trunk changes into the agg-with-indexed-expr branch to simplify diffs. (check-in: 38c3d3f1 user: drh tags: agg-with-indexed-expr)
01:40
Add explanatory comment to the new optimization. And add a test case. (check-in: e6c20f61 user: drh tags: agg-with-indexed-expr)
2022-11-23
21:09
Minor JS doc updates. (check-in: 27efd63a user: stephan tags: trunk)
21:03
Add optional zSchema argument to sqlite3_js_db_export(). (check-in: 9c23644b user: stephan tags: trunk)
20:49
OPFS concurrency test: add a URL flag to enable/disable unlock-asap mode. (check-in: 1c1bf22e user: stephan tags: opfs-unlock-asap)
19:03
Add an experimental OPFS VFS-specific URI flag, opfs-unlock-asap, which tells the VFS to release implicit locks ASAP. This permits higher concurrency but hurts performance considerably. This may or may not be obsoleted by other concurrency-related experimentation. (check-in: d23c9170 user: stephan tags: opfs-unlock-asap)
18:51
Aggregates with GROUP BY now make use of expressions on indexes. This code works and gets the correct answer for the test case in the ticket. Lots more testing and documentation is needed, however. (check-in: 8dcf9f20 user: drh tags: agg-with-indexed-expr)
17:56
This attempt at modifying AggInfo to make use of indexed expressions does not work. It gets an incorrect answer for the test case shown in the ticket. (check-in: 84c06023 user: drh tags: agg-with-indexed-expr)
16:39
Initial infrastructure for adding a mode to the OPFS VFS which causes implicit locks to be released ASAP, which increases concurrency at the cost of performance. (check-in: c5b7a971 user: stephan tags: opfs-unlock-asap)
16:08
Update Makefile.in to include new target "sqlite3r.c". For generating "sqlite3r.c" and "sqlite3r.h", versions of the amalgamation that include the recover extension. To build the shell tool against these files, add -DSQLITE_HAVE_SQLITE3R. (check-in: 5f135575 user: dan tags: trunk)
15:52
Remove a bit of over-cleverness which breaks loading of sqlite3.js in some main-thread cases. Broken by [96f76e7616]. (check-in: 220cc4c6 user: stephan tags: trunk)
15:33
OPFS concurrency tester: ensure that the work interval timer does not overlap with the work time. (check-in: 8f207655 user: stephan tags: trunk)
14:13
Further foundation prep work prior to starting to flesh-out the optimizeAggregateUseOfIndexedExpr() routine. (check-in: 23145fe9 user: drh tags: agg-with-indexed-expr)
2022-11-22
22:46
Add more baseNN tests, get oversize error trapping working, and sync w/trunk (check-in: 03819e93 user: larrybr tags: base_convert)
20:58
Merge enhancements and fixes from trunk. (check-in: f8932e04 user: drh tags: agg-with-indexed-expr)
20:37
Add the stub function: optimizeAggregateUsingIndexedExpr(). The hope is that we can fill this in with a routine that does useful optimizations. (check-in: d85bb724 user: drh tags: agg-with-indexed-expr)
20:04
Avoid naming collision between the sha1 and shathree extensions. (check-in: 9ec923b5 user: mistachkin tags: trunk)
19:56
Include the treetrace bitmap comment accidentally omitted from the previous check-in. (check-in: db07471c user: drh tags: trunk)
19:51
Merge trunk fixes and enhancements into the agg-with-indexed-expr branch. (check-in: 07063478 user: drh tags: agg-with-indexed-expr)
19:49
Rename the SELECTTRACE macro to TREETRACE, so that is corresponds to the new CLI command. Renumber all of the bits in the bitmask used to enable various kinds of tracing, and add a trace bitmap decoder in sqliteInt.h. Changes to debugging logic only. No (intentional) changes to production code. (check-in: 8036445a user: drh tags: trunk)
19:12
Sync w/trunk. Ready for merge to trunk. (check-in: ff67460e user: larrybr tags: base_convert)
19:04
Add test/basexx1.test to test is_base85(t), base85(x) and base64(x). Sync w/trunk. (check-in: 4e433454 user: larrybr tags: base_convert)
18:24
Fix the error message in the CLI for "no such VFS". Forum post 1217fdd6b3. (check-in: b344f33d user: drh tags: branch-3.40)
18:24
Fix the error message in the CLI for "no such VFS". Forum post 1217fdd6b3. (check-in: 861af465 user: drh tags: trunk)
16:12
Add Makefile.in targets for sqlite3r.c and sqlite3r.h, versions of the amalgamation that include the recover extension. (Closed-Leaf check-in: 59a837cf user: dan tags: make-sqlite3r.c)
15:48
Bump the version number to 3.40.1. (check-in: d0ca348b user: drh tags: branch-3.40)
15:47
Fix last function pointer in sqlite3Apis init. Reported at forum post eba0faa96d. (check-in: b3795d28 user: drh tags: branch-3.40)
15:43
Since the memory registers used by the columns and functions of an AggInfo object are sequential, it is not neecessary to remember each register separately. We can simply remember the first one and do the math when others are needed. (check-in: dc5bd349 user: drh tags: agg-with-indexed-expr)
15:41
Fix last function pointer in sqlite3Apis init. Reported at forum post eba0faa96d. (check-in: 6d5dc9ee user: larrybr tags: trunk)
14:31
Omit the unnecessary AggInfo.mnReg field. (check-in: d79c58ef user: drh tags: agg-with-indexed-expr)
14:10
Factor out the allocation of registers for aggregates into a separate subroutine. (check-in: 4475799d user: drh tags: agg-with-indexed-expr)
13:33
This is the first in what is anticipated to be a long sequence of incremental changes aimed at improving aggregate query processing, and in particular helping aggregate queries take better advantage of indexes on expression. The end goal is to resolve ticket [99378177930f87bd], though it remains to be seen whether or not I can get there with this approach. (check-in: cba837ea user: drh tags: agg-with-indexed-expr)
12:47
Convert an ALWAYS() in sqlite3DbSpanDup() into an assert(), for a performance increase and size reduction. (check-in: 21e80a29 user: drh tags: trunk)
2022-11-21
17:40
Split out the debugging code that dumps an AggInfo object into a separate subroutine called printAggInfo() so that it can be invoked interactively during debugging. No changes to production code. (check-in: dc33cfbe user: drh tags: trunk)
16:40
Change the name of the Parse.pIdxExpr field to pIdxEpr so that the name is distinct from all other identifiers in the code and thus less confusing. (check-in: a2962d01 user: drh tags: trunk)
16:03
Merge trunk into wasi-patches branch to clean up the diff view. (check-in: 95de6742 user: stephan tags: wasi-patches)
16:00
OPFS contention test: give each worker a distinct recognizable name instead of a random one. (check-in: 5f564bf7 user: stephan tags: trunk)
15:55
Performance optimization and size reduction in insertCell() by omitting the "pRC" argument and instead returning the result code as an integer. (check-in: bee94d1b user: drh tags: trunk)
14:13
Performance optimization to sqlite3BtreeInsert(). (check-in: b8976ebf user: drh tags: trunk)
13:35
Small performance improvement in sqlite3BtreeTransferRow(). (check-in: dab959ea user: drh tags: trunk)
06:07
Add new JS tests dir to those pushed to the test server. (check-in: 07182dca user: stephan tags: trunk)
05:18
More tweaking of OPFS concurrency measures and the related test app. (check-in: a8d4da15 user: stephan tags: trunk)
04:12
Resolve missing SQLITE_LOCKED result code which triggered a new (since last checkin) exception in the OPFS VFS. Improve output of the OPFS contention tester app. (check-in: 2debbbca user: stephan tags: trunk)
03:50
Add test app for experimenting with multi-worker OPFS concurrency. Tweak OPFS VFS to significantly improve the otherwise "unfortunate" concurrency situation. (check-in: 96f76e76 user: stephan tags: trunk)
02:18
Get clean builds for MS tools. Add build examples for extension glommer (basexx.c) Make sure extensions build for dynamic load and built into shell. (check-in: da940d50 user: larrybr tags: base_convert)
00:11
Fix a base64 decode bug. Provide for convenient inclusion of extension(s) built into the CLI, to simplify testing and for its own sake. Improve comments. Cure collision between base64.c and base85.c when both are in the same translation unit. (check-in: 07543d23 user: larrybr tags: base_convert)
2022-11-20
15:30
Remove check for WASM_WASI macro when detecting wasi compilation mode, as that macro is project-specific. Rely only on __wasi__ (exposed by clang) to detect wasi compilation mode. (check-in: d469ac0c user: stephan tags: wasi-patches)
05:47
js dist: account for a file rename in the previous checkin. (check-in: 469f9011 user: stephan tags: trunk)
05:36
Further minor cleanups in the JS build related to vanilla vs ESM. (check-in: 100a5968 user: stephan tags: trunk)
04:14
Remove an obsolete reference to WASMFS from ext/wasm/index.html. (check-in: 51ff6818 user: stephan tags: trunk)
04:14
Generic cleanups and doc additions in the wasm build files. (check-in: d10f385e user: stephan tags: trunk)
04:13
Add 'snapshot' target to create distinctly-named snapshot builds of the wasm deliverables zip file. (check-in: f7620aa0 user: stephan tags: trunk)
01:15
Minor cleanups in the ESM-related preprocessor filtering. (check-in: 205884a2 user: stephan tags: trunk)
2022-11-19
20:10
New assert()s confirm that BTREE_PREFORMAT must be the same value as OPFLAG_PREFORMAT. (check-in: f40bf2c6 user: drh tags: trunk)
19:37
Performance optimization in sqlite3BtreeInsert(). (check-in: 9776fa31 user: drh tags: trunk)
18:43
Performance improvement and size reduction in balance_nonroot(). (check-in: 715bc81e user: drh tags: trunk)
18:17
Small performance improvement and size reduction in btree. (check-in: daa07149 user: drh tags: trunk)
16:16
Get tester1.js working via an ES6 worker module and add that variant to the dist zipfile. (check-in: 90480586 user: stephan tags: trunk)
15:03
Elide a wasi-incompatible shell.c block in SQLITE_WASI builds. (check-in: 9b8b15a7 user: stephan tags: wasi-patches)
14:18
Improved comments on the pageFreeArray() routine of btree.c. No changes to code. (check-in: 0c2adc6d user: drh tags: trunk)
13:09
Streamline the decodeFlags() routine in btree.c for a small performance increase. (check-in: 4cb28521 user: drh tags: trunk)
07:44
Default to SQLITE_THREADSAFE=0 and SQLITE_OMIT_LOAD_EXTENSION for wasi builds. (check-in: 382ba3b2 user: stephan tags: wasi-patches)
07:39
Account for lack of mmap(), getpid(), and shared memory APIs in wasi. (check-in: 80ff026f user: stephan tags: wasi-patches)
07:17
Preliminary patches to get sqlite3.c building as-is in WASI environments. (check-in: 19c04d71 user: stephan tags: wasi-patches)
05:26
Add build of sqlite3.mjs (ES6 module), add a test app for it, and include it in the dist build. (check-in: 2e783670 user: stephan tags: trunk)
02:58
Integrate a custom preprocessor to the JS build process to facilitate creation of both vanilla JS and ES6 Module builds from the same source files. There is still some build-level reworking pending to make an ESM build a first-class deliverable. (check-in: 10c723d9 user: stephan tags: trunk)
02:51
More work towards creation of a ES6 JS module. (Closed-Leaf check-in: 6b826e70 user: stephan tags: js-cpp)
02:39
New extensions for base85 and base64 conversion UDFs (check-in: 5cc1fe1d user: larrybr tags: base_convert)
02:32
Create new branch named "base_convert" (check-in: 0cbf5540 user: larrybr tags: base_convert)
00:22
Small performance optimization in btree.c. (check-in: f710cce1 user: drh tags: trunk)
00:08
Databases created using sqlite3_deserialize() should report their filename as an empty string, not as "x". Fix for ticket [53043c9793715f08]. (check-in: ff494449 user: drh tags: trunk)
2022-11-18
17:57
Update the version number to 3.41.0 to begin the next development cycle. (check-in: 5c669f5f user: drh tags: trunk)
17:50
Add the SQLITE_DBCONFIG_LENIENT_JSON configuration option. Modify the built-in JSON routines such that when this setting is active, arguments that that ought to be JSON but still give a reasonable result (ex: NULL) rather than raising an error. (Leaf check-in: 186db57d user: drh tags: lenient-json)
15:22
shell.c.in: on non-Windows platforms, check for $XDG_CONFIG_HOME/sqlite3/sqliterc before ~/.sqliterc, per request in forum post 7a16582b1e403c81. (check-in: 17065d09 user: stephan tags: trunk)
02:29
Replace use of cpp with the fit-to-purpose c-pp to avoid cpp's C-centric/JS-unfriendly quirks. (check-in: 49d70f07 user: stephan tags: js-cpp)
2022-11-17
19:24
Fix corner cases in UTF8 handling in the REGEXP extension. Forum post 3ffe058b04. (check-in: abb18f61 user: drh tags: trunk)
15:21
Merge trunk into js-cpp branch. (check-in: e047b33d user: stephan tags: js-cpp)
14:40
Use the log10() and log2() functions from the standard C library to implement the equivalent SQL functions, in the hope that this will prevent reported precision problems. See forum post cfceb1230bdcfd84 and the surrounding thread. (check-in: 7c572d02 user: drh tags: trunk)
13:58
Split out the documentation for sqlite3_value_encoding() into its own page and make it clear that this interface is intended for testing and debugging only. Forum thread c9f445453da950ad. Comment changes only - no changes to code. (check-in: 9048a766 user: drh tags: trunk)
01:24
Raise an error if an attempt is made to compile the CLI with the SQLITE_OMIT_COMPLETE option, since sqlite3_complete() really is necessary for the CLI to operate sanely. (check-in: a119a9e2 user: drh tags: trunk)
2022-11-16
21:52
Change a self.X JS reference to X to account for a symbol resolution discrepancy between vanilla JS and ES6 modules, as explained in forum post 801d8f77e5115141. (check-in: 0590de4d user: stephan tags: trunk)
21:39
wasm build: include FTS5 instead of FTS4, per /chat and HN discussions. (check-in: 85c3f2ac user: stephan tags: trunk)
19:57
Fix harmless typo in comment, reported by Debian in Fossil https://fossil-scm.org/forum/forumpost/15f7327318. (check-in: 5689f0d9 user: drh tags: trunk)
19:53
Avoid returning SQLITE_SCHEMA if the first query run on a connection is "SELECT nosuchcolumn" or similar. Forum post c1798f77ef (check-in: 3dc4f75d user: drh tags: trunk)
16:14
Merge version 3.40.0 into the reuse-schema branch. (check-in: 2aec00a7 user: drh tags: reuse-schema)
16:11
Merge the 3.40.0 release into the begin-concurrent-pnu-wal2 branch. (check-in: a090de41 user: drh tags: begin-concurrent-pnu-wal2)
16:05
Merge the 3.40.0 release changes into the begin-concurrent-report branch. (check-in: 9fc62410 user: drh tags: begin-concurrent-report)
16:00
Merge the 3.40.0 release into the wal2 branch. (check-in: 2df915ef user: drh tags: wal2)
15:59
Merge 3.40.0 into the begin-concurrent branch. (check-in: a06d57ee user: drh tags: begin-concurrent)
12:10
Version 3.40.0 (check-in: 89c459e7 user: drh tags: trunk, release, major-release, version-3.40.0)
2022-11-14
19:42
Previous change to the fake_big_file command in the test harness was not correct. This one should fix the problem. (check-in: 6ee57a2e user: drh tags: trunk)
18:57
Change the fake_big_file test command so that it fails for files larger than 2MB on Windows, as we have observed that Window10 will sometimes bluescreen when operating on very large sparse files. (check-in: d39ffd2a user: drh tags: trunk)
17:48
Avoid running bigsort.test with SQLITE_DEBUG builds. The assert() statements added in [7c96a56] make it too slow. (check-in: fa68dd89 user: dan tags: trunk)
13:41
Merge the 3.40.0 rc1 changes into the reuse-schema branch. (check-in: 886788b6 user: drh tags: reuse-schema)
13:18
Merge the 3.40.0 rc1 changes into the begin-concurrent-pnu-wal2 branch. (check-in: b0e2b9aa user: drh tags: begin-concurrent-pnu-wal2)
13:10
Merge the 3.40.0 rc1 changes into the wal2 branch. (check-in: a5a610a6 user: drh tags: wal2)
12:54
Merge the 3.40.0 rc1 changes into the begin-concurrent-report branch. (check-in: 4d3f2531 user: drh tags: begin-concurrent-report)
12:44
Merge 3.40.0 rc1 into the begin-concurrent branch. (check-in: 5ba588e7 user: drh tags: begin-concurrent)
2022-11-13
19:29
Remove some outdated code comments. No code changes. (check-in: 80ff592a user: stephan tags: trunk)
2022-11-12
17:17
Disable the ability to change the schema_version cookie when SQLITE_DBCONFIG_DEFENSIVE mode is enabled. This is a security enhancement inspired by the question in forum post 2b9cc3dae1f1e5f6. (check-in: 1d81381e user: drh tags: trunk)
2022-11-10
23:10
Remove unnecessary tabs in the ChaCha20 implementation. Forum post 0cdce5db8c. (check-in: b7179efb user: drh tags: trunk)
19:19
Avoid returning SQLITE_SCHEMA if the first query run on a connection is "SELECT nosuchcolumn" or similar. Forum post c1798f77ef (Closed-Leaf check-in: d31c019f user: dan tags: schema-error-fix)
13:22
Automatically relinquish implicitly-acquired OPFS file locks during VFS idle time in an attempt to help alleviate cross-tab locking contention like that described in forum post 58a377083cd24a. (check-in: 8daf24ff user: stephan tags: trunk)
13:14
Rework automatically acquired OPFS locks to be released during idle time. This eliminates the performance hit reported in [46304ba057707c]. (Closed-Leaf check-in: a7fe91af user: stephan tags: opfs-lock-without-xlock)
11:35
OPFS: if an op which needs a lock is called when no lock has been obtained, automatically lock it at the start of the op and unlock it at the end of that op. This is an attempt to alleviate the cross-tab contention described in forum post 58a377083cd24a but it increases speedtest1 run time by approximately 4x. Perhaps auto-lock can be combined with the older idle-time-based auto-unlock to unlock such locks (but not those from xLock()) to improve this? (check-in: 46304ba0 user: stephan tags: opfs-lock-without-xlock)
2022-11-09
11:17
Better handle an error in the fts5 integrity-check code. dbsqlfuzz e87c62f9b67ea21aebdc36ab71cab7cc3eda8dc3. (check-in: ae43e970 user: dan tags: trunk)
11:02
Additional defense against corrupt database files in dbdata.c. (check-in: 2e70d1e5 user: drh tags: trunk)
10:17
Increase the precision of the nData parameter to the dbdataValue() routine inside the sqlite_dbdata virtual table, to avoid the possibility of integer overflow. (check-in: 295447b4 user: drh tags: trunk)
2022-11-08
20:04
Fix a problem with URI formatting in calls to sqlite3rbu_vacuum(zDb, NULL) causing problems on win32. First reported here <https://sqlite.org/forum/forumpost/a7ae915a9d>. (check-in: 77ccc8ea user: dan tags: trunk)
19:36
Do not attempt to run test script dbpagefault.test with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 901918c4 user: dan tags: trunk)
15:49
Fix a problem in main.mk preventing the amalgamation-testfixture target from building. (check-in: ccf00a0e user: dan tags: trunk)
2022-11-07
19:40
Further improvements to the handling of the u32 and u16 typedefs in the shell.c source file. (check-in: 55a19677 user: drh tags: trunk)
18:36
Improve the ability of mkshellc.tcl to remove redundant typedefs from the generated shell.c code. This is needed to get shell.c to build on older C compilers. (check-in: 3645585f user: drh tags: trunk)
18:09
Update this branch to match latest trunk changes. (check-in: 833f6374 user: dan tags: reuse-schema)
18:00
Add the sqlite3rbu_rename_handler() API. To override the default routine that RBU uses to rename files. (check-in: ebbb1f88 user: dan tags: trunk)
17:21
Minor doc updates in speed-check.sh. No code changes. (check-in: d2ed4116 user: stephan tags: trunk)
15:23
Fix an obsolete comment. (check-in: e377c0a1 user: drh tags: trunk)
15:01
Fix typo in comment. (check-in: c3b94d7d user: drh tags: trunk)
13:06
Add sqlite3.wasm.alloc.impl() as a "public back door" into the low-level non-throwing allocator. Correct sqlite3.WasmAllocError constructor to behave like its usages expect it to and add tests for that. (check-in: cea8bf9a user: stephan tags: trunk)
12:21
Fix requirements marks so that they match documentation corrections. (check-in: 10d6189d user: drh tags: trunk)
12:12
Minor wasm doc touchups. No code changes. (check-in: 2c448368 user: stephan tags: trunk)
11:19
Fix the documentation regarding negative length parameters for sqlite3_result_text() interfaces, to point out that the length parameter to sqlite3_result_text64() cannot be negative. Forum post cf1d043b07. Comment/documentation change only. (check-in: 80165076 user: drh tags: trunk)
11:05
Make sure that the recoverStrlen() function (used internally by the new recovery extension) is 64-bit safe. (check-in: ea30a6bf user: drh tags: trunk)
2022-11-06
17:19
The recoverAssertMutexHeld() function is for testing and verification only and should be a harmless no-op for production builds. [forum/forumpost/b4f2c7d402|Forum post b4f2c7d402]. (check-in: d7550471 user: drh tags: trunk)
13:12
shell.c.in: on non-Windows platforms, check for $XDG_CONFIG_HOME/sqlite3/sqliterc before ~/.sqliterc, per request in forum post 7a16582b1e403c81. (Closed-Leaf check-in: 49c6e438 user: stephan tags: sqliterc-xdg-config)
2022-11-05
19:26
Update test file dbpagefault.test to account for the restriction on using SQLITE_VTAB_DIRECTONLY virtual tables from within triggers. (check-in: 2b68fc8a user: dan tags: trunk)
17:52
Fix harmless compiler warnings. (check-in: fe44e7ef user: drh tags: reuse-schema)
15:31
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 224eaf26 user: drh tags: reuse-schema)
2022-11-04
19:09
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: aa2e247b user: drh tags: begin-concurrent-pnu-wal2)
18:58
Merge the latest trunk enhancements into the wal2 branch. (check-in: ca63a1be user: drh tags: wal2)
18:47
Merge the latest trunk enhancements into the begin-concurrent-report branch. (check-in: d8568a84 user: drh tags: begin-concurrent-report)
18:33
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: b361ee98 user: drh tags: begin-concurrent)
18:32
Tweaks to recover module test scripts to work with various permutations. (check-in: 454c61e8 user: dan tags: trunk)
17:07
Another test case fix for auto-vacuum builds. (check-in: c1c47eff user: dan tags: trunk)
16:39
Fixes to recover module test scripts so that they may be used with SQLITE_DEFAULT_AUTOVACUUM and SQLITE_SECURE_DELETE builds. (check-in: 0e5597ce user: dan tags: trunk)
15:17
Fix Tcl tests so that they again build and run with SQLITE_OMIT_VIRTUALTABLE defined. (check-in: 06a9dbea user: dan tags: trunk)
12:59
Remove an unimportant testcase() macro that is no longer reachable due to the improvement in corruption detection. (check-in: cd7e3568 user: drh tags: trunk)
11:59
Add another test case for the OP_Found fix. (check-in: 6cdd64a4 user: dan tags: trunk)
11:54
Enhance the ability of the OP_Found and similar opcodes to detect truncated index records and report SQLITE_CORRUPT. dbsqlfuzz 2b12f90aeff8e081706c7e9b58834f04869f446c. Test cases in TH3. (check-in: 059a09da user: drh tags: trunk)
09:02
Correct sqlite3-wasm.c's SQLITE_DEFAULT_CACHE_SIZE (it's measured in kb, not bytes). (check-in: 479ad980 user: stephan tags: trunk)
2022-11-03
22:51
Add experimental esm target to ext/wasm/GNUmakefile to tell emcc to generate sqlite3.mjs (ES6 module) instead of sqlite3.js. Related to discussion at ed4596cf8496a39b. (check-in: e55d8eba user: stephan tags: trunk)
22:14
Experimentally use clang's C preprocessor to filter #ifdef's out of the generated sqlite3-api.js, the goal being to see if we can feasibly use cpp to include ES6 module-specific code in the main code base and conditionally filter it out. (check-in: 718a6d37 user: stephan tags: js-cpp)
21:21
Globally replace '' with "" for empty JS strings to please C preprocessor. (check-in: e92e1f42 user: stephan tags: trunk)
21:08
Experimental changes that try to identify indexes as covering when they contain expressions which do cover all data uses. This check-in does not work, because the AggInfo object might still refer to individual columns. The purpose of this check-in is to preserve the idea. I might come back to it later. (Leaf check-in: 018914a5 user: drh tags: indexed-expr-exp)
2022-11-02
14:08
Minor build cleanups and fix a harmless race condition in the OPFS part of tester1.js. (check-in: 70ee6ee0 user: stephan tags: trunk)
14:08
Clarify documentation regarding the --recovery-db option to ".recover" and the magic 789 configuration option it is associated with. (check-in: f6fa0cff user: drh tags: trunk)
13:09
Minor improvements to API documentation in comments for the recovery extension. (check-in: ed1c3515 user: drh tags: trunk)
11:53
Add sqlite3_wasm_vfs_create_file() to replace Emscripten's FS.createDataFile() in a (mostly) VFS-agnostic way. Add a test for worker1's export (to bytearray) support. Re-add worker1 open-from-bytearray using sqlite3_wasm_vfs_create_file() but it's untested (requires a new interactive test app or maybe reconsideration). (check-in: b35e1225 user: stephan tags: trunk)
11:25
Emcc seems confused by SQLITE_DEBUG, for reasons unknown. Use NDEBUG instead to simplify the #ifdef logic in sqlite3recover.c. (check-in: 2610779a user: drh tags: trunk)
08:49
Fix a symbol name typo which broke and exception-handling case in OPFS xOpen(). (check-in: 5bc83d56 user: stephan tags: trunk)
08:10
Fix a missing symbol in non-SQLITE_DEBUG builds. (check-in: 17cdcad6 user: stephan tags: trunk)
2022-11-01
21:42
Fix a harmless compiler warning. (check-in: 663a8916 user: drh tags: trunk)
19:35
Instead of (const char*), use a special type - sqlite3_filename - as the filename argument passed to VFS method xOpen(). (check-in: 90df04e5 user: dan tags: trunk)
18:56
Fix harmless compiler warnings. (Closed-Leaf check-in: de829770 user: drh tags: sqlite3_filename)
17:43
Instead of (const char*), use a special type - sqlite3_filename - as the filename argument passed to VFS method xOpen(). (check-in: bd1fe4de user: dan tags: sqlite3_filename)
14:13
Fix compilation errors in the recover API seen with MSVC. (check-in: 78d17c4f user: mistachkin tags: trunk)
13:12
Fix a #ifdef involving SQLITE_OS_KV that was adding code unnecessarily. (check-in: b6c1b6e4 user: drh tags: trunk)
12:10
Enforce affinity on materialized tables for subqueries and views. Also, do not allow UNION ALL flattening if the affinity of a result column varies between different arms of the compound. This is a fix for ticket [57c47526c34f01e8]. (check-in: 88a05141 user: drh tags: trunk)
12:01
Improvements to comments. Change the "optimization_control" TCL command in the test harness so that it returns the new optimization mask, for verification. (Closed-Leaf check-in: a3a50012 user: drh tags: tkt-57c47526)
11:09
Minor internal cleanups in the js pieces. (check-in: 271391b4 user: stephan tags: trunk)
07:49
Significant cleanups and expansion of the sqlite3.opfs utilities. Add oo1.DB.dbVfsName(). Add VFS name to worker1:open's arguments and result. (check-in: 86a341d7 user: stephan tags: trunk)
01:07
Do not flatten a UNION ALL subquery where the column affinities do not match on all arms. Force that subquery to be materialized. (check-in: 1b8a1288 user: drh tags: tkt-57c47526)
00:52
Enforce column affinity on the materialization of a subquery or view. (check-in: b6692de3 user: drh tags: tkt-57c47526)
2022-10-31
18:11
Make the UPDATE method of the sqlite_dbpage virtual table rebust against OOM errors. Forum post bbcf0dd6ca. Test case in TH3. (Leaf check-in: 852f2c95 user: drh tags: branch-3.39)
18:04
Extra OOM check in shell_error_context() of the CLI. forum post 5708841db0. (check-in: d6893183 user: drh tags: branch-3.39)
18:01
Make the UPDATE method of the sqlite_dbpage virtual table rebust against OOM errors. Forum post bbcf0dd6ca. Test case in TH3. (check-in: d15c9a4a user: drh tags: trunk)
13:50
Worker1: use a list, rather than a single slot, to manage the default db link so that we can keep the least-recently-opened db as the default. Re-introduce worker1.export() but do not yet expose it until an equivalent import() (or open() option) is implemented. (check-in: c7750c10 user: stephan tags: trunk)
11:53
Internal tweaks to the OPFS VFS result codes. (check-in: 32e1a2d2 user: stephan tags: trunk)
11:09
Add oo1.DB.exec() 'returnValue' option, which specifies what exec() should return. Defaults to the db object and enables direct return of the result rows array or a list of the individual SQL statements. Other code-adjacent internal cleanups. (check-in: 69d36a6a user: stephan tags: trunk)
10:53
Avoid a segfault that could occur when running the recover API on a database handle with memory-mapping enabled. (check-in: e02c6972 user: dan tags: trunk)
01:22
Extra OOM check in shell_error_context() of the CLI. forum post 5708841db0. (check-in: cb12ac5d user: drh tags: trunk)
2022-10-30
11:39
Add oo1.DB.selectArray() and selectObject(). (check-in: 7660db2a user: stephan tags: trunk)
11:22
Refactoring towards being able to distinguish locking-related errors from non-locking errors in OPFS VFS operations. On a branch because it's not yet clear whether this is a misuse of the SQLITE_IOERR_... codes. Edit: indeed, this is a misuse of the result codes. (Closed-Leaf check-in: 646fe2ce user: stephan tags: opfs-locking-result-codes)
10:24
Adjust automatic OPFS locking retries such that they will wait up to a total of 3 seconds spanning 4 attempts. (check-in: bbce49d8 user: stephan tags: trunk)
09:47
Minor WASM build cleanups. Enable custom Module.instantiateWasm() when not in WASMFS mode (where it doesn't work). Add sqlite3.debugModule URL param to enable some module-init-time debugging output. (check-in: 50f67884 user: stephan tags: trunk)
08:39
Reduce wasm module's starting memory from 128mb to 16mb. The latter value is needed only for WASMFS-based batch-runner.js, as WASMFS builds cannot be configured for dynamic memory growth without a tremendous performance hit. (check-in: ed9d93c4 user: stephan tags: trunk)
07:01
Minor updates to the Windows batch tools. (check-in: b42f5620 user: mistachkin tags: trunk)
2022-10-29
12:31
Update ext/wasm/README.md for recent developments. (check-in: c76ec31e user: stephan tags: trunk)
10:14
More styling of module-symbols.html. (check-in: a36f42a8 user: stephan tags: trunk)
09:45
Expand and document the wasm doc-update make rules. Extend the dist rules to fail more readily if there's a problem. (check-in: 362ec11e user: stephan tags: trunk)
07:54
Move the sqlite3.capi.wasm namespace to sqlite3.wasm. This causes a tiny bit of naming confusion with the sqlite3.wasm *file*, but seems to make more sense than having it as a sub-namespace of capi. (check-in: 3f16eb18 user: stephan tags: trunk)
2022-10-28
18:52
Fix harmless compiler warnings in testing code. (check-in: 2f536123 user: drh tags: trunk)
18:35
Add sqlite3recover() support to fuzzcheck. (check-in: e65c5bdc user: drh tags: trunk)
14:33
Remove sqlite3_interrupt() from the WASM build, as it is essentially impossible to employ in JS's threading model. (check-in: e8538759 user: stephan tags: trunk)
11:40
Add ext/wasm/module-symbols.html. Adjacent minor JS touchups. (check-in: 24f12e68 user: stephan tags: trunk)
10:36
Minor sqlite3.oo1 API reorg prompted by documenting. (check-in: 55237924 user: stephan tags: trunk)
2022-10-27
23:17
Fix a minor problem with sqlite_dbdata. (check-in: 58c2e492 user: drh tags: trunk)
20:27
Fix another crash in the recover extension triggered by a corrupt database. (check-in: d1253773 user: dan tags: trunk)
19:06
Fix another problem to do with recovering from in-memory databases. (check-in: 5a7bfd4a user: dan tags: trunk)
19:02
Ensure that the VFS wrapper in the recover extension does not attempt to invoke undefined methods on the underlying VFS. (check-in: 347c5751 user: dan tags: trunk)
18:35
Fix an assert() failure in the recover extension triggered by a zero value as the first page-number in an overflow page chain. (check-in: 44c0874c user: dan tags: trunk)
18:20
In the CLI, ensure that input to utf8_width_print is not NULL, or if it is, change it to an empty string. For for the problem reported by forum post 2961cf13eec61876. (check-in: 9ecc9d25 user: drh tags: trunk)
18:19
Change the name of the ".recover" command option "--freelist-corrupt" to "--ignore-freelist". (check-in: afce8443 user: dan tags: trunk)
14:41
speedtest1.html: when vfs==kvvfs, increase --size from 2 to 4, as enabled by [a4d40f6346e7]. --size 5 is 4.96mb out of (supposedly) 5mb, which works but is a bit too close to the edge. (check-in: a608d584 user: stephan tags: trunk)
14:28
Automatically set temp_store=MEMORY if the VFS is kvvfs. (check-in: a4d40f63 user: drh tags: trunk)
14:00
Do not accept a NULL pointer for the filename in KVVFS. (check-in: fdecbd3b user: drh tags: trunk)
12:46
The kvvfs VFS should remember the page size when writing to the database. (check-in: fc5503c8 user: drh tags: trunk)
11:32
Re-enable the .recovery and .dbinfo commands in shell.c.in in the fiddle build, as those were fixed by [3d20d77a3511] and [cd0aa27d1732]. (check-in: ba3a7a4a user: stephan tags: trunk)
11:25
Do not use sqlite3_result_text16() in the recover extension if SQLITE_OMIT_UTF16 is defined. (check-in: 3d20d77a user: dan tags: trunk)
11:12
Fix a problem with running ".recover" on an in-memory database. (check-in: 87b4cca2 user: dan tags: trunk)
10:51
Do not use sqlite3_mutex_xxx() functions in sqlite3recover.c when built with SQLITE_THREADSAFE=0. (check-in: cd0aa27d user: dan tags: trunk)
03:57
Minor doc typo fixes. (check-in: ed8d3f25 user: stephan tags: trunk)
03:56
Restructure and simplify the feature-detection #defines of the recovery support in shell.c.in and disable it when building fiddle because it uses features we elide from the wasm build (e.g. utf16), leading to link errors. (check-in: ddd10c05 user: stephan tags: trunk)
03:03
Expose sqlite3_randomness() to WASM and add a custom binding for it which can populate a JS byte array. Add WhWasmUtil.isPtr(). (check-in: 333e6707 user: stephan tags: trunk)
2022-10-26
21:14
Disable the push-down optimization for sub-queries that are INTERSECT, UNION or EXCEPT compounds. dbsqlfuzz a34f455c91ad75a0cf8cd9476841903f42930a7a. This corrects an issue that was introduce 12 days earlier by [ed14863dd72e35fa]. (check-in: 346a3b12 user: dan tags: trunk)
20:12
Remove an unused variable from the recovery extension. (check-in: a029dddf user: drh tags: trunk)
18:41
Add the "recover" extension in ext/recover/, for salvaging data from corrupt databases. (check-in: a8207925 user: dan tags: trunk)
18:29
Remove an undefined left-shift operation from the recover extension. (Leaf check-in: a6708235 user: dan tags: recover-extension)
18:22
Merge further changes from trunk, including fix to dbdata.c. (check-in: bcf6b48d user: dan tags: recover-extension)
18:04
Make the shell .recover command and the dbdata.c module more robust in the face of corrupted databases. (check-in: 4eef562a user: dan tags: trunk)
15:40
Correct misuse of localhost-mode-only symbol S in fiddle-worker.js, which should fix the outage reported in forum post 67d985ac0bbe407f. (check-in: 3b5aa50c user: stephan tags: trunk)
15:34
Corrected link to fiddle in ext/wasm/index.html (broken by [3d7b4f36b7dd]). (check-in: 6efa0bae user: stephan tags: trunk)
11:27
Replace the newly-removed oo1.DB.getFilename() with DB.dbFilename() with the hope that the distinction from the dbInstance.filename property is clearer. (check-in: 0b80543d user: stephan tags: trunk)
11:12
Remove oo1.DB.hasFilename() and getFilename(), as they are unnecessary. (check-in: 75c546b9 user: stephan tags: trunk)
11:11
Remove the sqlite3StdTypeMap global constant that was made obsolete by [aa6e908619624867]. (check-in: 3dfdfb3f user: drh tags: trunk)
06:05
Add --download-version flag to ext/wasm/version-info.c and correct dist target's output version format to match. (check-in: 6f2a40d0 user: stephan tags: trunk)
2022-10-25
16:57
Add doc page link to the wasm dist README.txt. (check-in: c2380668 user: stephan tags: trunk)
16:04
Correct -O level for fiddle build when built from the top-most directory (-Os instead of -O0). (check-in: ff4fc29c user: stephan tags: trunk)
15:59
Rename fiddle.html to index.html and move fiddle push-to-server rules from GNUmakefile into fiddle.make. (check-in: 3d7b4f36 user: stephan tags: trunk)
15:38
speedtest1: use the current (or default) vfs->xDelete method to unlink the db. This is specifically necessary when running the opfs vfs in a wasm build of speedtest1. This worked without this fix until recently because the affected test code was performing similar acrobatics in its stead. (check-in: d3c830bd user: stephan tags: trunk)
13:46
Fix the ".dump" command in the CLI so that it is more rebust against corrupt database files. At the same time, enhance the sqlite3_strglob() and sqlite3_strlike() interfaces so that they will do sensible things with NULL string pointers. (check-in: 681c85ef user: drh tags: branch-3.39)
13:44
Enhance the sqlite3_strglob() and sqlite3_strlike() interfaces so that they will do sensible things with NULL string pointers. This is an extra layer of defense against bugs such as reported by forum post 730b554179. (check-in: 8ba9c884 user: drh tags: trunk)
13:42
Make the ".dump" command of the CLI more robust against malformed databases. See forum post 730b554179. (check-in: 0573edfb user: drh tags: trunk)
11:05
Merge latest trunk changes with this branch. (check-in: 757e3f58 user: dan tags: recover-extension)
08:41
Minor doc tweaks in the JS GNUmakefile. (check-in: 9c8df130 user: stephan tags: trunk)
08:15
Remove persistence from the 'reverse log order?' checkbox in tester1.js to eliminate an inconsistency between the main-thread and worker-thread modes (the latter having no option for persistence of that setting). (check-in: ecf906b0 user: stephan tags: trunk)
08:06
Minor cleanups and doc improvements in the OPFS sqlite3_vfs proxy. (check-in: 48645f7b user: stephan tags: trunk)
2022-10-24
21:58
This check-in attempts to make the SrcItem object smaller by combining the zDatabase and pSchema fields into a single union. It mostly works, but there are some issues, and the performance savings is minimal. So it is side-tracked onto this dead-end branch. (Closed-Leaf check-in: 80fbb30f user: drh tags: failed-opt-attempt)
18:42
Fix typo in comment. (check-in: f65c9565 user: drh tags: trunk)
18:33
Add a comment to a previously undescribed member of the Walker union. (check-in: 69d70422 user: drh tags: trunk)
15:51
Use the same "PRAGMA synchronous" setting for the output of a "VACUUM INTO" as are configured for the database being vacuumed. (check-in: 86cb21ca user: dan tags: trunk)
13:50
Improve the ability of the query planner to recognize covering indexes even on tables with more than 63 columns and where the index is over columns beyond the 63rd column. (check-in: 3d1992de user: drh tags: branch-3.28)
13:20
Improve the ability of the query planner to recognize covering indexes even on tables with more than 63 columns and where the index is over columns beyond the 63rd column. (check-in: f058773e user: drh tags: trunk)
12:38
Update the fuzzinvariant logic in fuzzcheck to the latest code from dbsqlfuzz. (check-in: 739ad584 user: drh tags: trunk)
11:10
Fix built-in documentation for the ".mode qbox" command in the CLI. (check-in: 3d7ea33b user: drh tags: trunk)
11:02
Test cases for covering indexes on wide tables. (Closed-Leaf check-in: 64c3777e user: drh tags: covering-index-enh)
2022-10-23
20:09
The wide-table covering index detection must take into account aggregate queries. (check-in: 9ac73f83 user: drh tags: covering-index-enh)
2022-10-22
23:09
More frequently send the complete SELECT statement into sqlite3WhereBegin() so that it can more accurately determine index coverage. (check-in: f6d09c5a user: drh tags: covering-index-enh)
20:13
Enhance the query planner with the ability to discern when an index is covering even when it indexes columns well beyond the 63rd column. (check-in: 1390417b user: drh tags: covering-index-enh)
14:16
This branch attempts to improve the detection of covering indexes. This first check-in merely improves a parameter name to sqlite3WhereBegin() to be more descriptive of what it contains, and ensures that a subroutine is not inlines so that sqlite3WhereBegin() runs slightly faster. (check-in: cadf5f6b user: drh tags: covering-index-enh)
13:49
Clarification on the meaning of SrcList and SrcItem and especially the SrcItem.colUsed and Index.colNotIdxed fields. Comment changes only - no changes to code. (check-in: d96f6cc8 user: drh tags: trunk)
2022-10-21
20:12
Begin transitioning the fixed-length (64-bit) bitmap used to keep track of the subset of columns of a table that are used by a query into a more general structure that can work with wide tables. Experimental. (Closed-Leaf check-in: 5dd78588 user: drh tags: column-set)
17:48
Add SQLITE_DQS to the compileoptions_used list, per request in forum post 8b1060122b. Force DQS=0 in sqlite3-wasm.c. (check-in: fcd9e0db user: stephan tags: trunk)
17:37
Macro name typo fix in OS_KV builds. (check-in: 9cf1142b user: stephan tags: trunk)
17:18
Ensure that the RtreeCell object in rtreeUpdate has all bytes initialized. (check-in: 1e38742b user: drh tags: trunk)
06:58
Add kvvfs tests to tester1.js. Fix a scopedAlloc() misuse in oo1.DB ctor caused by refactoring earlier this morning (and caught by these new tests). (check-in: 8e0f001a user: stephan tags: trunk)
06:26
Add timing info and OPFS sanity tests to tester1.js (check-in: 99915b00 user: stephan tags: trunk)
05:27
Expose sqlite3_vfs_unregister() to WASM and unregister kvvfs in Worker threads to avoid its unintended use there (in contexts other than local/sessionStorage). Correct registration of window functions, extend oo1.DB.createFunction() to support window functions, and add window function tests to tester1.js. Correct an incorrect 1-arg handling case for DB.exec(). Add per-test assertion counts to tester1.js. (check-in: f07ce154 user: stephan tags: trunk)
2022-10-20
23:48
Make semantics for UDF xFinal() result handling and error reporting handling more flexible. (check-in: 89f3e198 user: stephan tags: trunk)
21:28
Add more JS tests. Flesh out the aggregate UDF tests to use sqlite3_aggregate_context() so that they can each be used multiple times in the same statement. Add sqlite3_js_aggregate_context() convenience helper. (check-in: 9d034ef5 user: stephan tags: trunk)
18:58
Apply magic.txt correction and addition reported in forum post 2d2366a04a0385. (check-in: 9bf26e2a user: stephan tags: trunk)
18:31
Rename sqlite3_web_... to sqlite3_js_... Document the worker1.close.unlink option. Fix unlink usage in speedtest1.html. Minor JS build cleanups. (check-in: ac9af71b user: stephan tags: trunk)
16:30
Add a bit to the optimization disabling mask for the indexed expression optimization. (check-in: 56df1482 user: drh tags: trunk)
16:22
Add test case for previous commit. (check-in: 535867a9 user: dan tags: trunk)
16:12
Only enable the bMaybeNullRow flag on IndexedExpr for an index on an expression, not on a virtual column. But do enable it for the right operand of a right join. (check-in: a9657c87 user: drh tags: trunk)
13:36
The generalized indexed expression optimization of [2435112867fbd7b6] makes the prior [a47efb7c8520a011] enhancement from 2017 obsolete. This check-in removes the older optimization. (check-in: 56442c9b user: drh tags: trunk)
10:46
Fix minor problems in test1.c test code. (check-in: 6e545e2b user: dan tags: trunk)
05:14
Rework sqlite3_wasm_vfs_unlink(), add sqlite3_wasm_db_vfs(), update some docs. (check-in: cdd46858 user: stephan tags: trunk)
04:00
Minor internal JS cleanups. (check-in: 818ef0b5 user: stephan tags: trunk)
2022-10-19
18:04
In the CLI, never use strcmp() or strncmp() directly. Instead use wrapper functions cli_strcmp() and cli_strncmp() that work correctly even if the input is a NULL pointer. Forum post 142b868da7560d0b. (check-in: 7450a561 user: drh tags: trunk)
18:03
Move file /ext/misc/dbdata.c to the /ext/recover/ directory. (check-in: f6d5ac80 user: dan tags: recover-extension)
11:58
Fix references to "SrcList_item" in comments as that object has since [bfd5bf2c73110fcb] (2021-02-21) been called "SrcItem". Comment changes only. No changes to code. (check-in: e3648a07 user: drh tags: trunk)
11:22
If a query uses an index where one or more of the columns of the index is an expression and if the corresponding expression is used elsewhere in the query, then strive to read the value of the expression out of the index, rather than recomputing it. This is the "Indexed Expression Optimizations". (check-in: 3da10328 user: drh tags: branch-3.28)
10:56
If a query uses an index where one or more of the columns of the index is an expression or a virtual column, and if the corresponding expression is used elsewhere in the query, then strive to read the value of the expression out of the index, rather than recomputing it. This is the "Indexed Expression Optimizations". (check-in: 24351128 user: drh tags: trunk)
07:51
Update the wasm/js 'push' rule to account for this morning's changes. (check-in: c4a0f745 user: stephan tags: trunk)
07:34
Rename several demo/test files and include more of them in the end-user dist archive. (check-in: 9c85835f user: stephan tags: trunk)
06:14
Minor wasm/js build tweaks. (check-in: bcbee1ec user: stephan tags: trunk)
06:06
Update the dist rules for this evening's js/wasm build changes and include an index.html specifically for the subset of apps included in the dist archive. (check-in: a0ef0f32 user: stephan tags: trunk)
04:44
Apply considerable acrobatics to get the JS/WASM deliverables building to and loadable from a directory other than the one which contains the app-level code. Requires an only-slightly-leaky abstraction of passing a URL argument when loading sqlite3.js but provides much greater flexibility in where the JS/WASM files are located. (check-in: 6d468dab user: stephan tags: trunk)
01:07
Considerable wasm/js build cleanups and reworking. Remove wasmfs builds from the end-user deliverables and disable the wasmfs build by default, per /chat discussion, as it doubles our deliverable count for only marginal gain. Attempt to move the sqlite3.js/wasm files into subdirectories but rediscovered that that breaks loading in Worker mode because URI resolution of the wasm files differs depending on whether the main script is loaded from a script tag or a Worker. (check-in: 5b23e067 user: stephan tags: trunk)
2022-10-18
22:37
If a virtual column whose value is constant gets indexed, do not include that column in the IndexedExpr list. dbsqlfuzz 59ac17a99b9a5c4930ee71cc153c9428a0c0e794 (Closed-Leaf check-in: c21eb903 user: drh tags: index-expr-opt)
20:36
More work on the JS end-user deliverables. Add tool/stripccomments.c to support that. (check-in: 2156f074 user: stephan tags: trunk)
20:27
Improved byte-code comments for the OP_Column opcodes used by the indexed expression optimization. (check-in: bf6d837f user: drh tags: index-expr-opt)
16:47
Fix the indexed expression resolver for generated columns so that it picks the correct table in a self-join. (check-in: 54c3eb08 user: drh tags: index-expr-opt)
16:32
Merge recent trunk fixes into the index-expr-opt branch. (check-in: 6198ab4b user: drh tags: index-expr-opt)
15:02
Add new test file windowE.test, to test the window functions modules response to an inconsistent collation sequence. (check-in: 740a2eb0 user: dan tags: trunk)
13:27
Correct sort order for serial-type 10 entries in the database file. This is a continuation of [4fb77e96fa89a23a]. (check-in: 904b5462 user: drh tags: trunk)
11:28
Merge trunk fixes into the index-expr-opt branch. (check-in: c7b9cc64 user: drh tags: index-expr-opt)
10:27
Fix sqlite3VdbeRecordCompareWithSkip() so that it sorts the internal-use serial-type of 10 together with NULLs. dbsqlfuzz 5ff35e9d49a5fcca5051e23960ff2f483a538bab (check-in: 4fb77e96 user: drh tags: trunk)
2022-10-17
17:36
Add ext/wasm/README-dist.txt, intended to have been in the previous checkin. (check-in: c9080b65 user: stephan tags: trunk)
17:34
Initial draft of archive generation for the wasm/js deliverables. (check-in: f6cee114 user: stephan tags: trunk)
16:47
Repair version-info.c after a local mishap caused all of the intended edits from [36e197cb3d0c]/[e9b407a4d0a0] to get deleted before checkin. Simplify version-info build (only requires sqlite3.h, not the library). (check-in: 6e511df5 user: stephan tags: trunk)
16:31
Merge trunk changes into the index-expr-opt branch. (check-in: a1485ce6 user: drh tags: index-expr-opt)
16:29
Fix a potential call to strlen() with a null argument in the command-line shell following an OOM error. forum post 9c4f2ebe22. (check-in: 67bb8eda user: drh tags: branch-3.39)
16:09
Fix a potential call to strlen() with a null argument in the command-line shell following an OOM error. forum post 9c4f2ebe22. (check-in: b6413a6d user: drh tags: trunk)
15:53
Missing file-rename for the previous checkin. (check-in: e9b407a4 user: stephan tags: trunk)
15:52
Rework ext/wasm/version-info.c to make it more useful for the upcoming dist build rules. (check-in: 36e197cb user: stephan tags: trunk)
14:46
Improved comments and function names. No logic changes. (check-in: 8f460b3b user: drh tags: index-expr-opt)
14:30
Get the indexed expression optimization working for virtual generated columns. (check-in: 8a510cb0 user: drh tags: index-expr-opt)
14:29
Merge trunk enhancements into index-expr-opt branch. (check-in: 56ef97e6 user: drh tags: index-expr-opt)
10:15
Make use of alloca() in wherePathSolver() when SQLITE_USE_ALLOCA is defined. (check-in: 45752471 user: drh tags: trunk)
09:56
Remove a use of alloca() that does more harm than good. (check-in: 2ab3cf4d user: drh tags: trunk)
2022-10-16
23:33
Typo fix. (check-in: 650126c9 user: stephan tags: trunk)
18:57
Minor tweak to get bring an edge case of oo1.DB.createFunction() into aggreement with its docs. (check-in: 8d59ccd9 user: stephan tags: trunk)
18:50
Add aggregate function support to sqlite3.oo1.DB.createFunction(). Change signature of the options object used by that function so that the callback property names match those of the corresponding C APIs. (check-in: a7db6e4b user: stephan tags: trunk)
16:38
JS: add build-time-generated version info to the sqlite3.version object. Remove some stray debug output from tester1.js. (check-in: b5f462c2 user: stephan tags: trunk)
15:38
Add a top-level license and build-time version info header to generated sqlite3*.js. Correct a broken link in ext/wasm/index.html. (check-in: 0f1a06e8 user: stephan tags: trunk)
2022-10-15
19:18
Exclude slow test recovercorrupt.test from veryquick.test. (check-in: ff9a7335 user: dan tags: recover-extension)
18:26
Add missing comments and fix other code issues. (check-in: 8ed4e4a8 user: dan tags: recover-extension)
15:39
Merge latest trunk changes. (check-in: 42255ead user: dan tags: recover-extension)
12:01
Enable the index-on-expression optimization even when the expression is used as an argument to an aggregate function. (check-in: 462b3c7f user: drh tags: index-expr-opt)
11:27
Only extract an expression from an index when the index is not a null row in an outer join. (check-in: 08b033c7 user: drh tags: index-expr-opt)
2022-10-14
19:56
Merge fixes from trunk. (check-in: 1cb65f36 user: drh tags: index-expr-opt)
19:30
Fix a problem with using the push-down optimization on compound SELECTs where component SELECTs use different collation sequences. dbsqlfuzz 11516f050100243e5a845f5a2b48a90ed2efaf2e. This problem appears to go all the way back to the beginning of the push-down optimization in check-in 6df18e949d367629 in SQLite 3.8.11. (check-in: ed14863d user: dan tags: trunk)
19:21
Add missing initializer from the extension loader. Fix for check-in [d6d449978245b4fa]. (check-in: 565d74c3 user: drh tags: trunk)
15:52
Generic minor cleanups and docs in the OPFS async proxy. (check-in: a4423ca2 user: stephan tags: trunk)
15:46
Handle recovering databases with reserved bytes at the end of each page. (check-in: 52d0235e user: dan tags: recover-extension)
15:10
Fix a problem in the LIKE and GLOB operators that may occur when the character immediately following a "%" or "*" wildcard is U+80. Reported by forum post 61bf7ccbdf. (check-in: 2da677c4 user: dan tags: trunk)
13:26
Remove a resolved TODO comment. (check-in: 32fd4ac3 user: stephan tags: trunk)
02:00
Cancel IndexExpr objects when they go out of scope. (check-in: 09635193 user: drh tags: index-expr-opt)
2022-10-13
21:08
This experimental branch attempts to use columns for an index-on-expression in place of the expression that is being indexed. This particular check-in mostly works, but there are still issues. (check-in: 2e8d4fd4 user: drh tags: index-expr-opt)
20:06
Add tests for detecting page size of databases. (check-in: 31f9e236 user: dan tags: recover-extension)
16:48
Move the rest of testing1.js into tester1.js and eliminate the dependency on jaccwabyt_test.c. Extend the list of default config-related #defines in sqlite3-wasm.c and reorganize them for maintainability. (check-in: 4e2a8aff user: stephan tags: trunk)
15:09
Optimize the IS NULL and IS NOT NULL operators so that they avoid loading large strings or blobs off of disk if all it needs to know is whether or not the string or blob is NULL. (check-in: cb943501 user: drh tags: trunk)
14:54
Improvements to the description of the OPFLAG_TYPEOFARG option to OP_Column. (Closed-Leaf check-in: 5e9c67ba user: drh tags: isnull-opt)
14:35
Adjust the implementation of sqlite3VdbeTypeofColumn() to make it easier to test (and slightly smaller). (check-in: 79fdd021 user: drh tags: isnull-opt)
14:01
Fix a typo in the documentation of the OP_Column opcode. Forum post a2b5bd6d43. (check-in: 043e76e6 user: drh tags: trunk)
12:47
Proposed optimization to the IS NULL and NOT NULL operators that avoids loading the entire content of larges strings and BLOBs. Response to forum post 3c08d4715dc05b00. (check-in: 45f17156 user: drh tags: isnull-opt)
08:03
Port the first 180-odd unit tests from testing1.* into the new tester1.*. Fix a stray-keystroke-induced typo which broke pstack.allocChunks(). (check-in: ef689e33 user: stephan tags: trunk)
2022-10-12
18:40
Updates to the fuzzer query invariant checker - tracking changes made over in dbsqlfuzz. (check-in: 4ca16a30 user: drh tags: trunk)
18:30
Changes to Makefile.msc to fix the build on Windows following the previous merge. (check-in: 368fa6b2 user: drh tags: trunk)
18:13
Merge fiddle-opfs branch into trunk. (check-in: 98f95494 user: stephan tags: trunk)
16:35
Merge trunk into fiddle-opfs as a preliminary step for a clean merge in the other direction. (Closed-Leaf check-in: 5e1848ce user: stephan tags: fiddle-opfs)
15:54
Add initial infrastructure for setting up function/regression tests for the JS/WASM APIs. (check-in: 7f5db982 user: stephan tags: fiddle-opfs)
15:40
Minor doc cleanups and corrections in sqlite3-wasm.c (check-in: 5144c122 user: stephan tags: fiddle-opfs)
14:39
Correct mismatched H1 tags in test code. Minor CSS tweaks. (check-in: 4d8eb90a user: stephan tags: fiddle-opfs)
12:49
Add the sqlite3_value_encoding() interface. (check-in: d6d44997 user: drh tags: trunk)
2022-10-11
13:57
Enhance the OP_IsType opcode so that it is slightly smaller and faster and so that it works correctly with invalid serial-type codes 10 and 11. (check-in: 846f863e user: drh tags: trunk)
12:02
Improved the ability of the CLI to handle very long input lines. Potentially a fix for the bug reported by forum post fa4bb2941a. (check-in: d0e107ee user: drh tags: trunk)
2022-10-10
23:54
Enhance the "PRAGMA integrity_check" statement so that it verifies datatype constraints on non-STRICT tables: (1) Columns with TEXT affinity should not contain numeric values, and (2) columns with NUMERIC affinity should not contain TEXT values that could be converted into numbers. (check-in: aa6e9086 user: drh tags: trunk)
21:21
Code clean-up for the integrity_check enhancement. (Closed-Leaf check-in: a1401731 user: drh tags: integrity_check_datatypes)
19:38
Fix corner-case bugs in the new integrity_check logic. All tests pass now. (check-in: dbab9d52 user: drh tags: integrity_check_datatypes)
18:25
An attempt to enhance PRAGMA integrity check so that it does data type checking on non-STRICT tables. Specifically: (1) Columns with TEXT affinity should not contain numeric values, and (2) columns with numeric affinity should not contain text values that can be converted to numeric. (check-in: 8b1e7f05 user: drh tags: integrity_check_datatypes)
12:10
Improved detection of database corrupting when moving pages on an autovacuumed database when creating a new btree. dbsqlfuzz 9a55397eae13cec64aebf1fd35489c3a90bdaac5 (check-in: 835e1912 user: drh tags: branch-3.39)
12:02
Improved detection of database corrupting when moving pages on an autovacuumed database when creating a new btree. dbsqlfuzz 9a55397eae13cec64aebf1fd35489c3a90bdaac5 (check-in: 327965bc user: drh tags: trunk)
2022-10-09
17:08
Remove some extraneous debug output. (check-in: 56ff4205 user: stephan tags: fiddle-opfs)
17:03
Remove a now-unnecessary --cachesize flag for the OPFS sqlite3_vfs speedtest1-worker.html invocation. (check-in: 08b516d6 user: stephan tags: fiddle-opfs)
15:12
Minor cleaups in the post-init async phase of sqlite3 module initialization. (check-in: 2e024a6b user: stephan tags: fiddle-opfs)
13:35
Remove ext/wasm/kvvfs.make which was inadvertently resurrected in [92b500da70a3]. (check-in: 2e7fa085 user: stephan tags: fiddle-opfs)
13:33
Cherrypick [ea370b9b05f7ed7eaa] and part of [92b500da] into kv-vfs branch. (Leaf check-in: 81263803 user: stephan tags: kv-vfs)
13:26
Refactor kvvfs JS bits to make use of [ea370b9b05f7ed7eaa]. At main-thread startup, if kvvfs is available, replace the kvvfs I/O methods with JS impls. Checkin part 2 of 2, to account for cherrypicking [ea370b9b05f7ed7eaa] into the kv-vfs branch. (check-in: a9047e02 user: stephan tags: fiddle-opfs)
13:19
Refactor os_kv.c so that the kvvfs read/write/delete methods can be swapped out at runtime by JS implementations. This eliminates the kvvfs dependency on Emscripten. Checkin part 1 of 2, to account for cherrypicking. (check-in: ea370b9b user: stephan tags: fiddle-opfs)
11:42
Add -DSQLITE_OS_KV_OPTIONAL to speedtest1 flags for kvvfs testing purposes. (check-in: 92b500da user: stephan tags: fiddle-opfs)
2022-10-08
17:27
When casting an odd-length BLOB into a TEXT with encoding UTF16, omit the last byte. dbsqlfuzz c5df68b5bbdf6c9f3c1851e41e88f49ac05c9969 (check-in: 1e2796b3 user: drh tags: trunk)
2022-10-07
19:11
Fix a problem causing the seek-scan optimization to skip over valid rows that could occur when it is used with expressions of the form (a IN (?,?..) AND b >= ?). dbsqlfuzz ab1db6dc0efb04cba1cd3431ee6da4894fdc4520. (check-in: b6be4ce6 user: drh tags: branch-3.39)
18:57
Fix a problem causing the seek-scan optimization to skip over valid rows that could occur when it is used with expressions of the form (a IN (?,?..) AND b >= ?). dbsqlfuzz ab1db6dc0efb04cba1cd3431ee6da4894fdc4520. (check-in: 63d9efe2 user: dan tags: trunk)
18:06
Fix a problem that occurred when using a bloom filter to optimize an (ipk = ?) lookup in the case where the RHS of the expression is a TEXT value. First reported by forum post f61a8b7053. (check-in: dc01d9d8 user: drh tags: branch-3.39)
17:58
Increase the version number to 3.39.5. (check-in: 8eb0048e user: drh tags: branch-3.39)
15:55
Improved tracing output for showing all registers used by the OP_SeekGE opcode. This applies to debugging builds only. (check-in: 0aa6dee7 user: drh tags: trunk)
2022-10-06
21:00
Ensure the page-size, auto-vacuum and other settings are copied into the recovered database. (check-in: 078520f2 user: dan tags: recover-extension)
17:20
Add code to determine the database page-size by searching for well-formed pages. (check-in: 0dbd0cce user: dan tags: recover-extension)
14:10
Fix a problem that occurred when using a bloom filter to optimize an (ipk = ?) lookup in the case where the RHS of the expression is a TEXT value. First reported by forum post f61a8b7053. (check-in: 8e14c351 user: dan tags: trunk)
2022-10-05
16:58
Improve handling of corruption in the sqlite_schema table b-tree structure. (check-in: 2be0dba1 user: dan tags: recover-extension)
2022-10-04
19:47
Merge latest trunk changes. (check-in: b0feecaa user: dan tags: recover-extension)
19:43
Better handling for databases with corrupt headers. (check-in: 17f68d80 user: dan tags: recover-extension)
17:06
Replace time-based auto-unlock of opfs sync handles with lock acquisition/release via sqlite3_io_methods::xLock/xUnlock(). (check-in: 2625b7cf user: stephan tags: fiddle-opfs)
14:50
Attempt to clarify the operation of the xLock and xUnlock VFS I/O methods. Assert() statements added to prove that they behave as the documentation says. (check-in: 3efa8112 user: drh tags: trunk)
11:14
Tweaks to the opfs async wait/relinquish times. (check-in: 35f33c23 user: stephan tags: fiddle-opfs)
10:35
Change the name of the autoconf-generated configuration file from "config.h" to "sqlite_cfg.h" to work around a bug in a dependency checker, reported in a tweet from Joey Castillo. (check-in: 897e187c user: drh tags: trunk)
09:12
Update ext/wasm/api/README.md to account for recent changes. (check-in: 9d488081 user: stephan tags: fiddle-opfs)
09:12
OPFS async proxy: add a wait-and-retry policy to the get-sync-handle step to help account for cross-tab locking. (check-in: 45c48c63 user: stephan tags: fiddle-opfs)
08:58
Update the 'start in speedtest kvvfs' link in speedtest1-worker to account for recent changes. (check-in: f4d5ba41 user: stephan tags: fiddle-opfs)
01:21
Minor pstack doc update. (check-in: 6b4fb7c4 user: stephan tags: fiddle-opfs)
01:11
Minor cleanups and additions in sqlite3.capi.wasm.pstack. (check-in: 97bd670d user: stephan tags: fiddle-opfs)
00:54
Add a test/debug mechanism to shut down the OPFS async listener so that it can be inspected (it normally can't be because its tight event-listening loop ties up the thread) and then restarted. (check-in: 7d0bcff4 user: stephan tags: fiddle-opfs)
2022-10-03
23:13
Set default page cache size to 16mb in wasm builds. Fix an off-by-one counter in sqlite3_wasm_enum_json(). Minor coding style conformance tweaks. (check-in: 72a9e589 user: stephan tags: fiddle-opfs)
22:51
Add a --cachesize flag to the speedtest1-worker-opfs link in index.html because opfs is much faster with that. (check-in: 5b8f8e33 user: stephan tags: fiddle-opfs)
22:38
Minor JS doc updates and typo fixes. (check-in: 3cfcc14d user: stephan tags: fiddle-opfs)
18:23
In os_kv.c, every xWrite method call on a database should record the page size. (check-in: e9411c74 user: drh tags: kv-vfs)
18:07
Add configurable cache_size to batch-runner and speedtest1-worker. Add SQL tracing to demo-123.js just for demonstration's sake. (check-in: 2ab06513 user: stephan tags: fiddle-opfs)
18:05
Omit WAL mode from the wasm build. (check-in: 88efe2a6 user: stephan tags: fiddle-opfs)
15:22
Adjust the --help output for speedtest1 to clarify that the argument to the --cachesize option is in pages, not bytes. (check-in: d7c2be6b user: drh tags: trunk)
14:01
Merge the speedtest1 enhancements from trunk (and fiddle-opfs) into the kv-vfs branch. (check-in: 3d350aa0 user: drh tags: kv-vfs)
13:56
Copy all of the fiddle-opfs changes to speedtest1 into trunk. (check-in: f3d31c99 user: drh tags: trunk)
13:46
Resolve/remove a TODO. (check-in: 2ea35fea user: stephan tags: fiddle-opfs)
13:45
Add the --vfs option to speedtest1. (check-in: aeb88402 user: drh tags: trunk)
13:24
Merge the latest trunk enhancements into the kv-vfs branch. (check-in: f4aefe63 user: drh tags: kv-vfs)
13:03
Export sqlite3_trace_v2() to wasm and use it to ensure that the new per-VFS post-open SQL support in the DB ctor works. Default opfs vfs to journal_mode=truncate, as it's faster in that mode. Add 't' DB open-mode flag to enable SQL tracing to console.log(). (check-in: 508f7f6d user: stephan tags: fiddle-opfs)
11:42
Reimplement fiddle_reset_db() so that it works with all VFSes. (check-in: 18462052 user: stephan tags: fiddle-opfs)
11:33
Experimentally relinquish the OPFS VFS sync access handle when the db is idle and reacquire it on demand, the goal being to help alleviate cross-tab locking issues. (check-in: 2703ac98 user: stephan tags: fiddle-opfs)
11:23
Add journal=MODE to the list of supported URL flags for speedtest1-worker.html. (check-in: 5c43e8d2 user: stephan tags: fiddle-opfs)
09:21
OPFS VFS now lazily opens its sync access handle, as a step towards experimenting with relinquishing it during idle times to help avoid cross-tab and page-reload locking issues. (check-in: a984e1ba user: stephan tags: fiddle-opfs)
08:30
Partial revert of [a82e6faaa642] to remove the 'I' alias for 'j' wasm function signature letter. In hindsight, that change seems premature. (check-in: dcd46af9 user: stephan tags: fiddle-opfs)
08:21
Minor JS API tweaks prompted by documenting them. (check-in: a82e6faa user: stephan tags: fiddle-opfs)
2022-10-02
22:50
More cleanups in the UDF argument and result handling, in particular int64. Consolidate some duplicate int64/bigint range checking code. Expose the UDF low-level utilities (arg/result conversion) to client code. Add the sqlite3_context pointer to the JS-side UDF wrappers for API consistency. (check-in: 10ab77af user: stephan tags: fiddle-opfs)
20:13
Minor doc typo fix in sqlite.h.in. (check-in: 372802aa user: stephan tags: trunk)
20:08
JS: clean up create_function() wrapper and add support for create_window_function(). Eliminate an extraneous blob copy when a UDF returns a blob. Make use of newfound JS-fu to clean up how sqlite3ApiBootstrap() config is initialized. (check-in: d3bad934 user: stephan tags: fiddle-opfs)
18:47
js: implement a hand-written wrapper for sqlite3_create_function_v2() which converts, if necessary, JS-function-type args to WASM function wrappers. Replace DB.createFunction() impl with the new one. (check-in: 435ab333 user: stephan tags: fiddle-opfs)
03:14
Doc typo fixes. (check-in: e528675d user: stephan tags: fiddle-opfs)
03:11
More fleshing out of sqlite3.capi.wasm.pstack. (check-in: eb572667 user: stephan tags: fiddle-opfs)
01:48
Document the roles of the new (this past week) JS files added to the build process. (check-in: 8b3bc731 user: stephan tags: fiddle-opfs)
00:09
General internal cleanups in the oo1 API. (check-in: f9db664f user: stephan tags: fiddle-opfs)
2022-10-01
20:27
Performance optimization in sqlite3_prepare() (discovered while working on the stmt-cache branch). (check-in: cd494240 user: drh tags: trunk)
19:21
Correct fiddle db export breakage caused by a post-testing API change made in [1fa019c88dea]. (check-in: e73cc44e user: stephan tags: fiddle-opfs)
18:55
Pedantic constness tweak. (check-in: c8a173cf user: stephan tags: fiddle-opfs)
18:47
wasm: correct a memleak caused by a shadowed var in the previous checkin. Add a stack-like allocator, sqlite3.capi.wasm.pstack, as a faster way of managing short-lived pointers (like the one which got shadowed). (check-in: 1fa019c8 user: stephan tags: fiddle-opfs)
16:01
Fiddle: fix makefile dependency issue and duplicate inclusion of post-js.js. Reimplement db export using sqlite3_serialize(). (check-in: 29db7de7 user: stephan tags: fiddle-opfs)
13:45
Merge trunk into fiddle-opfs branch. (check-in: 64ebcbe4 user: stephan tags: fiddle-opfs)
13:38
Tweak sqlite3-worker1.js to be able to load either sqlite3.js or sqlite3-wasmfs.js, noting that the latter still does not load in a Worker because of an Emscripten loader bug. (check-in: 000ef705 user: stephan tags: fiddle-opfs)
13:28
Merge the Parse.prepFlags change from trunk. (Leaf check-in: c8d77f39 user: drh tags: stmt-cache)
13:17
Replace the Parse.disableVtab field with Parse.prepFlags for increased generality, a small size reduction, and a small performance increase. (check-in: b7da0bcd user: drh tags: trunk)
12:04
Note two wasm-related potential TODOs. (check-in: 5636e828 user: stephan tags: fiddle-opfs)
12:00
Merge the latest trunk enhancements into the stmt-cache branch. (check-in: 7812aea6 user: drh tags: stmt-cache)
2022-09-30
23:49
Remove a couple of weird quirks of the Worker1 and Promiser APIs. The Worker1 (now undocumented) unlink capability needs to be reevaluated to work equivalently for all storage backends. (check-in: 9f2b331a user: stephan tags: fiddle-opfs)
23:02
Tweaks to the Worker1 and Promiser APIs prompted by documenting them. (check-in: c68b9aa1 user: stephan tags: fiddle-opfs)
22:40
Remove one of the NEVER() macros added by [5166acf3f0040459] because it is reachable after all. (check-in: bd8ae5fe user: drh tags: trunk)
20:59
New test cases in fuzzdata8.db (check-in: aa367a3c user: drh tags: trunk)
20:53
Fix a bug in the demoDelete fix from [d76a301e22e05722]. (check-in: 7e761a02 user: drh tags: trunk)
20:48
Add NEVER() to two error-detection tests that were made unreachable by the previous check-in. (check-in: 5166acf3 user: drh tags: trunk)
20:35
Add JS wrapper for sqlite3_exec() which knows how to handle a JS callback. Add some console.error() reporting of module-load failures, as they otherwise often get silently swallowed up by the loader's mechanisms. Add 'flexible-string' JS-to-WASM argument converter which performs more X-to-string conversions than the 'string' arg converter does. (check-in: 96818aa8 user: stephan tags: fiddle-opfs)
20:15
Better handle a case of database corruption where a b-tree page is one of its own ancestor pages. (check-in: a24e4680 user: dan tags: trunk)
16:49
Add sqlite3.version object. Add more state to the Worker #1 config-get response, including sqlite3.version. (check-in: 711f458d user: stephan tags: fiddle-opfs)
15:46
Add oo1.JsStorageDb.clearStorage/storageSize() methods, copies of capi.sqlite3_web_kvvfs_clear/size(). (check-in: 1e09efe7 user: stephan tags: fiddle-opfs)
15:24
batch-runner.js: force WebSQL batches to not abort for a failed statement (necessary for apples-to-apples-ish benchmark comparisons). (check-in: 60f0c5cb user: stephan tags: fiddle-opfs)
14:35
Improvements to the "demoDelete" method in the demovfs, suggested by forum post cad18961c2. (check-in: d76a301e user: drh tags: trunk)
14:14
Merge recent trunk enhancements into the reuse-schema branch. (check-in: b119a5e8 user: drh tags: reuse-schema)
14:04
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 68a61513 user: drh tags: begin-concurrent-pnu-wal2)
13:54
Merge recent trunk enhancements into the wal2 branch. (check-in: c22c7c87 user: drh tags: wal2)
13:42
Merge the latest trunk changes into the begin-concurrent-report branch (check-in: 4d6141f3 user: drh tags: begin-concurrent-report)
13:29
Merge all recent trunk enhancements into the begin-concurrent branch. (check-in: ba2539f6 user: drh tags: begin-concurrent)
12:27
Merge version 3.39.4 changes into the reuse-schema-3.39 branch. (Leaf check-in: 81025928 user: drh tags: reuse-schema-3.39)
12:10
Expose sqlite3_msize() to wasm. (check-in: aa6ad34f user: stephan tags: fiddle-opfs)
11:01
Add oo1.JsStorageDb() as a convenience wrapper for oo1.DB(...,'kvvfs'). Minor doc cleanups. (check-in: 8a799870 user: stephan tags: fiddle-opfs)
10:55
wasm: expose sqlite3_de/serialize(), sqlite3_malloc/free() and friends, noting that the former explicitly lies on use of the latter for memory management so is not generically safe for use in wasm. (check-in: fbc0edb5 user: stephan tags: fiddle-opfs)
2022-09-29
22:08
Add JS infrastructure to ostensibly allow us to customize the wasm imports, which will hypothetically allow us to eliminate the dependency on EM_JS(), but the corresponding Emscripten glue-level feature currently breaks fatally with WASMFS builds so it's disabled. (check-in: 88d9253b user: stephan tags: fiddle-opfs)
17:35
Ensure that the wasm builds always, even when passing -Ox flags from the CLI, use -g3 to avoid problems caused by symbol minification with optimization levels -O2 and higher. (check-in: 27d24d5d user: stephan tags: fiddle-opfs)
16:54
Finish eliminating explicit Emscripten module dependencies in test code and fiddle. The only remnant in public code is the Emscripten-generated module load/init interface. (check-in: 7be78dd4 user: stephan tags: fiddle-opfs)
15:55
Version 3.39.4 (check-in: a29f9949 user: drh tags: release, branch-3.39, version-3.39.4)
13:17
Rework the Emscripten-emitted module loader/init function such that it passes on the sqlite3 module, instead of the Emscripten module, to the first then() of sqlite3InitModule()'s returned Promise. This eliminates any need to mention the Emscripten module object in client-side code unless they want to configure it in advance for loading-status reports. (check-in: 0dbaa0e2 user: stephan tags: fiddle-opfs)
2022-09-28
19:19
Fix misuse of the sqlite3_set_auxdata() interface in the ICU extension. (check-in: 6607dd01 user: drh tags: branch-3.39)
19:14
Fix misuse of the sqlite3_set_auxdata() interface in the ICU extension. (check-in: f25cf634 user: drh tags: trunk)
18:10
Wasm: expose sqlite3_exec() and use it to simplify the db-reset logic in batch-runner.js a bit. (check-in: 2e2821f7 user: stephan tags: fiddle-opfs)
17:52
More work on batch-runner.html/js to facilitate speed comparisons between various VFSes and WebSQL. (check-in: 3bd1bc24 user: stephan tags: fiddle-opfs)
17:10
Prototype implementation of "PRAGMA reset_database". This pragma differs from SQLITE_DBCONFIG_RESET_DATABASE in that the pragma only works if the database is reasonably well-formed, whereas the dbconfig works regardless. (Leaf check-in: cf0999d4 user: drh tags: reset-database)
13:38
Remove a NEVER macro in defragmentPage() that dbsqlfuzz discovered can be true. crash-32d9312f145cdce41613573f6431d9a3e439e3d7 (check-in: a4342fc0 user: drh tags: branch-3.39)
13:01
Correct duplicate copies of sqlite3-api.js being embedded in the wasmfs-based builds. (check-in: bbfcfba2 user: stephan tags: fiddle-opfs)
07:53
Work around broken -Os wasm builds by adding the -g3 flag. Unrelated documentation tweaks. (check-in: f5d6bf86 user: stephan tags: fiddle-opfs)
2022-09-27
17:03
Minor doc correction. (check-in: 093f6e4b user: stephan tags: fiddle-opfs)
16:35
Provide the SQLITE_MAX_ALLOCATION_SIZE compile-time option for limiting the maximum memory allocation size. (check-in: 584de6a9 user: drh tags: trunk)
14:31
Comment the -Os wasm builds as being broken (mysteriously missing JS bits). (check-in: f61475ef user: stephan tags: fiddle-opfs)
13:40
WASM API renaming. Reworked JS API bootstrap's async post-init into a generic mechanism, no longer OPFS-specific. (check-in: c42a8cb0 user: stephan tags: fiddle-opfs)
09:17
wasm/js: rename /persistent to /opfs to account for potential future persistent storage options. Minor flag-handling cleanups in the speedtest1 pages. Minor API tweaks in oo1. (check-in: 4dc972a3 user: stephan tags: fiddle-opfs)
02:04
Enhance defensive mode so that it disallows CREATE TRIGGER statements if the statements within the trigger attempt to write on a shadow table. Also make the legacy FTS3 code more robust against integer overflow during memory allocation. (check-in: c41f25e6 user: drh tags: branch-3.39)
01:53
Make the legacy FTS3 code more robust against integer overflow during memory allocation. (check-in: 5517bc50 user: drh tags: trunk)
00:56
Enhance defensive mode so that it disallows CREATE TRIGGER statements if the statements within the trigger attempt to write on a shadow table. (check-in: 3283bbd1 user: drh tags: trunk)
2022-09-26
20:51
Modify implementation of recovery to break recovery of the lost_and_found table into multiple steps. (check-in: adedfd04 user: dan tags: recover-extension)
13:55
Fiddle: replace db export routine with a C-side one which works for both Emscripten FS-hosted and OPFS-hosted db files. Minor code-adjacent cleanups. (check-in: 3579a8d6 user: stephan tags: fiddle-opfs)
11:38
Get fiddle db export working for OPFS VFS. Add root dir handle to the main OPFS VFS worker to enable creation of certain utility functions without delegating to the async worker. Add sqlite3.capi.sqlite3_wasm_rc_str() to map integer result codes back to their SQLITE_xxx counterparts. Minor doc touchups. (check-in: 9b2244e1 user: stephan tags: fiddle-opfs)
11:34
wasm: change StructBinder signature for sqlite3_file::pMethods from 'P' to 'p' to eliminate an unnecessary and inconsistent level of magic. (check-in: 85f2e877 user: stephan tags: fiddle-opfs)
2022-09-24
19:54
Add the SQLITE_RECOVER_SLOWINDEXES option, for specifying that indexes should be created and populated along with tables, instead of separately at the end of the recovery operation. (check-in: ad9dba9d user: dan tags: recover-extension)
19:17
Add sqlite3_recover_step() to header file sqlite3recover.h. Update the API docs in this file. (check-in: 47f41615 user: dan tags: recover-extension)
18:05
Update things to use sqlite3_recover_step() internally. (check-in: f4b15aad user: dan tags: recover-extension)
11:32
Fiddle: move, rather than copy, data buffers between the threads. Fix the case of an uploaded db failing to install because its filename is the same as the opened db. (check-in: bcec4f96 user: stephan tags: fiddle-opfs)
10:15
Resolve "already configured" warnings from shell's main() when starting it up in fiddle mode. (check-in: 114ef355 user: stephan tags: fiddle-opfs)
10:12
Reworked out the OPFS async proxy metrics are fetched so that they play more nicely with the tight event-polling loop. (check-in: ef503ced user: stephan tags: fiddle-opfs)
07:36
Refactoring towards getting fiddle to support OPFS as a first-class citizen. Certain operations, e.g. import, export, and unlink, are not OPFS-aware. (check-in: 1b923ed6 user: stephan tags: fiddle-opfs)
2022-09-23
21:01
Internal changes to the recover extension towards a step() style interface. (check-in: 73926d5c user: dan tags: recover-extension)
11:40
Fix various compiler warnings in new code on this branch. (check-in: ae49e9ef user: dan tags: recover-extension)
11:30
Merge latest trunk changes into this branch. (check-in: e87fa70a user: dan tags: recover-extension)
2022-09-21
20:24
Reformulate some JS to work around a buggy/broken code transformation in one of the Emscripten-driven code optimizers. (check-in: e1249369 user: stephan tags: fiddle-opfs)
19:51
Put pieces in place for fiddle to support opfs, but more cleanup is required in the sqlite3.js/fiddle connection. bigIntEnabled now defaults to whether the Emscripten's module has bigint enabled. Add wasm-sensible defaults for several SQLITE_ENABLE/OMIT flags in sqlite3-wasm.c. (check-in: 7c7fb753 user: stephan tags: fiddle-opfs)
18:21
Reduced and improved comments on the constraintCompatibleWithOuterJoin() function. (check-in: 38aaf26e user: drh tags: trunk)
16:21
shell.c.in: when building in fiddle mode, define _POSIX_SOURCE (ifndef) so that emcc's string.h reveals strdup(). (check-in: fb85b269 user: stephan tags: fiddle-opfs)
14:02
Correct mistyped --shrink-memory flag in speedtest1-worker. Minor OPFS proxy cleanups. (check-in: 86e2b55e user: stephan tags: fiddle-opfs)
12:27
Doc cleanups and additions. Add a way for the OPFS async runner to propagate exception text to the calling thread. (check-in: 5c5e8065 user: stephan tags: fiddle-opfs)
12:25
Added some structure to the wasm demo link list. (check-in: 777077c4 user: stephan tags: fiddle-opfs)
09:54
The RIGHT JOIN logic added to version 3.39.0 added a new restriction on the query flattener which resulted in a performance regression for some queries, as documented by forum post 96b9e5709cf47cda. This change removes that restriction (thus restoring performance) and fixes the problem that RIGHT JOIN was having in a different way. (check-in: 501609ed user: drh tags: trunk)
08:41
Add a link to fiddle.html in the wasm test app index.html. (check-in: 96c734c0 user: stephan tags: fiddle-opfs)
08:39
Move fiddle build rules into the wasm-centric build files. Add rule to push wasm bits to the wasm test server. (check-in: 113f8204 user: stephan tags: fiddle-opfs)
00:16
Break out the decision of whether or not a constraint term is usable by an outer join into a subroutine: constraintCompatibleWithOuterJoin(). (Closed-Leaf check-in: c7fbc9b0 user: drh tags: flattener-omit-restriction-29)
2022-09-20
22:19
Do not allow EP_InnerON terms to be used on a outer join. (check-in: f47aa745 user: drh tags: flattener-omit-restriction-29)
21:07
Add new test cases that (current) get an incorrect answer. (check-in: fe5c3773 user: drh tags: flattener-omit-restriction-29)
19:45
New test cases for query flattening when there are ON clauses and outer joins. (check-in: db55387b user: drh tags: flattener-omit-restriction-29)
19:22
Modify the OP_IfNotOpen opcode so that the jump is taken if the cursor is open but was previously set to a NULL row using OP_NullRow. (check-in: 1292d68c user: drh tags: flattener-omit-restriction-29)
18:18
Remove code that has been previously commented out. (check-in: 852b385a user: drh tags: flattener-omit-restriction-29)
17:43
Merge the fuzzcheck fix from trunk into the flattener improvement branch. (check-in: 930a8c15 user: drh tags: flattener-omit-restriction-29)
17:21
Update the fuzz invariant checker to conform to the latest changes in dbsqlfuzz. (check-in: 8d8c1243 user: drh tags: trunk)
16:57
Is the query flattener restriction 29 (do not allow both EP_InnerON and EP_OuterON constraints on the same FROM clause term) really necessary? This branch explores what happens if we omit that restriction. This is an effort to address the performance regression reported by forum post 96b9e5709cf47cda that is caused by flattener restriction 29. (check-in: 19270577 user: drh tags: flattener-omit-restriction-29)
16:20
Correct a too-strict is-opfs-available check. (check-in: 1b5f1b4a user: stephan tags: fiddle-opfs)
16:10
Merge kv-vfs-magic-names branch into fiddle-opfs branch and make some kvvfs-relevant tweaks. (check-in: e3d36dcd user: stephan tags: fiddle-opfs)
14:52
Export the sqlite3_uri_...() family of functions to wasm. (check-in: 72bebc84 user: stephan tags: fiddle-opfs)
14:39
Merge opfs-proxy-atomics branch into the fiddle-opfs branch. (check-in: 25a36920 user: stephan tags: fiddle-opfs)
14:36
When compiled with SQLITE_OS_KV_OPTIONAL, the magic names ":localStorage:" and ":sessionStorage:" are recognized and converted to use the kv-vfs. (Leaf check-in: c5db9262 user: drh tags: kv-vfs-magic-names)
14:21
Remove an obsolete file. (Closed-Leaf check-in: 1e438554 user: stephan tags: opfs-proxy-atomics)
13:25
Speed up de/serialization of func args and return values in the OPFS VFS proxy. (check-in: 5bf235bb user: stephan tags: opfs-proxy-atomics)
10:47
OPFS proxy: remove one sanity-checking-only level of proxy function to shave off a few microseconds. (check-in: b534831f user: stephan tags: opfs-proxy-atomics)
10:11
Remove extraneous result-code SAB slots. Doc additions. (check-in: 88de2071 user: stephan tags: opfs-proxy-atomics)
08:27
An alternative messaging strategy for the OPFS VFS proxy which uses only SharedArrayBuffer and Atomics, instead of worker messages, for communication (only the initial one-time handshake during initialization uses worker messages). It runs speedtest1 approx. 15-20% faster but still 20-ish% slower than WASMFS Edit: further tests showed it to be very close to the same speed as the Worker-message variant, inconsistently faster or slower within a small margin of error. The former impl is easier to understand, though. (check-in: a83ee308 user: stephan tags: opfs-proxy-atomics)
03:31
OPFS VFS: further internal refactoring towards experimenting with a new comms model. (check-in: 5ca412ce user: stephan tags: fiddle-opfs)
01:28
OPFS VFS: moved i/o buffer from per-file to the VFS, and related refactoring, in prep for experimentation with a new inter-worker comms model. (check-in: d4d63e45 user: stephan tags: fiddle-opfs)
2022-09-19
19:25
Clarify comments that describe query flattener restrictions associated with outer joins. No code changes. (check-in: 2647d73b user: drh tags: trunk)
18:22
Further metrics and buffer-copy optimizations in the OPFS proxy, but with little effect. (check-in: d1f1fe6f user: stephan tags: fiddle-opfs)
17:41
Fix a minor comment typo. No changes to code or documentation. (check-in: 8032db4a user: drh tags: trunk)
17:09
Cut the speedtest1 runtime of the OPFS VFS proxy by approximately 3/4ths via xRead/xWrite buffer-copying optimizations. Still slower than the WASMFS impl by approx. 1/5th. (check-in: fb7f2873 user: stephan tags: fiddle-opfs)
14:56
Remove an obsolete file. Update wasmfs build for today's changes. Fix the case that OPFS.xTruncate() is passed a BigInt instead of a Number. (check-in: 97605392 user: stephan tags: fiddle-opfs)
13:44
Add sqlite3_web_vfs_list() to JS API. Corrected OPFS VFS's registering itself as the default VFS. speedtest1-worker now uses the xDelete() of both the default VFS and OPFS, to avoid that it starts up with a persistent OPFS test db (the native app calls unlink(), but that unlink call operates on a different virtual filesystem than the OPFS VFS). (check-in: 2ec7e091 user: stephan tags: fiddle-opfs)
13:16
Merge kv-vfs branch into fiddle-opfs. Adjust various JS APIs and apps to deal with the new method of handling kvvfs. Adjust speedtest1 JS build to include sqlite3-api.js so that it can use kvvfs and opfs VFSes. Permit passing of the vfs as a URL parameter to certain demo/test apps. Milestone: speedtest-worker.html?vfs=opfs runs with the standalone OPFS impl. (check-in: ec09f32f user: stephan tags: fiddle-opfs)
11:47
speedtest1: add --vfs NAME flag and eliminate code duplication in argc size verification for all flags which take a value. (check-in: 281d0986 user: stephan tags: fiddle-opfs)
10:13
Minor doc improvements in demo-123.js. (check-in: 9370ce94 user: stephan tags: fiddle-opfs)
09:58
Generic cleanups in the OPFS VFS proxies. (check-in: 7d5f6adc user: stephan tags: fiddle-opfs)
09:25
Correct OPFS VFS xRead() to copy the result buffer if the result code is SQLITE_IOERR_SHORT_READ. (check-in: 56668f99 user: stephan tags: fiddle-opfs)
05:19
Replace OPFS VFS xSleep() impl with a more efficient one (no Worker round-trip needed). (check-in: b9773f16 user: stephan tags: fiddle-opfs)
03:57
Rename demo-oo1.* to demo-123.* and add demo-123-worker.html, which runs the same demo via a Worker. Doc typo fixes. (check-in: 2e4a005b user: stephan tags: fiddle-opfs)
00:40
Disable build of wasmfs-using components on aarch64 (ARM), as wasmfs won't build there. (check-in: 9a9eeebc user: stephan tags: fiddle-opfs)
2022-09-18
17:59
Remove a NEVER macro in defragmentPage() that dbsqlfuzz discovered can be true. crash-32d9312f145cdce41613573f6431d9a3e439e3d7 (check-in: 90403759 user: drh tags: trunk)
17:32
Numerous cleanups in the JS bits. Removed some now-defunct wasm test files. Expose sqlite3.opfs object containing various OPFS-specific utilities. (check-in: 26e625d0 user: stephan tags: fiddle-opfs)
03:05
Move the OPFS VFS bits back into api/sqlite3-api-opfs.js. Refactor the OPFS VFS init process to use a Promise-returning function which the client must call, as that eliminates any uncertainty about when the VFS (necessarily activated asynchronously) actually becomes available to the client. Rename x-sync-async.* to test-opfs-vfs.* Milestone: first successful test of OPFS without WASMFS. (check-in: b2abf60d user: stephan tags: fiddle-opfs)
02:35
Move the OPFS VFS bits back into api/sqlite3-api-opfs.js. Refactor the OPFS VFS init process to use a Promise-returning function which the client must call, as that eliminates any uncertainty about when the VFS (necessarily activated asynchronously) actually becomes available to the client. (check-in: 1c660970 user: stephan tags: fiddle-opfs)
00:16
Plug OPFS methods in to their sqlite3_vfs/io_methods counterparts. Add URL args to control debug output and running of sanity-checks in the OPFS init code. (check-in: a0e93ed2 user: stephan tags: fiddle-opfs)
2022-09-17
23:47
Correct OPFS xRead() and xWrite() impls and add a very basic sanity test for them. (check-in: cd06cc67 user: stephan tags: fiddle-opfs)
23:29
Implement OPFS xAccess(), albeit with more limited semantics than the VFS API calls for. Add a way for OPFS xDelete() to optionally recursively remove empty dirs left over after deleting a file. (check-in: c342b5d7 user: stephan tags: fiddle-opfs)
21:13
Generic cleanups in the OPFS sync/async proxy. (check-in: f36bddbe user: stephan tags: fiddle-opfs)
20:50
Add the remaining vfs/io_methods wrappers to the OPFS sync/async proxy, but most are not yet tested. (check-in: 44db9132 user: stephan tags: fiddle-opfs)
18:31
Fix an uninitialized variable in the decoder kv-vfs. (check-in: 354726aa user: drh tags: kv-vfs)
18:29
Include the kv-vfs as an optional VFS on unix builds if the SQLITE_OS_KV_OPTIONAL compile-time option is present. (check-in: 852812d1 user: drh tags: kv-vfs)
17:26
Merge the latest trunk enhancements into the kv-vfs branch. (check-in: 37c7ca25 user: drh tags: kv-vfs)
15:08
Add initial bits of an experimental async-impl-via-synchronous-interface proxy intended to marshal OPFS via sqlite3_vfs API. (check-in: 38da059b user: stephan tags: fiddle-opfs)
2022-09-16
20:16
Merge kv-vfs branch into fiddle-opfs branch. Adjust speedtest1 --size flags to account for new size limit. (check-in: afb79050 user: stephan tags: fiddle-opfs)
15:19
Corrections to the xRead method for databases in the os_kv.c VFS so that it correctly reads the header, and thus avoids unnecessary cache flushes. This changes also includes an optimization to the header read logic. (check-in: ef54961c user: drh tags: kv-vfs)
12:49
When calculating kvvfs sessionStorage/localStorage size, multiply it by 2 to account for JS using 16-bit characters. (check-in: 52d1b185 user: stephan tags: fiddle-opfs)
11:45
Merge kv-vfs branch into fiddle-opfs branch for [21915af560b1|synchronous=off fix]. Remove some duplicate debug output in OPFS test code. (check-in: 13899bb9 user: stephan tags: fiddle-opfs)
11:37
Fix os_kv.c so that it uses SQLITE_FCNTL_SYNC and hence works even with PRAGMA synchronous=OFF. (check-in: 21915af5 user: drh tags: kv-vfs)
02:30
Add batch-runner-kvvfs.html, a kvvfs-specific build of batch-runner.html. Reduce the speedtest1 --size X value for the batch list generation to 5 so that the kvvfs batch runner can handle it. (check-in: d8df2592 user: stephan tags: fiddle-opfs)
02:28
Remove --nosync flag from speedtest1-kvvfs.html, as that seems to be the trigger for the 'no such table: z1' error. That app now warns if that flag is passed to it via URL args. (check-in: ad0677e8 user: stephan tags: fiddle-opfs)
01:08
Pull the src/os_kv.c part of [13839759f8f4] into the kv-vfs branch. (check-in: e3344499 user: stephan tags: kv-vfs)
01:05
Add return value checks to kvstorageWrite(), necessary for recognizing storage-full errors in the JS binding. speedtest1-kvvfs.html runs successfully on localStorage with --size 1 to 6 and starts failing with storage shortage at --size 7. (check-in: 13839759 user: stephan tags: fiddle-opfs)
2022-09-15
06:42
More work on the synchronous OPFS experimentation. Numerous wasm/js build tweaks. Add speeedtest-wasmfs.html, the wasmfs/opfs counterpart of speedtest1.html. (check-in: 00ee49a3 user: stephan tags: fiddle-opfs)
03:54
Fix windows builds of recover extension. (check-in: abcbb6ab user: dan tags: recover-extension)
03:16
Remove some stale comments. Get scratchpad-opfs-worker2.js running again in prep for reuse in experimenting with the OPFS all-synchronous API. (check-in: 4cbbd370 user: stephan tags: fiddle-opfs)
03:09
Split wasmfs-enabled build of sqlite3.js/wasm into sqlite3-wasmfs.js/wasm, as enabling wasmfs breaks all tests/demos which run from a Worker thread. (check-in: 08476f3c user: stephan tags: fiddle-opfs)
02:27
Clean up some JS documentation. (check-in: 925fdbfc user: stephan tags: fiddle-opfs)
2022-09-14
20:45
Include recovery extension in configure/make builds of testfixture. (check-in: d2f46521 user: dan tags: recover-extension)
18:57
Extra tests and fixes. (check-in: deed5336 user: dan tags: recover-extension)
16:37
Fix recovery of utf-16 databases. (check-in: 5b05be08 user: dan tags: recover-extension)
2022-09-13
20:40
Add OOM tests for the recovery extension. (check-in: 9b6b4c71 user: dan tags: recover-extension)
19:47
Fix a broken error handling case in the recovery extension. (check-in: 60089547 user: dan tags: recover-extension)
19:27
Add/apply various kvvfs-specific utility APIs to the JS layer to assist in testing and analysis. Correct a backwards default arg check for sqlite3ApiBootstrap(). Add exports for sqlite3_db_handle(), sqlite3_file_control(), and the SQLITE_FCNTL_xxx enum. (check-in: 0d789618 user: stephan tags: fiddle-opfs)
18:08
Add tests. Deal issues surrounding aborting recovery from within the SQL callback, and avoiding the pending-byte page. (check-in: 4e97dd31 user: dan tags: recover-extension)
2022-09-12
22:27
Get testing1.js working with a kvvfs build. (check-in: 333a4572 user: stephan tags: fiddle-opfs)
20:21
Remove an extraneous key-copy op in the EM_JS impl of kvstorageDelete(). (check-in: 1c5aeee4 user: stephan tags: kv-vfs)
20:18
Merge kv-vfs branch into fiddle-opfs and add speedtest1-kvvfs.html test app (which currently fails early on). (check-in: 8b1608a9 user: stephan tags: fiddle-opfs)
20:02
Fix some problems with handling corrupt database in the recovery extension. (check-in: ed318be8 user: dan tags: recover-extension)
19:33
Fix the <sys/time.h> include in os_kv.c. (check-in: 878cc93e user: drh tags: kv-vfs)
19:29
Add a gettimeofday()-based implementation of xCurrentTimeInt64() to os_kv.c. (check-in: e393ed65 user: drh tags: kv-vfs)
19:23
More tests for the recover module. (check-in: 37fb093b user: dan tags: recover-extension)
18:10
Fix a debugging/testing edit in the previous check-in. (check-in: 6fc8d34c user: drh tags: kv-vfs)
17:59
Add sqlite3.oo1.DB.clearKvvfsStorage(). Add controls to kvvfs1.js demo to reset and query the db without requiring the dev console. (check-in: d845c6c2 user: stephan tags: fiddle-opfs)
17:44
Faster text decoder for kv_os.c. (check-in: 3354a2ed user: drh tags: kv-vfs)
16:09
Merge kv-vfs branch into fiddle-opfs branch to add kvvfs-based wasm build and demo. (check-in: a7d8b26a user: stephan tags: fiddle-opfs)
16:07
New run-time options to the speed-check.sh script. (check-in: ff46bc9d user: drh tags: trunk)
15:59
Fix uninitialized variable in rollback-journal processing in os_kv.c (check-in: e49682c5 user: drh tags: kv-vfs)
13:05
Resolve missing kvvfs JS test: sqlite3_initialize() must be called by the client in this build. Add basic sanity test of kvvfs using sessionStorage(). (check-in: 250a935a user: stephan tags: kv-vfs)
12:41
Fix the amalgamation so that it builds with the standard unix backend again. (check-in: 0adf158f user: drh tags: kv-vfs)
12:39
Initial build of kvvfs in wasm. It loads but cannot find the VFS for as-yet-unknown reasons (sqlite3 shell works fine), and most APIs throw "null function or function signature mismatch" from deep within wasm, presumably as a side effect of the "missing" VFS. (check-in: 1a2f24a0 user: stephan tags: kv-vfs)
2022-09-11
16:59
Minor cleanups and documentation in the wasm pieces. (check-in: 4e6ce329 user: stephan tags: fiddle-opfs)
05:44
Correct the result code from kvstorageRead() for the OOM case to be a negative value. (check-in: cdbf09fa user: stephan tags: fiddle-opfs)
05:38
Minor cleanups and docs for the EM_JS() impls of the kvvfs read/write/delete ops. (check-in: 53b7572e user: stephan tags: fiddle-opfs)
04:49
Add EM_JS() impl for kvstorageRead(). (check-in: 06610314 user: stephan tags: fiddle-opfs)
02:43
Initial prototype impls of write/delete-key ops for the pending kvvfs which use sessionStorage or localStorage for db page storage. read-key op is pending. (check-in: a4bd96f5 user: stephan tags: fiddle-opfs)
2022-09-10
20:01
Rework recover extension code for readability. (check-in: 1a254096 user: dan tags: recover-extension)
18:38
Improved comments in os_kv.c. Better names for the key/value name spaces. (check-in: 8e1652a3 user: drh tags: kv-vfs)
18:20
Move the vfskv.c extension to src/os_kv.c and make it part of the amalgamation, activated if and only if SQLITE_OS_KV is true. (check-in: f6632e69 user: drh tags: kv-vfs)
13:50
Enhance the b-tree page sorting code to ensure that sqlite3PagerRekey() never overloads a page number and uses only the PENDING_BYTE page for temporary storage. (check-in: aa6a5b72 user: dan tags: branch-3.39)
2022-09-09
20:44
Further fixes to comments in sqlite3recover.h. Also rework some data structures in sqlite3recover.c. (check-in: 599d1f8e user: dan tags: recover-extension)
17:50
Fix harmless compiler warning seen with MSVC. (check-in: 73c4c68d user: mistachkin tags: trunk)
16:25
Handle recovery of virtual tables by recovering each shadow table individually, then writing the CREATE VIRTUAL TABLE statement directly into the sqlite_schema table. (check-in: 5f2d5ccd user: dan tags: recover-extension)
16:16
Database must be named either "local" or "session". Each has a distinct namespace. (check-in: c8e41279 user: drh tags: kv-vfs)
14:22
Separate sqlite3_io_methods objects for database files and journals. (check-in: 74fbf6c2 user: drh tags: kv-vfs)
11:41
Simple reading and writing now works. (check-in: 00845ac9 user: drh tags: kv-vfs)
05:39
Remove a reference to a completed TODO. (check-in: 757ad696 user: stephan tags: fiddle-opfs)
04:50
speedtest1 wasm: add a link in the worker variant which launches the main-thread variant with the selected CLI flags. Append collected stdout/stderr to the main-thread page after execution is finished to avoid having to open the dev tools (which inexplicably slows down wasm execution). (check-in: 02709ee2 user: stephan tags: fiddle-opfs)
2022-09-08
21:43
Update comments in sqlite3recover.h. (check-in: 14164047 user: dan tags: recover-extension)
21:33
Make use of the --big-transactions flag in the speedtest1 JS apps. (check-in: f2846dcb user: stephan tags: fiddle-opfs)
21:09
Add speedtest1 --big-transactions flag to cause its large tests which rely on implicit transactions to be wrapped in BEGIN/COMMIT, per /chat discussion. Added to support of the WASMFS build, which slows down significantly when thousands of implicit transactions are used. (check-in: 51395c00 user: stephan tags: fiddle-opfs)
20:04
Minor build cleanups and tweaks in the speedtest1 wasm apps. (check-in: 5240fb4d user: stephan tags: fiddle-opfs)
19:53
Experimentally add --nomutex flag to speedtest1 to have it open db with the SQLITE_OPEN_NOMUTEX flag. (check-in: 45ef576b user: stephan tags: fiddle-opfs)
19:22
Update the shell to use the recover extension for the .recover command. (check-in: ae832e77 user: dan tags: recover-extension)
17:42
Fix problems with recovering the sqlite_sequence table. (check-in: 356d2209 user: dan tags: recover-extension)
17:12
Compiles and loads as an extension. Starts to run but quickly hits issues. (check-in: 2e38726f user: drh tags: kv-vfs)
16:27
Compiles without error, but untested. (check-in: a329939c user: drh tags: kv-vfs)
15:48
Code snapshot. Completely untested. Probably does not compile. (check-in: 51e26769 user: drh tags: kv-vfs)
15:30
Add speedtest1-worker.html, an interactive Worker-thread variant of speedtest1.html. Add ext/wasm/index.html to act as a gateway to the various test pages. (check-in: f16c68ee user: stephan tags: fiddle-opfs)
11:04
Add new test file recoverclobber.test. (check-in: cb4e950c user: dan tags: recover-extension)
2022-09-07
20:14
Enhance an assert() to impose for tighter constraints on the operation of pcache. (check-in: 461511cc user: drh tags: branch-3.39)
20:11
Enhance an assert() to impose for tighter constraints on the operation of pcache. (check-in: 42105eb4 user: drh tags: trunk)
19:58
Fix the windows build so that it works with -DSQLITE_OMIT_AUTOINIT. (check-in: 1662eb07 user: drh tags: branch-3.39)
19:50
Ensure that the Rekey() operation does not overwrite an existing page number. (check-in: cd1e4006 user: drh tags: branch-3.39)
19:35
Increase the version number to 3.39.4 (check-in: e98bed12 user: drh tags: branch-3.39)
19:28
An improved technique for ensuring that the Rekey() operation does not overwrite an existing page number. This approach does not change the semantics of the underlying pluggable pcache and it is easier to prove correct. This replaces the changes at [aadd38f99a3e5abc] and [81cff9f1955874aa]. (check-in: 7dbddde7 user: drh tags: trunk)
17:29
Non-working code towards a VFS for text key/value storage. (check-in: f9c89ee8 user: drh tags: kv-vfs)
16:41
Ensure that the recover extension properly escapes CR and NL characters in text mode. Also that it holds transactions open on both input and output databases for the duration of a recovery operation. (check-in: 6cca8913 user: dan tags: recover-extension)
2022-09-06
23:04
Add a note about Emscripten's -sSINGLE_FILE flag, why it would be nice, and why we can't use it. (check-in: 5ea06236 user: stephan tags: fiddle-opfs)
20:17
Get speedtest1.js working with WASMFS/OPFS. (check-in: 40e60f57 user: stephan tags: fiddle-opfs)
19:38
Tests and a fix for the SQLITE_RECOVER_ROWIDS option. (check-in: 1d5000f5 user: dan tags: recover-extension)
16:47
Initial build of speedtest1.wasm and speedtest1.html with which to run it. (check-in: 4441535e user: stephan tags: fiddle-opfs)
16:35
Minor internal doc clarifications. (check-in: 09796cc2 user: stephan tags: fiddle-opfs)
09:59
Merge trunk into fiddle-opfs branch. (check-in: 7f76eaec user: stephan tags: fiddle-opfs)
2022-09-05
22:54
Add the tool/omittest-msvc.tcl script that will try to build using MSVC using various compile-time options, to ensure that the compile-time options all build without errors. (check-in: 6b00ecb5 user: drh tags: trunk)
22:53
Get the tool/omittest-msvc.tcl script working. (Closed-Leaf check-in: 82b89f8a user: drh tags: msvc-omit-test)
21:22
Fix a problem with script mode and lost-and-found tables. (check-in: 09ec588d user: dan tags: recover-extension)
21:00
Add a mode to output SQL statements instead of populating a database to the recover extension. (check-in: 73058416 user: dan tags: recover-extension)
20:42
Add a prototype for a script, similar to tool/omittest.tcl, that is designed to test builds using MSVC to ensure they work with various OMIT options. (check-in: b1e37a0b user: drh tags: msvc-omit-test)
18:17
Fix the windows build so that it works with -DSQLITE_OMIT_AUTOINIT. (check-in: f74a5ea8 user: drh tags: trunk)
15:56
Add the SQLITE_RECOVER_ROWIDS option. To specify that rowid values that are not also explicit INTEGER PRIMARY KEY values should be preserved. (check-in: 69cc9aba user: dan tags: recover-extension)
13:36
Merge patches for version 3.39.3 into the reuse-schema-3.39 branch. (check-in: efd54164 user: drh tags: reuse-schema-3.39)
13:24
Minor cleanups in OO API #1. Add Sudoku SQL to batch-runner.js's list. (check-in: 4488cb57 user: stephan tags: fiddle-opfs)
12:39
Version 3.39.3 patches applied to the begin-concurrent branch. (Leaf check-in: 31304de8 user: drh tags: begin-concurrent-3.39)
11:02
Version 3.39.3 (check-in: 4635f4a6 user: drh tags: release, branch-3.39, version-3.39.3)
2022-09-03
21:08
Add an option to assume the freelist is corrupt when recovering data. (check-in: 253e498f user: dan tags: recover-extension)
20:31
Take the freelist into account when recovering data that is not linked in to any tree associated with a schema entry. (check-in: dbd1f1ef user: dan tags: recover-extension)
20:07
Further work on making the recover extension compatible with the .recover command. (check-in: f2ac3158 user: dan tags: recover-extension)
11:41
wasm: minor text and build cleanups. (check-in: 36ceef94 user: stephan tags: fiddle-opfs)
2022-09-02
21:21
Ensure the Pager.journalOff variable is zeroed if an error occurs while writing the initial header to the journal file. (check-in: fe547035 user: dan tags: branch-3.39)
21:19
Ensure the Pager.journalOff variable is zeroed if an error occurs while writing the initial header to the journal file. (check-in: da7af290 user: dan tags: trunk)
19:18
Remove a NEVER() that is sometimes true. (check-in: 85a8a117 user: drh tags: branch-3.39)
17:26
Fix an assert() associated with the dbsqlfuzz error at [8372468bb5d8922c]. (check-in: f448480e user: drh tags: branch-3.39)
17:25
Fix an assert() associated with the dbsqlfuzz error at [8372468bb5d8922c]. (check-in: 54251f81 user: drh tags: trunk)
16:45
When an OOM occurs and sets the Parse.nErr value, also set the Parse.nErr value for all outer Parse objects. dbsqlfuzz d33f60aaa67733aa700cd69dacf8e0e23a327a29 (check-in: 073621af user: drh tags: branch-3.39)
15:53
When an OOM occurs and sets the Parse.nErr value, also set the Parse.nErr value for all outer Parse objects. dbsqlfuzz d33f60aaa67733aa700cd69dacf8e0e23a327a29 (Leaf check-in: b17a2503 user: drh tags: branch-3.39-pcache)
15:19
If sqlite3PcacheMove() moves a page on top of another, swap the two pages, moving the other back to the page number of the original. (check-in: 04eb9f97 user: drh tags: branch-3.39-pcache)
15:09
If sqlite3PcacheMove() really performs a swap, then be sure to renumber the second page. (check-in: 81cff9f1 user: drh tags: trunk)
14:29
Enhance the pcache1 implementation so that during an xRekey operation if another page already exists at the destination, that other page gets moved to the source key. (check-in: aadd38f9 user: drh tags: trunk)
12:12
Mutex protect access to the sqlite3_test_directory and sqlite3_data_directory global variables. See forum thread 719a11e1314d1c70. (check-in: 34c6ec39 user: drh tags: branch-3.39)
11:45
Mutex protect access to the sqlite3_test_directory and sqlite3_data_directory global variables. See forum thread 719a11e1314d1c70. (check-in: 8e6ad3a3 user: drh tags: trunk)
11:12
Improved mutex protection of the sqlite3_temp_directory and sqlite3_data_directory global variables. (Closed-Leaf check-in: ebbe9634 user: drh tags: tempdir-mutex)
00:36
Experimental changes to put sqlite3_temp_directory behind a mutex. (check-in: 5ee3515f user: drh tags: tempdir-mutex)
2022-09-01
21:00
Further work on making recovery extension compatible with the shell tool ".recover" code. (check-in: 8df7c7d0 user: dan tags: recover-extension)
14:33
Defer deleting a transient SELECT statement associated with a flattening of one arm of a compound SELECT until after the parse has completed. (check-in: 8403c0d5 user: drh tags: branch-3.39)
13:51
Defer deleting a transient SELECT statement associated with a flattening of one arm of a compound SELECT until after the parse has completed. This is a follow-up and enhancement to check-in [6e6b3729e0549de0] in response to an assertion fault reported by Chromium. (check-in: 1c4157c7 user: drh tags: trunk)
10:41
In the query planner, add a heuristic that will reduce the cost of a full table scan for a materialized view or subquery if the full scan is the outer-most loop. This is shown to speed up some queries. (check-in: e3754cc1 user: drh tags: branch-3.28)
10:29
In the query planner, add a heuristic that will reduce the estimated cost of a full table scan for a materialized view or subquery if the full scan is the outer-most loop. This is shown to speed up some queries. (check-in: 609fbb94 user: drh tags: trunk)
2022-08-31
20:45
Add new files for an extension to recover data from corrupted databases. (check-in: f8298eeb user: dan tags: recover-extension)
15:04
Enhance the b-tree page sorting code to ensure that sqlite3PagerRekey() never overloads a page number and uses only the PENDING_BYTE page for temporary storage. (check-in: 50077428 user: drh tags: trunk)
14:40
Do not attempt the OP_Count optimization on queries with HAVING clauses. This fixes a problem exposed by [2cf373b10c9bc4cb]. (check-in: 5f93239a user: drh tags: branch-3.39)
00:44
Checked in the wrong change by mistake. (Closed-Leaf check-in: 984a07d7 user: drh tags: mistake)
2022-08-30
17:57
batch-runner.js: add rudimentary metrics export to CSV. Add a toggle to reverse the log output mode (in normal order or most recent first). (check-in: b26e2bc0 user: stephan tags: fiddle-opfs)
16:54
Improved comments in pcache1.c. No changes to code. (check-in: dd017bb1 user: drh tags: trunk)
14:13
Any function call can abort. Take this into account when deciding if a DML statement needs a statement journal. See forum thread 9b9e4716c0d7bbd1 for more information. (check-in: 5bf4c5fd user: drh tags: branch-3.39)
10:26
batch-runner.js: re-enable unlink-before-run so that OPFS speedtest1 batch can work. (check-in: ba08f7a7 user: stephan tags: fiddle-opfs)
10:04
batch-runner.js: move generated SQL files into ./sql and start adding hand-written ones (like the Mandelbrot) to that set. (check-in: 06c106a7 user: stephan tags: fiddle-opfs)
09:51
Remove the .timer script entry from fiddle app because emscripten has removed getrusage(), which breaks the timer. (check-in: 9034f19a user: stephan tags: fiddle-opfs)
09:49
wasm util: remove superfluous function.bind() calls to eliminate a level of call() indirection. (check-in: 1aab9627 user: stephan tags: fiddle-opfs)
00:11
Any function call can abort. Take this into account when deciding if a DML statement needs a statement journal. See forum thread 9b9e4716c0d7bbd1 for more information. (check-in: 5c95ae6c user: drh tags: trunk)
2022-08-29
18:58
Lots of tweaking in batch-runner.js. Minor internal API update in OO #1 API. (check-in: 24b82b95 user: stephan tags: fiddle-opfs)
17:41
Add test descriptions to the speedtest1 '-- begin' markers for potential display by the downstream JS code which uses those markers. (check-in: e5b7006f user: stephan tags: fiddle-opfs)
12:39
Add batch-runner.js for running batch SQL scripts with timing info. (check-in: 11f3ed61 user: stephan tags: fiddle-opfs)
12:31
Add get/setPtrValue() to the common wasm utils. (check-in: 24d70fc4 user: stephan tags: fiddle-opfs)
09:51
Add begin/end comment markers to the test blocks in speedtest1 --script output to facilitate chopping up the output into chunks for JS-side processing. (check-in: ef0b7ef2 user: stephan tags: fiddle-opfs)
08:04
oo #1 api: correct a case where a null callback is called. Rename some vars for clarity. Increase wasm-side memory in order to be able to load the speedtest1 output. (check-in: b5058f14 user: stephan tags: fiddle-opfs)
2022-08-27
16:11
More assert() statements in the page cache. (check-in: 7c96a56c user: drh tags: trunk)
14:43
Ensure that every pcache page always has either the PGHDR_DIRTY or the PGHDR_CLEAN bit set, even during transient page reshuffling during btree balancing. (check-in: e67f03c1 user: drh tags: trunk)
2022-08-25
19:38
Merge changes from trunk into the fiddle-opfs branch. (check-in: 34279797 user: stephan tags: fiddle-opfs)
19:29
Ensure that sqlite3_prepare() inputs always have a semicolon terminator in speedtest1. (check-in: c72756b0 user: drh tags: trunk)
19:19
Add the --script option to speedtest1. (check-in: 1c87d7c5 user: drh tags: trunk)
18:29
Fix the bytecode engine so that it is able to handle an incoming SQLITE_TOOBIG error, which is now possible using the statement cache. (check-in: 7763b98b user: drh tags: stmt-cache)
17:12
Do not attempt to cache DDL statement. (check-in: 8f6a1f77 user: drh tags: stmt-cache)
15:09
Improved documentation of new features. Minor speed enhancements. (check-in: da9aa547 user: drh tags: stmt-cache)
14:31
Merge changes from trunk into the stmt-cache branch. (check-in: bc988ce7 user: drh tags: stmt-cache)
13:32
Remove a NEVER() macro for a condition that is actually reachable following an OOM. dbsqlfuzz crash-6ef3cd3b18ccc5de86120950a0498641acd90a33.txt. (check-in: b573e2cf user: dan tags: trunk)
13:27
Consolidate oo1.DB.exec() and oo1.DB.execMulti() into oo1.DB.exec(). This is a bit less efficient but certainly easier for a client to deal with and lightens the maintenance burden. (check-in: 7eff7213 user: stephan tags: fiddle-opfs)
13:09
If a perpared statement runs the Expire opcode, then disqualify it from being cached. (check-in: f27d919f user: drh tags: stmt-cache)
11:39
Refactor and expand the worker1 docs, consolidating them into the top of their file instead of scattered around the internals. Accommodate an API change from yesterday in demo-oo1.js. (check-in: 0a657470 user: stephan tags: fiddle-opfs)
2022-08-24
23:50
Change sqlite3_prepare_v3() to require SQLITE_PREPARE_CACHE in order for a statement to be a cache candidate. But any statement can pull from the cache. Also add statement cache control to the CLI. (check-in: c9dc536d user: drh tags: stmt-cache)
20:57
Change DB.exec() rowMode default from 'stmt' to 'array', per /chat discussion. Add DB.exec() rowMode option for fetching a specific column by name. Add result column names to worker1 exec() callback interface, as there's otherwise no way to get that info from a worker. (check-in: 1bb37e5c user: stephan tags: fiddle-opfs)
18:39
Expand the worker1 'exec' op handling for per-row callbacks for API-level consistency and smooth some edges between worker1 core and worker1-promiser. Add worker1 'config-get' message to fetch the serializable parts of the sqlite3.config state. Improve the 'open' op's handling of the 'persistent' option (noting that we cannot yet test that case from a worker). (check-in: 509f8839 user: stephan tags: fiddle-opfs)
17:59
Add a mutex to the sqlite3_db_config() interface so that it is threadsafe when two or more threads call it on the same database connection at the same time. (check-in: 459ad884 user: drh tags: trunk)
17:55
First attempt at adding a built-in prepared statement cache. This is mostly working, but still has a few obscure faults. (check-in: c217b763 user: drh tags: stmt-cache)
14:50
js: resolve the mysterious "extra" unhandled exception notification, caused by inadvertently forking one promise into two separate ones (failing to properly reassign a then() result). Fix a typo in new Worker 1 code which caused the DB(filename) name to be incorrect. (check-in: 7467ac88 user: stephan tags: fiddle-opfs)
11:51
Fix an inefficiency in the ".dump" command when outputing large blob literals. (check-in: c055d05d user: dan tags: trunk)
05:59
More work on how to configure the sqlite3 JS API bootstrapping process from higher-level code. Initial version of sqlite3-worker1-promiser, a Promise-based proxy for the Worker API #1. (check-in: b030f321 user: stephan tags: fiddle-opfs)
00:51
The very basics of a Promise-based proxy for the Worker #1 API. Still requires considerable cleanup, testing, and a solution for the exec-callback-via-event-type-name problem. (check-in: 1e447849 user: stephan tags: fiddle-opfs)
00:10
Significant restructuring of the Worker #1 request/response object structures to improve readability and clarity. (check-in: 03b9db9b user: stephan tags: fiddle-opfs)
2022-08-23
20:11
Change the names of the Vdbe.pVNext and Vdbe.ppVPrev fields to make them unique. Change to ppVPrev to save a few bytes and a few CPU cycles. (check-in: 34b8ea31 user: drh tags: trunk)
17:51
Enhance assert() statements to enforce tighter bounds on the P5 operand of the OP_Next and OP_Prev opcodes. (check-in: 4e0a07fc user: drh tags: trunk)
17:02
Wasm build flag tweaks and documentation. (check-in: c8eb3aa8 user: stephan tags: fiddle-opfs)
16:55
Add mksourceid binary to the clean rules and $(TESTPROGS) to distclean. (check-in: ae3e82f5 user: stephan tags: trunk)
2022-08-22
21:37
More experimentation with how client-side config state can be passed on to initialize the JS-side sqlite3 API. (check-in: ea2acc45 user: stephan tags: fiddle-opfs)
16:30
Merge recent trunk enhancements into the reuse-schema branch. (check-in: 9c05a48e user: drh tags: reuse-schema)
16:08
Merge all recent trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: dde76e91 user: drh tags: begin-concurrent-pnu-wal2)
15:57
Merge all recent trunk enhancements into the wal2 branch. (check-in: 0b7578bf user: drh tags: wal2)
15:48
Merge all recent trunk enhancements into the begin-concurrent-report branch. (check-in: 2ec6e9e1 user: drh tags: begin-concurrent-report)
15:42
Merge all recent trunk enhancements into the begin-concurrent branch. (check-in: 7eac6136 user: drh tags: begin-concurrent)
15:18
Performance enhancement for sqlite3DbFree(). (check-in: c296a9d9 user: drh tags: trunk)
14:03
Merge recent trunk changes into the fiddle-opfs branch. (check-in: e215d55a user: stephan tags: fiddle-opfs)
13:34
Refactor JS API amalgamation such that the bootstrapping/configuration is deferred until the whole amalgamation is available, to facilitate providing clients with a way to initialize the API with their own config (noting that we're still one small level of refactoring away from being able to actually do that). (check-in: 9dbe9a6a user: stephan tags: fiddle-opfs)
08:55
wasm: accommodated a JS API rename. (check-in: 00991335 user: stephan tags: fiddle-opfs)
02:00
Add the new internal interface sqlite3DbNNFreeNN(db,ptr) where both the db and ptr parameters are guaranteed to be non-NULL. Use this where appropriate to save more than 2 million CPU cycles on the standard performance test. (check-in: e5eaa80e user: drh tags: trunk)
2022-08-20
19:45
Merge the test case for dbsqlfuzz 18fe4e257be7fa3ecfb0424ab7427e41e97ef9e3 assertion fault, which is fixed with the previous check-in. (check-in: 2d13ec08 user: drh tags: trunk)
19:33
Enhance the enforcement of SQLITE_VTAB_DIRECTONLY so that it applies to DML statements within triggers. Do not allow DML stratements against virtual tables within triggers unless either the virtual table is SQLITE_VTAB_INNOCUOUS or PRAGMA trusted_schema is ON. (check-in: 9433ea40 user: drh tags: trunk)
2022-08-19
20:10
Add test case for fuzzer case crash-18fe4e. (Closed-Leaf check-in: 8372468b user: dan tags: crash-18fe4e)
2022-08-18
15:53
Add notes to ext/wasm/README.md explaining how to run tests on a remote machine. (check-in: 7a3c444f user: drh tags: fiddle-opfs)
12:21
javascript: rename and simplify DB.callInTransaction() as DB.transaction(). Add DB.savepoint(), which works the same as transaction() but uses savepoints. Correct concatenation of arguments to SQLite3Error to use spaces instead of commas. Test that demo-oo1.js works with persistent OPFS storage (output differs due to persistent rows, but the demo works). (check-in: e8c323f1 user: stephan tags: fiddle-opfs)
11:16
Improve an exception check in demo-oo1.js. (check-in: 55e1b775 user: stephan tags: fiddle-opfs)
2022-08-17
20:18
In the ".dump" command of the CLI, if a schema statement ends with an unterminated comment, try to terminate that comment prior to appending the ";" at the end. Forum post d7be961c5c. (check-in: 96e112da user: drh tags: trunk)
18:07
Enhance the "PRAGMA integrity_check" statement so that it verifies the rows of a WITHOUT ROWID table are in the correct order. (check-in: 62f934bf user: drh tags: trunk)
17:14
Minor code simplification in the code generator for PRAGMA integrity check. (check-in: a3b9c7a6 user: drh tags: trunk)
16:44
Minor cleanups, reorgs, and doc updates for the JS APIs. Renamed sqlite3(-api)-worker.js to sqlite3(-api)-worker1.js, for symmetry with sqlite3-api-oo1.js. (check-in: f5059ee6 user: stephan tags: fiddle-opfs)
2022-08-16
17:29
wasm: minor cleanups in the OO API #1 demo. (check-in: b9cdcc06 user: stephan tags: fiddle-opfs)
17:18
Change the legacy RC4-based PRNG to use the RFC-7539 chacha20 algorithm. (check-in: a0f80115 user: drh tags: trunk)
16:57
Fix obsolete comments. Add new comments. Fix non-standard spacing. (Closed-Leaf check-in: a0d224c6 user: drh tags: chacha20-prng)
16:40
Fix an off-by-one error in the ChaCha20 initialization code. (check-in: 72e220ee user: drh tags: chacha20-prng)
16:36
wasm: add a small demo/presentation app for JS OO API #1 and make a few minor additions to that API. (check-in: d6d79b66 user: stephan tags: fiddle-opfs)
16:16
wasm: move another file and update testing1/testing2 to account for [e38d00c2b82d]. Disable wasmfs by default as it breaks the worker-based module loader (reason as yet unknown). (check-in: 6dad5e05 user: stephan tags: fiddle-opfs)
16:11
wasm: accommodate moving generated sqlite3.js in the previous checkin. (check-in: 41762f95 user: stephan tags: fiddle-opfs)
16:06
wasm: disable shared cache mode by default. Experimentally move wasm-build generated files up one dir to rule the extra dir out as a problem for Emscripten-related worker-loading failures. (check-in: e38d00c2 user: stephan tags: fiddle-opfs)
14:09
Omit an unnecessary test case from corruptN.test that does not work with the new RFC-7539 PRNG. (check-in: d9e8c65e user: drh tags: chacha20-prng)
10:52
Add assert() statements to verify that the SQLITE_OPEN_EXCLUSIVE flag is always passed to the VFS when opening a temporary file. (check-in: e123da49 user: dan tags: trunk)
00:04
Replace the RC4-based PRNG with one based on ChaCha20 (RFC 7539). 3x faster. (check-in: 084d8776 user: drh tags: chacha20-prng)
2022-08-15
19:23
Extra test for SQLITE_MAX_COMPOUND_SELECT. (check-in: c2710967 user: dan tags: trunk)
18:36
The new --script option to dbtotxt.c looks for an SQL script at the head of the file and generates a CLI script that will construct the database then run the SQL. (check-in: 6170e638 user: drh tags: trunk)
12:26
In the documentation emphasize that the use of shared cache is discouraged. Fix test cases so that they all work with shared cache disabled. (check-in: 52c3ae06 user: drh tags: trunk)
2022-08-13
17:13
Add worker-style variant of the tests added in [ae24ac0f7dd9], but building this with wasmfs causes them to throw inexplicable exceptions from the Emscripten glue (without wasmfs it builds and runs fine, but storage is not persistent). (check-in: 6401595e user: stephan tags: fiddle-opfs)
16:36
wasmfs: use unix-none VFS by default to avoid locking errors in non-OPFS mode. (check-in: 75561dea user: stephan tags: fiddle-opfs)
16:11
Add scratchpad/test app for WASMFS/OPFS running in the main window thread. Enable WASMFS by default in the library build. (check-in: ae24ac0f user: stephan tags: fiddle-opfs)
13:56
Cleanups in the wasmfs/opfs integration but disable it in order to get the build into a known-working state before continuing with experimentation. (check-in: 41045be7 user: stephan tags: fiddle-opfs)
13:51
Remove OPFS from the fiddle build for the time being - will re-enable once the breakage is figured out via testing with the core API. (check-in: 3bc510a6 user: stephan tags: fiddle-opfs)
13:46
wasm OO API #1: added DB.callInTransaction() and Stmt.stepFinalize(). (check-in: e37dddc1 user: stephan tags: fiddle-opfs)
13:42
Corrected TextDecoder.decode() usage to run when its input references a SharedArrayBuffer. (check-in: d4d77340 user: stephan tags: fiddle-opfs)
2022-08-12
18:54
Use new -DSQLITE_DEFAULT_UNIX_VFS="unix-none" for fiddle build to bypass OPFS locking errors. (check-in: b3a93ec7 user: stephan tags: fiddle-opfs)
18:46
Add the (undocumented) SQLITE_DEFAULT_UNIX_VFS compile-time option. (check-in: 49828bde user: drh tags: trunk)
18:07
Updated fiddle deps to ensure that sqlite3.c is built first. (check-in: f0ca0261 user: stephan tags: fiddle-opfs)
17:57
Build fiddle with WASMFS OPFS support and attempt to use it if available. It does not work because of an inexplicable exception in Emscripten-generated code and perpetually-locked db, but it's not yet clear why. (check-in: a16f0a46 user: stephan tags: fiddle-opfs)
17:55
Minor wasm-related doc clarification and remove an obsolete code comment. (check-in: 1b1f650a user: stephan tags: trunk)
13:07
wasm: document the role of sqlite3-wasm.c. Other minor doc updates. (check-in: 4c10b9b1 user: stephan tags: trunk)
09:32
wasm: corrected (in as-yet unused code) a flags check. (check-in: 06b61137 user: stephan tags: trunk)
2022-08-11
15:45
Wasm-related doc additions and tweaks. (check-in: ec55a3aa user: stephan tags: trunk)
09:18
Merge in wasm-cleanups branch, reorganizing and updating the wasm-related components. (check-in: c072594d user: stephan tags: trunk)
2022-08-10
18:40
Fix another harmless comment typo that causes a typo in the documentation. (check-in: bb084adb user: drh tags: trunk)
18:33
Remove (harmless) duplicate words in comments used to generate parts of the documentation. forum post 54abbe9ccd (check-in: b5e4f0db user: drh tags: trunk)
17:03
Merge the branch-3.28a fixes into branch-3.28. (check-in: ba6bf331 user: drh tags: branch-3.28)
15:29
Fix handling of columns with names that are SQL keywords in the ".expert" command. (check-in: 5e1b8221 user: dan tags: trunk)
13:22
wasm opfs: error handling fix for an impossible-to-reach error case. Minor cosmetic tweaks in the wasm JSON enum. (Closed-Leaf check-in: 683a3b93 user: stephan tags: wasm-cleanups)
11:26
wasm refactoring part 2 of (apparently) 2: moved ext/fiddle/... into ext/wasm and restructured the core API-related parts of the JS/WASM considerably. (check-in: 27f9da4e user: stephan tags: wasm-cleanups)
09:36
wasm/fiddle refactoring part 1 of N: move fiddle app from ext/fiddle to ext/wasm/fiddle, which only contains files intended to be pushed to the live site. Disabled build of the non-fiddle wasm parts, pending a later step of the refactoring. (check-in: fb4eb930 user: stephan tags: wasm-cleanups)
07:58
Merged in trunk for pending tree refactoring. (check-in: c3a3cb01 user: stephan tags: wasm-cleanups)
2022-08-09
20:22
Fix a rounding error caused by scalar->logarithm->scalar conversion when using stat4 data to estimate some range scans. (check-in: 68d86f2b user: drh tags: branch-3.28)
16:13
Allow the name of an index to collide with a table in a different schema. (check-in: f963c252 user: drh tags: trunk)
14:28
Omit the (undocumented) SQLITE_PCACHE_SEPARATE_HEADER compile-time option. (check-in: 60947da6 user: drh tags: trunk)
2022-08-08
19:29
Avoid some cases of signed integer overflow in fts5 by casting to unsigned values. (check-in: 46a78c8c user: dan tags: trunk)
16:25
Avoid trying to cast an over-sized floating point value into an integer. (check-in: 3518cd7c user: drh tags: trunk)
13:04
Remove an unreachable branch in the numericType() helper routine. (check-in: a99cc008 user: drh tags: trunk)
12:19
Do not attempt to convert an oversized floating point value into an integer. (check-in: 6c4fc838 user: drh tags: trunk)
2022-08-06
15:28
Fix a rounding error caused by scalar->logarithm->scalar conversion when using stat4 data to estimate some range scans. (check-in: 86e30d7c user: dan tags: trunk)
2022-08-05
19:37
Avoid having fts3 read uninitialized values when processing deferred tokens. (check-in: 8e2bfe58 user: drh tags: branch-3.39)
17:16
Avoid having fts3 read uninitialized values when processing deferred tokens. (check-in: 98729c5f user: dan tags: trunk)
05:30
Fix harmless compiler warning seen with MSVC. (check-in: e36217f2 user: mistachkin tags: trunk)
2022-08-04
17:17
Fix a problem with the query optimizer for LIMIT/OFFSET queries when underlying query is a UNION ALL and both arms of the UNION ALL are subqueries with an ORDER BY clause. (check-in: 5e1db87c user: drh tags: branch-3.39)
17:15
Fix a problem with the query optimizer for LIMIT/OFFSET queries when underlying query is a UNION ALL and both arms of the UNION ALL are subqueries with an ORDER BY clause. This bug was reported at forum post 6b5e9188f0657616. The problem was introduced in 2015 (SQLite version 3.9.0) by check-in [4b631364354068af]. See also ticket [b65cb2c8d91f6685]. (check-in: 6c806f64 user: drh tags: trunk)
14:02
Fix a typo on a comment used to generate bytecode documentation. (check-in: 64348d0b user: drh tags: trunk)
2022-08-03
19:53
Performance optimization to the math opcodes of the bytecode engine. (check-in: 597347d9 user: drh tags: trunk)
19:37
Small performance increase on the binding interfaces. (check-in: aab24c37 user: drh tags: trunk)
17:27
Improvement on the previous check-in. (check-in: 0d0c3111 user: drh tags: branch-3.39)
17:26
Improvement on the previous check-in. (check-in: c1ab0ea2 user: drh tags: trunk)
16:04
For an IN operator used with a RIGHT JOIN, use the number of terms in the vector, not the number of equality terms, to size the column map. dbsqlfuzz 14cfdad6ca45e607163f54049ddf5065183dc657. (check-in: 003e4eee user: drh tags: branch-3.39)
15:58
For an IN operator used with a RIGHT JOIN, use the number of terms in the vector, not the number of equality terms, to size the column map. dbsqlfuzz 14cfdad6ca45e607163f54049ddf5065183dc657, CVE-2022-3195. This problem was injected by [a193749730d6cfba] which was part of the RIGHT JOIN enhancement for version 3.39.0. (check-in: b184c8d9 user: drh tags: trunk)
2022-08-01
13:17
Bump the version number up to 3.39.3. (check-in: d0f7f22a user: drh tags: branch-3.39)
13:15
In the xUpdate method of the GeoPoly virtual table, make sure that the number of updated columns does not exceed the underlying implementation, even if the virtual table object records an excess number of column in the nAux field due to table constraints in the table definition. Fix for the problem reported by forum post a096ab7d96bb057a. (check-in: a8ae7216 user: drh tags: branch-3.39)
13:14
In the xUpdate method of the GeoPoly virtual table, make sure that the number of updated columns does not exceed the underlying implementation, even if the virtual table object records an excess number of column in the nAux field due to table constraints in the table definition. Fix for the problem reported by forum post a096ab7d96bb057a. A test case for this problem is in dbsqlfuzz. (check-in: a04dd475 user: drh tags: trunk)
2022-07-26
19:10
Restore a VDBE coverage macro that is mistakenly deleted for check-in [92ac01d41d46ab73]. (check-in: 01de7ec4 user: drh tags: trunk)
18:43
Fix another problem related to aggregate query LEFT JOIN flattening. (check-in: 8e12c6f5 user: dan tags: trunk)
15:41
Omit a unused variable initialization in order to suppress a harmless compiler warning. (check-in: 2d703c5e user: drh tags: trunk)
15:39
Add test cases related to fix [e717e029]. (Closed-Leaf check-in: 2909f36b user: dan tags: flatten-left-join)
15:32
Make sure IF_NULL_ROW expressions receive a separate slot in the sorter used to implement GROUP BY. (check-in: 2bda4fca user: drh tags: flatten-left-join)
14:37
Improved AggInfo.aCol debugging output, intended to debug a problem with LEFT JOIN flattening into an aggregate query with GROUP BY. (check-in: e717e029 user: drh tags: flatten-left-join)
10:16
Add a OOM term to a single assert() statement. (check-in: 217fc3eb user: drh tags: trunk)
01:20
Performance optimization: avoid unnecessary calls to computeLimitRegisters(). (check-in: f48bd8f8 user: drh tags: trunk)
2022-07-25
23:34
Fix an assert() that was made out-of-date by [b52393ac28debe98]. (check-in: db8230e8 user: drh tags: trunk)
23:01
Performance optimization by only invoking sqlite3FkCheck() when it is actually needed. (check-in: 98b0e830 user: drh tags: trunk)
22:31
Performance optimization in sqlite3ViewGetColumnNames(). (check-in: 390717e6 user: drh tags: trunk)
22:02
Fix a harmless compiler warning. (check-in: 9aba7417 user: drh tags: trunk)
21:37
In-line a call to sqlite3ExprCode() in insert.c, for a size reduction and performance increase. (check-in: 35066b14 user: drh tags: trunk)
20:21
Performance optimization in computing the Expr.nHeight field. (check-in: 1798ce97 user: drh tags: trunk)
19:05
Small performance increase and size reduction by splitting out the sqlite3VdbeGetLastOp() from sqlite3VdbeGetOp(). (check-in: 92ac01d4 user: drh tags: trunk)
16:06
Fix an error in the aggregate query LEFT JOIN flattening optimization from [2cf373b10c9bc4cb] and further enhance that optimization so that it works even if there is a GROUP BY clause. (check-in: b52393ac user: drh tags: trunk)
15:54
Allow subqueries on the right-hand side of a LEFT JOIN to be flattened even if they contain a GROUP BY clause. (Closed-Leaf check-in: 816da9a8 user: drh tags: flatten-left-join)
14:05
TK_IF_NULL_ROW expressions must be accumulated in the same way as TK_COLUMN expressions in an aggregate query. Proposed fix for the problem identifyed by dbsqlfuzz 8e17857db2c5a9294c975123ac807156a6559f13. (check-in: 40d08807 user: drh tags: flatten-left-join)
11:19
If the LHS of a LEFT JOIN is flattened into an aggregate parent query, avoid executing OP_IfNullRow on an unopened cursor by disallowing the index-only optimization. (Later:) Does not work if automatic indexes are disabled. (Closed-Leaf check-in: dbe522b0 user: dan tags: nonworking-flatten-left-join)
11:04
Reduce a timeout in walsetlk.test from 2000ms to 1100ms so that the test runs a bit faster. (check-in: 836fa097 user: dan tags: trunk)
2022-07-23
12:51
Simplifications to sqlite3FinishCoding() for a small size reduction and performance increase. (check-in: a995614b user: drh tags: trunk)
00:53
Remove a branch that is no longer reachable due to the previous check-in. (check-in: 8b4d1b93 user: drh tags: trunk)
00:44
Use sqlite3ParserAddCleanup() rather than pParse->pConstExpr to implement sqlite3ExprDeferredDelete(). This is a better solution than check-in [c538d07535092722]. (check-in: 2a6f6971 user: drh tags: trunk)
2022-07-22
19:28
Omit the EP_MemToken flag that was made obsolete by [e1f1cfe7f4387b60], for a size reduction and performance increase. (check-in: 28934a9d user: drh tags: trunk)
18:25
In a TK_BLOB Expr node, the Expr.zToken might not be a well-formed BLOB literal if there has been a prior OOM. dbsqlfuzz 23871e5805d6c45b392f9b7aa1e8a2b98f3c27cd. (check-in: c538d075 user: drh tags: trunk)
14:52
Update the documentation for SQLITE_OPEN_NOFOLLOW to state more clearly that nothing in the database path is allowed to be a symbolic link. (check-in: de922269 user: drh tags: trunk)
2022-07-21
18:37
Fix harmless compiler warning seen with MSVC. (check-in: 648172de user: mistachkin tags: trunk)
16:07
Merge the fixes from branch-3.39 into the reuse-schema branch. (check-in: 578538ba user: drh tags: reuse-schema-3.39)
15:24
Version 3.39.2 (check-in: 698edb77 user: drh tags: release, branch-3.39, version-3.39.2)
12:26
In the query planner, restore the former aggressiveness in reordering of FROM clause terms that existed prior to version 3.39.0 for queries that contain no RIGHT or FULL JOINs. (check-in: 9141e873 user: drh tags: branch-3.39)
2022-07-20
20:36
Make use of the sqlite3ExprDeferredDelete() interface in the previous check-in, and in another place where it might be helpful. (check-in: 22f90e96 user: drh tags: trunk)
17:01
Simplify the logic that converts the "1" expression in "ORDER BY 1" into a copy of the expression that defines the first output column. (check-in: 44993591 user: drh tags: branch-3.39)
16:42
Simplify the logic that converts the "1" expression in "ORDER BY 1" into a copy of the expression that defines the first output column. Fix for CVE-2022-3034. Test case in TH3. (check-in: e1f1cfe7 user: drh tags: trunk)
10:09
Merged in trunk. (check-in: d662796c user: stephan tags: wasm-cleanups)
2022-07-19
21:12
Improve accuracy of julian day milliseconds calculation. (check-in: e5e93118 user: larrybr tags: trunk)
2022-07-18
19:32
Remove a few unsuitable scripts from the "veryquick" test suite. Also have every second testrunner.tcl process favour running test scripts that contain text like "testrunner: slow" before any others. (check-in: 22d280a5 user: dan tags: trunk)
18:13
Add the "testrunner" makefile target. (check-in: 954c6593 user: drh tags: trunk)
15:27
Increase the size of loop variables in the printf() implementation to avoid integer overflow on multi-gigabyte string arguments. CVE-2022-35737. (check-in: 26db4fc2 user: drh tags: branch-3.39)
15:02
Increase the size of loop variables in the printf() implementation to avoid integer overflow on multi-gigabyte string arguments. CVE-2022-35737. (check-in: aab790a1 user: drh tags: trunk)
13:55
Enhance the REGEXP extension so that it will accept the start-of-input mark ("^") in the middle of parentheses. Forum post 0d6a9160f81ef1a8. (check-in: ed8a8ebd user: drh tags: trunk)
13:10
Fix a problem in the REGEXP extension for the {M,N} construct where M is zero. See forum post 8694e55a2c29963c for more information. (check-in: af15bb75 user: drh tags: trunk)
11:44
Enhance the ext/misc/regexp.c code so that when it is compiled with SQLITE_DEBUG, a new function named regexp_bytecode() is available that prints out the compiled NFA as human-readable text, for debugging purposes. (check-in: cb5c0897 user: drh tags: trunk)
2022-07-16
18:08
Fixes for the generated "mallocs.tcl" and "leaks.tcl" scripts generated by running tcl tests with the --malloctrace=1 option. (check-in: 449799e2 user: dan tags: trunk)
2022-07-15
20:39
In the query planner, restore the former aggressiveness in reordering of FROM clause terms that existed prior to version 3.39.0 for queries that contain no RIGHT or FULL JOINs. (check-in: 92d60b64 user: drh tags: trunk)
15:24
Fix harmless compiler warnings seen with MSVC. (check-in: 2be8fa15 user: mistachkin tags: branch-3.39)
15:11
Fix a memory leak in fts3 that could occur when processing a corrupt database. (check-in: 48f323b9 user: dan tags: branch-3.39)
15:08
Fix a memory leak in fts3 that could occur when processing a corrupt database. (check-in: d74f6f6d user: dan tags: trunk)
12:34
Fix the whereKeyStats() routine (part of STAT4 processing only) so that it is able to cope with row-value comparisons against the primary key index of a WITHOUT ROWID table. Forum post 3607259d3c. (check-in: 2a6f7618 user: drh tags: branch-3.39)
12:16
Fix the whereKeyStats() routine (part of STAT4 processing only) so that it is able to cope with row-value comparisons against the primary key index of a WITHOUT ROWID table. Forum post 3607259d3c. (check-in: 0620e419 user: drh tags: trunk)
12:07
Update some faulty assert() statements in fts3. (check-in: 958d104b user: dan tags: branch-3.39)
11:34
Update some faulty assert() statements in fts3. (check-in: b072851b user: dan tags: trunk)
2022-07-14
21:17
Ensure all testrunner.tcl processes use the same pending-byte value when accessing testrunner.db. Otherwise locking doesn't work and the db is corrupted. (check-in: b6522565 user: dan tags: trunk)
18:09
Update testrunner.tcl so that it can run the test suites defined in permutation.test. (check-in: 15ce937e user: dan tags: trunk)
01:54
Bump the version number up to 3.39.2. (check-in: c4dbcb28 user: drh tags: branch-3.39)
01:49
When applying the omit-ORDER-BY optimization, defer deleting the AST of the deleted ORDER BY clause until after code generation ends. (check-in: b88d6c4b user: drh tags: branch-3.39)
01:48
When applying the omit-ORDER-BY optimization [85ddaf1b59a19cbd], defer deleting the AST of the deleted ORDER BY clause until after code generation ends. Fix for CVE-2022-3039. Test case in TH3. (check-in: f22f95b8 user: drh tags: trunk)
2022-07-13
21:28
Fix testrunner.tcl so that it can detect the number of logical cores on osx. (check-in: 14918f28 user: dan tags: trunk)
21:10
Minor change to help message in testrunner.tcl. (check-in: e4f9cb01 user: dan tags: trunk)
21:02
Add new script test/testrunner.tcl. For running a set of test scripts using multiple processes. (check-in: 0122e93d user: dan tags: trunk)
20:26
Fix a problem preventing "testrunnter.tcl all" from working. (Closed-Leaf check-in: 0ed1e83c user: dan tags: testrunner)
19:57
Update testrunner.tcl to allow the user to specify which tests to run on the command line. (check-in: 900febcf user: dan tags: testrunner)
19:41
Version 3.39.1 (check-in: 7c16541a user: drh tags: release, branch-3.39, version-3.39.1)
17:46
Fix testrunner.tcl so that it checks for memory leaks. (check-in: 106f6724 user: dan tags: testrunner)
16:06
The query flattener should not run if the subquery is a compound that contains a RIGHT JOIN in any arm and the subquery is not the first element of the outer query. Otherwise, prior elements of the outer query will not have the JT_LTORJ flag set. Fix for the problem reported in forum post 174afeae5734d42d. (check-in: cf9ed7f2 user: drh tags: branch-3.39)
15:52
The query flattener should not run if the subquery is a compound that contains a RIGHT JOIN in any arm and the subquery is not the first element of the outer query. Otherwise, prior elements of the outer query will not have the JT_LTORJ flag set. Fix for the problem reported in forum post 174afeae5734d42d. (check-in: 274e244c user: drh tags: trunk)
11:27
Fix test case error messages so that they work with after the removal of the unnecessary zErrMsg clearing from [44d77a7f807f5dc3]. (check-in: 7b167b87 user: drh tags: branch-3.39)
2022-07-12
20:31
Add test/testrunner.tcl, an experimental script for distributing the work of veryquick.test between multiple processes. (check-in: ef229cbb user: dan tags: testrunner)
15:53
Renamed the SQLITE_SHELL_WASM_WEB_MODE to SQLITE_SHELL_FIDDLE, which seems to be more in line with project convensions and indicates that that flag is only intended for /fiddle mode, as opposed to arbitrary wasm-on-the-web use. (check-in: d1d019bf user: stephan tags: trunk)
15:17
Fix another test case error message similar to those fixed in [b3d6b3c3]. (check-in: 6d0f6772 user: dan tags: trunk)
15:12
Update makefiles to fix building the non-amalgamation testfixture with SQLITE_DEBUG. (check-in: 1ca70564 user: dan tags: branch-3.39)
15:10
Update makefiles to fix building the non-amalgamation testfixture with SQLITE_DEBUG. (check-in: d9c4a9d0 user: dan tags: trunk)
10:46
Fix a bug in wapptest.tcl introduced by [51255bad4c1fb607]. (check-in: b26d097e user: drh tags: trunk)
09:40
Renamed SQLITE_SHELL_WASM_MODE to SQLITE_SHELL_WASM_WEB_MODE and no longer automatically enable it if __EMSCRIPTEN__ is defined, in order to facilitate using Emscripten to build the shell for CLI-based WASM runtimes (which cannot make use of the web-specific user input changes). The fiddle build now explicitly passes the new flag on at compile-time. (check-in: ee059ad5 user: stephan tags: trunk)
07:13
Back out the pager performance enhancement at [a1c090e08139f99d3], because it turns out we should never allow a zero key into the pcache interface according to the design specs, even if that page is immediately released without ever being used. (check-in: ec96293e user: drh tags: trunk)
2022-07-11
22:20
Add the --config option to wapptest.tcl. The argument is a glob pattern. All configurations must match the glob pattern in order to run. The default value is "*". (check-in: 51255bad user: drh tags: trunk)
21:40
Update the expected error messages in some OOM test cases to account for [44d77a7f807]. (check-in: b3d6b3c3 user: dan tags: trunk)
19:48
Use 64-bit memory allocation APIs in the sqlite_stmt virtual table, to avoid harmless compiler warnings. (check-in: 4c40b38c user: drh tags: branch-3.39)
19:47
Use 64-bit memory allocation APIs in the sqlite_stmt virtual table, to avoid harmless compiler warnings. (check-in: afb9e60e user: drh tags: trunk)
19:29
Fix harmless compiler warnings. (check-in: 9931bb20 user: drh tags: branch-3.39)
19:12
In the sqlite_stmt extension, store the result of strlen() in a 64-bit integer to avoid a compiler warning, even though we know that the length will always fit comfortably in 32 bits. (check-in: 3fe19452 user: drh tags: trunk)
18:26
Fix harmless compiler warnings about unused debugging functions in treeview.c. (check-in: 4d6f9077 user: drh tags: trunk)
18:11
Back out the optimization at [1a8c2e54375ee2cf7] because there are some cases where it does not work. (check-in: fe39c8d5 user: drh tags: trunk)
14:44
Increase the version number to 3.39.1. (check-in: 88b1b032 user: drh tags: branch-3.39)
14:43
Ensure that the Parse.nErr flag is set following an SQLITE_TOOBIG error on a nested parse. Fix for the problem identified by forum post d5a82ba9eedee30c. Also, remove unnecessary clearing of the Parse.zErrMsg field following a nested parse. (check-in: eaef7b71 user: drh tags: branch-3.39)
14:39
Fix a problem in fts3 to do with deferred tokens and OR expressions. (check-in: bbe999e3 user: drh tags: branch-3.39)
14:36
Ensure that the Parse.nErr flag is set following an SQLITE_TOOBIG error on a nested parse. Fix for the problem identified by forum post d5a82ba9eedee30c. Also, remove unnecessary clearing of the Parse.zErrMsg field following a nested parse. (check-in: 44d77a7f user: drh tags: trunk)
14:26
Fix a problem in fts3 to do with deferred tokens and OR expressions. (check-in: d0bfe5c5 user: dan tags: trunk)
2022-07-10
21:12
When an OOM occurs and sets the Parse.nErr value, also set the Parse.nErr value for all outer Parse objects. dbsqlfuzz d33f60aaa67733aa700cd69dacf8e0e23a327a29 (check-in: 9a494d25 user: drh tags: trunk)
2022-07-08
20:03
Performance optimizations in the WHERE clause processing of the query planner. (check-in: 50c8e8de user: drh tags: trunk)
18:23
Omit an unnecessary structure initialization in whereLoopAddAll(), replacing it with an assert() to show that the initialization has already occurred, for a small performance increase and size reduction. (check-in: 27be9e96 user: drh tags: trunk)
17:57
Size reduction and performance optimization in whereLoopAddBtreeIndex(). (check-in: 64d2312c user: drh tags: trunk)
16:56
In wherePathSolver(), defer initializing variables until they are actually needed, in case they are not needed. This gives a small performance increase. (check-in: 6f28a965 user: drh tags: trunk)
15:06
Upgrade the TEA build system used to build the Tcl package. (check-in: ace65da8 user: dan tags: trunk)
13:57
Fix typo in autoconf/tea/win/makefile.vc. (Closed-Leaf check-in: 094b2aad user: dan tags: tea-upgrade)
11:55
Remove an obsolete statement from a comment. No changes to code. (check-in: 99afb3f4 user: drh tags: trunk)
11:21
Update options in the TEA package msvc makefile to match other builds. (check-in: d72e12b9 user: dan tags: tea-upgrade)
11:14
Update the build options used for the TEA package to match those used to build the binaries at download.html. (check-in: 9d6d9dba user: dan tags: tea-upgrade)
2022-07-07
22:59
Very small size reduction and performance increase in btree.c. (check-in: 9a7c031a user: drh tags: trunk)
21:04
Size reduction and performance increase in defragementPage() of btree.c. (check-in: 1b03f197 user: drh tags: trunk)
20:49
Upgrade the TEA build system in autoconf/tea/. To match tclconfig commit 20fe9e6f59 and Tcl Sample Extension be47fb0446. (check-in: 1531f739 user: dan tags: tea-upgrade)
20:29
Size reduction and performance increase in the pageFindSlot() routine of btree.c. (check-in: 5d247e38 user: drh tags: trunk)
20:11
Size reduction and performance increase in the freeSpace() routine of btree.c. (check-in: 7d7aed05 user: drh tags: trunk)
2022-07-06
23:50
Fix harmless compiler warnings seen with MSVC. (check-in: 61e2094a user: mistachkin tags: trunk)
15:44
Avoid ignoring the last line of a csv file if the final field is empty and there is no trailing CFLS. Also have the csv extension treat the last line of a file in the same way as any other line if it is short fields. (check-in: 587795d4 user: dan tags: trunk)
13:59
Avoid dropping error codes in the xBegin() method of virtual table sqlite_dbpage. (check-in: 570e2bce user: dan tags: trunk)
2022-07-05
19:56
Fix for builds with both SQLITE_DEBUG and SQLITE_OMIT_WINDOWFUNC defined. (check-in: dfe46de2 user: dan tags: branch-3.39)
19:53
Fix for builds with both SQLITE_DEBUG and SQLITE_OMIT_WINDOWFUNC defined. (check-in: 77916947 user: dan tags: trunk)
17:49
Fix a problem in the csv extension that was triggered when the very first field in the csv file is zero bytes in size. (check-in: b12ddabf user: dan tags: trunk)
10:40
Fix an assert() in btree to be more precise, as the previous form of that asser might fail due to recent performance optimizations. (check-in: 47749381 user: drh tags: trunk)
2022-07-04
15:14
Size reduction and performance optimization in sqlite3WalFindFrame(). (check-in: 1a8c2e54 user: drh tags: trunk)
09:41
In the getNormalPage() routine of pager.c, consolidate pgno error checking into a single spot for small size reduction and performance increase. (check-in: a1c090e0 user: drh tags: trunk)
2022-07-03
18:12
Enhance the REGEXP extension so that the end-of-input indicate ("$") is allowed to occur on one branch of an OR ("|"). Forum post 0107d5d40dd273e2, second issue. (check-in: 3c04d21e user: drh tags: trunk)
14:32
Fix the initial-prefix optimization for the REGEXP extension such that it works even if the prefix contains characters that require a 3-byte UTF8 encoding. This should fix the problem reported by forum post 96692f8ba5. (check-in: 7a32cccc user: drh tags: branch-3.39)
14:25
Fix the initial-prefix optimization for the REGEXP extension such that it works even if the prefix contains characters that require a 3-byte UTF8 encoding. This should fix the problem reported by forum post 96692f8ba5. (check-in: c94595a6 user: drh tags: trunk)
11:16
Improved comment on sqlite3VdbeSwap(). No changes to code. (check-in: 6a8e4fb7 user: drh tags: trunk)
11:12
Remove debugging code that has always been commented out. Cosmetic change. (check-in: b5406417 user: drh tags: trunk)
2022-07-01
21:03
Do not attempt the OP_Count optimization on queries with HAVING clauses. This fixes a problem exposed by [2cf373b10c9bc4cb]. (check-in: 566b7842 user: dan tags: trunk)
19:42
Performance improvement in resolveP2Values(). Save over 1 million CPU cycles by omitting the loop termination condition and exiting when the OP_Init (always the first opcode in any VDBE program) is encountered. (check-in: bb179140 user: drh tags: trunk)
12:09
In the sqlite_stmt virtual table, add two ALWAYS() macros on branches that have been come always true due to the [84a91c255e3d7772] optimization. REVISED: Dbsqlfuzz found a case where the ALWAYS() is false. (Closed-Leaf check-in: bf34eddb user: drh tags: mistake)
2022-06-30
22:46
Small performance improvement to sqlite3_finalize(). (check-in: 8a6913b6 user: drh tags: trunk)
14:19
Fix documentation and test-script typos and a dependency problem on a Makefile. Fix the sqlite_stmt extension virtual table so that it shows the state of all prepared statements for a single instant in time. (check-in: 0a9e08be user: drh tags: branch-3.39)
11:01
Add missing "finish_test" command to the end of test script merge1.test. (check-in: 13cb3f1e user: dan tags: trunk)
2022-06-29
15:16
Have the sqlite_stmt table buffer all data for the current scan within the xFilter method. (check-in: 84a91c25 user: dan tags: trunk)
2022-06-28
21:52
Merge latest fixes from begin-concurrent-pnu-wal2 branch. (Leaf check-in: 77fe7376 user: dan tags: begin-concurrent-report-wal2)
2022-06-27
21:43
Merge in fix for wal2 recovery. (check-in: 41d4f14b user: dan tags: begin-concurrent-pnu-wal2)
21:42
Fix a problem causing false corruption reports following recovery of a *-wal file that contains one or more transactions and a *-wal2 file that contains a valid header but no valid transactions. (check-in: f6eafb65 user: dan tags: wal2)
11:28
Fix a missing dependency for json.lo in Makefile.in (check-in: 65930a5c user: drh tags: trunk)
2022-06-25
21:41
wasm: corrected the isInt32() check to account for negative values. (check-in: 7223f4bb user: stephan tags: wasm-cleanups)
20:32
Put an ALWAYS() on an unreachable branch. (check-in: 58caa50a user: drh tags: trunk)
19:43
Allow flattening of a subquery that is the right operand of a LEFT JOIN in an aggregate query as long as there is no GROUP BY clause. (The GROUP BY clause will interfere with the operation of the TK_IF_NULL_ROW expression nodes.) (check-in: 2cf373b1 user: drh tags: trunk)
19:30
Increase the version number to 3.40.0 so as to begin the next development cycle. (check-in: 4542e323 user: drh tags: trunk)
19:07
wasm: added bindings for sqlite3_extended_result_codes(), sqlite3_open_v2(), and the SQLITE_OPEN_... flags. (check-in: ac876ab9 user: stephan tags: wasm-cleanups)
18:55
Fix documentation type. forum post 8d900996ed. (check-in: 869061f1 user: drh tags: trunk)
18:18
wasm: lots of doc additions and refactoring. Refactored the WASM memory heap usage to hopefully eventually account for a runtime-growable heap. Differentiate between supported TypedArray types for input SQL strings vs binding/fetching blobs. Might (untested) have implemented the ability to bind UtfNNArray values as blobs, where NN is one of 16 or 32. (check-in: e10d57df user: stephan tags: wasm-cleanups)
17:20
Merge version 3.39.0 into the reuse-schema branch. (check-in: bee9903d user: drh tags: reuse-schema)
17:08
Merge version 3.39.0 into the begin-concurrent-pnu-wal2 branch. (check-in: 09cfef38 user: drh tags: begin-concurrent-pnu-wal2)
16:53
Merge version 3.39.0 into the wal2 branch. (check-in: ad3a7005 user: drh tags: wal2)
16:43
Merge version 3.39.0 into the begin-concurrent-report branch. (check-in: 7726389c user: drh tags: begin-concurrent-report)
16:24
Merge version 3.39.0 into the begin concurrent branch. (check-in: fb45624a user: drh tags: begin-concurrent)
14:57
Version 3.39.0 (check-in: 14e166f4 user: drh tags: trunk, release, major-release, version-3.39.0)
10:30
wasm: added utility C code to generate a JSON-format "enum" of the numerous SQLITE_xyz constants so that we do not risk those getting out of sync in the JS code. Renamed initSqlite3Module to sqlite3InitModule. Cleanups in the TypedArray handling. (check-in: 778062e3 user: stephan tags: wasm-cleanups)
07:42
wasm: eliminated the need for Stmt objects to keep ahold of memory allocated for bound strings and blobs. Added alternate string/blob bind impls which are hypothetically more efficient but not yet proven to be so. (check-in: da1d3151 user: stephan tags: wasm-cleanups)
06:46
wasm: eliminated the dependency on the deprecated emcc-provided allocate() function. Adjacent cleanups in blob binding. (check-in: 140618b2 user: stephan tags: wasm-cleanups)
03:53
wasm: corrected the propagation of text/blob values via UDFs. DB.exec()'s sql may now be an array of strings which get concatenated together before passing it on to sqlite3_prepare_v2(). DB.exec()'s callback now applies to the first statement which has result columns instead of only the first statement. Fixed a precedence but which caused isInt32() to report false positives. (check-in: 37a8fecb user: stephan tags: wasm-cleanups)
02:54
Minor wasm doc tweaks. (check-in: 42dc5008 user: stephan tags: wasm-cleanups)
02:39
Change a harmless assert() into a testcase(). The actually test case code is in TH3. Fix for the problem described at forum post ed29e196d5c4f3d5. (check-in: cd6254fc user: drh tags: trunk)
02:37
wasm binding: consolidated the two sqlite3_prepare_v2() bindings behind a single dispathcer. Various internal cleanups and refactoring. Branched because trunk is in pencils-down mode for pending 3.39 release. (check-in: ab3e50da user: stephan tags: wasm-cleanups)
2022-06-24
16:15
Merge the 3.39.0 release candidate 1 changes into the reuse-schema branch. (check-in: 506a3e6f user: drh tags: reuse-schema)
15:26
Merge the latest changes into the begin-concurrent-pnu-wal2 branch. (check-in: d3fa6921 user: drh tags: begin-concurrent-pnu-wal2)
15:15
Merge 3.39.0 release candidate 1 into the wal2 branch. (check-in: 5a5e6e36 user: drh tags: wal2)
15:04
Merge the version 3.39.0 release candidate 1 changes into the begin-concurrent-report branch. (check-in: 1b28ad2c user: drh tags: begin-concurrent-report)
14:55
Merge 3.39.0 release candidate 1 changes into the begin-concurrent branch. (check-in: 5ae706a4 user: drh tags: begin-concurrent)
12:56
Fix a harmless UBSAN warning associated with PRAGMA schema_version found by OSSFuzz. (check-in: e93fd170 user: drh tags: trunk)
11:05
In sqlite3WhereBegin, do not proceed with coding the loop if an error is detected as part of WHERE expression analysis. For for the assertion-fault described by forum post c3496cf6b1. (check-in: db5266de user: dan tags: trunk)
11:02
A minor fix to test/fuzzinvariants.c so that it works even with column names that originally contain a ':' and that are disambiguated. (check-in: 8d9b1fff user: drh tags: trunk)
2022-06-23
22:43
New test cases for query flattening with LEFT JOIN. (Closed-Leaf check-in: 27f68e47 user: drh tags: flatten-left-join)
20:56
Reintroduce flattener constraint (3c), but this time make it apply only if the outer query holds a GROUP BY, not if the outer query is an aggregate. (check-in: 641dfb91 user: drh tags: flatten-left-join)
15:15
Add back the ability to flatten a LEFT JOIN subquery - previously removed due to ticket [cad1ab4cb7b0fc344]. (check-in: f8fe936a user: drh tags: flatten-left-join)
12:36
Minor correction to a comment. No code changes. (check-in: 5fa00959 user: drh tags: trunk)
2022-06-22
18:51
Enhance the TCL scrip that generates sqlite3-all.c so that it outputs all text in its original order. (check-in: 83ff1a28 user: drh tags: trunk)
18:33
Fix requirements marks that changed due to typo fixes in the documentation. (check-in: 5247df05 user: drh tags: trunk)
15:55
More comment fixes. No changes to code. (check-in: 5c9133ef user: drh tags: trunk)
14:43
Allow more line with on the debugging output for SrcItem elements in the parse tree. This affects debugging builds only and is a no-op for production builds. (check-in: edbe24e7 user: drh tags: trunk)
14:25
Additional enhancements to comments. No changes to code. (check-in: d9a32044 user: drh tags: trunk)
14:00
Give dbtotxt an option to prepend .open --hexdb (check-in: afeee612 user: larrybr tags: trunk)
12:54
Fix a typo in a comment. No changes to code. (check-in: ef9de201 user: drh tags: trunk)
2022-06-21
18:38
Disable the short-cut query planner if the NOT INDEXED modifier is used. Forum post 454d706296. (check-in: bd87d107 user: drh tags: trunk)
13:41
Allow a HAVING clause on any aggregate query, even if there is no GROUP BY clause. This brings SQLite into closer agreement with PostgreSQL and fixes the concern raised by forum post 1a7fea4651. (check-in: 9322a7c2 user: drh tags: trunk)
12:54
When doing a push-down of a WHERE clause into an aggregate subquery that has no FROM clause, do not convert the WHERE clause into a HAVING clause as should normally be done for an aggregate, but leave it as a WHERE clause. We will use a different approach to address forum post 1a7fea4651. (Leaf check-in: 1f575841 user: drh tags: backout)
2022-06-20
19:12
Add an ALWAYS() macro to an always-true branch. (check-in: 364645d8 user: drh tags: trunk)
18:26
Do not allow FROM-clause terms on the left side of a RIGHT or FULL JOIN to be reordered. forum post 6650cd40b5634f35. This is probably more strict that necessary to get correct behavior, but for the first release that supports RIGHT/FULL JOIN it is perhaps better to be correct than fast. A less strict constraint might be to prohibit FROM-clause terms that originate on the left side of a RIGHT JOIN from crossing from the right side to the left side of a LEFT JOIN. Revisit this later. (check-in: 238453ff user: drh tags: trunk)
17:04
Do not allow an ON clause to references tables to its right if there is a RIGHT or FULL join anywhere in the query. Other RDBMSes prohibit this always, but SQLite must allow ON clauses to reference tables to their right for legacy compatibility, unless there is a RIGHT or FULL join someplace in the query, in which case there is no legacy to support. (check-in: e615dbe0 user: drh tags: trunk)
12:42
The fix at [cab9b4cccd13bf0a] was incomplete, as demonstrated by forum post 57bdf2217d. This check-in should complete the fix. (check-in: fb0a23b6 user: drh tags: trunk)
2022-06-19
16:55
Follow-up to check-in [0057bbb508e7662b] - ensure that the database page has been initialized prior to continuing with the optimization. If the page is not initialized, that indicates that the database is corrupt. dbsqlfuzz 09ee46becd5e6d1b2a55c9f8ad767335a90aadb0. (check-in: 11162446 user: drh tags: trunk)
2022-06-18
20:20
Enable query invariant checking in fuzzcheck by default. There is no way to turn it off. Update the invariant checking logic to be consistant with dbsqlfuzz. (check-in: 66ca729b user: drh tags: trunk)
14:50
Abandon a query-invariant check in fuzzcheck if the call to sqlite3_bind_value() returns anything other than SQLITE_OK or SQLITE_RANGE. (check-in: d31e1cd2 user: drh tags: trunk)
10:26
In the --query-invariants option of fuzzcheck, correctly deal with OOMs causing the return value of sqlite3_column_name() to be NULL. (check-in: eabbee4a user: drh tags: trunk)
2022-06-17
21:31
Fix the OP_Concat operator such that when concatenating a BLOB with an odd number of bytes on a database that is UTF16, the size of the resulting string is reduced to a multiple of two. (check-in: 5eb2c236 user: drh tags: trunk)
17:11
Omit the --query-invariants processing in fuzzcheck for queries that contain the implies_nonnull_row() test function. (check-in: 0602a084 user: drh tags: trunk)
16:52
Do not run --query-invariants on statements that make use of sqlite_offset(). (check-in: c5ac4cbf user: drh tags: trunk)
16:39
Various fixes and improvements to the --query-invariants option of fuzzcheck. (check-in: 09aca89b user: drh tags: trunk)
16:32
Allow integers and floating point numbers to compare equal. (Closed-Leaf check-in: 0fe2e465 user: drh tags: query-invariants)
16:09
Improve query-invariants to the point that it would have discovered the [f23a429d4153518d] bug if that bug had not already been fixed. (check-in: 2a7251ed user: drh tags: query-invariants)
15:52
Only run query-invariant checks after the original query has run to completion, so that we know it does not error-out on a subsequent row. (check-in: d1fc857b user: drh tags: query-invariants)
15:11
Fix the virtual table detection mechanism to avoid false-positives that were blocking all failures. Then fix a few of the additional problems that are revealed by that fix. More fixes are needed. (check-in: 42b2e667 user: drh tags: query-invariants)
12:25
Fix the new --query-invariants option on fuzzcheck so that it does not use an unprotected sqlite3_value object as an argument to sqlite3_value_int64(). (check-in: d9f82015 user: drh tags: trunk)
11:39
Avoid omitting the rhs of FULL JOINs in cases where it is only correct to omit the rhs of a LEFT JOIN. Fix for the problem reported by forum post 5610c17c3d. (check-in: f23a429d user: dan tags: trunk)
00:24
Tiny fiddle cleanups. (Closed-Leaf check-in: 01969ba5 user: stephan tags: fiddle-indexeddb)
2022-06-16
23:55
fiddle: initial proof of concept of using Emscripten's IndexedDB virtual filesystem for a persistent db. There's still much work to do to integrate this into something useful for clients but the concept is now proven. (check-in: 65c152d3 user: stephan tags: fiddle-indexeddb)
20:29
Minor fix to the query invariant testing logic of fuzzcheck. (check-in: 447e62a0 user: drh tags: trunk)
13:57
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 7f405fe2 user: drh tags: reuse-schema)
13:56
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 82e7e836 user: drh tags: begin-concurrent-pnu-wal2)
13:44
Merge the latest trunk enhancements into the wal2 branch. (check-in: c8ad8699 user: drh tags: wal2)
13:44
Merge the latest trunk enhancements into the begin-concurrent-report branch. (check-in: 8b446d0b user: drh tags: begin-concurrent-report)
13:37
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 221e07ed user: drh tags: begin-concurrent)
2022-06-15
20:18
Improvements to query invariants in fuzzcheck. (check-in: 3a461f61 user: drh tags: trunk)
16:26
Improvements to query invariant checking in fuzzcheck. (check-in: 56c60a35 user: drh tags: trunk)
14:57
When running an incremental vacuum, detect growth in the size of the database file (which can only occur if the file is corrupt) and fail with SQLITE_CORRUPT. (check-in: cd7a4412 user: drh tags: trunk)
12:50
Add the --query-invariants option to fuzzcheck. No changes to the SQLite core. (check-in: fef282f9 user: drh tags: trunk)
12:32
Dbsqlfuzz discovered a case where a bytecode branch is in fact taken, so change the designator from VdbeCoverageNeverTaken() to VdbeCoverage(). Test case in TH3. (check-in: 988a2a75 user: drh tags: trunk)
10:46
Add the --query-invariants flag to fuzzcheck. The query invariant checks are only run if that flag is enabled. (Closed-Leaf check-in: d13b4621 user: drh tags: query-invariant-tests)
10:37
Improvements to query invariant testing. Almost working now. (check-in: e0398204 user: drh tags: query-invariant-tests)
2022-06-14
22:21
Fix the OP_NullRow opcode so that it works even if it applied to an ephemeral cursor that has not yet been created. (check-in: 0e925654 user: drh tags: trunk)
21:34
Add missing SQLITE_FCNTL_SIZE_HINT call to a path taken during transaction rollback. (check-in: 6c3266c1 user: dan tags: trunk)
19:12
Attempt to enhance fuzzcheck to do some simple invariant testing on queries. This is an incremental check-in for a work-in-progress. (check-in: ce2d7801 user: drh tags: query-invariant-tests)
2022-06-13
12:42
Do not remove the EP_CanBeNull flag from expressions during a LEFT JOIN strength reduction if the query also contains a RIGHT JOIN. Fix for the problem identified by [forum/forumpost/b40696f50145d21c|forum post b40696f50145d21c]. (check-in: b1be2259 user: drh tags: trunk)
2022-06-10
16:41
The same restrictions on the use of WHERE clause terms to drive indexes in the presence of RIGHT JOINs also apply to the use of WHERE clause terms to manufacture automatic indexes. This fixes a problem identified by forum post 51e6959f61. (check-in: 342c501f user: drh tags: trunk)
15:43
fiddle: minor style tweaks, including using swapped colors for the input/output fields to help (hopefully) reduce the "which field is which?" dissonance. (check-in: e25dad86 user: stephan tags: trunk)
11:28
Do not allow constant propagation between WHERE-clause terms and ON-clause terms as this can confuse RIGHT JOIN. Fix for the problem reported by forum post 8e4c352937e82929. (check-in: cab9b4cc user: drh tags: trunk)
10:10
Fix a faulty assert() statement identified by forum post 0b91a75039. (check-in: 1f132bb0 user: drh tags: trunk)
09:31
fiddle: modernized the UI based on related code in fossil's /pikchrshow. Changed the color scheme to match sqlite.org. (check-in: c4523ffc user: stephan tags: trunk)
2022-06-09
20:26
Do not allow the subtype of a value to cross a subquery boundary. This fixes the problem identified by forum post 3d9caa45cbe38c78. (check-in: bbaf1f2e user: drh tags: trunk)
17:17
Prevent subtype values from slipping across a subquery boundry when the subquery is implemented as a co-routine. (Closed-Leaf check-in: 9e51a6c0 user: drh tags: subtype-subquery)
16:19
The subtype of a value should not propagate across a subquery boundary. Proposed fix for the problem reported by forum post 3d9caa45cbe38c78. Additional works is needed as not all cases are covered. (check-in: 08af1fe2 user: drh tags: subtype-subquery)
2022-06-08
18:29
Move an #ifdef in shell.c to avoid a harmless "unused function" compiler warning. (check-in: 5abb5ef5 user: drh tags: trunk)
18:20
Avoid zeroing the value returned by sqlite3_changes() when a DML statement is automatically reprepared in sqlite3_step(). (check-in: 09c8f9f1 user: dan tags: trunk)
17:48
Improved comments on the new query flattener restriction of the previous check-in. Also a NEVER() macro on an unreachable branch. (check-in: 8c9e2d63 user: drh tags: trunk)
15:38
Fix the query flattener so that it refuses a flattening that might leave both an inner-join and outer-join ON-clause constraint (or equivalent) on the same term of the FROM clause. (check-in: f6c4fb48 user: drh tags: trunk)
15:30
Add restriction (29) to the query flattener - do not allow flattening that would leave both EP_InnerON and EP_OuterON constraints on the same join term. (Leaf check-in: c585d6a4 user: drh tags: right-join-query-flattener)
13:13
New test cases refute check-in [3f45007d544e5f78]. (check-in: 12d3c96c user: drh tags: right-join-query-flattener)
12:46
Do not allow a partial index scan on the left table of a RIGHT JOIN, because since the index is partial, some rows will be omitted from the scan, and those rows will subsequently be picked up by the no-match logic in the right-join post-processing loop. forum post c4676c4956. (check-in: 615c0026 user: drh tags: trunk)
12:35
Minor fix to test/index9.test so that it can be invoked with other index tests using a wildcard. (check-in: ccbd6e77 user: drh tags: trunk)
12:20
Update the routine that determines whether or not a partial index can be used so that it is not specific to LEFT JOIN. (check-in: 5a107fd7 user: drh tags: trunk)
2022-06-07
13:09
Fix the query flattener to deal with a RIGHT JOIN corner case described by forum post 323f86cc30. (check-in: 3f45007d user: drh tags: trunk)
11:02
Test cases for forum post 323f86cc30 added to join8.test, though commented out so that they do not (yet) run. (check-in: 7f97cb67 user: drh tags: trunk)
10:14
Preserve the database encoding on the CAST operator in the sqlite3ValueFromExpr() routine. Forum thread 800eecf5e6cdc3f4. Test case in TH3. (check-in: 3f6a4420 user: drh tags: trunk)
2022-06-06
23:22
More precise determination of when a WHERE clause can be used to drive an index on an outer join. (check-in: 318543a9 user: drh tags: trunk)
22:33
More precise determination of when a WHERE/ON clause term can be used as an indexed join constraint. Testcase macros added to ensure test coverage. (Closed-Leaf check-in: f419e98c user: drh tags: outer-join-tests)
21:08
Extra test cases for outer joins. (check-in: c7505765 user: dan tags: outer-join-tests)
15:27
Do not allow a WHERE clause constraint to be used to drive an index for the right operand of a RIGHT JOIN, since this can cause problem if the constraint implies a not-NULL value for one of the columns for the left operand of the same join. See forum post 206d99a16dd9212f. (check-in: 4a31b794 user: drh tags: trunk)
15:22
In CLI, drop .dbinfo command when build options prevent it from working. (check-in: 4b50a551 user: larrybr tags: trunk)
14:00
Sync w/trunk, pickup fts3corrupt6.test change. (Closed-Leaf check-in: 268072f6 user: larrybr tags: dbinfo-guard)
06:29
fiddle: replaced the huge file selection widget with a smaller proxy button. (check-in: f7c17449 user: stephan tags: trunk)
06:17
Fix a test case in fts3corrupt6.test. Was failing due to [f1dfbc4f]. (check-in: 04b2e477 user: dan tags: trunk)
04:09
shell: in WASM mode, permit ATTACH because the filesystem is a virtual sandbox and ATTACH can be used to provide more import/export options. Minor doc updates in sqlite3-api.js. (check-in: f28de5b7 user: stephan tags: trunk)
2022-06-05
22:58
In CLI, drop .dbinfo command when build options prevent it from working. (check-in: 2512d2f6 user: larrybr tags: dbinfo-guard)
22:40
Create new branch named "dbinfo-guard" (check-in: 8d942ba7 user: larrybr tags: dbinfo-guard)
2022-06-03
14:08
Fix to test case in fts3corrupt.test. No changes to source code. (check-in: d18818af user: dan tags: trunk)
13:52
Fix a 1-byte overread in fts3 that could occur when processing corrupt records. (check-in: f1dfbc4f user: dan tags: trunk)
2022-06-02
16:26
Fix a problem with flattening and window functions causing an "IS <column>" to be transformed to "IS TRUE" or "IS FALSE" when <column> is a view or sub-select expression that is the literal value "TRUE" or "FALSE". (check-in: 2a952c77 user: dan tags: trunk)
02:45
Avoid a direct use of abort() in debug builds to prevent a compilation issue for Windows CE. (check-in: 8eb9a7dd user: mistachkin tags: trunk)
2022-06-01
20:08
New test cases for row values and RIGHT JOIN. (check-in: 5f0582b9 user: drh tags: trunk)
16:05
Ensure that subqueries associated with row-values are invoked before being used when processing a RIGHT JOIN. Fix for the problem described by forum post 087de2d9ec87305b. (check-in: 5a9465dc user: drh tags: trunk)
16:04
fiddle: added another UI element to the list of those which are disabled during long-running activities. Added DB.close() binding to the Worker-based wasm binding. (check-in: 5933163e user: stephan tags: trunk)
15:53
Ensure that all necessary row-value subqueries are invoked while running the right-join post processing. (Closed-Leaf check-in: e4e71b4c user: drh tags: row-value-right-join)
14:52
Minor tweaks to, and consolidation of, the wasm-related build flags. (check-in: f0ad6b1b user: stephan tags: trunk)
14:32
Fix a minor problem in the Tcl "incrblob" command. This does not affect the SQLite core. (check-in: e96feccc user: dan tags: trunk)
13:32
Candidate fix for the problem with row-value WHERE clause constraints on a RIGHT JOIN. (check-in: fdd782a7 user: drh tags: row-value-right-join)
13:32
Only include the code for sqlite_offset() if compiled with -DSQLITE_ENABLE_OFFSET_SQL_FUNC. (check-in: 382cd7e1 user: drh tags: trunk)
13:01
Fix a typo in a comment in a test case. No changes to code. (check-in: 570efa45 user: drh tags: row-value-right-join)
11:58
Additional enhancements to the test cases. (check-in: 55cfad74 user: drh tags: row-value-right-join)
11:46
Fix test cases in the previous check-in to make them postgres-compatible. (check-in: f223ba72 user: drh tags: row-value-right-join)
11:43
Test case for forum post 087de2d9ec showing a problem when a row-value constraint is used with RIGHT JOIN. (check-in: d1e3e0d2 user: drh tags: row-value-right-join)
11:20
The Worker-specific variants of the most significant DB-class JS bindings are implemented, most notably various uses of DB.exec(). (check-in: 371d6f74 user: stephan tags: trunk)
11:05
Move the sqlite_offset() function implementation to be an in-line function, thereby avoiding special case code and freeing up a bit in the FuncDef.flags field. (check-in: 1c9812c4 user: drh tags: trunk)
08:09
Initial proof of concept code for a JavaScript binding which runs in the main window thread but acts on a db handle running in a Worker thread. Expanded the DB.exec() and DB() constructor to simplify certain use cases. (check-in: d9efe3e9 user: stephan tags: trunk)
00:00
Initial bits for a JS API variant in which the client operates in the main thread and sqlite3 in a Worker. This is far from complete. (check-in: f6d6f969 user: stephan tags: trunk)
2022-05-31
18:18
New FULL JOIN test cases. No changes to code. (check-in: 13e89ef6 user: drh tags: trunk)
17:24
More JOIN test cases inspired by the problem fixed in [3869fd9a2b9483cb]. (check-in: f2d224c5 user: drh tags: trunk)
15:18
Fix an assert that is incorrect for a corrupt database. (check-in: fe0a8408 user: drh tags: trunk)
14:19
Many new PG-confirmed test cases in joinD.test. (check-in: 481e89c7 user: drh tags: trunk)
11:22
Restore an ON-clause test case (removed by [3869fd9a2b9483cb]) that turns out to be necessary for correct operation. Fix for forum post c2554d560bac97c5. (check-in: f407ec67 user: drh tags: trunk)
11:13
Add back in a test case for ON-clauses that was removed yesterday by [3869fd9a2b9483cbf] but which turned out to be necessary after all. (Closed-Leaf check-in: aba52a90 user: drh tags: right-join-bug-20220531)
10:48
Add test cases for forum post c2554d560bac97c5. (check-in: e66d5ae8 user: drh tags: right-join-bug-20220531)
02:03
Updated the wasm builds to generate gzip'ed copies of relevant files to take advantage of althttpd's new capability of substituting gzip files in place of requested files. This cuts over-the-wire size of the fiddle app by more than half. (check-in: 40925585 user: stephan tags: trunk)
2022-05-30
17:33
For an outer join, then ON-clause constraints need to be evaluated at just the right moment - not too early and not too late. Fix for the problem reported by forum post 3902c7b833. (check-in: 3869fd9a user: drh tags: trunk)
2022-05-28
15:01
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 4d46296e user: drh tags: reuse-schema)
14:51
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 4d65f45b user: drh tags: begin-concurrent-pnu-wal2)
14:44
Merge the latest trunk enhancements into the wal2 branch. (check-in: 934656f1 user: drh tags: wal2)
14:32
Merge the latest trunk enhancements into the begin-concurrent-report branch. (check-in: 034d2c51 user: drh tags: begin-concurrent-report)
14:25
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: d6f6ee5c user: drh tags: begin-concurrent)
14:03
Apply the UPDATE-FROM file from check-in [98b3816bbaf539ea] to update-delete-limit builds. (check-in: 7e87892c user: drh tags: trunk)
11:59
fiddle: changed the internal key of the session/local storage to avoid conflicts with the pikchr fiddle app (which is derived from this one) when running from the same HTTP origin as an instance of that app in a dev environment. (check-in: fd668da5 user: stephan tags: trunk)
11:29
fiddle: corrected a piece of far-corner-case error handling and made the various checkbox config options persistent. (check-in: 2ba429a4 user: stephan tags: trunk)
2022-05-27
18:06
Mark an always-true conditional as ALWAYS(). (check-in: 3492fe8a user: drh tags: trunk)
17:36
Minor simplification to ALTER TABLE logic. (check-in: 01beb036 user: drh tags: trunk)
17:13
Corrected a broken HTML comment (was using a C-style comment closer). (check-in: db742e3e user: stephan tags: trunk)
15:33
Fix another problem with ALTER TABLE and UPDATE...FROM in triggers. (check-in: 33cf1223 user: dan tags: trunk)
15:04
Fix further issues with ALTER TABLE and triggers that contain UPDATE..FROM statements. (check-in: 53fbc269 user: dan tags: trunk)
14:41
Omit an unnecessary branch. (check-in: f56473f9 user: drh tags: trunk)
03:27
fiddle: added an option to completely wipe/reset the db. The Options area can now be toggled on/off via tapping the label at its top. Running the input SQL is now limited to the selected area if any text is currently selected, per suggestion in the forum. (check-in: d100283e user: stephan tags: trunk)
2022-05-26
19:10
Fix issues with ALTER TABLE and triggers containing "UPDATE...FROM" statements. (check-in: 2fba0d41 user: dan tags: trunk)
17:33
Correct handling of outer joins in the FROM clause of an UPDATE statement that occurs inside of a trigger. Follow-on to [98b3816bbaf539ea]. (check-in: 664a49fa user: drh tags: trunk)
14:46
Clarification of the meaning of the N parameter in sqlite3_db_name(). Documentation only. No changes to code. (check-in: f22f41d2 user: drh tags: trunk)
05:18
Fixed a minor cut/paste mistake in the previous checkin. Affects only internal docs. (check-in: 37e37648 user: stephan tags: trunk)
05:08
Makefile.in: added explanations, intended for maintainers and hackers, of the various emcc flags used for building the wasm files. No code or build rule changes. (check-in: 1a159159 user: stephan tags: trunk)
2022-05-25
13:10
Slight increase in the accuracy of log10(). (check-in: c48a735b user: drh tags: trunk)
12:49
Do not allow the right operand of a RIGHT JOIN to be reordered with other FROM clause terms that are even further to the right. Fix for the issue identified by forum post 5cfe08eed6. (check-in: 4be0c60e user: drh tags: trunk)
11:17
Add in a VdbeCoverage() macro accidentally omitted from [d64ae49a1f251317]. (check-in: 18b5cea0 user: drh tags: trunk)
11:09
Fix the UPDATE-FROM logic so that it works the same as PostgreSQL when the FROM clause contains an outer join. (check-in: 98b3816b user: drh tags: trunk)
08:51
Got the sqlite3-api JS bits wrapped up in deferred-load module. Whether that's going to be easier to use, in practice, remains to be seen. Consolidated two of the test-related JS files. (check-in: dd83cc05 user: stephan tags: trunk)
04:38
Renamed EXPORTED_FUNCTIONS.sqlite3 to EXPORTED_FUNCTIONS.sqlite3-api to avoid any potential confusion about that file (not) being an sqlite3 database. (check-in: 3d6245c6 user: stephan tags: trunk)
04:35
Add the ability to import/export db files into/from fiddle. (check-in: e0c30438 user: stephan tags: trunk)
04:20
Further minor cleanups and docs in the fiddle app and worker. (Closed-Leaf check-in: 199e0179 user: stephan tags: fiddle-local-db)
03:08
fiddle: refactored so that it no longer exposes any global symbols. Doing so with the main sqlite3.api module will be much tricker. (Edit: it _does_ export a global symbol, but it's the function to init the module instead of the module itself. Not sure that's any cleaner.) (check-in: cd227be8 user: stephan tags: fiddle-local-db)
02:32
An attempt to get UPDATE FROM working when the FROM clause contains a RIGHT or FULL JOIN. (Closed-Leaf check-in: a124e4f9 user: drh tags: update-from-right-join)
2022-05-24
22:16
fiddle: added support for exporting (downloading) the current db file. To do this we had to fall back to named dbs, instead of defaulting to an in-memory one, but the virtual filesystem is an in-memory FS, so the end effect is the same. (check-in: 7c7fd34c user: stephan tags: fiddle-local-db)
19:01
fiddle: initial work on loading a client-side db file. Works but requires some cleanup. Export is not yet implemented. (check-in: 0fa8378c user: stephan tags: fiddle-local-db)
16:05
When an ON clause on an INNER JOIN references a table to the right of of the join, just convert the ON clause to an ordinary WHERE clause term, in order to be compatible with older versions of SQLite. See forum thread 687b0bf563a1d4f1 for details. (check-in: 2b6ebba2 user: drh tags: trunk)
14:45
Use more descriptive var names in ext/fiddle/Makefile. (check-in: 2f9a42fb user: stephan tags: trunk)
14:36
fiddle: lots of generic refactoring, restructuring, and cleanup in the higher-level code. Added push-fiddle ext/fiddle/Makefile target to push the fiddle app to a remote server via rsync. (check-in: ed19fef3 user: stephan tags: trunk)
01:15
wasm/JS: minor doc updates, corrected bind()ing of the undefined value to behave as documented, removed some superfluous code. (check-in: 526c8c72 user: stephan tags: trunk)
00:35
wasm/JS: documented DB.selectValue() and corrected the fetching of NULL columns via Stmt.get(). (check-in: 70f91fab user: stephan tags: trunk)
00:22
wasm/JS: added support for scalar UDFs. Fixed a deallocation problem with bind()ed strings/blobs. (check-in: 325a9ee3 user: stephan tags: trunk)
2022-05-23
19:38
wasm: minor refactoring and doc updates. (check-in: 6044605b user: stephan tags: trunk)
16:54
fiddle: cleaned up and documented the status-loading progress mechanism in prep for reusing it in the sqlite3-api worker. (check-in: 107e3497 user: stephan tags: trunk)
13:55
wasm: added missing 'use strict' and fixed an undeclared var use caught by that. (check-in: c16a7f49 user: stephan tags: trunk)
13:52
wasm: corrected isSupportedBindType() to behave as documented. (check-in: 7e2d2e80 user: stephan tags: trunk)
12:37
New test cases to further demonstrate the difference in name matching rules for LEFT JOIN versus RIGHT JOIN that protect legacy behavior. Forum thread e90a8e6e6fa652ac. (check-in: 2c586060 user: drh tags: trunk)
11:51
Add an assert() to clear a harmless static-analyzer warning. (check-in: 919ba2f0 user: drh tags: trunk)
10:57
Do not run the subroutine that materializes a view or subquery until just before the materialization is actually needed, so that if the materialization turns out to never been needed, unnecessary work can be avoided. (check-in: d64ae49a user: drh tags: trunk)
01:11
WASM: removed the in64-related bindings, as MDN says that calling a wasm function which has an int64 type in its signature will currently throw because JS has no 64-bit integer support. Those bindings now use doubles and simply hope that the user doesn't exceed their integer precision (2^53-1, approx 9 quadrillion). (check-in: 392e8482 user: stephan tags: trunk)
2022-05-22
22:10
WASM: an arg handling fix for DB.exec({multi:true...}). (check-in: 0d6332f7 user: stephan tags: trunk)
22:00
WASM: added exec(), execMulti(), and several getters. Various touchups and fixes. (check-in: b790c91b user: stephan tags: trunk)
19:09
Implemented Stmt.get() and friends for WASM OO #1 wrapper. Added basic tests for prepare/step/get. Restructured module init output to introduce only 1 global-scope symbol instead of 2. (check-in: 601dc3fa user: stephan tags: trunk)
16:25
WASM: added bindings for sqlite3_compileoption_get/used(), moved OO #1 into sqlite3-api.js since it can only be used from the same thread as that API and separating them complicates client-side use. Started adding test utilities and tests for the OO1 API. (check-in: f3bc0328 user: stephan tags: trunk)
14:07
WASM OO wrapper #1: prepare() and bind() APIs are in place but are untested, pending fetch/get APIs. (check-in: 84c8f63a user: stephan tags: trunk)
00:27
Build refactoring for the fiddle/wasm bits. Set up wasm binding of a chunk of the core C API and added some infastructure for creating test pages for it. (check-in: dea098b6 user: stephan tags: trunk)
2022-05-21
21:13
Minor fiddle-related build restructuring to support upcoming development of the C-style wasm sqlite3 interface, plus some commentary about the plans and goals for that. (check-in: c7cfdd4c user: stephan tags: trunk)
18:03
Defer materializing a view or subquery until the materialization is actually needed, so that if it is not needed, not useless work is performed. (Closed-Leaf check-in: 16bf3506 user: drh tags: deferred-materialize)
15:54
Fix a typo in a comment. (check-in: 34d7045b user: drh tags: deferred-materialize)
15:12
Use the newer OP_BeginSubrtn opcode instead of OP_Integer to start the subroutine used to matrialize a view. This does not change execution but does make the byte code a little easier to read. (check-in: cebd4fd6 user: drh tags: deferred-materialize)
14:19
fiddle: refactor into main thread (UI) and worker thread (wasm module). Added bits needed to support triggering sqlite3_interrupt() but do not yet have a second SharedWorker to test it with. (check-in: 5ff33268 user: stephan tags: trunk)
00:45
fiddle: add a selection list of example queries. (check-in: 74abf039 user: stephan tags: trunk)
00:01
In the shell WASM build, call open_db() early so that we can get access to the global db handle from certain experimentation-only function without having to first run some SQL code. (check-in: 31706ef8 user: stephan tags: trunk)
2022-05-20
13:50
Added the standard sqlite license header to the the fiddle JS files. Minor internal renamings in those same files. (check-in: 67e40d99 user: stephan tags: trunk)
13:27
Add a terminal-style view to the fiddle app, based on jquery.terminal. (Leaf check-in: 82b57f2e user: stephan tags: fiddle-terminal-view)
2022-05-19
22:04
#if'd out the '.nonce' and '.check' commends in WASM builds. (check-in: 326f79ea user: stephan tags: trunk)
21:56
#if'd out the the '.cd' and '.clone' commands for WASM builds. (check-in: fa391868 user: stephan tags: trunk)
18:14
fiddle: consolidated two duplicate CSS rules. Internal doc typo fix. (check-in: d3175a79 user: stephan tags: trunk)
17:47
Added a disclaimer about fiddle's experimental and subject-to-change/removal nature. (check-in: 75b4f574 user: stephan tags: trunk)
16:59
Merge the changes to support the "fiddle" extension. (check-in: 58585f01 user: drh tags: trunk)
16:49
When building fiddle from its own directory (e.g. from emacs instead of the normal build process), force -O0 the sake of compilation speed. The top-level build now defaults to -Oz, which is more appropriate for that case. (Closed-Leaf check-in: 56b82ae8 user: stephan tags: fiddle)
16:42
Tweaks to the fiddle make target so that it builds with all of the same extensions as the standard CLI. (check-in: d46a6cb9 user: drh tags: fiddle)
16:30
Added a toggle to swap input/output field positions and simplified setup of checkboxes which toggle a CSS class on a given element. (check-in: eae3ab10 user: stephan tags: fiddle)
16:11
Default to top/bottom layout with input on the bottom. Offer a toggle to swap input/output positions. (check-in: 362d236a user: stephan tags: fiddle)
15:58
Numerous layout tweaks, the most significant being that the layout now adapts to the window size. Swapped positions of the input/output areas. This version supports, by uncommenting a few bits, a jquery.terminal-based view but alternatives to that 300kb dependency are still under investigation. (check-in: 1aad3642 user: stephan tags: fiddle)
10:58
fiddle make target now accepts fiddle_cflags=... from the CLI to overrid -Ox and such for one-off builds. (check-in: 4609a4f8 user: stephan tags: fiddle)
10:38
Ensure that the output area is cleared of any init-time messages which the emscripten bootstrapping process emits when downloading of the wasm module is slow. (check-in: 1d8d0593 user: stephan tags: fiddle)
10:24
#if'd out the '.log' command in WASM builds. Cleaned up the user-visible parts of the WASM module initialization. (check-in: b5fa12f8 user: stephan tags: fiddle)
09:55
Split the fiddle JS code into separate pre-/post-init files to simplify editing. emcc will combine these into the final fiddle.js, so the number of output deliverables does not change. (check-in: d3d8ea01 user: stephan tags: fiddle)
09:22
Added an option to auto-clear the output area before submitting the input. Experimentally inverted the colors in the input/output areas. (check-in: 1a1e4e7f user: stephan tags: fiddle)
01:12
Replaced the toggle for the notes/caveats section of the fiddle UI with a button to remove that section. (check-in: 6661d605 user: stephan tags: fiddle)
00:38
#if'd out the '.import' command in WASM builds. Several minor cosmetic UI tweaks. (check-in: e4f87eb7 user: stephan tags: fiddle)
2022-05-18
23:40
#if out the '.load' command in WASM builds. Several UI layout tweaks. (check-in: 67d98297 user: stephan tags: fiddle)
22:58
In wasm builds, ifdef out shell commands which require file I/O, pipes, or which trigger an exit() (.quit and .exit). Documented some of the quirks and limitations of the C/WASM crossover. Keep the JS code from calling into the C code after an exit() has been triggered. (check-in: bee436e6 user: stephan tags: fiddle)
21:18
Improved handling/reporting of conditions which trigger an exit() from native code, e.g. calling the '.read' command. Added a Help button which simply submits the '.help' command. Added commented-out variants of various -Ox flags to simplify experimenting with them. (check-in: bf06ddf4 user: stephan tags: fiddle)
20:44
Experimental code to provide a SIZE_HINT when writing the -wal file. (Leaf check-in: 3b29080d user: drh tags: wal-size-hint)
18:10
Code style fixes: s/char const/const char/. (check-in: 9bf042b2 user: stephan tags: fiddle)
17:40
The fiddle input/output areas now stretch and shrink as needed to account for their available space. (check-in: 4eec0545 user: stephan tags: fiddle)
17:22
Increased default size of the fiddle output area, changed the .nullvalue default in the input area, and minor CSS tweaks. (check-in: 281aaae7 user: stephan tags: fiddle)
17:14
Initial version of an sqlfiddle-style application using a WASM build of the sqlite3 shell. (check-in: af9c21c9 user: stephan tags: fiddle)
2022-05-17
15:33
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 495f0353 user: drh tags: reuse-schema)
15:11
Fix harmless compiler warnings in the new unixFullPathname implementation. (check-in: f7e1ceb5 user: drh tags: trunk)
15:01
Avoid treating constant expressions like "? IN ()" or "? NOT IN ()" as integers if they appear in a GROUP BY or ORDER BY clause. (check-in: d8b249e8 user: dan tags: trunk)
14:59
Add the sqlite3_db_name() interface. (check-in: 2ad15223 user: drh tags: trunk)
2022-05-16
16:55
Add memory barriers to multi-threaded code in test4.c. (check-in: 9260f4e0 user: dan tags: trunk)
16:10
Fix a problem in test file swarmvtab3.test causing occasional failures. (check-in: f935c155 user: dan tags: trunk)
2022-05-14
19:05
Do not allow an index scan on an index-on-expression for a RIGHT JOIN because the index might not be positioned on the correct row when running the the right-join no-match loop. dbsqlfuzz 39ee60004ff027a9e2846cf76e02cd5ac0953739 (check-in: 2277f9ba user: drh tags: trunk)
17:40
Improved debugging comment generation for the OP_Column opcode. (check-in: 3e073bfd user: drh tags: trunk)
15:59
Improvements to the decision of when to check ON constraints for an inner join that is an operand to a RIGHT JOIN. Fix for issue identify by forum post c06b10ad7e. (check-in: 9d17233c user: drh tags: trunk)
2022-05-13
23:01
Change an unreachable branch into an assert(). (check-in: 778e57a5 user: drh tags: trunk)
20:11
Transitive equality constriants do not work on a RIGHT JOIN, since the right-hand side might be a non-matched row. (check-in: 0f96810b user: drh tags: trunk)
19:50
Walk back the optimization from check-in [cc458317bd77046c] that tries to reuse the same ephemeral cursor of a list subquery when that subquery is reused, as it does not work in cases where the list subquery is used both for lookups and for scans. (check-in: 12ee29d6 user: drh tags: trunk)
17:45
Defer generating WHERE clause constraints for a RIGHT JOIN until after the ON-clause processing for the RIGHT JOIN has done its own row elimination. This fixes and incorrect output from some RIGHT JOINs that was identified by forum post 41cc3851d864c5e6. (check-in: 238d9c24 user: drh tags: trunk)
16:38
Redefine the acccess rules for the Expr.w union so that the Expr.w.iJoin member is accessible on either EP_OuterON or EP_InnerON. (check-in: 6f741d6c user: drh tags: trunk)
15:36
Corrections to the header comment to the new joinE.test script. Add the generator TCL as a comment at the bottom of the script. (check-in: 2f4456f6 user: drh tags: trunk)
15:31
New test cases for outer joins. Case joinE-32 currently gets an incorrect answer. See forum post 41cc3851d8 for the bug report. (check-in: 02b24863 user: drh tags: trunk)
14:52
Improved names for flags on the Expr object: EP_FromJoin becames EP_OuterON and EP_InnerJoin becomes EP_InnerON. (check-in: 1ffea07f user: drh tags: trunk)
2022-05-12
17:09
Fix a harmless compiler warning in the CLI. (check-in: 7a2ac303 user: drh tags: trunk)
11:56
Ensure that ON clauses are applied to the correct outer join. (check-in: c7e3a13a user: drh tags: trunk)
11:45
Add IS NOT DISTINCT FROM and IS DISTINCT FROM binary operators which are equivalent to IS and IS NOT, respectively, for compatability with PostgreSQL and hence standard SQL. (check-in: db27611e user: drh tags: trunk)
11:01
Fix the ".echo" command of the CLI so that it shows the results of input lines immediately, before invoking sqlite3_prepare(). (check-in: cf7fdabd user: drh tags: trunk)
2022-05-11
20:29
Zap stray --help output from intermediate version. (Closed-Leaf check-in: deb7372b user: larrybr tags: echo-sql)
19:59
Change .echo on effect so that SQL is echoed before prepare. This slightly alters echoed output when multiple SQL statements are submitted at once. Also sync with trunk. (check-in: c1eff632 user: larrybr tags: echo-sql)
17:57
The unix interface now resolves all symbolic links in filenames before actually using those filenames. (check-in: d55273e3 user: drh tags: trunk)
17:45
Use osReadlink() in os_unix.c, not readlink() directly. (Closed-Leaf check-in: c3da4c16 user: drh tags: resolve-symlinks)
16:46
For the unix VFS, rewrite the xFullPathname method so that it automatically resolves all symbolic links, rendering a canonical pathname that contains no symlinks. (check-in: 40c9273d user: drh tags: resolve-symlinks)
03:42
Fix .import leak in CLI and add shell leak testing to debug builds and the Tcl test suite. (check-in: df842ebc user: larrybr tags: trunk)
03:29
Sync w/ trunk (Closed-Leaf check-in: 1284225b user: larrybr tags: import-leak-plug)
2022-05-10
23:28
Fix a bug in the sqlite3WhereMalloc() routines that were added by chekc-in [f237e1d8cc41b937]. The bug was detected by dbsqlfuzz test case 4c5e3e89bc251d28378be88233f531b84ec66901. (check-in: 764b7126 user: drh tags: trunk)
22:32
Make tester.tcl work on more Windows Tcl installations. And sync w/ trunk. (check-in: d25fbdf8 user: larrybr tags: import-leak-plug)
18:43
New requirement marks. (check-in: e8479e56 user: drh tags: trunk)
18:18
Fix a stale requirement mark. (check-in: fcda7fb1 user: drh tags: trunk)
17:42
Fix a stale requirement mark. (check-in: 3eda4030 user: drh tags: echo-sql)
15:55
Fix a harmless UBSAN warning. (check-in: 8f935502 user: drh tags: trunk)
14:57
Sync w/ trunk (check-in: b7285f92 user: larrybr tags: echo-sql)
14:55
For CLI, add ".echo sql" dot-command. (check-in: 35cef458 user: larrybr tags: echo-sql)
13:06
Merge all recent trunk changes into the reuse-schema branch. (check-in: 9f6d6e61 user: drh tags: reuse-schema)
12:45
Merge the latest trunk enhancements into theh begin-concurrent-pnu-wal2 branch. (check-in: d28af1f8 user: drh tags: begin-concurrent-pnu-wal2)
12:39
Merge recent trunk enhancements into the wal2 branch. (check-in: 33d77fea user: drh tags: wal2)
12:24
Merge the latest trunk enhancements into the begin-concurrent-report branch. Had to restore the sqlite3VdbeSerialPut() routine that was removed in check-in [6f4d6f212a3558c2] when it was inlined because that routine is used again in a different place by this branch. (check-in: e6b5224d user: drh tags: begin-concurrent-report)
12:00
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: f65bd767 user: drh tags: begin-concurrent)
06:04
Sync w/trunk (check-in: 536691ed user: larrybr tags: import-leak-plug)
01:11
Cause most shell tests to be run under Tcl suite valgrind config. (check-in: cd085b36 user: larrybr tags: import-leak-plug)
00:24
Simplified "hidden" and "no-expand" handling in the *-expander. (check-in: c6c3115f user: drh tags: trunk)
2022-05-09
21:57
Update this branch with latest changes from trunk, and the fts5 fix for "BEGIN CCONCURRENT" transactions. (check-in: c0135441 user: dan tags: begin-concurrent-report-wal2)
18:33
Create new branch named "echo-sql" (check-in: 042f2935 user: larrybr tags: echo-sql)
17:55
Minor STAT4 test case change due to the ANALYZE enhancement of [eb59c46a5aed69bc|check-in eb59c46a5aed69bc]. (check-in: 8ce2fecb user: drh tags: trunk)
16:29
Add ALWAYS() on two unreachable branches in the * expander. (check-in: 387c8523 user: drh tags: trunk)
14:22
Ensure that fts5 closes the read-only blob handle used to read the fts index at the end of each xUpdate operation. This doesn't matter for stock SQLite, as the handle will be closed in the subsequent xRollback or xSync call, but prevents "BEGIN CONCURRENT" transactions from being committed on this branch. (check-in: 093b6084 user: dan tags: begin-concurrent-pnu-wal2)
12:59
Simplify a branch in the "*" expansion logic. New test case for an INSTEAD OF trigger on a RIGHT and FULL outer join. (check-in: d2717348 user: drh tags: trunk)
12:29
Simplify .import leak plug and arrange for CLI to be run under valgrind. (check-in: 0d3e2380 user: larrybr tags: import-leak-plug)
2022-05-07
03:53
Stop a memory leak in .import, and add leak complaint to CLI debug builds. (check-in: f5f09368 user: larrybr tags: import-leak-plug)
02:21
Create new branch named "import-leak-plug" (check-in: 4a4cecab user: larrybr tags: import-leak-plug)
2022-05-06
22:29
Perserve the requested reserved-bytes size for the database file when doing a VACUUM. (check-in: dac6d87c user: drh tags: trunk)
17:06
Merge the 3.38.5 fix into the 3.38 subbranch of reuse-schema. (Leaf check-in: bfccca2b user: drh tags: reuse-schema-3.38)
16:52
Merge the 3.38.5 fix into the begin-concurrent-wal2 subbranch for 3.38. (Leaf check-in: 0586b3e9 user: drh tags: begin-concurrent-wal2-3.38)
15:25
Version 3.38.5 (Leaf check-in: 78d9c993 user: drh tags: release, version-3.38.5, branch-3.38)
01:02
Prevent an infinite loop on SQLITE_ERROR_RETRY when trying to modify a corrupt schema while PRAGMA writeable_schema=ON is active. dbsqlfuzz ded83609f475cc989c7339d45efb5151c1495501 (check-in: 7fcdb760 user: drh tags: branch-3.38)
00:43
Prevent an infinite loop on SQLITE_ERROR_RETRY when trying to modify a corrupt schema while PRAGMA writeable_schema=ON is active. dbsqlfuzz ded83609f475cc989c7339d45efb5151c1495501 (check-in: 217b3323 user: drh tags: trunk)
2022-05-05
10:04
Update the version number to 3.38.5 (check-in: bf73b57f user: drh tags: branch-3.38)
10:03
Backout check-in [9fb20a21feb8f697] which was incorrect. (check-in: 66f65b32 user: drh tags: branch-3.38)
10:02
Backout check-in [9fb20a21feb8f697] which was incorrect. (check-in: 99225618 user: drh tags: trunk)
03:49
Cause CLI to use ExportHandler interface for its query output, and implement built-in subclasses of it, all in preparation for supporting implementations by shell extensions. (a WIP) (check-in: 9b37e0be user: larrybr tags: cli_extension)
2022-05-04
18:43
Improvements for name resolution for parenthsized joins. (check-in: 006b2d9c user: drh tags: trunk)
17:43
New test cases for RIGHT and FULL JOIN, focusing on cases that make use of Bloom filters, and a bug fix related to when ON-clause constraints are applied. (check-in: 67510354 user: drh tags: trunk)
17:30
Code EP_InnerJoin constraints at the same time that EP_FromJoin constraints are coded. (Closed-Leaf check-in: b57033d2 user: drh tags: joinD)
16:46
Merge version-3.38.4 into the reuse-schema-3.38 subbranch. (check-in: d5b0fd84 user: drh tags: reuse-schema-3.38)
16:36
Merge the version 3.38.4 fixes into the begin-concurrent-wal2-3.38 branch. (check-in: 8473718d user: drh tags: begin-concurrent-wal2-3.38)
15:45
Version 3.38.4 (check-in: d402f498 user: drh tags: release, version-3.38.4, branch-3.38)
14:46
Merge ON-clause constraint usage fix from trunk into the joinD branch. (check-in: 0a20d4a8 user: drh tags: joinD)
14:45
Fix ON-clause constraint usage for FULL and RIGHT JOINs. (check-in: 544268a7 user: drh tags: trunk)
11:49
New test cases using various join types and Bloom filters. Two cases differ from PG and need to be resolved. (check-in: befa8cbc user: drh tags: joinD)
03:48
Fix CLI use of wrong allocator for free(). (check-in: 4f83c442 user: larrybr tags: branch-3.38)
03:45
Fix CLI use of wrong allocator for free(). (check-in: 9fb20a21 user: larrybr tags: trunk)
02:01
In the query planner, do not let tables commute across any outer join. (check-in: 8cee5388 user: drh tags: trunk)
2022-05-03
21:58
Typos cleared from README.md (check-in: be3a1879 user: larrybr tags: trunk)
19:51
Fix multi-byte column name rendition on .import and display of NULL in columnar modes. (check-in: f863aabe user: larrybr tags: branch-3.38)
16:26
Merge Bloom filter bug fix from trunk into the right-join branch. (Closed-Leaf check-in: 72131ad1 user: drh tags: right-join)
16:18
Fix a typo in a comment. (check-in: c19c3c48 user: drh tags: right-join)
14:26
Increase the version number to 3.38.4. (check-in: def971a0 user: drh tags: branch-3.38)
14:25
Fix the Bloom filter pull-down optimization so that it jumps to the correct place if it encounters a NULL key. Fix for the bug described by forum thread 2482b32700384a0f. (check-in: 3dc9fc2f user: drh tags: branch-3.38)
14:01
Fix the Bloom filter pull-down optimization so that it jumps to the correct place if it encounters a NULL key. Fix for the bug described by forum thread 2482b32700384a0f. (check-in: 6eda9b1a user: drh tags: trunk)
12:11
Add assert()s to show that jumps always land an an instruction that is between 1 and Vdbe.nOp-1. Had these assert()s been in place before, they would have caused an assertion fault for the byte-code error reported by forum post 2482b32700. (check-in: 8f8a58fe user: drh tags: trunk)
2022-05-02
20:49
Organize the various flag bits of the ExprList_item object into a substructure so that the whole lot can be copied all at once. Faster and smaller code. (check-in: 5341d4bb user: drh tags: right-join)
20:14
Merge trunk fixes into the right-join branch. (check-in: e01f4c05 user: drh tags: right-join)
20:04
Improved comments. (check-in: 158b80be user: drh tags: right-join)
19:59
Name resolution and "*" wildcard expansion for parenthesized FROM clauses seems to work the same as PG. The code is chaos, however, and needs some cleanup. (check-in: 6f9c0b07 user: drh tags: right-join)
15:47
Remove a testcase() macro taht was made obsolete by [a8da85c57e07721d]. (check-in: 053cf45e user: drh tags: trunk)
15:31
Document (in comments) that the SQLITE_FlttnUnionAll bit has a specific value needed by TH3. (check-in: bcaa4a44 user: drh tags: trunk)
15:23
Fix a harmless compiler warning in sqlite3TreeViewWinFunc() (a routine that does not even appear in release builds). (check-in: daff6070 user: drh tags: trunk)
15:10
Merge the latest trunk fixes and enhancements into the right-join branch. (check-in: afbcf075 user: drh tags: right-join)
14:32
Improvement on check-in [a193749730d6cfba] so that the subroutine call to the IN operator right-hand side generator from the RIGHT JOIN no-match logic does not generate unreachable byte code. (check-in: cc458317 user: drh tags: trunk)
11:24
Bring the comments on sqlite3FindInIndex() into closer alignment with what that routine actually does. (check-in: 40f32747 user: drh tags: trunk)
2022-05-01
14:26
Remove FILE* from shell extension interface. (check-in: 27ff5ce5 user: larrybr tags: cli_extension)
04:55
Get sqlite3x.exe and extensions tested with MSVC build. (check-in: d2b16c29 user: larrybr tags: cli_extension)
2022-04-30
19:55
Defensive code in sqlite3TreeViewWindow() to fix a compiler warning. (check-in: b250c218 user: drh tags: trunk)
18:40
Simplified fix to the problem with subroutine reuse in the RIGHT JOIN no-match logic for a subquery on the right-hand side of an IN operator. The code still needs simplification. (check-in: a1937497 user: drh tags: trunk)
17:22
Fix another problem with subroutine reuse in the RIGHT JOIN no-match code for the subquery on the right-hand side of an IN operator. The current code works for all known cases, but seems unnecessarily complex and in need of simplification. Later: The fuzzer finds memory leaks with this version. (Closed-Leaf check-in: ad32da80 user: drh tags: not-working)
12:55
Preserve the COLLATE operator on an index on an expression when resolving the use of that expression into a reference to the index. See forum thread 7efabf4b03328e57 for details. (check-in: ef72f9e2 user: drh tags: branch-3.38)
12:35
Preserve the COLLATE operator on an index on an expression when resolving the use of that expression into a reference to the index. See forum thread 7efabf4b03328e57 for details. (check-in: a8da85c5 user: drh tags: trunk)
00:06
Further improvements to codeEqualityTerm() for cases when an IN operator with a right-hand side subquery is used as a constraint that needs to be processed by the RIGHT JOIN non-matched logic. (check-in: bb2798be user: drh tags: trunk)
00:05
Enhance the TreeView debugging output for Expr with opcode TK_IN so as to show the RHS table and the subroutine address. (check-in: aec1e4cd user: drh tags: trunk)
2022-04-29
21:38
For Tcl extension, get Tk option into MSVC build. (check-in: c3494fa7 user: larrybr tags: cli_extension)
19:00
Enhance the codeEqualityTerm() routine inside the code generator so that it is able to reuse an IN operator that has an invariant subquery on its right-hand side while coding the non-matched loop of a RIGHT JOIN. dbsqlfuzz 19f1102a70cf966ab249de56d944fc20dbebcfcf (check-in: 56dd3065 user: drh tags: trunk)
18:36
Get MSVC build going for sqlite3x.exe and extensions. And sync w/trunk. (check-in: cd5e57e0 user: larrybr tags: cli_extension)
17:45
With TreeView, only show the table columns for a SrcItem if the data source is a subquery rather than a persistent table. (check-in: 7b4a0d0f user: drh tags: trunk)
17:13
Multiple enhancements to the TreeView output for SrcItem, cherrypicked from the right-join experimental branch. (check-in: 293afa81 user: drh tags: trunk)
17:03
Show the USING clause as part of the tree-view display of SrcItem. (check-in: 9cba3ce5 user: drh tags: right-join)
12:09
Minor typo fix in a comment, for the benefit of broken IDE syntax highlighters. (check-in: 680ccecb user: drh tags: trunk)
2022-04-28
18:33
Fix problem with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: a99ee612 user: dan tags: trunk)
18:17
In treeview.c, show the columns of the table associated with each SrcItem. (check-in: 3aafccb5 user: drh tags: right-join)
17:35
Tweaks to the name resolution on parenthesized joins. A small number of tests fail now due to extra columns appearing in the expansion of "*". (check-in: c8680491 user: drh tags: right-join)
12:52
Merge trunk enhancements into the right-join branch. (check-in: 3fd9706b user: drh tags: right-join)
2022-04-27
21:10
The -DSQLITE_MXFILENAMESZ=N option for some non-negative integer value N prevents SQLite from ever creating a hole larger than N bytes in a named file for which a size hint has been issued. The exception code never runs, except for cases when the application deliberately corrupts the size hint. (Leaf check-in: 0c2da4ff user: drh tags: mkfileholesz)
18:38
Fix a harmless typo in a comment. (check-in: e1f4a115 user: drh tags: trunk)
16:41
When computing STAT1 values using ANALYZE, if a ratio comes out to be between 1.0 and 1.1, then round it down to 1 rather than the using the default rounding rule of changing it to 2. The reduces the estimation error for the case where a column value is very nearly, but not quite unique. (check-in: eb59c46a user: drh tags: trunk)
13:33
Fix a test problem in rbubusy.test causing a crash under some circumstances. (check-in: bc5bbd9f user: dan tags: trunk)
13:12
Merge the version 3.38.3 fixes into the reuse-schema-3.8 subbranch. (check-in: 436d0a58 user: drh tags: reuse-schema-3.38)
13:00
Merge version 3.38.3 fixes onto the begin-concurrent-wal2-3.38 branch. (check-in: 5590f0a4 user: drh tags: begin-concurrent-wal2-3.38)
12:03
Version 3.38.3 (check-in: 9547e2c3 user: drh tags: release, version-3.38.3, branch-3.38)
2022-04-26
20:58
Modify utility function sqlite3SetString() so that it may be used safely on Parse.zErrMsg. Fuzzer test case "crash-1604e5d76c92574e21e437049dab9b672e06b767.txt". (check-in: b9c7d2c1 user: drh tags: branch-3.38)
19:48
Cherry-pick various minor fixes from trunk into branch-3.38. (check-in: fece097c user: drh tags: branch-3.38)
19:16
Update corruptL.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds. (check-in: b1bec720 user: dan tags: trunk)
2022-04-25
23:00
Reverse the order of two tests to stop a harmless initialized value warning from MSAN - reported by OSSFuzz. (check-in: fb7e1a07 user: drh tags: branch-3.38)
21:31
Fix a problem with using multiple SQLITE_SUBTYPE function as window functions in a single query. (check-in: 9caca6cb user: drh tags: branch-3.38)
21:22
Increase the version number to 3.38.3. (check-in: b113afa2 user: drh tags: branch-3.38)
21:21
Fix a problem with automatic indexes introduced by check-in [664b461bb5063d980] and reported by forum post 0d3200f4f3bcd3a3. (check-in: 4fbb9ffe user: drh tags: branch-3.38)
20:56
Fix a problem with automatic indexes introduced by check-in [664b461bb5063d980] and reported by forum post 0d3200f4f3bcd3a3. (check-in: 134cfb18 user: drh tags: trunk)
20:47
Do not allow the push-down optimization on the right table of a RIGHT JOIN. (Closed-Leaf check-in: 05917bfa user: drh tags: autoindex-fix)
20:38
The pushDownWhereTerms() routine should be using sqlite3ExprIsTableConstraint(), not sqlite3ExprIsTableConstant(). This fixes many problems, but still an error persists in join7.test. (check-in: 10bf0e61 user: drh tags: autoindex-fix)
19:40
Failed first attempt to fix a problem with automatic indexes introduced by check-in [664b461bb5063d980] and reported by forum post 0d3200f4f3bcd3a3. I thought that I had tested this prior to check-in and that it worked. But after checking it in, I find that there are many test failures. (check-in: 7ca3456c user: drh tags: autoindex-fix)
14:59
Add a new optimizer disabling bit to disable just the UNION ALL branch of the query flattener. (check-in: c0f9ebab user: drh tags: trunk)
14:49
Avoid unintended side-effects on Parse.nSelect in the sqlite3ViewGetColumnNames() routine. (check-in: 59789fe1 user: drh tags: trunk)
10:43
Remove NEVER() on branches formerly thought to unreachable (see check-in [71272caff5874137]) in order to fix the first bug reported by forum post 28821db852. (check-in: bd6811d8 user: drh tags: trunk)
2022-04-24
20:00
Get CLI conformed to revised doc for it, and take recent fixes. (check-in: 60e85c7e user: larrybr tags: cli_extension)
2022-04-23
19:26
Merge enhancements and fixes from trunk into the right-join branch. (check-in: 2fb165cf user: drh tags: right-join)
19:21
Prevent the ORDER BY LIMIT optimization from running if the innermost loop is a right-join, as doing so will get an incorrect answer. (check-in: 3aefc874 user: drh tags: trunk)
18:46
In debug builds, add extra code to verify that there are no jumps that try to escape from the right-join body subroutine. (check-in: 45fe9192 user: drh tags: trunk)
18:34
Fix false-positives in sqlite3VdbeNoJumpsOutsideSubrtn(). All tests pass now. (Closed-Leaf check-in: 1300d978 user: drh tags: right-join-subrtn-check)
18:04
For debug builds, if the RIGHT JOIN body subroutine contains a jump that escapes the subroutine, then abort the prepared statement with a descriptive error and SQLITE_INTERNAL. This extra sanity check causes many tests to fail. (check-in: 2c5bb2bf user: drh tags: right-join-subrtn-check)
14:30
Fix an operator typo - This indicates that the branch needs further investigation and verification. (check-in: f6ab6796 user: drh tags: right-join)
07:31
Correctly resolve left and right USING columns of an outer join in a parenthesized subjoin. (check-in: ea91aba8 user: drh tags: right-join)
07:29
Fix minor problems with the new join table name resolution logic. (Closed-Leaf check-in: 3a6b0db4 user: drh tags: right-join-colnames)
2022-04-22
23:18
Add the ability to access the USING columns of the right or left tables of an OUTER JOIN even if the OUTER JOIN is in parentheses. Prototype code only. (check-in: c3a42757 user: drh tags: right-join-colnames)
19:52
Merge the latest enhancements and fixes from trunk onto the right-join branch. (check-in: 7f898334 user: drh tags: right-join)
18:07
Make use of the "%!S" format when running ExplainSubquery. (check-in: 9425d79c user: drh tags: trunk)
17:36
Improve EXPLAIN QUERY PLAN output and comments on bytecode listings by distinguishing between "subquery" and "join" and using consistent names across EQP and bytecode. (check-in: a2d3ee92 user: drh tags: trunk)
16:15
Honor the MATERIALIZED keyword on a common table expression by not flattening the CTE into an outer query. (check-in: 8d631a6b user: drh tags: trunk)
15:18
Add test cases to check the handling of SQLITE_BUSY in rbu. (check-in: 6fccc733 user: dan tags: trunk)
13:34
Simplification of data structures in the wildcard expander for SF_NestedFrom queries. (check-in: f7c18262 user: drh tags: trunk)
12:46
Minor simplification to the result-set wildcard expander for SF_NestedFrom. (check-in: d942530a user: drh tags: right-join)
09:57
Merge the latest trunk fixes into the right-join branch. (check-in: c74dc574 user: drh tags: right-join)
2022-04-21
23:34
Previous fix to join8.test needs a return. (check-in: 7b4cd705 user: drh tags: trunk)
23:01
Disable join8.test if the build lacks support for virtual tables. (check-in: 94e1916a user: drh tags: trunk)
19:38
Add support for RIGHT and FULL JOIN. (check-in: f766dff0 user: drh tags: trunk)
19:25
Fix harmless compiler warnings. (check-in: 29255664 user: drh tags: right-join)
19:20
Fix a harmless uninitialized variable warning in MSVC. (check-in: b870d2a2 user: drh tags: trunk)
19:14
Fix harmless compiler warnings in the CLI. (check-in: dfd2100b user: drh tags: trunk)
14:48
Make sure the code generator knows to invoke row-value subroutines which running the right-join post-processing loop. (check-in: fd328e52 user: drh tags: right-join)
14:08
Ensure correct fg.isNestedFrom values even on crazy parses. (check-in: e611e8e6 user: drh tags: right-join)
13:11
Avoid materializing columns of SF_NestedFrom subqueries that are never used. Other code improvements manually imported from the right-join-paren branch. (check-in: cd8272fc user: drh tags: right-join)
12:11
Further attempts to get name resolution to work correctly with parenthisized FROM clauses. Work-in-progress. Lots of crashes and wrong answers. (Closed-Leaf check-in: 6b326b3b user: drh tags: right-join-paren)
01:49
Attempting to improve name resolution for parenthesized FROM clauses. Only partially working. (check-in: 959b7182 user: drh tags: right-join-paren)
2022-04-20
22:41
For CLI, fix how columnar mode fills in empty portions of wrapped row outputs. (check-in: 77aed891 user: larrybr tags: trunk)
21:58
Try to avoid materializing unused columns when processing a parenthesized FROM clause. (check-in: 07906e3c user: drh tags: right-join-paren)
18:12
Small correction to the new bUsed logic of sqlite3ProcessJoin(). (check-in: ba04142e user: drh tags: right-join)
16:54
Merge window function fix from trunk. (check-in: b6b9e185 user: drh tags: right-join)
16:53
Remove an unnecessary assignment operation. (check-in: ed46527a user: drh tags: right-join)
16:42
Fix a problem with using multiple SQLITE_SUBTYPE function as window functions in a single query. (check-in: 9430ead7 user: dan tags: trunk)
16:26
Comment fixes and improvements in sqlite3ProcessJoin(). (check-in: 1118655f user: drh tags: right-join)
15:07
Improved tracking of nested SELECT objects used to implement parenthensized FROM terms. (check-in: 0da22326 user: drh tags: right-join)
12:15
Also show the ENAME_SPAN value in sqlite3TreeViewExprList(), if there is one. (check-in: c1d42861 user: drh tags: right-join)
12:14
Improved TreeView output for ExprList: Show the ENAME_TAB value, if there is one. (check-in: eb3f883b user: drh tags: right-join)
12:02
Add a new comment to the body of lookupName(). No code changes. (check-in: 22fa9b9b user: drh tags: right-join)
2022-04-19
23:00
Merge the ALTER TABLE fix from trunk. (check-in: d5ceaef3 user: drh tags: right-join)
20:47
Fix a problem in ALTER TABLE with handling "table.*" expressions within SELECT statements in triggers. (check-in: 24755fd0 user: dan tags: trunk)
19:51
Improved comment on the JF_LTORJ constant definition. (check-in: e0744da9 user: drh tags: right-join)
18:23
Fix a NULL-pointer dereference that can occur on an aggregate query that uses FULL JOIN. dbsqlfuzz 496a35dd4eefcd7935aaaeb0c69056bf49785d28. (check-in: 63b8f8ae user: drh tags: right-join)
15:56
Mark an unreachable "just-in-case" branch as unreachable. (check-in: b966d524 user: drh tags: right-join)
15:01
Add 512 new join test cases derived from PostgreSQL output. (check-in: 78d58e46 user: drh tags: right-join)
09:39
Remove unnecessary cases for the resolver. (check-in: 5bc9aa68 user: drh tags: right-join)
02:03
Add the omitted "finish_test" to the end of joinA.test. (check-in: 0907505c user: drh tags: right-join)
00:24
New test cases for RIGHT and FULL JOIN. (check-in: 5c2f670e user: drh tags: right-join)
2022-04-18
23:20
Fix the query flattener so that it does not flatten a RIGHT or FULL JOIN into any position of the outer query other than the first. (check-in: 837322aa user: drh tags: right-join)
22:51
New test cases, including one that gets a different result than Postgres. (check-in: 49ea11a4 user: drh tags: right-join)
19:48
Disable the unused EU4_EXPR mode for the IdList object. (check-in: 5bcf4aa3 user: drh tags: right-join)
19:34
Even more test cases. (check-in: 5f4310a1 user: drh tags: right-join)
19:28
New test cases for parenthesized NATURAL FULL JOINs. (check-in: e34250ef user: drh tags: right-join)
18:01
New test case demonstrating the ability to invoke OP_NullRow on a cursor that has never been opened. (check-in: d173edc2 user: drh tags: right-join)
16:23
Merge the btree bug-fix from trunk. (check-in: a333c0b5 user: drh tags: right-join)
16:20
Ensure that left-hand side WITHOUT ROWID tables are set to OP_NullRow prior to running the right-join loop. This fixes a problem introduced by the previous check-in. (check-in: aab7665c user: drh tags: right-join)
16:10
Fix problems with WHERE clauses that follow multiple FULL JOINs. This introduces some new faults in the tests, probably due to something unrelated. (check-in: 95b242d4 user: drh tags: right-join)
15:56
Avoid an assert() failure in allocateSpace() triggered by a corrupt database. dbsqlfuzz f022eb0ce64d27808574d1dcde5cf7d002dabde8. (check-in: 2de7f8cc user: dan tags: trunk)
14:41
Merge the latest fixes from trunk. (check-in: 1ba3b3cc user: drh tags: right-join)
14:15
Improved comment field in the bytecode generated for OP_Column and OP_Rowid. (check-in: 1b2c5cef user: drh tags: trunk)
13:57
Improved comment field in the bytecode generated for OP_Column and OP_Rowid. (check-in: 009bbf80 user: drh tags: right-join)
13:08
New RIGHT JOIN test cases, one of which is currently failing. (check-in: 9168cbbe user: drh tags: right-join)
11:22
Change the row-value initialization subroutine call from within the right-join body subroutine from an issue to an optimization opportunity. (check-in: 829d49f2 user: drh tags: right-join)
10:26
Do not allow an empty table bypass to jump outside of a right-join body subroutine. (check-in: 1549dcd2 user: drh tags: right-join)
10:09
Fix the sqlite3SrcListAppendList() routine so that it correctly adds the JT_LTORJ attribute to the first SrcItem, if needed. (check-in: 07ed0dca user: drh tags: right-join)
09:59
Leave sqlite3ProcessJoin() early if an OOM is encountered in the NATURAL to USING converter. This avoids NULL pointer dereferences further along in the code. (check-in: 0ccb224e user: drh tags: right-join)
00:57
Fix to the coalesce() function generation in the resolver. (check-in: 584bd55e user: drh tags: right-join)
00:04
When converting a NATURAL JOIN into a JOIN USING, make sure to insert the name correctly into the IdList even if it is a wierd quoted name. (check-in: e62156b6 user: drh tags: right-join)
2022-04-17
23:46
Fix to the logic that computes coalesc() functions to resolve USING terms. (check-in: 20388548 user: drh tags: right-join)
22:58
Deal with OP_Return bypass in the RIGHT JOIN subroutine by adding extra OP_Returns where needed. (check-in: 71abe564 user: drh tags: right-join)
21:03
Get docs caught up with the .shxload change. (check-in: e2196448 user: larrybr tags: cli_extension)
20:30
Change OP_Return such that if P3 is 1, the Return is a no-op when the P1 register contains a NULL. (check-in: c9060232 user: drh tags: right-join)
19:22
Move shell extension load functionality into its own .shxload command for usage and code simplicity. (check-in: e2c8c88b user: larrybr tags: cli_extension)
18:46
Further improvements to USING() processing for RIGHT and FULL JOINs. All currently known issues are now resolved. Performace is improved. (check-in: 9fd3f22e user: drh tags: right-join)
00:48
For sqlite3x, rudimentary testing in place as make target shellxtest . More to come. (check-in: b73928be user: larrybr tags: cli_extension)
2022-04-16
23:38
New test cases, one of which is failing, indicating a bug that needs fixing. (check-in: bd5fd684 user: drh tags: right-join)
22:57
Fix the USING to ON translation so that it works correctly for a sequence of two or more joins where one of the joins to the right-hand side of the list is a RIGHT or FULL JOIN. (check-in: 9ffc2b23 user: drh tags: right-join)
19:13
Since the query planner is unable to cope with a LEFT JOIN on the left-hand side of a RIGHT JOIN, detect that situation early and raise a parsing error. This is a temporary measure that needs to be fixed. (check-in: 6d5d6e04 user: drh tags: right-join)
18:33
Additional SELECT trace logic: Show the tree after result-set wildcard expansion but before name resolution. (check-in: a7babf75 user: drh tags: right-join)
17:53
Make shell auto-column work with lots of columns when log() is missing. (check-in: 82366436 user: larrybr tags: trunk)
15:46
Fix a problem with "ON DELETE RESTRICT" and "ON UPDATE RESTRICT" foreign keys in attached databases scanning child tables in the wrong schema. (check-in: 04d5b637 user: dan tags: trunk)
13:55
New test cases. One of the new test cases shows a flaw in the base design of RIGHT JOIN. (check-in: 4c3ce647 user: drh tags: right-join)
12:40
RIGHT JOIN USING now appears to work the same as PG-14. Legacy tests pass. (check-in: 5bfb8624 user: drh tags: right-join)
2022-04-15
21:21
Get sqlite3x and extensions testing from Makefile setup, and some of wapptest changes done to run same. (a WIP) (check-in: d238fcf4 user: larrybr tags: cli_extension)
19:53
Revamp the USING clause processing so that it works (mostly) with RIGHT and FULL JOIN. (check-in: 719c8d92 user: drh tags: right-join)
19:49
Avoid deleting substructure of the Expr node in lookupName() until after the error message is generated. (Closed-Leaf check-in: b8e71766 user: drh tags: right-join-using)
19:27
Progress toward a working USING for FULL JOIN. (check-in: fed2646a user: drh tags: right-join-using)
18:30
When expanding "*" in the result set of a SELECT, do not attach a table name to columns that are in subsequent USING clauses. (check-in: 91530990 user: drh tags: right-join-using)
17:08
The sqlite3ProcessJoin() routine converts a NATURAL JOIN into a JOIN USING so that henceforth the NATURAL keyword can be ignored. (check-in: 8378e1e0 user: drh tags: right-join)
15:47
Enhance the IdList object to exist in a single memory allocation (rather than a separate allocate for the base object and the array of IDs). Also permit an IdList object to store an Expr pointer together with each name. (check-in: 40f3c958 user: drh tags: right-join)
15:15
Add the "3" in the name of the sqlite3ProcessJoin() function. (check-in: b925f72b user: drh tags: right-join)
2022-04-14
20:43
Record the three known big issues with the current RIGHT JOIN design in the join8 test module, with tests that deliberately fail in order to remind us to fix the issues. (check-in: 2c4ee723 user: drh tags: right-join)
19:48
Cherry pick subroutine indentation improvements and the hardening of OP_Gosub from the right-join branch back into trunk. (check-in: 12645f10 user: drh tags: trunk)
19:05
Another instance of indenting a subroutine. (check-in: 73f4036b user: drh tags: right-join)
18:19
Check for interrupts and invoke the progress handler following a Gosub opcode, to avoid and recover from infinite subroutine loops. (check-in: 647211e0 user: drh tags: right-join)
16:34
Rerun the subroutines that compute row-values if necessary from within the RIGHT JOIN body subroutine. (check-in: 9b9038bc user: drh tags: right-join)
15:55
Adjust the output formatting of bytecode listings so that subroutines used to implement subqueries are indented one level. (check-in: 079b7b12 user: drh tags: right-join)
14:58
Disable autoindexing for the RIGHT JOIN loop. (check-in: 402a89e3 user: drh tags: right-join)
14:40
Adjust assert() statements to account for the new always-NULL cursor type added by [4526c5d316508093]. (check-in: 7822faa4 user: drh tags: right-join)
14:19
Previous check-in accidentally inverted a test on an assert(). Fix that. (Closed-Leaf check-in: 5ec4f806 user: drh tags: right-join-fix, right-join)
12:59
Fix assert() statements associated with artifical null-value cursors created by RIGHT JOIN. (check-in: f5bce5f1 user: drh tags: right-join-fix, right-join)
2022-04-13
19:00
Fix a harmless (false-positive) unused variable compiler warning on MSVC. (check-in: 63b04c63 user: drh tags: right-join)
18:32
Make the sqlite3TreeViewSrcList() routine a no-op if called with a NULL SrcList object. (check-in: 185d2720 user: drh tags: right-join)
18:20
Fix an assert() in OP_Column so that it accounts for the new type of pseudo-cursor that always returns NULL for any column. (check-in: 371ddc97 user: drh tags: right-join)
17:41
If the OP_NullRow opcode is given a cursor that has not yet been opened, then go automatically open it to a special pseudo-cursor that allows returns NULL for every column. Used by the new RIGHT JOIN implementation. (check-in: 4526c5d3 user: drh tags: right-join)
16:46
Move the explain comment for the RIGHT-JOIN post-processing loop to the verify beginning of the loop - to make the start of the loop clearer to human bytecode readers. (check-in: 7ed2a271 user: drh tags: right-join)
12:34
This was the original landing of the RIGHT and FULL OUTER JOIN changes to trunk. It was moved back onto a branch due to problems discovered. (check-in: fa9d206f user: drh tags: right-join)
12:12
The rows of a RIGHT JOIN might come out in any arbitrary order. So disable the ORDER-BY/GROUP-BY optimizations if a RIGHT JOIN is involved. (check-in: d168f245 user: drh tags: right-join)
10:49
Fix an assert() in btree.c that might not be true for a corrupt database file. (check-in: dbd8e2e4 user: drh tags: trunk)
03:48
Extension interface cleanup, and rename MetaCommand to DotCommand (to better match docs) (check-in: f78d7b8b user: larrybr tags: cli_extension)
01:52
Add missing VdbeCoverage() macros on new branch byte-code opcodes. (check-in: 218c7167 user: drh tags: right-join)
2022-04-12
20:20
Ensure that the JT_LTORJ bit in the SrcItem.fg.jointype is preserved during query flattening. (check-in: 61259050 user: drh tags: right-join)
18:40
For the bad join type error message "unknown or unsupported join type" remove the "or unsupported" clause, because we now support all valid join types. (check-in: ab0a0562 user: drh tags: right-join)
18:04
Factor out the RIGHT JOIN non-matched row loop from sqlite3WhereEnd(). This reduces the register pressure on that routine and helps it to run faster in the common case where there is no RIGHT JOIN. (check-in: beeecf16 user: drh tags: right-join)
17:43
Merge the latest enhancements from trunk into the right-join branch. (check-in: b3e57ba1 user: drh tags: right-join)
17:02
Earlier detection of corruption in balance_nonroot(). dbsqlfuzz 9191ade77ebd3b7a3356e074957aa85b0c669d14. (check-in: bff4f083 user: dan tags: trunk)
14:23
The multi-index OR optimization does not work for RIGHT join, so disallow it. (check-in: 34c2f7b2 user: drh tags: right-join)
13:46
Always explicitly set each table cursor to NullRow before doing the RIGHT-JOIN unmatched row pass. This is a cheap opcode, and it adds an extra layer of defense against incorrect results. (check-in: a3d14e61 user: drh tags: right-join)
11:02
Modify utility function sqlite3SetString() so that it may be used safely on Parse.zErrMsg. Fuzzer test case "crash-1604e5d76c92574e21e437049dab9b672e06b767.txt". (check-in: 09c5a4ec user: dan tags: trunk)
10:06
Further clarification of Tcl extension intro. (check-in: 29ab6e90 user: larrybr tags: cli_extension)
2022-04-11
23:08
Tcl extension doc, minor clarifications and spelling improvements (check-in: 6ccdd9b7 user: larrybr tags: cli_extension)
23:01
Fix CLI mishandling of SQL "execute" tokens, go and / (check-in: 1a117b03 user: larrybr tags: cli_extension)
21:00
Fix RIGHT JOIN for virtual tables. (check-in: 75a9116e user: drh tags: right-join)
20:15
The query flattener must add TK_IF_NULL_ROW opcodes on substituted values that land on the left operand of a RIGHT JOIN, just as it already does for the right operand of a LEFT JOIN. (check-in: 8e02cdf5 user: drh tags: right-join)
18:54
New test cases added. (check-in: bdd1499c user: drh tags: right-join)
18:42
Fix mis-renditions of help text. (check-in: 1a7a6b6f user: larrybr tags: cli_extension)
17:27
Fix handling of "continue" and "break" from inside the loop for the right operand of a RIGHT JOIN. (check-in: b6e773a2 user: drh tags: right-join)
14:43
Do not attempt the LEFT JOIN strength reduction optimization on a FULL JOIN. (check-in: 7ef3e99a user: drh tags: right-join)
14:26
Show LEFT and RIGHT JOIN processing in the EXPLAIN QUERY PLAN output. (check-in: d91faeff user: drh tags: right-join)
13:13
New test cases. (check-in: d5f6791b user: drh tags: right-join)
12:38
Make a distinction between (1) WHERE clause constraints, (2) ON/USING constraints on outer joins, and (3) ON/USING clause constraints on inner joins. Formerly, there was no distinctionb between 1 and 3, but RIGHT JOIN needs to know the difference. Make RIGHT JOIN aware of this difference and add test cases. (check-in: 0f6f61c3 user: drh tags: right-join)
11:59
Fix some comments that refer to LEFT JOIN that should refer to OUTER JOIN. No changes to code. (check-in: 5be5ede5 user: drh tags: right-join)
11:48
Merge the Expr.w.iJoin name change from trunk into the right-join branch. (check-in: 29927926 user: drh tags: right-join)
11:25
Rename the Expr.w.iRightJoinTable to just Expr.w.iJoin, so that the words "RightJoin" in the former name do not lead readers to believe that this has something to do with RIGHT JOINs in particular. (check-in: e8c00442 user: drh tags: trunk)
10:38
Ensure that the JT_LTORJ flag is preserved when flattening a subquery that is on the left side of a RIGHT JOIN. (check-in: ccb61fb1 user: drh tags: right-join)
08:07
Add embedded doc, Intro to Tcl Extension (check-in: 33591833 user: larrybr tags: cli_extension)
00:54
Show the JT_LTORJ flag in TreeView debugging output. (check-in: 21eb4491 user: drh tags: right-join)
00:21
Do not allow query flattening nor the push-down optimization on the right operand of a RIGHT JOIN. (check-in: 5aa0c9ea user: drh tags: right-join)
2022-04-10
23:48
Cannot use an automatic index on the right table of a RIGHT JOIN because automatic indexes must be WHERE_IDX_ONLY, but the RIGHT JOIN post-processing does not know how to work with an index-only scan. (check-in: beb4401d user: drh tags: right-join)
23:01
Revisit [f84b2beca7197589]: disallow co-routine implementations of tables that are to the left of a RIGHT JOIN, to avoid other complications. (check-in: cf00ebfc user: drh tags: right-join)
20:28
Minor improvements to the sqlite3SrcListShiftJoinType() routine. This started out to be an effort to convert RIGHT JOIN to LEFT JOIN if the join was on the first pair of relations, but that messes up the "*" expansion and so won't work. (check-in: a48902c7 user: drh tags: right-join)
19:51
When the left-most table of a RIGHT JOIN is implemented as a co-routine, make sure all its columns are flushed to NULL when it finishes so that they appear to be NULL during the RIGHT JOIN post-processing. (check-in: f84b2bec user: drh tags: right-join)
17:14
More test cases and bug fixes. (check-in: 140e97fd user: drh tags: right-join)
16:13
More RIGHT JOIN test cases and a bug fix. (check-in: 19e8ad69 user: drh tags: right-join)
09:17
Create parallel C and C++ test/demo shell extensions, with header tweaks to make that work. Fix a bug exposed when multiple shell extensions were loaded. (check-in: 2596e7c4 user: larrybr tags: cli_extension)
2022-04-09
20:11
Add a simple test case. (It is not difficult to create additional test cases that assert, at this point.) (check-in: f2201d5d user: drh tags: right-join)
19:39
Sync w/trunk, for .import fix. (check-in: 861ab023 user: larrybr tags: cli_extension)
18:51
Fix .import bug reported at https://sqlite.org/forum/forumpost/14db09d7e765b819 . zAutoColumn made to deliver characters, not bytes. (check-in: 21e96600 user: larrybr tags: trunk)
18:48
Bug fixes. A basic FULL OUTER JOIN now works. (check-in: 34bbeeb7 user: drh tags: right-join)
14:57
Get tclshext made with Tk, optionally, and make unknown work as in tclsh. (check-in: 43eb311e user: larrybr tags: cli_extension)
14:48
Add byte-code that computes unmatched rows on the right table of a RIGHT JOIN. Compiles, and the code looks semi-reasonable, but still does not run. Incremental check-in. (check-in: 2db5a498 user: drh tags: right-join)
12:27
The interior of the RIGHT JOIN loop is now a subroutine. (check-in: 549f5a7e user: drh tags: right-join)
03:16
A few bits and bobs of code generation toward getting RIGHT JOIN to work. Much more remains to do. (check-in: 55b45431 user: drh tags: right-join)
03:12
Merge the sqlite3WhereMalloc() routine from trunk into the right-join branch. (check-in: b1b3845a user: drh tags: right-join)
03:12
Fix TCL extension build issue. (check-in: 0b3bb0e7 user: larrybr tags: cli_extension)
03:06
The sqlite3WhereMalloc() routine allocates memory that is automatically deleted when the corresponding WhereInfo object is destroyed. (check-in: f237e1d8 user: drh tags: trunk)
02:31
For shell extensions, generate a single-file header. For TCL extension, provide Makefile target, and make Tk opt-in rather than default. (a WIP) (check-in: 2cd49df5 user: larrybr tags: cli_extension)
2022-04-08
19:20
Preliminary code to support RIGHT JOIN. Everything seems to work, except that the code to compute the unmatched rows for the RIGHT JOIN has not yet been added, so the result of a RIGHT JOIN is currently the same as an INNER JOIN. (check-in: 415abd67 user: drh tags: right-join)
17:01
Enhance the sqlite_dbpage fix at check-in 642a0b4752743 from about a month ago such that it still takes a transaction on all attached databases, but it only starts a read transaction for read-only operations, rather than starting a write transaction for everything. (check-in: 8efd61e8 user: drh tags: trunk)
15:11
Improved explanation and commentary on the sqlite3JoinType() routine. One of the error messages changes slightly, but besides that everything works the same. (check-in: 48f2e5a1 user: drh tags: trunk)
12:50
Grammar rules for a hypothetical FOR EACH ROW statement. No new keywords required. However, the sqlite3_complete() machine had to be reworked because of the fact that FOR EACH ROW can contain internal semicolon tokens. (Leaf check-in: 32ae9ee7 user: drh tags: foreachrow-statement)
10:35
Tokenizer and grammar rules sufficient for the MERGE command. (Leaf check-in: 2deee326 user: drh tags: merge-statement)
04:24
Sync w/trunk, including all CLI updates (check-in: ad8b48d6 user: larrybr tags: cli_extension)
03:40
For shell, silence some clang warnings, and cure one bona-fide gripe. (check-in: 52be8668 user: larrybr tags: cli_extension)
03:20
Revamp and simplify shell help extension interface, and provide for scripted shell extensions to be seen in .help output. (check-in: aa785473 user: larrybr tags: cli_extension)
2022-04-07
20:45
Fix two unreachable branches introduced by the recent sqlite3TriggersExist() optimization. (check-in: 1b5475d2 user: drh tags: trunk)
19:06
Enhance the EXPLAIN output formatting in the CLI so that the subroutine that implements the loop body for the multi-index OR optimization is indented. (check-in: c2965fea user: drh tags: trunk)
18:17
The ".testctrl optimizations 0x400000" command disables the generation of OP_ReleaseReg opcodes. OP_ReleaseReg opcodes are usually only generated for SQLITE_DEBUG builds and are used to verify that registers are descoped propertly. But they can get in the way of code understanding when studying bytecode dumps. So this new optimization setting is provided to temporarily turn OP_ReleaseReg opcodes off. (check-in: fa527672 user: drh tags: trunk)
14:13
Fix the parsing of C-style comments in Lemon, as reported by forum post b6edc69548. This has no affect on SQLite itself. (check-in: 201569e0 user: drh tags: trunk)
14:03
Optimization to sqlite3TriggersExist() saves over 700K CPU cycles. (check-in: 5043a350 user: drh tags: trunk)
13:48
Avoid compiler warnings about the new sqlite3Show() debugging routines begin "defined but not used". (check-in: 47ddc269 user: drh tags: trunk)
12:10
Omit an unnecessary initialization in tokenExpr(). (check-in: 8f6ae686 user: drh tags: trunk)
10:11
Fix harmless compiler warnings. (check-in: 61095b5b user: drh tags: trunk)
01:11
Improved technique for parsing the ON and USING clauses of a join is faster and uses less memory. (check-in: 158156a3 user: drh tags: trunk)
2022-04-06
19:46
Faster parsing of the FROM clause in joins for the common case where there is no INDEXED BY clause. (check-in: 848b7a0e user: drh tags: trunk)
18:30
Improvements to the display of AST for DML statements. (check-in: 84c239a0 user: drh tags: trunk)
17:07
Get shell.c past clang preprocessor, silently. (check-in: 588c3512 user: larrybr tags: cli_extension)
16:47
Add sqlite3x target to other makefiles. (check-in: efc9f08d user: larrybr tags: cli_extension)
16:19
Add sqlite3x build target. Cure CLI build warning. Tweak CLI test. (check-in: 45736d46 user: larrybr tags: cli_extension)
15:41
Attempt to show triggers in the TreeView output from DELETE, INSERT, and UPDATE statements. (check-in: b0939d6f user: drh tags: trunk)
12:54
Corrections and updates to the header comment describing the TriggerStep object. No changes to code. (check-in: abb34c08 user: drh tags: trunk)
12:25
Add the sqlite3Show() family of debugging interfaces under SQLITE_DEBUG. No changes to deliverable builds. Rename SQLITE_ENABLE_SELECTTRACE to SQLITE_ENABLE_TREETRACE in ctime.c. (check-in: bc33168c user: drh tags: trunk)
11:08
Rename debugging defines and variables from SELECTTRACE to TREETRACE (and similar) since the functionality has how expanded to include data structures beyond SELECT statements. Should not affect deliverable builds. (check-in: 393fa32e user: drh tags: trunk)
10:37
Add additional tree display routines for DELETE and UPDATE. No changes to deliverable code. (check-in: fbd288ff user: drh tags: trunk)
00:29
Add new diagnostic "sqlite3TreeView" routines for IdList, Upsert, and for INSERT statements. This is all debugging code. There are no changes to release builds. (check-in: f3084122 user: drh tags: trunk)
2022-04-04
20:20
Small performance and size improvement to OP_Found. (check-in: 81587a18 user: drh tags: trunk)
19:58
Tag an always-taken branch using ALWAYS(). (check-in: ad8bc3d7 user: drh tags: trunk)
19:43
Optimizations to the OP_Found opcode save about 600K cycles in speedtest1. (check-in: 5c3357ad user: drh tags: trunk)
18:17
Use unpacked keys for OP_Found in foreign key processing. (check-in: 328dc766 user: drh tags: trunk)
17:27
For shell extension writers, reduce boilerplate (mimicing SQLITE_EXTENSION_INIT# macros) (check-in: 76120813 user: larrybr tags: cli_extension)
15:26
Fix two minor problems in the JSON functions associated with JSON Paths for object labels that require quoting. (check-in: 4a1553b5 user: drh tags: branch-3.38)
15:15
When constructing the JSON Path for the "fullpath" column of the json_tree() and json_each() table-valued functions, be sure to quote object labels where necessary. (check-in: 0fbbe788 user: drh tags: trunk)
14:24
Fix the JSON Path parser so that it will accept zero-length object labels. Forum thread c082aeab43. (check-in: 84fe95d2 user: drh tags: trunk)
11:38
Performance optimization and stronger assert()s in the comparison opcodes. (check-in: e0305e64 user: drh tags: trunk)
06:33
For TCL extension: Adjust provided "gui" command, and document it. For shell: Separate shell variables from binding parameters, mainly so they live longer, in the shell DB. Add .vars dot command to reflect this separation, and specialized for shell variables. Much code shuffling to share code between .parameters and .vars commands. (check-in: fa492ff5 user: larrybr tags: cli_extension)
01:12
Only invoke sqlite3VdbeClearObject() from a single location, so that the compiler is more likely to in-line the code. Performance increase and size reduction. (check-in: c6947a96 user: drh tags: trunk)
2022-04-03
22:35
Performance optimization in the sqlite3VdbeHalt() routine. (check-in: 9564d72a user: drh tags: trunk)
20:39
Performance optimization and size reduction in the OP_Halt opcode. (check-in: 21948e6e user: drh tags: trunk)
19:13
Omit the Vdbe.runOnlyOnce flag (simplifying the prepared statement implementation) and accomplish the same result by adding an "OP_Expire 1 1" opcode to prepared statements that would normally have runOnlyOnce set. (check-in: 6e20e1c4 user: drh tags: trunk)
10:42
Performance optimization and slight size reduction in the OP_Transaction opcode. (check-in: 7bee8c19 user: drh tags: trunk)
2022-04-02
22:47
Expand the getVarint32() macro in a few places, as the C-compiler seems to be able to optimize better when that macro is expanded manually. (check-in: cd4fe34b user: drh tags: trunk)
20:08
Fix harmless compiler warnings. (check-in: 8a3a3486 user: drh tags: trunk)
19:21
Ensure that a zero-blob does not cause in invocation of memcpy() with a zero length and a NULL source pointer. (check-in: 35441eb5 user: drh tags: trunk)
15:19
Minor loop optimization in OP_MakeRecord. (check-in: 4350983b user: drh tags: trunk)
14:30
In-line the sqlite3VdbeSerialPut() routine into the OP_MakeRecord opcode. This allows some duplicate comparisons to be omitted, resulting in a size reduction and performance increase. (check-in: 6f4d6f21 user: drh tags: trunk)
2022-04-01
21:01
The putVarint32() macro does not optimize well. So expand it into in-line code in places were performance is an issue. (check-in: 390c239e user: drh tags: trunk)
20:39
Loop optimization in the OP_MakeRecord opcode. (check-in: 47a61fbd user: drh tags: trunk)
20:19
It is not necessary to de-ephermeralize the output registers in the OP_ResultRow opcode. Omit that step for a size reduction and performance increase. (check-in: 8a07745a user: drh tags: trunk)
19:13
There is no need for sqlite3_step() to check for an OOM condition prior to starting up. (check-in: 44be7f46 user: drh tags: trunk)
19:04
Omit the Vdbe.doingRerun field for a slight size reduction and performance gain. (check-in: e93297a9 user: drh tags: trunk)
18:45
New macro ROUND8P() which works like ROUND8() but assumes that the input is already a multiple of the size of a pointer. It becomes a no-op for 64-bit machines, giving a small size reduction and speed boost. (check-in: d126f304 user: drh tags: trunk)
18:19
Provide and use a version of sqlite3VdbeFreeCursor() that guarantees the cursor pointer is not NULL. This saves a few bytes of code space and a few CPU cycles. (check-in: cb5e6f8e user: drh tags: trunk)
17:23
Remove an unnecessary branch from sqlite3VdbeReset(). (check-in: a7d79560 user: drh tags: trunk)
17:01
Refactor the Vdbe.iVdbeMagic field into Vdbe.eVdbeState. Split the RUNNING state into separate RUNNING and READY. This gives a size reduction and performance increase. (check-in: 5a50a42f user: drh tags: trunk)
16:22
Avoid a harmless uninitialized variable warning in PRAGMA incremental_vacuum. (check-in: 6d976f90 user: drh tags: trunk)
15:31
Have the sqlite3_context object carry the encoding for the prepared statement that it represents, so that sqlite3_result() and similar can set the encoding according to the prepared statement, even if the database encoding has changed. dbsqlfuzz c409b10d0a6bccf78ab00f47e1d29d42ee5b3565 (check-in: d4e19314 user: drh tags: trunk)
2022-03-31
21:15
Split out the RUN state into separate READY and RUN states. (Closed-Leaf check-in: d698826b user: drh tags: vdbe-state-refactor)
20:04
Rename Vdbe.iVdbeMagic to eVdbeState. Remove unnecessary states. This is a preliminary step toward splitting RUN_STATE out into several other states. (check-in: ff91191d user: drh tags: vdbe-state-refactor)
16:09
Fix harmless compiler warnings. (check-in: b916087a user: drh tags: trunk)
11:12
Refinement to [3f9887d4a58cbfdb]: The SQLITE_CONSTRAINT error should only be returned if the prepared statement came from sqlite3_prepare_v2(). The legacy sqlite3_prepare() is documented to return only SQLITE_ERROR. (check-in: f2d9262e user: drh tags: trunk)
04:05
Make CLI build after an incomplete rename completed. (check-in: 4f11e639 user: larrybr tags: cli_extension)
03:45
For TCL extension: Add Tk and means to run it, optionally. Implement ScriptSupport interface. For shell: Get scripting support thru an object interface like the others. Rename OutMode* to Export*. For both: Provide a way to pass arguments to an extension upon load and get them into TCL's argv. (check-in: d2446e50 user: larrybr tags: cli_extension)
2022-03-30
17:56
Faster and slightly smaller implementation of sqlite3Step(). (check-in: c6901a8c user: drh tags: trunk)
17:36
Small size reduction and performance increase in sqlite3FinishCoding(). (check-in: 9248ce50 user: drh tags: trunk)
11:12
Incorporate fix noted as absent by forum post https://sqlite.org/forum/forumpost/aefd62fcc7ebd8b6 (check-in: 336851b1 user: larrybr tags: branch-3.38)
2022-03-29
22:57
In setResultStrOrError(), if the input string pointer is NULL and hence the value gets set to an SQL NULL, then the Mem.enc field is uninitialized. So do not read it. This is a harmless OSSFuzz/ASAN found problem. (check-in: 47d0b1c4 user: drh tags: trunk)
21:11
For TCL extension: Cleanup TCL library interaction and interpreter management. Group code into more purpose oriented functions. Add .unknown dot command, delegating to TCL commands with "dot" names. Drop planned .eval new dot command. For shell: Implement undocumented .unknown dot command, doing little. Make dispatcher call .unknown's implementation for unknown dot command. Fix a command lookup bug exposed by above change to unknown handling. Add .eval dot command. Add options to .x command aimed at control of errors in command sequences. (a WIP) Make dispatcher report ambiguous dot command lookups, even with no extension. (check-in: 7616a6f4 user: larrybr tags: cli_extension)
20:50
Ensure that sqlite3VdbeMemSetStr() always leaves the value in a consistent state even if there is an error. (check-in: c86ab289 user: drh tags: trunk)
19:19
Reverse the order of two tests to stop a harmless initialized value warning from MSAN - reported by OSSFuzz. (check-in: 800b8fda user: drh tags: trunk)
13:16
Avoid unnecessary calls to balance() from sqlite3BtreeDelete(). (check-in: d0966d1b user: drh tags: trunk)
01:43
Fix the sqlite3_result_xxxxx() routines so that they all check for and perform any necessary text encoding conversions and check for oversize strings and BLOBs. Thus those checks can be done where they are most efficient and avoided in cases like OP_Function where they are more expensive. (check-in: d50b162b user: drh tags: trunk)
2022-03-28
21:42
TCL extension polished and more smoothly integrated. A couple of bugs related to takedown fixed. Help for added features. Code cleaned up and commented. (check-in: 4ee7df11 user: larrybr tags: cli_extension)
18:34
Further size and performance optimizations for sqlite3VdbeMemSetStr(). (check-in: 310a3e10 user: drh tags: trunk)
17:34
Slightly smaller and faster sqlite3VdbeMemSetStr(). (check-in: 06928e74 user: drh tags: trunk)
15:06
Performance increase in the loop that frees an opcode array. (check-in: 4ccebb86 user: drh tags: trunk)
14:56
Another small performance gain by using sqlite3DbFreeNN(). (check-in: daa924af user: drh tags: trunk)
14:18
Use sqlite3DbFreeNN() instead of sqlite3DbFree() in a few hot spots for better performance. (check-in: b12de0ec user: drh tags: trunk)
13:22
Performance optimization in the memsys5 memory allocator. (check-in: 94913323 user: drh tags: trunk)
05:57
In TCL shell extension, wrap shell DB for use from TCL. (check-in: 41cc8433 user: larrybr tags: cli_extension)
2022-03-27
23:33
TCL extension made to use shell's line inputter with prompting and line editing/history. (check-in: fbf0eb0d user: larrybr tags: cli_extension)
03:08
In TCL shell extension, add TCL command "udb". This gets the TCL environment to near parity with pre-extended utility, except for query result display (TBD soon). (check-in: c9aa76bf user: larrybr tags: cli_extension)
2022-03-26
17:39
Merge the version 3.38.2 patches with the begin-concurrent-pnu-wal2 branch to create this new sub-branch. (check-in: 73a15377 user: drh tags: begin-concurrent-wal2-3.38)
14:14
Merge the version 3.38.2 patches into the reuse-schema-3.38 sub-branch. (check-in: 07fc5c6e user: drh tags: reuse-schema-3.38)
13:51
Version 3.38.2 (check-in: d33c709c user: drh tags: release, branch-3.38, version-3.38.2)
2022-03-25
20:39
Sync w/trunk (check-in: 8402e5e7 user: larrybr tags: cli_extension)
19:16
The "PRAGMA writable_schema=ON" flag should not allow OOM errors to pass while parsing the schema. dbsqlfuzz 9cc49e1a53e1cef8e3a1496a88c683aa20483163. (check-in: 4977d8f4 user: drh tags: branch-3.38)
18:27
CLI preparation for shell's db to be used from TCL (check-in: 57501e7f user: larrybr tags: cli_extension)
17:43
Do not allow an #ifdef inside of an assert(), as gcc tells us that is not portable. (check-in: b193156c user: drh tags: branch-3.38)
06:46
Get shell TCL extension more smoothly integrated. (check-in: 29fd246f user: larrybr tags: cli_extension)
01:37
Bump the version number to 3.38.2. (check-in: bb3ef206 user: drh tags: branch-3.38)
01:31
Fix the Bloom-filter optimization so that it does not use IS NULL or IS NOT NULL constraints from the WHERE clause when operating on a LEFT JOIN. Forum thread 031e262a89b6a9d2. (check-in: 8246bfbc user: drh tags: branch-3.38)
01:23
Fix the Bloom-filter optimization so that it does not use IS NULL or IS NOT NULL constraints from the WHERE clause when operating on a LEFT JOIN. Forum thread 031e262a89b6a9d2. (check-in: 1a6328f2 user: drh tags: trunk)
2022-03-24
14:01
The "PRAGMA writable_schema=ON" flag should not allow OOM errors to pass while parsing the schema. dbsqlfuzz 9cc49e1a53e1cef8e3a1496a88c683aa20483163. (check-in: a7abb725 user: drh tags: trunk)
12:49
TCL shell extension delegates to dot commands (check-in: 35394310 user: larrybr tags: cli_extension)
2022-03-23
21:03
Scripting support roughed in, with a demo extension. More work is needed to make this truly useful. Tests are missing. (check-in: abf0316b user: larrybr tags: cli_extension)
10:04
Use trickery to code the UTF-8 BOM for the --bom option on .output, .once, and .excel in the CLI, to work around a warning in some Microsoft compilers. Fossil forum post bd0844268f0fab71. (check-in: 43143ad1 user: drh tags: trunk)
2022-03-22
23:47
Ensure that database corruption does not cause the cursor passed into sqlite3BtreeDelete() to be invalid. dbsqlfuzz 209bf3de9ee11ae440848ab9bc9c13858f9be2e4. (check-in: 780d00d4 user: drh tags: branch-3.38)
23:33
Ensure that database corruption does not cause the cursor passed into sqlite3BtreeDelete() to be invalid. dbsqlfuzz 209bf3de9ee11ae440848ab9bc9c13858f9be2e4. (check-in: a85126f9 user: drh tags: trunk)
20:02
Harden the xShmLock method of both the unix and Windows VFSes so that they are robust against being invoked when the SHM file is not open. (check-in: 06d4c4d1 user: drh tags: branch-3.38)
19:41
Harden the xShmLock method of both the unix and Windows VFSes so that they are robust against being invoked when the SHM file is not open. (check-in: 67d8b434 user: drh tags: trunk)
11:22
Make the sqlite3_serialize() and sqlite3_deserialize() interfaces accessible to loadable extensions. (check-in: 81f8746b user: drh tags: trunk)
03:03
expose sqlite3_{deserialize,serialize}() in sqlite3ext.h (Closed-Leaf check-in: da874180 user: larrybr tags: extapi-serializing)
02:53
Create new branch named "extapi-serializing" (check-in: a1220a21 user: larrybr tags: extapi-serializing)
2022-03-21
20:08
Do not allow an #ifdef inside of an assert(), as gcc tells us that is not portable. (check-in: c7a2047e user: drh tags: trunk)
18:48
Some branches are no longer reachable after the previous change. Mark them accordingly. Also improve comments. (check-in: 88d69f60 user: drh tags: trunk)
18:23
Strengthen the defenses against corrupt databases in the sqlite3BtreeInsert() function of the btree module. Forum post c7ec29905f. (check-in: 883fec9c user: drh tags: branch-3.38)
18:17
Strengthen the defenses against corrupt databases in the sqlite3BtreeInsert() function of the btree module. Forum post c7ec29905f. (check-in: 4df301c8 user: drh tags: trunk)
16:34
The previous assert() fix was not correct when building with -DSQLITE_ENABLE_OFFSET_SQL_FUNC. This is the fix. (check-in: b4210bc0 user: drh tags: branch-3.38)
15:42
The previous assert() fix was not correct when building with -DSQLITE_ENABLE_OFFSET_SQL_FUNC. This is the fix. (check-in: c0a4767f user: drh tags: trunk)
13:55
Fix the assert() that attempts to verify that the table-reference to index-reference translator finds all required translations. Forum post 929168fdd6. (check-in: ccd2a2a7 user: drh tags: branch-3.38)
13:47
Fix the assert() that attempts to verify that the table-reference to index-reference translator finds all required translations. Forum post 929168fdd6. (check-in: fa9bd1fc user: drh tags: trunk)
11:50
Fix an assert() in sqlite3TableAffinity() that might have been false if there was a prior syntax error in the query. (check-in: 940f1a40 user: drh tags: branch-3.38)
11:32
Fix an assert() in sqlite3TableAffinity() that might have been false if there was a prior syntax error in the query. (check-in: 23fdb169 user: drh tags: trunk)
2022-03-19
15:19
In the CLI, disable the zipfile and sqlar extensions in --safe mode. (check-in: d8b65a2d user: drh tags: trunk)
14:27
macro-ize extension boiler-plate, improve exit processing (check-in: 7996d3a3 user: larrybr tags: cli_extension)
12:53
Fix the zipfile extension so that it knows that a zero-length BLOB returns a NULL pointer. Forum post ae86934905. (check-in: b75c6bad user: drh tags: branch-3.38)
12:48
Fix the zipfile extension so that it knows that a zero-length BLOB returns a NULL pointer. Forum post ae86934905. (check-in: 5f6d5673 user: drh tags: trunk)
2022-03-18
16:00
Further migration to centralized error reporting (check-in: 89808800 user: larrybr tags: cli_extension)
2022-03-17
23:49
Change a conditional into an assert() due to the change in [387ab17b8a0a4b87]. (check-in: 13b58486 user: drh tags: trunk)
22:09
Add a 4th output code (value 3) from the sqlite3_vtab_distinct() interface that indicates that SQLite wants distinct results that are sorted. (check-in: 135d8b97 user: drh tags: trunk)
18:03
Updates a comment and an assert(). (Closed-Leaf check-in: 0c5be14a user: drh tags: vtab-distinct-ordered)
11:37
Another fix for a corner-case in sqlite_offset() - this one having to do with computed virtual columns in a WITHOUT ROWID table. Also an assertion fault problem with sqlite_offset(). (check-in: 9e72cae2 user: drh tags: branch-3.38)
11:23
Another fix for a corner-case in sqlite_offset() - this one having to do with computed virtual columns in a WITHOUT ROWID table. (check-in: 84ddd19b user: drh tags: trunk)
2022-03-16
19:28
Add extra test cases. (check-in: 0a922d14 user: dan tags: vtab-distinct-ordered)
14:51
Update the sqlite3_vtab_distinct() documentation. (check-in: 88929d85 user: drh tags: vtab-distinct-ordered)
12:06
Experimental change to have sqlite3_vtab_distinct() return 3 to indicate that results should sorted and duplicates may be removed. (check-in: 11f45088 user: dan tags: vtab-distinct-ordered)
2022-03-15
17:57
Make CLI complain about incomplete input at EOF. Fix for regression reported at https://sqlite.org/forum/forumpost/718f489a43be3197 (check-in: 72029cf7 user: larrybr tags: trunk)
10:07
For CLI, begin centralizing argument checking/complaining. (check-in: 3457f87c user: larrybr tags: cli_extension)
2022-03-14
23:50
Calling sqlite3_value_dup() on a pointer value results in an ordinary NULL. Forum post ae8592cc73. Test cases in TH3. (check-in: fff1243b user: drh tags: trunk)
22:58
Fix an assert() statement in the covering index optimization for the corner case of dealing with an sqlite_offset() SQL function call. (check-in: 3950b7d0 user: drh tags: trunk)
20:39
Disable trigger coding while running sqlite3_declare_vtab(). dbsqlfuzz 97e1865771b4226f29e6e482411c1cae14133f50 (check-in: 5b8a0460 user: drh tags: branch-3.38)
20:31
Disable trigger coding while running sqlite3_declare_vtab(). dbsqlfuzz 97e1865771b4226f29e6e482411c1cae14133f50 (check-in: 387ab17b user: drh tags: trunk)
16:54
Foreign key constraint failures should return SQLITE_CONSTRAINT_FOREIGNKEY even if there is a RETURNING clause. See forum thread e6be6e82c86aa59b. (check-in: 3f9887d4 user: drh tags: trunk)
2022-03-12
15:30
Merge the version 3.38.1 patches into a sub-branch of reuse-schema. (check-in: 934276d1 user: drh tags: reuse-schema-3.38)
15:21
Merge the latest trunk changes into the reuse-schema branch. (check-in: f3fa8196 user: drh tags: reuse-schema)
15:11
Merge the latest trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: 0071d9da user: drh tags: begin-concurrent-pnu-wal2)
15:04
Merge the lates trunk enhancements into the wal2 branch. (check-in: bafaefc6 user: drh tags: wal2)
14:54
Merge trunk enhancements, including 3.38.1 patches, into the begin-concurrent-report branch. (Leaf check-in: c4a61135 user: drh tags: begin-concurrent-report-3.28)
14:47
Merge the latest trunk enhancements, including the 3.38.1 patches plus additional performance enhancements, into the begin-concurrent branch. (check-in: aa8b5e95 user: drh tags: begin-concurrent)
13:37
Version 3.38.1 (check-in: 38c210fd user: drh tags: release, version-3.38.1, branch-3.38)
2022-03-11
22:59
CLI extension's registerMetaCommand done, and used by test_shellext.c (demo code) (check-in: 9be5e0b5 user: larrybr tags: cli_extension)
15:42
Add a comment linking a part of the UPDATE constraint checking code to one of the corresponding TH3 test cases. (check-in: 0606e8e9 user: drh tags: trunk)
15:16
Fix a harmless compiler warning. (check-in: 5d739aff user: drh tags: trunk)
14:20
Fix a harmless compiler warning and restore performance in the sqlite3BtreeIndexMoveto() last-page optimization. (check-in: 8b032293 user: drh tags: trunk)
12:40
Fix a case in fts5 where a corrupt database could cause a crash. (check-in: 1894577c user: drh tags: branch-3.38)
12:02
Fix a case in fts5 where a corrupt database could cause a crash. (check-in: 5e95df26 user: dan tags: trunk)
2022-03-10
23:37
Another corruption detection case in the sqlite3BtreeIndexMoveto() last page optimization. (check-in: 531e6ad0 user: drh tags: trunk)
22:54
In the sqlite3BtreeIndexMoveto() last-page optimization, make sure to return SQLITE_CORRUPT if corruption is detected. (check-in: 4ef19ba9 user: drh tags: trunk)
21:14
Stronger defenses against corrupt schemas in the ALTER TABLE logic. (check-in: 29744e69 user: drh tags: branch-3.38)
21:04
Stronger defenses against corrupt schemas in the ALTER TABLE logic. (check-in: 13fbde28 user: drh tags: trunk)
19:53
Doc improvements re sqlite3_column_text*() endianness (no code change) (check-in: a37c20d4 user: larrybr tags: branch-3.38)
19:44
Amend sqlite3_column_*() doc table. (no code change) (check-in: 1f473099 user: larrybr tags: trunk)
16:28
Prevent a NULL-pointer dereference when trying to parse a illegal schema entry that contains a window function while doing a RENAME COLUMN. Forum post ec2a2e0deb. (check-in: 2c393228 user: drh tags: branch-3.38)
16:26
Prevent a NULL-pointer dereference when trying to parse a illegal schema entry that contains a window function while doing a RENAME COLUMN. Forum post ec2a2e0deb. (check-in: 58de3c2b user: drh tags: trunk)
16:01
Refactor Window.pFunc into Window.pWFunc to disambiguate from other uses of the variable or field named "pFunc". (check-in: d9475ebc user: drh tags: trunk)
11:48
Only run atof1.test on x86_64 machines. (check-in: 4173819c user: drh tags: trunk)
11:10
Improve formatting of changes doc for this branch (Leaf check-in: 2129cfb8 user: larrybr tags: shell-tweaks)
02:23
Mention that sqlite3_column_text16() returns have native endianness (check-in: 25b7f88f user: larrybr tags: trunk)
01:15
Check-in [642a0b4752743216] fixing sqlite_dbpage is not exactly correct. This patch should fix it. (check-in: b6c4c8a0 user: drh tags: branch-3.38)
01:10
Check-in [642a0b4752743216] fixing sqlite_dbpage is not exactly correct. This patch should fix it. (check-in: 6ba36714 user: drh tags: trunk)
2022-03-09
22:16
Sync w/Trunk, finish doc/sh_tweak_changes.md (check-in: 5a1797c2 user: larrybr tags: shell-tweaks)
18:30
Further refinements to the sqlite_offset() fix from [6029514b08b88e3f]. (check-in: 98799d7b user: drh tags: branch-3.38)
18:29
Further refinements to the sqlite_offset() fix from [6029514b08b88e3f]. (check-in: 6f838305 user: drh tags: trunk)
14:29
Fix the sqlite_dbpage virtual table so that it starts a write transaction on all attached schemas. (check-in: e92c4fdb user: drh tags: branch-3.38)
14:22
Fix the sqlite_dbpage virtual table so that it starts a write transaction on all attached schemas. (check-in: 642a0b47 user: drh tags: trunk)
13:22
Do not use va_arg() as an l-value, because AIX does not allow that, from what we are told. (check-in: 46d1a6de user: drh tags: trunk)
12:20
Improve the defenses against bad pathnames input into the findCreateFileMode() function of os_unix.c in order to quiet static-analyzer warnings. There are no demonstrated problems in the prior code, but this change makes the code easier to prove correct and more robust against future changes. (check-in: a9cda389 user: drh tags: trunk)
2022-03-08
16:44
(WIP) Add DB-dispatch for dot commands upon shell extension load. (check-in: 19f2a747 user: larrybr tags: cli_extension)
16:12
Fix a potentially uninitialized local variable in the ".import" command of the CLI - introduced by [741651fd4b1b776b]. This same change is part of the nearby "Fix compiler warnings" check-in. (check-in: ce9e3d90 user: drh tags: branch-3.38)
15:49
Fix a minor typo in a comment. (check-in: cf61419f user: drh tags: trunk)
13:59
Fix compiler warnings. (check-in: 5e30c6ea user: drh tags: trunk)
03:10
Add a .md summarizing CLI changes on this branch and their motivation or purpose. (check-in: 5ddccc2f user: larrybr tags: shell-tweaks)
01:02
CLI regularization and code cleanup (check-in: 16af0e45 user: larrybr tags: cli_extension)
2022-03-07
19:00
Sync with trunk (check-in: 1194093a user: larrybr tags: cli_extension)
18:42
Add multi-threaded test for the features on this branch. Fix a misuse of xShmLock(). (check-in: 1ec05168 user: dan tags: begin-concurrent-pnu-wal2)
18:38
Disable an assert in moveToRoot() when the database is corrupt. Forum post e9a176b7bd. (check-in: ab744a5d user: drh tags: branch-3.38)
18:32
Disable an assert in moveToRoot() when the database is corrupt. Forum post e9a176b7bd. (check-in: ae464a18 user: drh tags: trunk)
17:19
In the stay-on-last-page optimization for sqlite3BtreeIndexMoveto() (check-in [0057bbb508e7662b] about 16 hours ago), be sure to clear the BTCF_ValidOvfl flag, since the overflow cache is invalidated by the search on the last page. OSSFuzz issue 45329. (check-in: 0021bebc user: drh tags: trunk)
16:40
Do not allocate new Trigger objects in the parser following a syntax error, to avoid violating invariants associated with Expr nodes. See forum thread 2024e94071ef1531 for more information. (check-in: 369d2404 user: drh tags: branch-3.38)
16:22
Do not allocate new Trigger objects in the parser following a syntax error, to avoid violating invariants associated with Expr nodes. See forum thread 2024e94071ef1531 for more information. (check-in: 5e0ed49b user: drh tags: trunk)
14:59
Fix the code generated for vector IN operator constraints on virtual tables so that they work even if the "omit" field in the sqlite3_index_info object is off. This has apparently never worked correctly before. Presumably, nobody has ever before written a virtual table that can use vector IN operator constraints and that relies on bytecode to double-check the constraints. Test cases in TH3. Problem discovered by dbsqlfuzz cab8e26194a40147627094f3c6849c0a7b1e0310. (check-in: 4a2040d5 user: drh tags: branch-3.38)
14:51
Fix the code generated for vector IN operator constraints on virtual tables so that they work even if the "omit" field in the sqlite3_index_info object is off. This has apparently never worked correctly before. Presumably, nobody has ever before written a virtual table that can use vector IN operator constraints and that relies on bytecode to double-check the constraints. Test cases in TH3. Problem discovered by dbsqlfuzz cab8e26194a40147627094f3c6849c0a7b1e0310. (check-in: 21b65657 user: drh tags: trunk)
01:29
Optimizations to sqlite3BtreeIndexMoveto() avoid unnecessary comparisons if the cursor is already near the end of the table and is not moving far. This case is more common that you would expect. The optimization saves almost 4 million CPU cycles. (check-in: 0057bbb5 user: drh tags: trunk)
01:28
Fix the .import problem in the CLI reported by forum post 72a024c957. (check-in: d753285b user: drh tags: branch-3.38)
00:14
Disentangle variable use in last checkin (check-in: 4c3a0260 user: larrybr tags: trunk)
2022-03-06
23:41
For CLI .import, revert to importing into temp or main when given table is found there and no -schema option used. And plug an obscure leak. (check-in: bf9d1278 user: larrybr tags: trunk)
20:22
Fix obsolete but harmless comments in btree. No changes to code. (check-in: 4838b888 user: drh tags: trunk)
17:53
(WIP) Shell meta-command objectification done, ready for dbShell to be loaded and used for extension meta-commands (check-in: a88983ec user: larrybr tags: cli_extension)
11:44
The sqlite_offset() function should be non-deterministic. dbsqlfuzz 3df8230bb940870db87ffca2c0fc759c1e7fa356. (check-in: 80837576 user: drh tags: branch-3.38)
11:43
The sqlite_offset() function should be non-deterministic. dbsqlfuzz 3df8230bb940870db87ffca2c0fc759c1e7fa356. (check-in: e1a185e6 user: drh tags: trunk)
03:22
(WIP) shell extension load and ShellState internal/external partitioning in place, passing shell tests with trivial exceptions (check-in: a85679d3 user: larrybr tags: cli_extension)
00:01
Remove a NEVER() associated with sqlite_offset()> (check-in: bf2501e2 user: drh tags: branch-3.38)
2022-03-05
23:52
Remove a NEVER() associated with sqlite_offset()> (check-in: e29dffcd user: drh tags: trunk)
20:20
Fix the 'localtime' modifier in date/time functions so that it preserves fractional seconds. Forum post 2ffbaa2c3fd7fb82. (check-in: 6833f4ae user: drh tags: branch-3.38)
20:12
Fix the 'localtime' modifier in date/time functions so that it preserves fractional seconds. Forum post 2ffbaa2c3fd7fb82. (check-in: 1c875b07 user: drh tags: trunk)
19:46
Increase the version number to 3.38.1. (check-in: cd87e77d user: drh tags: branch-3.38)
19:39
Cherry-pick all bug fix changes since the 3.38.0 release. (check-in: 45a5d5ac user: drh tags: branch-3.38)
19:36
Further improvements to the sqlite_offset() function. (check-in: 4230e2f5 user: drh tags: trunk)
14:44
Fix the sqlite_offset() function so that it gives the correct answer even if the argument is a virtual column in an index-only query. Test cases in TH3. (check-in: 6029514b user: drh tags: trunk)
11:57
Update obsolete text in the ICU README.txt file talking about SQLite's robustness (or lack thereof) in the face of corrupt database files. (check-in: dc88fc62 user: drh tags: trunk)
2022-03-04
20:54
Do try to evaluate the Bloom filter on a LEFT JOIN early, as doing so essentially converts it into an INNER JOIN. See forum thread 544af7eee2. (check-in: d46d0e67 user: drh tags: trunk)
16:28
When setting an sqlite3_value object to a pointer value, make sure any prior memory allocations associated with that object have been cleared first. dbsqlfuzz 33f842d1a09afaad5f078c3e1162a54b78e5f2ab. (check-in: 31e1bde4 user: drh tags: trunk)
2022-03-03
19:40
Restore the ability to push-down OR subterms of the WHERE clause when processing a multi-index OR. (check-in: d71fb6fd user: drh tags: trunk)
16:48
Make sure the xParseCell and xCellSize methods of the MemPage object are initialized consistently even if the page is detected as being corrupt. dbsqlfuzz fd21f341f3b4f582401d2feb2a1c0c4cc2c26caa. (check-in: 725a0643 user: drh tags: trunk)
15:59
Fix for the problem identified in forum post 0cd8e058bf: When evaluating an multi-index OR, do not push down auxiliary WHERE clause terms that involve subqueries into the OR-subqueries. Otherwise, the covering-index optimizer might convert table-references into index-references for the particular OR index that is active for the branch in which the subquery subroutine is coded, and those index-references will not work if the subquery subroutine is invoked from a different OR branch that uses a different index. (check-in: 61a1c6db user: drh tags: trunk)
15:00
Add the new OP_BeginSubrtn opcode (which is really an alias for OP_Integer) and make other changes so that the span of a subroutine that implements a subquery is more readily apparent in bytecode listings. (check-in: b8226748 user: drh tags: trunk)
2022-03-02
21:04
Bloom filter pull-down optimization is incompatible with Skip-Scan. Make sure the query planner does not try to to both. Forum post 50a1bbe08ce4c29c. (check-in: ad3ffa1a user: drh tags: trunk)
17:50
Faster version of sqlite3VdbeMemRelease(). (check-in: 86c5fa2f user: drh tags: trunk)
13:45
Reinstate the releaseMemArray() performance optimization of [bb520293d8c11518] with corrections. (check-in: 1291080d user: drh tags: trunk)
11:39
The optimization at [ece326db50201937] is not quite right, so back it out for now. (check-in: b218a4b9 user: drh tags: trunk)
01:02
Fix a harmless compiler warning. (check-in: 6497997a user: drh tags: trunk)
00:50
The performance optimizations at [bb520293d8c11518] is not quite right, so it has to be backed out. (check-in: 15f73b12 user: drh tags: trunk)
2022-03-01
20:15
The MemPage.aDataEnd field should point to the end of the data buffer for the page, not just the end of the usable portion of that buffer. The purpose aDataEnd is to detect cells that overflow the page, and that won't work on a page with reserved bytes and a cell that starts in the reserved region, unless the boundary is at the very end of the page. Chromium issue 1276294. (check-in: f839c0bc user: drh tags: trunk)
19:19
Fix a minor typo in a comment. (check-in: 86ba06aa user: drh tags: trunk)
16:22
Fix two assert() statements in btree.c which were not true in the case of a corrupt database file. Forum post 14819f2063. (check-in: 3b36ed79 user: drh tags: trunk)
15:48
Fix slightly-incorrect assert() statements. Forum post f1e83b77b5ff37db (check-in: 3c9f5c9d user: drh tags: trunk)
14:13
Increase the max_page_count on ROLLBACK, if necessary, so that it is sufficient to cover the entire database. Fix for the problem identified by forum post 3b9e894312. (check-in: 12c01216 user: drh tags: trunk)
2022-02-28
16:44
Fix the Xfer-optimization on the INSERT statement so that it is omitted if there is a RETURNING clause, since that optimization is not able to deal with RETURNING. See forum thread 595e132f71 for details. (check-in: 1d3760a5 user: drh tags: trunk)
14:26
Reorganize the bits in Mem.flags. Free up one bit for reuse. (check-in: fe454291 user: drh tags: trunk)
13:38
Expand the comment on the definition of the Mem object to better explain the meanings of the various flag bits. (check-in: f2f04260 user: drh tags: trunk)
12:16
Performance optimization in initMemArray() saves about 750K cycles with only a 4-byte increase in code size. (check-in: c3e9cd5e user: drh tags: trunk)
12:08
The performance increase in the previous check-in of this branch was due to the revised loop in initMemArray() and reordering fields of Mem - not the call the memcpy(). Changing the code to avoid memcpy() results in an even better gain, and code that is far less dodgy. (Closed-Leaf check-in: d74aa979 user: drh tags: optimize-init-mem)
03:25
An optimization to initMemArray() saves almost 500K cycles. But it seems a little dodgy. I want to think about this more before merging to trunk. Perhaps there is a cleaner way to accomplish the same. (check-in: 7fefd867 user: drh tags: optimize-init-mem)
02:35
Avoid unnecessary deinitialization of the Mem.flags field. (check-in: bb520293 user: drh tags: trunk)
2022-02-27
21:10
Cache values of UnpackedRecord.aMem[0] into new fields of UnpackedRecord. This avoids extra indirections and saves about 750K cycles. (check-in: 7cf2d1f0 user: drh tags: trunk)
18:54
Bypass a single branch in vdbeRecordCompareString() in the common case, for a performance increase of over 600K CPU cycles. (check-in: 36f0f07e user: drh tags: trunk)
2022-02-26
23:01
Remove an unnecessary local variable for a small performance increase and size reduction. (check-in: 9bda611f user: drh tags: trunk)
14:39
Allow the OP_Column opcode to read rows that are larger than SQLITE_LIMIT_LENGTH as long as the specific field being read out is less than or equal to SQLITE_LIMIT_LENGTH. (check-in: 1bf48489 user: drh tags: trunk)
2022-02-25
20:11
Revise the initialization processing for OP_Column to make it about 1.8 million cycles faster. (check-in: 3b7259eb user: drh tags: trunk)
18:51
Fix the OP_NullRow documentation so that it accurately describes what it actually does for a pseudo-cursor. (check-in: 4e269902 user: drh tags: trunk)
18:15
Dead branch: Superseded by [3b7259ebd5b9b1f7] (Closed-Leaf check-in: 09a47f32 user: drh tags: simplify-cursor-state)
16:21
Do not do a deferred seek on a cursor that is marked nullRow. (check-in: 1c026bcb user: drh tags: simplify-cursor-state)
15:44
This branch proposes to consolidate various state fields of VdbeCursor (specifically, nullRow, deferredMoveto, and cacheStatus) into a single eCurState field. This first check-in adds the new eCurState field while retaining and continuing to use the legacy state fields. (check-in: 7953716c user: drh tags: simplify-cursor-state)
13:29
Improved comment on the codeDeferredSeek() routine. No code changes. (check-in: 54f49f65 user: drh tags: trunk)
11:30
Fix unimportant typos in comment text. (check-in: 39346013 user: drh tags: trunk)
01:23
Invoking SQLITE_TESTCTRL_INTERNAL_FUNCTIONS causes the flags field of the PRAGMA function_list to show all bits, including internal-use-only bits, rather than just the bits that are part of the API. (check-in: ad1be348 user: drh tags: trunk)
01:10
Remove unused P4 types on the Opcode object. Saves a few bytes of code space and simplifies the code. (check-in: aca53843 user: drh tags: trunk)
00:09
Merge shell-tweaks enhancements (with 3.38) (check-in: 4c7d94d3 user: larrybr tags: cli_extension)
2022-02-24
14:44
Change the OP_Next and OP_Prev opcodes so that they invoke sqlite3BtreeNext() and sqlite3BtreePrevious() directly rather than through a function pointer, for improved performance and a decrease in code size. (check-in: 9d13cbbe user: drh tags: trunk)
11:09
Spell fix, no code change (check-in: f2597fae user: larrybr tags: trunk)
04:29
Regularize CLI .mode processing (check-in: 6d055724 user: larrybr tags: cli_extension)
01:41
Fix an assert() so that it is still valid following OOM with the latest enhancements. (check-in: ecf832f7 user: drh tags: trunk)
01:08
Update the version number of version 3.39.0 for the next development cycle. (check-in: 9542e9be user: drh tags: trunk)
2022-02-23
22:56
Add a new subclass for MemPage.xCellSize specifically for the case of a leaf page in a B+Tree, that is optimized for that cases. This gains a half million cycles or more at the cost of less than 200 bytes of code space. (check-in: 7ad82922 user: drh tags: trunk)
18:23
Optimize calls to get2byte() in btree.c for almost a one-million cycle performance gain and a few bytes less code. (check-in: 41061f29 user: drh tags: trunk)
17:16
Defer the check for error check Pgno zero until after the page fetch misses, to gain a few CPU cycles and a small size reduction. (check-in: ece326db user: drh tags: trunk)
17:00
Store the page number for the PENDING_BYTE page in the Pager object, rather than computing the page number every time it is needed, because it turns out that number is needed quite frequently. This saves a few hundred thousand CPU cycles and a few bytes of code space. (check-in: 5aa9c3eb user: drh tags: trunk)
10:10
Sync with 3.38 (check-in: b9b27d74 user: larrybr tags: cli_extension)
2022-02-22
22:28
Sync w/3.38, add .parameter ls to CLI (check-in: 8c9a5fb2 user: larrybr tags: shell-tweaks)
20:38
Don't reload the schema on PRAGMA database_list. (check-in: 630fe446 user: drh tags: reuse-schema)
20:29
For the "PRAGMA database_list" statement, do not check to see if the schema is up-to-date and do not try to reload the schema. (check-in: 710de6a2 user: drh tags: trunk)
20:04
Merge version 3.38.0 into the reuse-schema branch. (check-in: 8fe85dcd user: drh tags: reuse-schema)
19:56
Merge version 3.38.0 into the begin-concurrent-pnu-wal2 branch. (check-in: 8387e4f3 user: drh tags: begin-concurrent-pnu-wal2)
19:46
Merge version 3.38.0 into the wal2 branch. (check-in: de24c8ee user: drh tags: wal2)
19:37
Merge version 3.38.0 into the begin-concurrent-report branch. (check-in: 0bbf7be2 user: drh tags: begin-concurrent-report)
19:30
Merge version 3.38.0 into the begin-concurrent branch. (check-in: c5998c43 user: drh tags: begin-concurrent)
18:58
Version 3.38.0 (check-in: 40fa792d user: drh tags: trunk, release, major-release, version-3.38.0)
15:47
Fix an undersized memory allocation in the test harness for RTREE. This error was in test logic only, not in the SQLite library itself. forum post 35470a0a72a005e1 (check-in: 7e3c9594 user: drh tags: trunk)
2022-02-21
16:49
Merge the latest trunk changes into the reuse-schema branch. (check-in: b3c26f4a user: drh tags: reuse-schema)
14:30
Fix compiler warnings for older compilers (ex: gcc 4.0.1 powerpc-apple-darwin). (check-in: 5c188243 user: drh tags: trunk)
13:44
Remove stray tab characters from auxiliary source code files. (check-in: e25e3358 user: drh tags: trunk)
13:02
Add SQLITE_OMIT_JSON to the compile-time option test sequence. (check-in: f36325a6 user: drh tags: trunk)
00:23
Do not allow error messages from sqlite3NestedParse() to leak up into the main parse. (check-in: 9c4e21ab user: drh tags: trunk)
2022-02-19
21:25
Improve .backup and .save help text (check-in: 741651fd user: larrybr tags: trunk)
15:57
Add a NEVER() to a branch that is unreachable for STAT4. (check-in: e4e97505 user: drh tags: trunk)
2022-02-17
17:24
Enhance the documentation on sqlite3_stmt_readonly() to explain that EXPLAIN and EXPLAIN QUERY PLAN do not affect the return value. Add test cases to verify this. Add new test cases and requirements marks for complete requirements test coverage on this interface. (check-in: a6fbb7ba user: drh tags: trunk)
14:33
Remove references to the now-defunct SQLITE_ENABLE_JSON1 compile-time option. (check-in: db950192 user: drh tags: trunk)
14:29
Fix a testing error on Windows that was recently added to shell5.test. (check-in: 6cace543 user: drh tags: trunk)
2022-02-16
15:11
Make the sqlite3_error_offset() interface accessible from TCL using the new "erroroffset" method on the sqlite3 object. (check-in: 3454a122 user: drh tags: trunk)
2022-02-15
20:56
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: b9ba43fc user: drh tags: reuse-schema)
20:47
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 1336d2f2 user: drh tags: begin-concurrent-pnu-wal2)
20:37
Merge recent trunk enhancements into the wal2 branch. (check-in: 7dba8188 user: drh tags: wal2)
20:24
Merge recent trunk enhancements into the begin-concurrent-report branch. (check-in: 213df7a0 user: drh tags: begin-concurrent-report)
20:18
Merge the latest trunk changes into the begin-concurrent branch. (check-in: 94838f16 user: drh tags: begin-concurrent)
17:04
Sync with trunk (check-in: 2b4a295c user: larrybr tags: shell-tweaks)
13:23
Improved rendering of floating point numbers without a fractional part in ".dump" output from the CLI. Forum post 550d877659f37cb2. (check-in: 9edaeed5 user: drh tags: trunk)
11:46
New assert() statements to help prove correctness of memjournal.c. (check-in: d74ec88c user: drh tags: trunk)
2022-02-14
21:11
Generalize the in-memory journal so that it is able to accept writes that begin at any offset less than or equal to the current file size. (check-in: c039d547 user: drh tags: trunk)
18:55
CLI .import can auto-rename non-unique column names when it creates a new table (check-in: 4b5d07ea user: larrybr tags: trunk)
18:18
Minor correction to the early corruption detection added by [a6fda39e81d0da98|check-in a6fda39e81d0da98] so that it works even if the page being cleared in page 1 of the database. (check-in: a5ec1690 user: drh tags: trunk)
13:53
Fix a bad assert() (it needs an "||CORRUPT_DB" term) in b-tree, discovered by dbsqlfuzz. (check-in: f5f263cc user: drh tags: trunk)
01:12
CLI's .import column rename made more minimal, and reports renames. (Leaf check-in: c626cff7 user: larrybr tags: auto-column)
2022-02-13
22:18
Sync w/trunk, fix zAutoColumns placement blunder, all to pass all TCL tests (check-in: 67dc59f4 user: larrybr tags: auto-column)
2022-02-12
18:56
Do not run merge1.test with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: bf8dbfd4 user: dan tags: trunk)
16:02
Fix a possible user-after-free in ALTER TABLE found by asan. (check-in: 9252619d user: dan tags: trunk)
13:45
Update fuzz.test to account for a change in error message made in the core. (check-in: c57601b5 user: dan tags: trunk)
13:37
Avoid dropping SQLITE_TOOBIG errors in the quote() function. (check-in: 115c3051 user: dan tags: trunk)
13:12
For .import auto-column, aid build-time override of rename decoration. (check-in: 433e5ead user: larrybr tags: auto-column)
10:48
Fix auto-column bug noted by post https://sqlite.org/forum/forumpost/d102c15d63 (check-in: 689137e1 user: larrybr tags: auto-column)
02:15
Sync w/trunk, allow build-time override of auto-column decorating character (check-in: caaef4c5 user: larrybr tags: auto-column)
2022-02-11
21:20
Fix a test in without_rowid1.test so that it is disabled without ALTER TABLE support, as it uses ALTER TABLE. (check-in: ca22a64e user: drh tags: trunk)
19:41
Update some OOM tests of the ALTER TABLE command to account for an error message which may be returned if opening the temp db fails. (check-in: 3409fd41 user: dan tags: trunk)
17:47
Load recent dbsqlfuzz finds into test/fuzzdata8.db. (check-in: b275ad25 user: drh tags: trunk)
17:47
Reference the wayback machine for the dead hyperlink to the MS support page in the comments about why the extra typedef for va_arg(). No code changes. (check-in: ab1a9b5b user: drh tags: trunk)
17:33
Fix an assert() in the pager by adding "|| CORRUPT_DB", in as much as the assert() is not necessarily true if the database size in the header is wrong. dbsqlfuzz f2f996065b90988aa9b0ae425b66dbb296546a08. (check-in: a51402e8 user: drh tags: trunk)
16:10
Fix a problem in [c006515ae6faff65] causing an assert() to fail with some build configurations. (check-in: d7ff262d user: dan tags: trunk)
14:08
Use the enhanced SQLITE_TESTCTRL_LOCALTIME_FAULT (2) capability to do better testing of the 'localtime' and 'utc' modifiers to date/time functions. (check-in: f3807194 user: drh tags: trunk)
13:40
Upon .import column renaming, issue message saying so. Test this. (check-in: 8b6ca930 user: larrybr tags: auto-column)
12:06
Fix the bind2.test test script so that it works even if SQLITE_ENABLE_PREUPDATE_HOOK is not defined. Fix for test-case breakage from check-in [c006515ae6faff65]. (check-in: 937d3a45 user: drh tags: trunk)
11:37
Work around the MSVC bug that prevents the use of function pointer types in the second argument of va_arg() by adding a typedef. (check-in: eae3ab0a user: drh tags: trunk)
01:21
CLI auto-column rename revamped after forum discussion. (check-in: 2da1f8e4 user: larrybr tags: auto-column)
2022-02-10
23:12
Fix SQLITE_TESTCTRL_LOCALTIME_FAULT so that it works even if mutexes are enabled. (check-in: 64537a06 user: drh tags: trunk)
21:26
Enhance SQLITE_TESTCTRL_LOCALTIME_FAULT so that is able to install an alternative localtime() interface so that the localtime logic an be better tested. (check-in: 6e25cb08 user: drh tags: trunk)
15:40
Performance improve to the 'localtime' and 'utc' modifiers for date/time functions. (check-in: 85cb6014 user: drh tags: trunk)
12:57
Faster implementation of the date(), time(), and datetime() functions. (check-in: fa1b393b user: drh tags: trunk)
12:31
Fix the test harness so that it builds without SQLITE_ENABLE_PREUPDATE_HOOK. Has been broken since [c006515ae6faff65]. (check-in: 4565f711 user: drh tags: trunk)
03:21
A CLI feature. auto .import (new table) columns. WIP (check-in: 7e3be36d user: larrybr tags: auto-column)
02:09
Create new branch named "auto-column" (check-in: 066febe8 user: larrybr tags: auto-column)
01:01
Fix a typo in documentation. No code changes. (check-in: e97c6ad4 user: drh tags: trunk)
2022-02-09
18:47
When process first moves a database into WAL mode and then tries to run sqlite3_wal_checkpoint() without first performing a transaction, first try to run a synthesized transaction to get the Pager caught up before attemptingn the checkpoint. forum post fd0f19d229156939. (check-in: eee6de19 user: drh tags: trunk)
18:42
Fix a problem with using sqlite3_bind_value() with sqlite3_value objects obtained from sqlite3_preupdate_new() when an integer value is written to a column with real affinity. (check-in: c006515a user: dan tags: trunk)
16:18
Prototype implementation of IF EXISTS and IF NOT EXISTS clauses on the various forms of ALTER TALE. (Leaf check-in: 460abf93 user: drh tags: alter-table-if-exists)
2022-02-08
15:14
Writes to the subjournal should be all-or-nothing. Fix for dbsqlfuzz fe3c397fb90029313446c4e0f4a6cd0c81dd9621. (check-in: 22cc55e8 user: drh tags: trunk)
13:41
Provide sqlite3_error_offset() data for some new errors. (check-in: 1269206d user: drh tags: trunk)
12:24
comment-only change to sqlite3.h (check-in: f815cf4a user: larrybr tags: trunk)
12:13
Do not show the error code number of CLI error messages unless the error is something other than 1 (SQLITE_ERROR). (check-in: b4716018 user: drh tags: trunk)
11:52
Improved error message formatting in the shell. Distinguish between "Parse errors" and "Runtime errors". (check-in: ae3e322a user: drh tags: trunk)
2022-02-07
18:52
Disable the sqlite3_error_offset() when the error occurs in a trigger or view or some other bit of text that is not part of the original statement. (check-in: 0e909e34 user: drh tags: trunk)
01:09
When create table/view fails due to name taken, say which took it. (check-in: 9a206e37 user: larrybr tags: trunk)
2022-02-06
23:54
Fix unreachable branches in the sqlite3_error_offset() logic. (check-in: 031381ae user: drh tags: trunk)
22:13
The sqlite3_vtab_in() interface should return false for a vector IN constraint. (check-in: 245d0241 user: drh tags: trunk)
21:13
With the new ALTER TABLE under PRAGMA writable_schema=ON processing, do not ignore non-parser errors such as OOMs. (check-in: 36653cce user: drh tags: trunk)
14:30
CLI extended parsing, new .parameter subcommands, and .x features fairly well tested (check-in: 9c664984 user: larrybr tags: shell-tweaks)
11:51
Faster computation of Expr.nHeight. (check-in: a7a5af32 user: drh tags: trunk)
11:26
Record the error offset on INTEGER tokens. (check-in: 38e057a5 user: drh tags: trunk)
00:30
Further improvements to localization of errors in input SQL. (check-in: fa346760 user: drh tags: trunk)
00:07
Sync with trunk. More shell9.test tests to come. (check-in: 2e72dc46 user: larrybr tags: shell-tweaks)
2022-02-05
23:45
CLI cleanup, mode push/pop, parameter list beautification (check-in: 53d4582a user: larrybr tags: shell-tweaks)
23:11
Enhance sqlite3_error_offset() to report the position of unresolved identifiers. (check-in: 5b8d2577 user: drh tags: trunk)
21:49
Record the position of many identifiers in the parse using the new Expr.w.iOfst field. This is done with the idea of providing offset results for sqlite3_error_offset() for a more kinds of errors, though that part is not yet implemented. (check-in: 32a3a53b user: drh tags: trunk)
15:26
Fix CLI Windows build, refine its help, re-org ShellState (check-in: 991a06a4 user: larrybr tags: shell-tweaks)
13:27
Update stale evidence marks on sqlite3_vtab_rhs_value() test cases. (check-in: 46744b83 user: drh tags: trunk)
12:39
When PRAGMA writable_schema=ON, allow ALTER TABLE to proceed even if there are entries in the sqlite_schema table that do not parse. (check-in: fc4c82e5 user: drh tags: trunk)
12:05
Fix a NULL pointer dereference that can occur after OOM. Problem introduced by check-in [197cbabf1767d060]. (Closed-Leaf check-in: d4e6b9f0 user: drh tags: relaxed-alter-table)
11:13
Fix documentation typo. (check-in: 1a7d8bb5 user: drh tags: trunk)
01:01
Typo fixes in documentation. (check-in: 1ec747d1 user: drh tags: trunk)
2022-02-04
21:49
CLI .param save/load done; many other small refinements (check-in: 6d415ac2 user: larrybr tags: shell-tweaks)
20:16
Test case for permissive ALTER TABLE RENAME when writable_schema=ON. (check-in: 7ee44f66 user: drh tags: relaxed-alter-table)
20:07
One more case of disabling errors for ALTER TABLE RENAME when writable_schema=ON. (check-in: c52d0dd8 user: drh tags: relaxed-alter-table)
19:13
Add a compile-time option to include vt02.c in fuzzcheck. (check-in: c404c8c7 user: drh tags: trunk)
18:12
Merge trunk enhancements into the reuse-schema branch. (check-in: 5744e102 user: drh tags: reuse-schema)
18:02
Merge recent trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: cb045aba user: drh tags: begin-concurrent-pnu-wal2)
17:52
Merge trunk enhancements into the wal2 branch. (check-in: d2de02f3 user: drh tags: wal2)
17:51
Merge all recent trunk enhancements into the begin-concurrent-report branch. (check-in: 1c88bcff user: drh tags: begin-concurrent-report)
17:40
Merge trunk enhancements into the begin-concurrent branch. (check-in: 85054a86 user: drh tags: begin-concurrent)
16:43
Allow ALTER TABLE RENAME COLUMN to proceed even if there are errors in the schema, as long as PRAGMA writable_schema=ON is active. (check-in: 197cbabf user: drh tags: relaxed-alter-table)
13:15
Fix various harmless compiler warnings. (check-in: 70049342 user: drh tags: trunk)
13:05
For the MULTI-INDEX-OR optimization, when pushing down WHERE clause terms from the main query into the various OR-term subqueries, do not push down slices of a vector comparison, since the right-hand operand of the comparison might have only been initialized in a different OR branch that was not taken. dbsqlfuzz 80a9fade844b4fb43564efc972bcb2c68270f5d1. (check-in: 9f67ad00 user: drh tags: trunk)
09:39
Fix .param edit unable to edit script vars (bad assert) (check-in: 62d212d0 user: larrybr tags: shell-tweaks)
2022-02-03
21:07
Sync to trunk. Shell tests pass. (check-in: 79275b81 user: larrybr tags: shell-tweaks)
20:57
Scripting and .parameter enhancements most in; all in working (check-in: a1581118 user: larrybr tags: shell-tweaks)
18:14
Minor typo fix in comment. No code changes. (check-in: f9b76304 user: drh tags: trunk)
14:37
Do not allow the vdbe-compress.tcl script to generate structures named "do" or "if". (check-in: e35ab16d user: drh tags: trunk)
14:19
Prohibit schema changes within xBestIndex callbacks. (check-in: bb0f056b user: drh tags: trunk)
2022-02-02
21:06
Improvement to the sqlite3_vtab_in_first() documentation. (check-in: 403e7ac9 user: drh tags: trunk)
19:51
Add the sqlite3_vtab_in() interface that allows virtual tables to process IN constraints all at once, rather than one value at a time. (check-in: 52559af0 user: drh tags: trunk)
19:30
Additional test cases. (Closed-Leaf check-in: 733d81c3 user: drh tags: batch-in-operator)
19:15
Test cases for sqlite3_vtab_in() and sqlite3_vtab_distinct(). (check-in: 21afb81d user: drh tags: batch-in-operator)
18:47
Improved documentation for sqlite3_vtab_in(). No code changes. (check-in: c99df4ab user: drh tags: batch-in-operator)
16:24
Relax the restriction that the RHS of the IN operator must be a list in order for sqlite3_vtab_in() to work. Change an unreachable branch into an assert(). (check-in: 3bf21534 user: drh tags: batch-in-operator)
15:10
Be sure that sqlite3_vtab_in_first() and _next() set the correct encoding. (check-in: 04edf36e user: drh tags: batch-in-operator)
14:36
Refactor sqlite3_vtab_in() to make use of the existing sqlite3_value_pointer() mechanism for passing the list of IN operator RHS values into xFilter, for improved memory safety. (check-in: 8965929b user: drh tags: batch-in-operator)
11:37
Fix a harmless code indentation issue. (check-in: 41d8d26e user: drh tags: trunk)
2022-02-01
21:59
Tweaks to the sqlite3_vtab_in() interface. (check-in: 75040183 user: drh tags: batch-in-operator)
16:30
Index in 2nd argument to sqlite3_vtab_in() should be on the aConstraint[] array, not the internal array of all constraints. (check-in: 5acf90a9 user: drh tags: batch-in-operator)
15:08
Take CLI's wordwrap from trunk (check-in: 768c70a9 user: larrybr tags: shell-tweaks)
14:58
Add new interfaces to enable virtual table to process IN operator constraints all at once, rather than one element at a time. (check-in: eb84b80e user: drh tags: batch-in-operator)
13:17
CLI: Take extra care to not split a multi-byte unicode character when doing wordwrap. (check-in: 00b1b702 user: drh tags: trunk)
12:28
CLI: Add the --ww option as an alias for --wordwrap. Improve the wordwrap algorithm so that it breaks at punctuation if it cannot find space. Always wordwrap with --ww even if there is a .width setting for the column. (check-in: 1b528e31 user: drh tags: trunk)
02:50
Add "--wordwrap on/off" option for CLI columnar modes, qwbox shortcut (check-in: 10dbc278 user: larrybr tags: trunk)
00:00
CLI: In ".mode column" output, if any row contains a newline or wraps, then put a single blank line in between each pair of rows to provide additional visual separately. (check-in: fd42f4c3 user: drh tags: trunk)
2022-01-31
22:14
CLI: for columnar output modes, make sure the header is not too big. Also, improve the help text. (check-in: 070fae3a user: drh tags: trunk)
20:39
CLI: Fix a problem with tabs in the new qbox mode. (check-in: ca96ab3e user: drh tags: trunk)
19:52
Sync to trunk (check-in: f51a17b6 user: larrybr tags: shell-tweaks)
19:23
Cleanup dot-command handling, make multi-line work, honor exit requests from more contexts (check-in: 5cf66e89 user: larrybr tags: shell-tweaks)
16:29
Fix harmless compiler warnings in MSVC. (check-in: 3ec6141c user: drh tags: trunk)
15:59
Do not attempt to limit the number of columns used in a table to a prefix if the table will be used to construct an automatic index or bloom filter. dbsqlfuzz 787d9bd73164c6f0c85469e2e48b2aff19af6938. (check-in: f8766231 user: drh tags: trunk)
14:14
CLI: Enhancements to columnar output modes. (See [forum/forumpost/5b53cd851f66441f9|forum post 5b53cd851] for discussion.) New output mode "qbox". New output options "--quote" and "--wrap N". (check-in: 539cef52 user: drh tags: trunk)
12:29
Fix an obscure problem in sqlite3_backup_init() caused by [6a45d8fe8bfbc11a|check-in 6a45d8fe8bfbc11a]. See forum post 8b39fbf3e7 for the original bug report. (check-in: 639fc763 user: drh tags: trunk)
10:55
CLI: Fix the new ".mode box" output so that it works with unicode characters. (check-in: 454af487 user: drh tags: trunk)
2022-01-30
21:09
CLI: For columnar modes ("box", "column", "table", "markdown") the ".width" is now both the minimum and maximum width of the column. Text that spans multiple lines or that contains tabs is properly formatted. If any part of the output contains multi-line text, then extra separators are provided between each row. (check-in: c10ed4a7 user: drh tags: trunk)
11:44
Always enable all JSON tests, now that JSON is included by default. (check-in: 8c9f3501 user: drh tags: trunk)
11:42
Remove a faulty NEVER(). Fix for dbsqlfuzz 4678cf825d27f87c9b8343720121e12cf944b71a (check-in: d4e40245 user: drh tags: trunk)
01:35
Sync with trunk (check-in: 59693d3e user: larrybr tags: shell-tweaks)
01:21
Enhance shell parser for multi-line dot-commands (check-in: 5ed528e2 user: larrybr tags: shell-tweaks)
2022-01-29
21:41
Documentation enhancements. No code changes. (check-in: 312642d9 user: drh tags: trunk)
2022-01-28
23:44
Add the SQLITE_INDEX_CONSTRAINT_LIMIT and SQLITE_INDEX_CONSTRAINT_OFFSET constraints to the sqlite3_index_info for the xBestIndex method of virtual tables. (check-in: 1e227ad9 user: drh tags: trunk)
23:19
Add a NEVER() on an unreachable branch. (Closed-Leaf check-in: 38892625 user: drh tags: vtab-limit-offset)
21:39
When nesting Parse objects, make sure the new one has nErr set if there has been an OOM error. (check-in: ae088cbc user: drh tags: trunk)
19:53
Include hidden columns of table valued functions that are constrained by the function arguments in the colUsed bitmask. (check-in: 8f8cab0d user: drh tags: vtab-limit-offset)
18:43
Remove a NEVER() that has become reachable now that we have the sqlite3_vtab_rhs_value() interface. (check-in: c4c30df7 user: drh tags: vtab-limit-offset)
13:18
Enable SQLITE_INDEX_CONSTRAINT_LIMIT/OFFSET even if there are vector comparison operators in the WHERE clause. Also: Do not enable sqlite3_vtab_rhs_value() for LIMIT/OFFSET if the value is negative, as this violates an invariant on Expr.u.iValue. (check-in: 140480b3 user: drh tags: vtab-limit-offset)
2022-01-27
21:18
Query planner always honors the aConstraintUsage[].omit flag for the SQLITE_INDEX_CONSTRAINT_OFFSET constraint. (check-in: 38c5151e user: drh tags: vtab-limit-offset)
18:45
Make LIMIT and OFFSET values available to sqlite3_vtab_rhs_value(). (check-in: b2d37c08 user: drh tags: vtab-limit-offset)
16:14
Give the virtual table xBestIndex method access to (some) OFFSET and LIMIT clauses. (check-in: 74fa5757 user: drh tags: vtab-limit-offset)
13:52
Enforce the restriction that 'unixepoch' only works as the first modifier after the time-value. This has been documented since 2004, but has never actually been enforced before. Also add new test cases for date/time functions with evidence marks. (check-in: 64fa9e8c user: drh tags: trunk)
2022-01-25
16:28
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 6e4154d4 user: drh tags: reuse-schema)
16:05
Merge the latest trunk changes into begin-concurrent-pnu-wal2 (check-in: 3d949775 user: drh tags: begin-concurrent-pnu-wal2)
15:57
Merge the latest trunk changes into the wal2 branch. (check-in: 84f737ab user: drh tags: wal2)
15:48
Merge the latest trunk enhancements into the begin-concurrent-report branch. (check-in: 42e6d842 user: drh tags: begin-concurrent-report)
15:20
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: dae81f45 user: drh tags: begin-concurrent)
00:03
Minor adjustment to error handling in sqlite3FinishCoding(). (check-in: a8db6941 user: drh tags: trunk)
2022-01-24
21:47
Remove an unnecessary assert() that is sometimes not true following an OOM. (check-in: e9361d72 user: drh tags: trunk)
20:20
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: d1fbf633 user: drh tags: trunk)
20:16
One of the ALWAYS() macros in the previous check-in could sometimes be false, following an OOM. Remove it. Problem found by dbsqlfuzz. (check-in: 11df9187 user: drh tags: trunk)
19:38
Add ALWAYS() macros. Change some existing ALWAYS() into assert(). Other code simplifications. (check-in: 4aa27b4f user: drh tags: trunk)
16:47
Remove many redundant checks for sqlite3.mallocFailed now that any OOM should cause Parse.nErr to be non-zero. (check-in: 1f7fa461 user: drh tags: trunk)
15:34
Make it so that any Parse object is always linked into the database conenction while it is active. Hence, an OOM will cause Parse.nErr to be set. (check-in: 6a45d8fe user: drh tags: trunk)
14:01
Fix testcase for CLI .read recursion. (check-in: 53d44044 user: larrybr tags: trunk)
12:48
Make sure the sqlite3OomFault() routine sets an error in the Parse object if there is a Parse object active and linked to the database connection. (check-in: ad7aace7 user: drh tags: trunk)
11:25
Ensure that any error encountered while coding a trigger program is transfered to the main Parse structure before it is used with any other routine that might set the error code. (check-in: 42936565 user: dan tags: trunk)
07:11
Take CLI input redirect recursion limit from trunk (check-in: 5e702044 user: larrybr tags: shell-tweaks)
06:36
Limit CLI input redirect nesting (check-in: 7a073931 user: larrybr tags: trunk)
04:21
Add CLI .x command, make string redirection work (check-in: 2f2f1aae user: larrybr tags: shell-tweaks)
00:22
CLI prepared for reading string input (check-in: 073ded4d user: larrybr tags: shell-tweaks)
2022-01-23
20:54
Factor out DB protection lift and restore in CLI (check-in: 4462ed89 user: larrybr tags: shell-tweaks)
04:19
Shell refinements, seeargs, booleans, undocumented commands (check-in: 8735caf1 user: larrybr tags: shell-tweaks)
02:53
Create new branch named "shell-tweaks" (check-in: 3f13df29 user: larrybr tags: shell-tweaks)
2022-01-22
22:28
Add support for the sqlite3_vtab_distinct() interface. Virtual table implementations can use this API to determine more detail about the ordering requirements needed by the query plan and perhaps reduce the amount of work required to compute a correct answer. This is an optimization opportunity for the virtual table implementation. The correct answer should still be obtained (though perhaps more slowly) even if sqlite3_vtab_distinct() is ignored. (check-in: e4caf1e3 user: drh tags: trunk)
20:45
Bring sqlite3_vtab_distinct() up to spec so that it works as described in the documentation. (Closed-Leaf check-in: 4289edf3 user: drh tags: sqlite3_vtab_distinct)
19:19
Iimproved documentation for sqlite3_vtab_distinct(). No changes to code. (check-in: 7af03f02 user: drh tags: sqlite3_vtab_distinct)
02:52
Omit the WhereLoopBuilder.pOrderBy field, which is no longer needed. (check-in: a13afc90 user: drh tags: sqlite3_vtab_distinct)
00:18
An initial attempt to implement sqlite3_vtab_distinct(). (check-in: d571262d user: drh tags: sqlite3_vtab_distinct)
2022-01-21
19:26
Update evidence marks for the latest changes to the documentation. (check-in: 19247e91 user: drh tags: trunk)
18:57
Fix some of the new date/time function features to comply with the spec. Update requirement marks. (check-in: 2f5dc7a9 user: drh tags: trunk)
16:47
When computing a vector to be used as a key for an index lookup, do not check for NULL values and abort until after all key values have been computed, in case one of the later key values involves some initialization that is needed by a LEFT JOIN. Fix for the problem identified by Forum post ab95010d410a0a55. (Leaf check-in: 3bc8d162 user: drh tags: branch-3.37)
16:41
When computing a vector to be used as a key for an index lookup, do not check for NULL values and abort until after all key values have been computed, in case one of the later key values involves some initialization that is needed by a LEFT JOIN. Fix for the problem identified by Forum post ab95010d410a0a55. (check-in: 4db5217a user: drh tags: trunk)
01:00
Add the sqlite3_vtab_rhs_value() interface, allowing the xBestIndex method of a virtual table to access known values on the right-hand side of constraint expressions. (check-in: e19a0b13 user: drh tags: trunk)
00:38
Add requirements marks and tuning. (Closed-Leaf check-in: ac951490 user: drh tags: sqlite3_vtab_rhs_value)
2022-01-20
19:00
Test cases for sqlite3_vtab_rhs_value() based on the qpvtab extension. (check-in: 577d3d66 user: drh tags: sqlite3_vtab_rhs_value)
18:27
Enhancements to the qpvtab virtual table to make it more useful for testing and verification of virtual table interfaces. (check-in: 850efc4c user: drh tags: sqlite3_vtab_rhs_value)
17:10
Initial implementation of the sqlite3_vtab_rhs_value() interface and the qpvtab extension used for testing the virtual table interface. (check-in: 0873c76b user: drh tags: sqlite3_vtab_rhs_value)
14:51
A better and more robust fix for the problem of reading a read-only WAL mode database with existing -wal and -shm files, replacing [f426874e005e3c23]. (check-in: 1266220a user: drh tags: branch-3.37)
14:40
A better and more robust fix for the problem of reading a read-only WAL mode database with existing -wal and -shm files, replacing [f426874e005e3c23]. (check-in: 71bfd0b5 user: drh tags: trunk)
12:58
Fix harmless scan-build warnings. (check-in: ab160e8b user: drh tags: trunk)
12:36
Fix the ability to read read-only WAL-mode database when -shm is present, ([00ec95fcd02bb415|check-in 00ec95fcd02bb415]) so that it works for the case of 64K page size. (check-in: 2cc15e2f user: drh tags: branch-3.37)
05:20
A WIP checkin, progress toward what .help promises (Closed-Leaf check-in: 4688e6df user: larrybr tags: script_command)
02:04
Fix the ability to read read-only WAL-mode database when -shm is present, ([00ec95fcd02bb415|check-in 00ec95fcd02bb415]) so that it works for the case of 64K page size. (check-in: f426874e user: drh tags: trunk)
2022-01-19
21:11
Initial help changes for .script (and enhanced .parameter) (check-in: a94ab403 user: larrybr tags: script_command)
20:38
Mistaken branch creation. (Closed-Leaf check-in: 03548c25 user: larrybr tags: mistake)
18:31
Fix a test result for alterauth2.test due to the recent fix to authorizer calls for ALTER TABLE DROP COLUMN. (check-in: e799a35f user: drh tags: trunk)
2022-01-18
16:16
Fix ALTER TABLE DROP COLUMN so that it invokes the authorizer. Fix for forum post fd82b85947541dec. (check-in: aca6c61d user: drh tags: trunk)
2022-01-17
23:53
Allow an "IntReal" value to count as a REAL when checking types for insertion into a generated column on a STRICT table. Forum post fa012c77796d9399. (check-in: b6fb223d user: drh tags: branch-3.37)
23:37
Allow an "IntReal" value to count as a REAL when checking types for insertion into a generated column on a STRICT table. Forum post fa012c77796d9399. (check-in: 1ec44d55 user: drh tags: trunk)
20:01
Merge the latest trunk changes into the reuse-schema branch. (check-in: 769ff857 user: drh tags: reuse-schema)
19:46
Merge the latest trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 45fa7efe user: drh tags: begin-concurrent-pnu-wal2)
19:36
Merge the latest trunk enhancements into the wal2 branch. (check-in: 82f031b4 user: drh tags: wal2)
19:24
Bring the begin-concurrent-report branch up to date with all the latest trunk enhancements. (check-in: ef6fc895 user: drh tags: begin-concurrent-report)
19:17
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 02daae7a user: drh tags: begin-concurrent)
19:10
Merge the begin-concurrent-pnuu branch into begin-concurrent. (check-in: 22fb5050 user: drh tags: begin-concurrent)
17:22
.ar fixed and constituent line numbers off (until they are right) (check-in: ec363f81 user: larrybr tags: cli_extension)
15:23
Fix incorrect testcase() and assert() macros in json.c. They were not causing problems. The assert() was simply unreachable. The testcase() added an unreachable condition. (check-in: 5623497a user: drh tags: trunk)
14:42
Never allow the b-tree layers view of the number of pages in the database file exceed the actual number of pages in the database file, even when PRAGMA writeable_schema=ON. This helps with earlier detection of corruption, and prevents excess memory usage and CPU cycles in some integrity_check ops. (check-in: 0407c879 user: drh tags: trunk)
03:53
Merge from trunk, w/adapations. (.ar still broken) (check-in: e09a6dd7 user: larrybr tags: cli_extension)
03:25
Bring .import --schema enhancement in. Refine mkshellc include logic. (check-in: e38f45cd user: larrybr tags: cli_extension)
2022-01-16
19:11
Fix test cases so that they all still work even with -DSQLITE_DQS=0. (check-in: 48837766 user: drh tags: trunk)
15:15
Fix ALTER TABLE so that it works even when compiled using -DSQLITE_DQS=0. Forum post 3c1a00b66fca81fe. (check-in: 092ad64f user: drh tags: trunk)
2022-01-14
23:28
Remove code from lemon.c that was made superfluous by [1b22b42e59793af1|check-in 1b22b42e59793af1] in late 2017. (check-in: 6d2f95a4 user: drh tags: trunk)
21:34
Fix a NEVER() in the byte-code engine that can sometimes be true. Test case in TH3. (check-in: 7ac91b53 user: drh tags: trunk)
16:29
For .import schema, quote it as for other identifiers. (check-in: bff9153c user: larrybr tags: trunk)
2022-01-13
21:22
Add --schema S option to .import (check-in: 38d9dbca user: larrybr tags: trunk)
2022-01-12
20:31
When the result of a subquery is to be stored in a register and that subquery has an ORDER BY clause and an OFFSET, NULL out the destination register before starting the ORDER BY so that the register will be set correctly even if the OFFSET is larger than the number of output rows. Fix for the problem reported in forum post 0ec80f12d02acb3f. (check-in: 9282bcde user: drh tags: trunk)
01:42
Make tool/mctimec.tcl effect more regular and obvious (check-in: 02aaa10f user: larrybr tags: trunk)
00:52
Fix mkctimec.tcl with the updated compile-time options for JSON. (check-in: 8ded3f5b user: drh tags: trunk)
00:28
Fix harmless compiler warning seen with MSVC. (check-in: adebb9d7 user: mistachkin tags: trunk)
2022-01-11
23:28
Merge the JSON interface into the core. Add -> and ->> operators for JSON that are compatible with by MySQL and PG. (check-in: 4cbb3e3e user: drh tags: trunk)
22:06
Remove vestigial traces of json_ntype(). (Closed-Leaf check-in: 8da07c8b user: drh tags: json-in-core)
18:01
Fix the PG-compatible -> and ->> path parsing. (check-in: 22d51383 user: drh tags: json-in-core)
2022-01-10
17:43
Fix typo in the json-enhancements.md document. (check-in: feba24ef user: drh tags: json-in-core)
15:43
Implement the new PG-compliant versions of the -> and ->> operators. (check-in: 39eff3b9 user: drh tags: json-in-core)
13:55
New proposal for -> and ->> operators. (check-in: 1108e12a user: drh tags: json-in-core)
2022-01-09
21:16
Update the json-enhancements.md document to match the version in the json-in-core branch, as outside readers have linked to this branch. (Leaf check-in: 2027b3be user: drh tags: json-enhancements)
20:51
Typo fix in doc/json-enhancements.md. (check-in: c3b01d49 user: drh tags: json-in-core)
20:42
Update the doc/json-enhancements.md document to better explain the features of this branch. (check-in: b8ac938f user: drh tags: json-in-core)
19:44
Do not enclude ENABLE_JSON1 in the compile-time options. (check-in: 8bf41bc5 user: drh tags: json-in-core)
19:36
Merge trunk enhancements into the json-in-core branch. (check-in: ea755771 user: drh tags: json-in-core)
16:54
Add a new built-in subtype() function. (check-in: a25f4ce2 user: drh tags: json-in-core)
2022-01-08
21:59
mkshellc.tcl to convert #include to INCLUDE for in-tree includees (check-in: b1f3b317 user: larrybr tags: cli_extension)
21:50
Add NEVER() macros to two branches that became unreachable due to [e199a851e316bd47]. (check-in: 71272caf user: drh tags: trunk)
21:00
Add function format() as an alias for printf(), for compatibility with other systems. (check-in: 68bffc61 user: drh tags: trunk)
15:37
Merge the JSON function enhancements from the json-enhancements branch into json-in-core. (check-in: e116501c user: drh tags: json-in-core)
15:05
Improved commenting of changes in the json1.c extension. (check-in: 4d81425e user: drh tags: json-enhancements)
2022-01-07
18:09
Notes on the JSON enhancement proposals. (check-in: 18160985 user: drh tags: json-enhancements)
17:26
Reverse the meaningn of -> and ->>. ->> raises an error on invalid JSON but -> does not. This allows ->> to behave the same as PG and MySQL. (check-in: 85f81705 user: drh tags: json-enhancements)
17:14
Change the -> operator to use json_extract(). The ->> operator continues to use json_nextract(). (check-in: b4c8a623 user: drh tags: json-enhancements)
17:08
New json_nextract() function that works like json_extract() except that it returns NULL instead of raising an error if the first argument is not well-formed JSON. Or if the first argument is not well-formed JSON and the second argument is '$', then return the first argument quoted. The "->" and "->>" operators are converted to use json_nextract(). (check-in: dc00f528 user: drh tags: json-enhancements)
16:03
Add the json_ntype() SQL function. Works like the 1-argument json_type() except that it returns NULL if the argument is not well-formed JSON, rather than raising an error. (check-in: ed9956f5 user: drh tags: json-enhancements)
15:47
Accept abbreviated JSON Paths on the right-hand side of the -> and ->> operators. (check-in: d1541090 user: drh tags: json-enhancements)
14:58
Add new binary operators "->" and "->>" to the parser that evaluate to 2-argument SQL functions by the same name. Add new "->" and "->>" functions to the JSON extension that are aliases for json_extract(). (check-in: c4e4e3a3 user: drh tags: json-enhancements)
14:09
Merge 3.37.2 changes into the begin-concurrent-pnu branch. (Leaf check-in: e525892d user: drh tags: begin-concurrent-3.37)
2022-01-06
17:13
Add the '-guard:cf' compiler option for Windows 10, per forum post 8d3b4ad694. (check-in: 2d6a16ca user: mistachkin tags: trunk)
14:16
Merge the 3.37.2 patches into the reuse-schema branch. (Leaf check-in: d7ec5a2b user: drh tags: reuse-schema-3.37)
13:25
Version 3.37.2 (check-in: 872ba256 user: drh tags: release, branch-3.37, version-3.37.2)
01:40
An attempt to integrate the JSON functions directly into the SQLite core, rather than holding them as an extension. (check-in: 583b47d8 user: drh tags: json-in-core)
2022-01-05
21:08
Remove two NEVER() macros that can sometimes be true if the database is corrupt. dbsqlfuzz 0414d2c18290fc80fd5fb540def7d3e46c1ae9c6. (check-in: e1871201 user: drh tags: branch-3.37)
21:01
Remove two NEVER() macros that can sometimes be true if the database is corrupt. dbsqlfuzz 0414d2c18290fc80fd5fb540def7d3e46c1ae9c6. (check-in: b6a82f3c user: drh tags: trunk)
18:56
Increase the version number to 3.37.2 (check-in: 7b911356 user: drh tags: branch-3.37)
16:02
Fix an assert() failure that could follow an OOM when coding a RETURNING trigger. dbsqlfuzz case 5d3e2438f15dc32b473d9f29413157857efa1212. (check-in: 93965e67 user: drh tags: branch-3.37)
15:54
Fix an assert() failure that could follow an OOM when coding a RETURNING trigger. dbsqlfuzz case 5d3e2438f15dc32b473d9f29413157857efa1212. (check-in: 7ae596dd user: dan tags: trunk)
12:01
Improved handling of OOM errors in sqlite3ExpandReturning(). dbsqlfuzz 1040b720f0bbc3bdcfe7336acffbf71517e3ef82. (check-in: b9ed2a29 user: drh tags: branch-3.37)
11:49
Improved handling of OOM errors in sqlite3ExpandReturning(). dbsqlfuzz 1040b720f0bbc3bdcfe7336acffbf71517e3ef82. (check-in: 33c6b8e9 user: drh tags: trunk)
2022-01-03
19:33
Test .mode quote blob output (check-in: ef4dcd10 user: larrybr tags: trunk)
01:43
Small performance and size optimization to allocateCursor(). (check-in: 23f04266 user: drh tags: trunk)
2022-01-02
21:53
Remove unnecessary assignment operations in the btree search algorithm, for a small size reduction and performance increase. (check-in: 01bd266e user: drh tags: trunk)
20:54
In the CLI, fix ".mode quote" output for UTF16 BLOBs. Forum post b4bfe62fe6. (check-in: 728e9dcc user: drh tags: trunk)
19:43
Do not open a rollback journal file when the journal_mode is OFF, even if such a file exists on disk. See [forum/forumpost/ec2a102440|forum post ec2a102440] for a description. I so far have been unable to find any harm to come of the problem, other than the assertion fault when in DEBUG mode. (check-in: 71f21f17 user: drh tags: branch-3.37)
19:32
Do not open a rollback journal file when the journal_mode is OFF, even if such a file exists on disk. See [forum/forumpost/ec2a102440|forum post ec2a102440] for a description. I so far have been unable to find any harm to come of the problem, other than the assertion fault when in DEBUG mode. (check-in: fdf9ed66 user: drh tags: trunk)
19:10
Improve formatting of an assert(). No functional changes. (check-in: 4bb78ce8 user: drh tags: trunk)
18:10
Clear the cache of triggers used to implement CASCADE foreign key constraints whenever the schema changes. Fix for the problem identified by forum post 2831335356. (check-in: 4f1313c6 user: drh tags: branch-3.37)
17:46
Earlier detection of corruption in sqlite3BtreeDelete(). Fix for the assertion fault reported by forum post 9d78389221. (check-in: eb072199 user: drh tags: branch-3.37)
17:37
Do not raise an SQLITE_SCHEMA error if in sqlite3Init(). Fix for PoC #2 in forum post b03d86f951. See TH3 for test cases. (check-in: 25beca31 user: drh tags: branch-3.37)
17:24
Fix an obscure problem with releasing savepoints stored in an in-memory journal that could cause subsequent savepoint rollback to fail. (check-in: 3c0806e4 user: drh tags: branch-3.37)
17:14
Remove an obsolete assert() statement that no longer does anything useful and which is not always true. Fix for PoC #1 of forum post b03d86f951. (check-in: 0829c100 user: drh tags: branch-3.37)
17:13
Fix a faulty assert() statement - adding a CORRUPT_DB term - based on a test case derived from [562805cf488a455c]. Also add a test case to that prior issue. (check-in: f9505fcb user: drh tags: branch-3.37)
17:02
Fix harmless compiler warnings seen with MSVC. (check-in: 6e08a542 user: drh tags: branch-3.37)
17:00
Move the pTriggerPrg and pCleanup elements of the Parse object up into the section of that object that is persisted across calls to sqlite3NestedParse(). This fixes a memory leak reported in forum post 24bd1fef7e9323ef. (check-in: ee8b2397 user: drh tags: branch-3.37)
16:48
Performance optimization in btreeParseCellPtr() by unrolling the loop that decodes the rowid. (check-in: fef72368 user: drh tags: trunk)
14:55
Small performance optimization and size reduction in sqlite3BtreeDelete(). (check-in: da0af4dd user: drh tags: trunk)
12:01
Clear the cache of triggers used to implement CASCADE foreign key constraints whenever the schema changes. Fix for the problem identified by forum post 2831335356. (check-in: 5232c977 user: drh tags: trunk)
11:25
Earlier detection of corruption in sqlite3BtreeDelete(). Fix for the assertion fault reported by forum post 9d78389221. (check-in: 13e9ff9e user: drh tags: trunk)
00:16
Bring in trunk shell mods. (check-in: f628c3af user: larrybr tags: cli_extension)
2022-01-01
22:55
Do not raise an SQLITE_SCHEMA error if in sqlite3Init(). Fix for PoC #2 in forum post d7338bf4901f1151. See TH3 for test cases. (check-in: e199a851 user: drh tags: trunk)
20:02
Fix an assert() in pager.c to avoid the possibility of side-effects. (check-in: 1d1fe03c user: dan tags: trunk)
19:55
Attempt to fix a harmless compiler warning in FTS5. (check-in: 8e619c21 user: drh tags: trunk)
19:29
Fix an obscure problem with releasing savepoints stored in an in-memory journal that could cause subsequent savepoint rollback to fail. Problem reported by forum post d7338bf4901f1151, PoC #3. The problem appears to have been introduced at [23ca23894af352ea]. (check-in: 73c2b502 user: dan tags: trunk)
17:21
Remove an obsolete assert() statement that no longer does anything useful and which is not always true. Fix for PoC #1 of forum post d7338bf4901f1151. (check-in: c76a4c0b user: drh tags: trunk)
12:26
Fix a faulty assert() statement - adding a CORRUPT_DB term - based on a test case derived from [562805cf488a455c]. Also add a test case to that prior issue. (check-in: 0dd6b5fc user: drh tags: trunk)
2021-12-31
22:53
Mark the REGEXP operator in the built-in extension as deterministic. (check-in: e654b57a user: drh tags: trunk)
19:20
Simplify the sqlite3RunParser() routine by omitting the third parameter. Results in a binary that is about 100 bytes smaller and 1.4M cycles faster. (check-in: 6fb2a1bb user: drh tags: trunk)
19:08
Fix harmless compiler warnings in the shell. (check-in: f3ea36d7 user: mistachkin tags: trunk)
18:26
Fix harmless compiler warnings seen with MSVC. (check-in: a9bfb621 user: mistachkin tags: trunk)
17:54
Performance optimization and size reduction in sqlite3RunParser(). (check-in: 41ee2bac user: drh tags: trunk)
16:37
Move the pTriggerPrg and pCleanup elements of the Parse object up into the section of that object that is persisted across calls to sqlite3NestedParse(). This fixes a memory leak reported in forum post 24bd1fef7e9323ef. (check-in: 562805cf user: drh tags: trunk)
2021-12-30
17:46
Remove unnecessary conditionals around the ORDER BY resolver calls in multiSelectOrderBy(). (check-in: f2887e01 user: drh tags: trunk)
17:36
When constructing the sqlite3_index_info object for the xBestIndex method of a virtual table, omit constant trims from the ORDER BY clause, as they will always be in the correct order. (check-in: 524c2b87 user: drh tags: trunk)
16:14
Merge the 3.37.1 patches into the reuse-schema branch. (check-in: e9e95c8f user: drh tags: reuse-schema-3.37)
15:30
Version 3.37.1 (check-in: 378629bf user: drh tags: release, version-3.37.1, branch-3.37)
12:26
Disable the atof1.test test module on non-x64 hardware. (check-in: 986a94d0 user: drh tags: branch-3.37)
11:35
Fix windowC tests to specify little-endian or big-endian UTF16, for cross-platform portability. Forum post 559b84a5c6|. And give the correct prefix to tests in the windowC.test module. (check-in: 8af7cb2a user: drh tags: branch-3.37)
11:27
Do not attempt to reprepare a prepared statement that returns SQLITE_SCHEMA if there was an OOM. This enhancement supercedes check-in [fee469925231d074]. (check-in: 103f95db user: drh tags: branch-3.37)
11:13
Change an assert() in FTS3 into assert_fts3_nc(), since it is a harmless condition that can occur when processing a corrupt database file. (check-in: 35e2b27a user: drh tags: branch-3.37)
03:56
Fix a minor issue in the configure script. (check-in: 0413d37e user: drh tags: branch-3.37)
03:22
Following a prior error, an ALWAYS() in sqlite3ExprCanBeNull() might be false. dbsqlfuzz 5dbec6678a20e7595a34dfdd869a3b9722b3ca43. (check-in: b33e4770 user: drh tags: branch-3.37)
03:12
When a table has an INTEGER PRIMARY KEY ON CONFLICT REPLACE and some other uniqueness constraint, and it participates in an upsert on that other constraint, ensure that code that checks for conflicts on the INTEGER PRIMARY KEY is well-formed. Fix for the problem reported by forum post 06b16b8b29f8c8c3. (check-in: 1f1e0b4e user: drh tags: branch-3.37)
02:38
When a table has an INTEGER PRIMARY KEY ON CONFLICT REPLACE and some other uniqueness constraint, and it participates in an upsert on that other constraint, ensure that code that checks for conflicts on the INTEGER PRIMARY KEY is well-formed. Fix for the problem reported by forum post 06b16b8b29f8c8c3. (check-in: 2f09b51b user: drh tags: trunk)
00:37
When implementing a multi-way compound SELECT using merge, try to balance the merge tree. (check-in: bb8522fe user: drh tags: trunk)
2021-12-29
13:32
Minor changes to shell1.test test results to account for the new feature of the shell that points to the specific part of the input line where the error occurs. (check-in: d4870c08 user: drh tags: trunk)
04:31
Ensure that the affinity of columns is honored in the RETURNING clause. See forum post e0c7574ab2 for the bug report. (check-in: 4711fb69 user: drh tags: trunk)
04:13
Add the sqlite3_error_offset() interface. Use it to enhance error reporting in the CLI. (check-in: 416602a8 user: drh tags: trunk)
04:10
Make .read's help tell of piped input (check-in: 155c3e9c user: drh tags: trunk)
04:10
Change an assert() in FTS3 into assert_fts3_nc(), since it is a harmless condition that can occur when processing a corrupt database file. (check-in: e773d621 user: drh tags: trunk)
04:08
Fix the build-breaker bug in test1.c introduced by check-in [7fa20ca4c09ab024]. (Closed-Leaf check-in: 5f804da1 user: drh tags: build-bug)
2021-12-28
05:08
Make .read's help tell of piped input (check-in: e4ddcd8a user: larrybr tags: build-bug)
2021-12-25
23:59
Change an assert() in FTS3 into assert_fts3_nc(), since it is a harmless condition that can occur when processing a corrupt database file. (check-in: c03205ae user: drh tags: build-bug)
00:26
Add the sqlite3_error_offset() interface. Use it to enhance error reporting in the CLI. (Later:) There is a bug in src/test1.c that prevents the code from even building. How did this pass tests? Moving to a branch to prevent fugure bisect problems. (check-in: 7fa20ca4 user: drh tags: build-bug)
00:19
One minor change for an exceptional case in sqlite3_error_offset(). (Closed-Leaf check-in: c93609a8 user: drh tags: improved-error-context)
2021-12-24
20:51
Create new branch named "instr-bidir-more" (Leaf check-in: 4ca96d2d user: larrybr tags: instr-bidir-more)
20:22
Add the sqlite3_error_offset() interface. Use it in the CLI to provide better context for error messages. (check-in: b518ce77 user: drh tags: improved-error-context)
19:44
Fix a minor problem in the CLI introduced by [d156123885abe6bf], apparently. (check-in: 37e6e10f user: drh tags: trunk)
13:30
Raise an error if a schema name is attached to the table-alias name of a subquery or view. See forum post 021a33600b for the bug report. (check-in: 8af8c153 user: drh tags: trunk)
2021-12-23
00:16
Reduce the size of the compiled binary by a couple of hundred bytes by using a thigher packing of a transformation table in date.c. Suggested by forum post 4f6efbb2a9. (check-in: c75ba4fa user: drh tags: trunk)
2021-12-21
16:59
Update the README.md to instruct the user to remove the final comment line from the "manifest" file before using it to compute the check-in hash. (check-in: 7b4f9d95 user: drh tags: trunk)
2021-12-20
23:46
In the json1 extension, which compiling it separately, ensure that either SQLITE_DEBUG macro or the NDEBUG macro is set prior to including assert.h. If neither macro is defined, then assert() statement do generate code but VVA() statements do not, and that is a deadly combination. forum post 858dee399e (check-in: d9f814a6 user: drh tags: trunk)
17:00
Remove old script ext/fts3/mkfts3amal.tcl, as it doesn't work. (check-in: 9e33ee24 user: dan tags: trunk)
2021-12-17
23:56
Improved documentation for the sqlite3_vtab_collation() interface. (check-in: 826f84a9 user: drh tags: trunk)
2021-12-16
19:50
Fix windowC tests to specify little-endian or big-endian UTF16, for cross-platform portability. Forum post 559b84a5c6 (check-in: adf3a1e6 user: drh tags: trunk)
19:43
Give the correct prefix to tests in the windowC.test module. (check-in: fb434563 user: drh tags: trunk)
17:57
In the CLI, omit the ".oom" command (only available in debug builds) and disable the experimental ".expert" commmand in --safe mode. (check-in: 5cda1f7d user: drh tags: trunk)
17:35
New defenses against OOM and corrupt database problems in the CLI. (check-in: 5c9fd7fd user: drh tags: trunk)
17:21
Fix a typo in the result of one of the new test cases. (check-in: 4d02a129 user: drh tags: trunk)
15:29
Fix fts3 and fts4 so that they can still be used even if the other is dropped by a call to sqlite3_drop_modules(). (check-in: a0a8d6c9 user: dan tags: trunk)
14:59
Fix a memory leak in the CLI that occurs after an error in the ".open" command. (check-in: d1561238 user: drh tags: trunk)
14:36
Fix harmless compiler warning in the new Bloom filter logic. (check-in: 9406d95d user: drh tags: trunk)
14:26
Improved robustness against OOM in the expert extension. (check-in: e732c429 user: drh tags: trunk)
13:56
Fix a potential NULL pointer dereference in the CLI logic for printing the schema of virtual tables. (check-in: fe44ebf6 user: drh tags: trunk)
13:29
Add more tests for OOM conditions in the CLI. (check-in: b6fa402d user: drh tags: trunk)
00:36
Change the query planner so that it excludes virtual table constraints that do not have the correct collation. This breaks the expert extension. (Closed-Leaf check-in: da3aae7b user: drh tags: vtab-collation-fix)
2021-12-15
20:48
Simplify the generation of the sqlite3_index_info object during query planning for virtual tables. (check-in: 241dc042 user: drh tags: trunk)
13:48
Update this branch with the latest trunk and wal2 changes, including the checkpoint-on-close wal2 mode fix. (check-in: cffc31bf user: dan tags: begin-concurrent-report-wal2)
13:42
Merge checkpoint-on-close fix from wal2 branch. (check-in: a92eca6c user: dan tags: begin-concurrent-pnu-wal2)
12:51
Fix a problem causing one wal file to be deleted without being checkpointed on close in cases where the last connection to close the db does so with an out of date wal-index header in memory. (check-in: b0a70a23 user: dan tags: wal2)
2021-12-14
20:13
Enhance the virtual table query planner so that it is able to deal with ORDER BY terms that contain COLLATE clauses as long as the specified collation matches the virtual table. This is especially important for UNION ALL since a "COLLATE binary" is added to ORDER BY clauses if no COLLATE clause exists in the original SQL. (check-in: 5c3d398d user: drh tags: trunk)
18:11
Minor fix to the ORDER BY elimination logic in generate_series(). (check-in: a2e50712 user: drh tags: trunk)
00:36
Omit the return value from sqlite3VdbeSerialGet() for a size reduction and performance improvement. (check-in: 788e79f8 user: drh tags: trunk)
2021-12-13
19:59
Small performance optimization and code size reduction in moveToRoot(). (check-in: cdcde00b user: drh tags: trunk)
18:53
Add NEVER() on an unreachable branch in the Bloom filter pull-down logic. (check-in: 47107046 user: drh tags: trunk)
18:43
Fix an off-by-one error in the Bloom filter pulldown logic, found by OSSFuzz. Also fix over-length source code lines in the immediate vicinity. (check-in: 02762652 user: drh tags: trunk)
00:02
Remove unused code. (check-in: b98b24f2 user: drh tags: trunk)
2021-12-11
17:10
Do not allow early evaluation of Bloom filters that use the IN operator as the machinery to deal with the IN operator is not available. dbsqlfuzz 5b51c247518278f79a45cea978702e86e86cd4f9. (check-in: 799db7cb user: drh tags: trunk)
2021-12-10
21:01
Factor out the logic that does quoting for the SQL quote() function, so that it might be reused for other purposes. (check-in: 8e98ba1e user: drh tags: trunk)
18:11
Almost all shell tests except shell8.test pass. (a WIP) (check-in: 653db501 user: larrybr tags: cli_extension)
17:36
Rename the internal routine constructBloomFilter() to sqlite3ConstructBloomFilter(). OSSFuzz is reporting a crash with a garbled stack that we cannot reproduce. Perhaps the original "constructBloomFilter()" name is colliding with some internal name used by OSSFuzz. We'll see if this rename clears the problem. (check-in: 403e7312 user: drh tags: trunk)
2021-12-09
20:06
Add support for Bloom-filters as a performance optimization for joins. (check-in: 633bfeee user: drh tags: trunk)
19:42
Remove unused code and fix comments. Final cleanup before merging. (Closed-Leaf check-in: ce42039f user: drh tags: bloom-filter)
18:44
Enable bloom filters for the right table of a LEFT JOIN. Fix unreachable branches. (check-in: d342ab72 user: drh tags: bloom-filter)
16:45
Pickup trunk .mode upgrade + cosmetic shell changes (check-in: 8dc69c81 user: larrybr tags: cli_extension)
16:26
Add ".mode off" and ".mode count" to the CLI. (check-in: 1eefd957 user: drh tags: trunk)
16:17
Add ".mode off" and ".mode count" to the CLI. (check-in: b11f4d08 user: drh tags: bloom-filter)
14:15
New test cases added to test/fuzzdata8.db (check-in: 70468770 user: drh tags: trunk)
14:09
Do not attempt to reprepare a prepared statement that returns SQLITE_SCHEMA if there was an OOM. This enhancement supercedes check-in [fee469925231d074]. (check-in: 94fdbeff user: drh tags: trunk)
04:45
Closer to passing all Tcl tests (with an odd failure) (check-in: 6956e989 user: larrybr tags: cli_extension)
01:28
Add SQLITE_TESTCTRL_LOGEST and enhance the LogEst utility program. Improvements to testability of bloom filters. (check-in: 88b43d79 user: drh tags: bloom-filter)
2021-12-08
20:36
Clarity tweak for date.c (check-in: db58b2de user: larrybr tags: trunk)
19:50
Improvements on the decision of whether or not to use a Bloom filter. (check-in: 0fb2a4e0 user: drh tags: bloom-filter)
18:50
Enhance the sqlite3SrcListAppendFromTerm() routine so that it sets the Parser error on an OOM, causing an earlier unwind of the stack. (check-in: fee46992 user: drh tags: trunk)
16:15
Merge the WhereClause fix from trunk (check-in: d3250256 user: drh tags: bloom-filter)
16:07
In the WhereClause object, do not assume that all TERM_VIRTUAL terms appear at the end of the list, because that is no longer true. Instead, keep a separate nBase count that is the size of the list excluding the tail of virtual terms. Use nBase instead of nTerm when scanning terms that are not virtual. Add assert()s to validate correctness of WhereClause. (check-in: 6024682c user: drh tags: trunk)
2021-12-07
23:02
For CLI, extensibility refinement and small steps toward embedability (check-in: ad9970bc user: larrybr tags: cli_extension)
22:37
Do not generate a Bloom filter if it cannot be used prior to the next seek, as that leads to a misleading EXPLAIN QUERY PLAN. (check-in: 2739ed51 user: drh tags: bloom-filter)
2021-12-06
23:07
Improved EXPLAIN QUERY PLAN output for Bloom filters. (check-in: 00070e1f user: drh tags: bloom-filter)
21:45
Add SQLITE_STMTSTATUS_FILTER_HIT and _MISS for tracking the effectiveness of Bloom filters. (check-in: 24ba535d user: drh tags: bloom-filter)
20:16
Omit the OP_FilterInit opcode. Use OP_Blob to initialize each Bloom filter instead. Size the Bloom filter based on sqlite_stat1 size estimates rather than a run-time measurement for improved testability. (check-in: 8a9036ee user: drh tags: bloom-filter)
19:11
Merge trunk fixes into the bloom-filter branch. (check-in: edacf803 user: drh tags: bloom-filter)
19:03
Fix an OOB read that could occur in fts5 when processing corrupt records. (check-in: 734606ea user: drh tags: branch-3.37)
18:57
Fix an OOB read that could occur in fts5 when processing corrupt records. (check-in: bb9b1a15 user: dan tags: trunk)
17:23
Create new branch named "ppvar_manage" (Leaf check-in: 74ee8d2b user: larrybr tags: ppvar_manage)
16:56
Do not allow SQLITE_LIMIT_LENGTH to be set lower than 1 as an SQLITE_LIMIT_LENGTH of 0 causes lots of unnecessary problems for users of the sqlite3_str object. (check-in: 286243f3 user: drh tags: branch-3.37)
16:51
Do not allow certain dangerous ".testctrl" commands in safe mode. (check-in: 4602644f user: drh tags: branch-3.37)
16:42
Fix SQLITE_TESTCTRL_IMPOSTER so that it is a harmless no-op if the schema parameter is invalid. (check-in: b15c553c user: drh tags: branch-3.37)
16:36
In the shell tool, avoid modifying internal data structures until after the arguments to ".open" have been parsed. (check-in: cbd69ed8 user: drh tags: branch-3.37)
16:29
Start a new branch on which to cherrypick fixes against 3.37.0. (check-in: cea9e41a user: drh tags: branch-3.37)
16:22
Merge .testctrl safe mode blocks (check-in: a42fc4ac user: larrybr tags: cli_extension)
15:40
Do not allow SQLITE_LIMIT_LENGTH to be set lower than 1 as an SQLITE_LIMIT_LENGTH of 0 causes lots of unnecessary problems for users of the sqlite3_str object. (check-in: 8fd5b8ec user: drh tags: trunk)
15:24
Do not allow certain dangerous ".testctrl" commands in safe mode. (check-in: 080e72d1 user: drh tags: trunk)
15:08
Fix SQLITE_TESTCTRL_IMPOSTER so that it is a harmless no-op if the schema parameter is invalid. (check-in: 2d9a45ab user: drh tags: trunk)
13:07
Attempt to vary the size of Bloom filters based on an estimate of how many keys the filter will hold. (check-in: a7adcf69 user: drh tags: bloom-filter)
2021-12-05
20:19
Run as many Bloom filters as possible before index lookups. (check-in: 06f6fefd user: drh tags: bloom-filter)
00:45
Try to run all Bloom filters before any Seeks. This gives a small performance gain on the Star-Schema Benchmark. (check-in: 5be2470f user: drh tags: bloom-filter)
2021-12-04
21:11
Miscellaneous cleanup of the new Bloom-filter code. (check-in: 201b6dd8 user: drh tags: bloom-filter)
18:45
Add VdbeCoverage() macros. Adjust the Bloom-filter hash function so that it correctly deals with zero-blobs. (check-in: 629ee2e3 user: drh tags: bloom-filter)
18:40
Add design doc for shell extensibility (check-in: 96b8ffb0 user: larrybr tags: cli_extension)
14:24
Apply the Bloom filter only on those terms of an index that have equality constraints. (check-in: a7042959 user: drh tags: bloom-filter)
13:52
Add the "WITH BLOOM FILTER" clause to the EXPLAIN QUERY PLAN output for cases were a Bloom filter is used. (check-in: 8e078c0e user: drh tags: bloom-filter)
13:43
First attempt to use Bloom filters to optimize star-schema queries. (check-in: 28161fba user: drh tags: bloom-filter)
2021-12-03
19:27
Extension interface tweaks in support of planned usage (check-in: ce2a9143 user: larrybr tags: cli_extension)
19:10
Merge the sqlite3WhereBegin() simplification from trunk. (check-in: 41ba2dfd user: drh tags: bloom-filter)
18:53
Factor the noop-join-elimination optimization out of the sqlite3WhereBegin() routine and into a separate "no-inline" subroutine, in order to reduce the complexity of sqlite3WhereBegin() and thereby encourage C compilers to inline sqlite3WhereCodeOneLoopStart(). (check-in: 6225e9ab user: drh tags: trunk)
16:02
Merge recent trunk enhancements into the bloom-filter branch. (check-in: 11d97fb8 user: drh tags: bloom-filter)
15:48
Fix exprAnalyze() after recent performance enhancements so that it is able to handle IF_NULL_ROW opcode correctly, again. (check-in: 8029e6ba user: drh tags: trunk)
14:57
Fix unreachable branches resulting from prior optimizations. (check-in: f3d6853e user: drh tags: trunk)
14:43
Fix an over-length source code line in build.c. No logic changes. (check-in: b9db5c5f user: drh tags: trunk)
13:42
Performance optimization in the B-Tree cursor allocator btreeCursor(), making it about 800K CPU cycles faster in speedtest1, and reducing the executable size by about 100 bytes. (check-in: 9df93971 user: drh tags: trunk)
2021-12-02
20:30
Make shell buildable, fix a potential leak-to-be (check-in: eab1e1af user: larrybr tags: cli_extension)
18:15
Optimizations to exprAnalyze() and sqlite3WhereExprUsage() save about 1.5 million CPU cycles for speedtest1, and result in a smaller binary. (check-in: 1f2252e6 user: drh tags: trunk)
18:09
Merge for CLI fix. (check-in: 98cf1861 user: larrybr tags: cli_extension)
14:28
Move the TK_IS token so that it is adjacent to the TK_IN token, as this allows the C compiler to optimize better, resulting in a slightly smaller and faster executable. (check-in: 8832fa90 user: drh tags: trunk)
14:16
In the shell tool, avoid modifying internal data structures until after the arguments to ".open" have been parsed. (check-in: fcc509d3 user: dan tags: trunk)
13:45
Remove an unnecessary branch from exprAnalyze(), resulting in a small performance gain. (check-in: 3312be1d user: drh tags: trunk)
12:55
Small performance optimization in sqlite3WhereClauseClear(). (check-in: 080b35e6 user: drh tags: trunk)
12:34
More small performance optimizations for sqlite3WhereGetMask(). (check-in: 3de2c557 user: drh tags: trunk)
04:00
Small performance optimization in sqlite3WhereGetMask(). (check-in: 7edec54a user: drh tags: trunk)
02:22
Small performance enhancement for whereScanInit(). (check-in: ed84e124 user: drh tags: trunk)
01:30
Performance improvement in query planning. (check-in: ca59533b user: drh tags: trunk)
2021-12-01
21:07
Merge trunk fixes into the bloom-filter branch. (check-in: 0864bfbf user: drh tags: bloom-filter)
19:17
Check for foreign key constraint errors prior to returning the results from a RETURNING clause. See forum post 793beaf322. (check-in: a818ba2e user: drh tags: trunk)
17:46
Extensible shell builder changes in prep for actual extension load (check-in: 00c5af1f user: larrybr tags: cli_extension)
16:31
Add a Bloom filter to the automatic-index mechanism. (check-in: 50ac4de1 user: drh tags: bloom-filter)
11:03
Add the "static" qualifier to some internal functions in code for various SQLite extensions. (check-in: 8c986782 user: dan tags: trunk)
2021-11-30
23:00
Merge in 3.37 release (check-in: 15780cb2 user: larrybr tags: cli_extension)
22:57
Port recent improvements to extensible shell (check-in: bfa94f3d user: larrybr tags: cli_extension)
14:07
In the automatic index generator logic, be more precise about when a partial automatic index is allowed in order to capture more cases where it is legal to use a partial automatic index. (check-in: 664b461b user: drh tags: trunk)
2021-11-29
18:09
Merge in the proposed date/time function enhancements: (1) Add the unixepoch() function, (2) the 'auto' modifier and (3) the 'julianday' modifier. (check-in: 19c51b46 user: drh tags: trunk)
17:55
Bump the version number up to 3.38.0 in order to begin the next development cycle. (check-in: 8ad1fcaa user: drh tags: trunk)
17:23
Add the unixepoch() function and the 'auto' and 'julianday' modifiers. (Closed-Leaf check-in: 559fdc0a user: drh tags: unixepoch)
2021-11-28
19:54
Following a prior error, an ALWAYS() in sqlite3ExprCanBeNull() might be false. dbsqlfuzz 5dbec6678a20e7595a34dfdd869a3b9722b3ca43. (check-in: 4e207401 user: drh tags: trunk)
2021-11-27
15:12
Merge version 3.37.0 into the reuse-schema branch. (check-in: f83d50d5 user: drh tags: reuse-schema)
15:11
Merge version 3.37.0 into the begin-concurrent-pnu-wal2 branch. (check-in: 2171996a user: drh tags: begin-concurrent-pnu-wal2)
15:00
Merge version 3.37.0 into the wal2 branch. (check-in: 3425af62 user: drh tags: wal2)
14:56
Merge version 3.37.0 into the begin-concurrent-report branch. (check-in: 126d7a1d user: drh tags: begin-concurrent-report)
14:48
Merge version 3.37.0 into the begin-concurrent-pnu branch. (Closed-Leaf check-in: 910001f2 user: drh tags: begin-concurrent-pnu)
14:45
Merge version 3.37.0 into the begin-concurrent branch. (check-in: c5f2ad19 user: drh tags: begin-concurrent)
14:13
Version 3.37.0 (check-in: bd41822c user: drh tags: trunk, release, major-release, version-3.37.0)
12:03
Fix a harmless comment typo. (check-in: 7c567338 user: drh tags: trunk)
2021-11-26
20:26
Add platform "Darwin-arm64" to test/releasetest_data.tcl. (check-in: 1d5c9aac user: drh tags: trunk)
17:10
Improved defenses against integer overflow when computing the size of a memory allocations. No bugs were fixed here. But perhaps future bugs will be prevented. (check-in: eb878c01 user: drh tags: trunk)
15:08
Fixes to internal comments. No changes to code or documentation. (check-in: 1489b196 user: drh tags: trunk)
2021-11-24
21:16
Avoid splitting Failure-Detection test cases in wapptest.tcl. (check-in: 654e6cf8 user: dan tags: trunk)
11:33
Update Makefile.msc to support target "tcltest" in the same way as the autoconf build system. (check-in: 0f131b92 user: dan tags: trunk)
2021-11-23
22:28
Changes a test pattern for RBU so that it works regardless of whether newer TCL versions are used. (check-in: 5a9921c9 user: drh tags: trunk)
12:59
Fix a compiler warning in the dbserialize method of the TCL interface. (check-in: ba71d030 user: drh tags: trunk)
11:34
Exclude two recently added tests in where.test from valgrind runs. They fail due to the subtly different handling of real numbers under valgrind. (check-in: e842d208 user: dan tags: trunk)
2021-11-22
17:08
Merge trunk enhancements into the begin-concurrent-report-wal2 branch. (check-in: 9b2ffa84 user: drh tags: begin-concurrent-report-wal2)
17:01
Merge trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 8a9fad0f user: drh tags: begin-concurrent-pnu-wal2)
16:50
Omit wal mode tests in memdb1.test for builds and configurations that do not support wal mode. (check-in: 0f13c0d9 user: dan tags: trunk)
16:48
Omit wal mode tests in vacuum-into.test for builds and configurations that do not support wal mode. (check-in: 65de1763 user: dan tags: trunk)
16:47
Merge trunk enhancements into the wal2 branch. (check-in: 135133b7 user: drh tags: wal2)
16:43
Do not attempt to run the tests in alterfault.est with SQLITE_OMIT_ALTERTABLE builds. (check-in: 6f6f31c7 user: dan tags: trunk)
16:39
Merge the latest trunk enhancements into the begin-concurrent-report branch. (check-in: ddc11f55 user: drh tags: begin-concurrent-report)
16:27
Fix a typo in memdb1.test preventing tests from passing with -DSQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: eff4187c user: dan tags: trunk)
16:27
Merge the latest trunk enhancements into the begin-concurrent-pnu branch. (check-in: aa045e7b user: drh tags: begin-concurrent-pnu)
16:14
Merge the latest trunk changes into the begin-concurrent branch. (check-in: 8f3e6842 user: drh tags: begin-concurrent)
16:06
There are two possible error messages from stat-9.1, depending on compile-time options. Adjust the test case to accept either one. (check-in: 0f567b61 user: drh tags: trunk)
16:05
Merge recent trunk enhancements into the reuse-schema branch. (check-in: d08832cb user: drh tags: reuse-schema)
13:59
In fuzzcheck, improve the defense against long delays due to rogue busy_timeout macros in fuzzer-generated scripts. (check-in: 3024d7ca user: drh tags: trunk)
13:35
Fix the build for SQLITE_OMIT_CTE. (check-in: d7ef96ba user: drh tags: trunk)
12:59
In the previous check-in, do not overwrite the SQLITE_CORRUPT signal with an SQLITE_OK before exiting fts3auxNextMethod(). (check-in: 396688ae user: drh tags: trunk)
08:12
Fix a crash in the fts3aux code that could occur handling corrupt records. (check-in: cdcd65b8 user: dan tags: trunk)
2021-11-20
13:30
New test cases for STRICT and NOT NULL in PRIMARY KEY. (check-in: 0eafbc2f user: drh tags: trunk)
2021-11-19
19:11
Small performance increase and size reduction for sqlite3ExprCompare(). This change also handles some corner cases without the need for ALWAYS(). (check-in: d814ba6e user: drh tags: trunk)
14:02
Fix a benign data race in os_unix.c that might trouble tsan and similar tools. (check-in: 95806ac1 user: dan tags: trunk)
2021-11-18
20:56
Minor tweaks to the way auxiliary tools are built, to make it easier to customize the builds without having to alter the code. (check-in: 90b06b6f user: drh tags: trunk)
20:11
Fix a performance regression in rtree introduced by the previous commit. (check-in: 7f42b8e1 user: dan tags: trunk)
19:15
Fix a problem slowing down the handling of == constraints in the rtree module. (check-in: 509027e9 user: dan tags: trunk)
15:40
Improve CSV quoting in the CLI using the strstr() function. (check-in: b7927bf9 user: drh tags: trunk)
13:25
Fix an obscure problem associated with quoting of CSV output in the CLI. (check-in: 38a9b660 user: drh tags: trunk)
2021-11-17
14:21
Apply the begin-concurrent-report patch to the wal2 branch. (check-in: 8eef8782 user: dan tags: begin-concurrent-report-wal2)
2021-11-16
13:36
Fix a problem causing an OOM within an ALTER TABLE ADD COLUMN command that adds a column with a CHECK constraint to go unreported. (check-in: a33f5e93 user: dan tags: trunk)
2021-11-15
19:10
Strengthen the sticky-CORRUPT idea of check-in [3feb0f1c3840904d] by automatically changing the first COMMIT after an SQLITE_CORRUPT error into a ROLLBACK. (check-in: bd66ab8a user: drh tags: trunk)
18:50
Small performance optimization in sqlite3VdbeHalt(). (check-in: 9e1ecf43 user: drh tags: trunk)
14:11
Fix a problem causing the count(*) optimization to be misapplied in some cases where an aggregate sub-query uses a count() expression that is aggregated against the outer query. (check-in: e3091727 user: dan tags: trunk)
13:22
Improved context shown for the "ABORT-due-to-error" output line when using "PRAGMA vdbe_debug=on" in an SQLITE_DEBUG build. (check-in: c7776369 user: drh tags: trunk)
01:45
Fix a faulty JSON assert() added 30 days ago by check-in [7b8ea2298927fd34]. dbsqlfuzz f30366e7b02562398a387ddcc681422fd4251190. (check-in: 0e0c23fc user: drh tags: trunk)
2021-11-12
14:39
Improved handling of OOM while reallocating a column name to add type information. dbsqlfuzz 5a195b4233649e49e0aa34f1b743ca192d85b198 (check-in: 5995dd4d user: drh tags: trunk)
2021-11-11
23:52
Make sure the rowid value returned by the VUpdate opcode is always initialized. (check-in: 150b5be5 user: drh tags: trunk)
16:26
Remove a NEVER() that was add yesterday. The fuzzer found a new test case to make it happen. (check-in: 83e6ac71 user: drh tags: trunk)
11:23
New assert() statements to help prove correct usage of VdbeCursor objects. (check-in: 7cee62f7 user: drh tags: trunk)
2021-11-10
15:23
Load new test cases into test/fuzzdata8.db (check-in: 8b53ffe9 user: drh tags: trunk)
10:59
Make SQLITE_CORRUPT sticky: If a CORRUPT error is returned, all subsequent write statements within the same transaction also fail early with SQLITE_CORRUPT. (check-in: 3feb0f1c user: drh tags: trunk)
2021-11-09
15:36
Merge all recent trunk changes into the begin-concurrent-report branch. (check-in: 122f4a76 user: drh tags: begin-concurrent-report)
15:26
Merge all recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: b9802d0b user: drh tags: begin-concurrent-pnu)
15:18
Merge all recent trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 07bc1339 user: drh tags: begin-concurrent-pnu-wal2)
15:06
Merge all recent trunk enhancements into the begin-concurrent branch. (check-in: 2d0c8f30 user: drh tags: begin-concurrent)
14:52
Merge the walIndexPage() enhancement from trunk into the begin-concurrent branch. (check-in: ff223839 user: drh tags: begin-concurrent)
14:36
Merge all trunk enhancements prior to the walIndexPage() fix into the begin-concurrent branch. (check-in: 6603f005 user: drh tags: begin-concurrent)
14:00
Merge recent trunk enhancements into the reuse-schema branch. (check-in: 748bce4c user: drh tags: reuse-schema)
13:52
Merge the latest trunk enhancements into the wal2 branch. (check-in: 0894f595 user: drh tags: wal2)
13:31
Change test case error message text to match the current implementation. (check-in: de10795a user: drh tags: trunk)
01:48
Fix lempar.c so that Lemon can compile with NDEBUG defined. Forum post f331adca0b (check-in: ba4fb518 user: drh tags: trunk)
2021-11-08
23:24
Refactor the code that figures out which SELECT in a cascade of nested queries a particular aggregate function belongs to. This fixes the problem reported by forum post c7cc2aa3546e39c1. New test cases in dbsqlfuzz and th3. (check-in: 74aec5dd user: drh tags: trunk)
19:35
Fix the zeroblob() function and related APIs so that they work with SQLITE_OMIT_INCRBLOB builds. (check-in: bc401a75 user: dan tags: trunk)
16:38
Add assert()s that verify that cursor numbers on subqueries are always greater than outer cursor numbers. Except, this is not always true in the presence of query flattening. We might need to relax that constraint. This branch will probably become a dead-end. For now it is saved for reference. (Closed-Leaf check-in: 6f436966 user: drh tags: well-ordered-cursors)
15:46
Fix an assert() in memdbTruncate() that could fail when processing a corrupt database. (check-in: b1e29298 user: dan tags: trunk)
2021-11-07
23:33
Ensure that the window function rewrite does not leave the parse tree in an invalid state that might cause problems downstream before the error is recognized and unwinds the stack. Also take steps such that an invalid parse tree does not cause problems even if it goes unrecognized. Forum post 398e9d5aa9. (check-in: 0f9fc6b6 user: drh tags: trunk)
2021-11-06
20:25
Add ALWAYS() to a branch made unreachable by the previous check-in. (check-in: 0dc963f6 user: drh tags: trunk)
18:22
Return an error if an attempt is made to drop an eponymous virtual table. (check-in: 889dea52 user: dan tags: trunk)
16:46
Merge further changes from trunk into this branch. (check-in: 700876b7 user: dan tags: wal2)
16:36
Merge change [6979efbf07d93e7a] from trunk to this branch. (check-in: 2bb2448d user: dan tags: wal2)
16:10
Merge changes from trunk into this branch. (check-in: 52667bce user: dan tags: wal2)
11:58
Add the rbu_exclusive_checkpoint query parameter to RBU. (Leaf check-in: c15806a4 user: drh tags: reuse-schema-3.36)
10:59
Avoid accessing the sqlite3_module.xShadowName field if (sqlite3_module.iVersion<3). (check-in: a024764c user: drh tags: trunk)
07:08
Avoid accessing the sqlite3_module.xShadowName field if (sqlite3_module.iVersion<3). (check-in: b1fc3de8 user: dan tags: reuse-schema)
2021-11-05
23:32
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: ca09148e user: drh tags: reuse-schema)
22:35
Add the rbu_exclusive_checkpoint query parameter to RBU. (check-in: c2d33ea9 user: drh tags: trunk)
22:23
New test cases for rbu_exclusive_checkpoint query parameter. (Closed-Leaf check-in: 00285ff1 user: drh tags: rbu_exclusive_checkpoint)
19:52
Update an assert() statement to conform to the changes of the previous check-in. (check-in: b5c668ca user: drh tags: trunk)
19:36
Add the SQLITE_OPEN_EXRESCODE flag for sqlite3_open_v2(). (check-in: ff9373f4 user: drh tags: trunk)
19:04
If the target database URI passed to sqlite3rbu_open() is contains the option "rbu_exclusive_checkpoint=1", hold an exclusive lock for the duration of any incremental checkpoint operation. (check-in: 7cb77296 user: dan tags: rbu_exclusive_checkpoint)
14:13
Update sqllimits1.test to account for recent changes to SQL function strftime(). (check-in: 7bba415f user: dan tags: trunk)
12:34
Use the FTS_CORRUPT_VTAB macro rather than a direct call to sqlite3Fts3Corrupt() in [2fad2a89527757b3] so that the build works in all cases. (check-in: 029c59cd user: drh tags: trunk)
11:52
Remove an incorrect NEVER() reported at forum post 5bbabfb7ce. Also use this opportunity to improve the isSimpleCount() function with better formatting, an expanded header comment, and some extra assert() and textcase() macros. (check-in: 2927185b user: drh tags: trunk)
11:26
Fix vacuum3.test so that it works with SQLITE_OMIT_ALTERTABLE builds. (check-in: 07cca2fa user: dan tags: trunk)
11:18
Update a test case in sqllimits1.test to account for the updated implementation of SQL function strftime() (check-in: f474ac37 user: dan tags: trunk)
10:43
Fix a couple of problems with test scripts and SQLITE_OMIT_ALTERTABLE builds. (check-in: 3ab5414d user: dan tags: trunk)
2021-11-04
18:04
Fix a crash that could occur in fts3 when processing a corrupt database. (check-in: 2fad2a89 user: dan tags: trunk)
16:25
Fix corruptN.test so that it works with SQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: f60e05bd user: dan tags: trunk)
16:15
Update a test case in corruptN.test to account for the fact that if writable_schema=1 is set, no error is raised if a DELETE statement finds that an index entry is missing ([19e56291a7344c7a]). (check-in: a90c5f0b user: dan tags: trunk)
16:03
Have wapptest.tcl avoid attempting to build fuzztest for SQLITE_OMIT_VIRTUALTABLE configurations. (check-in: 53ee208d user: dan tags: trunk)
15:17
Fix typo in the sqlite3ext.h file. forum post 63802db4ce (check-in: d4a48ee0 user: drh tags: trunk)
14:04
Show the preferred schema table names in the output of "PRAGMA table_list". (check-in: 9147390d user: drh tags: trunk)
11:34
Change a branch made unreachable by the previous check-in into an assert(). (check-in: 685a987c user: drh tags: trunk)
00:51
First the shadow table mechanism so that it works even if the shadow table comes before the virtual table in the sqlite_schema table, as can happen after a VACUUM. (check-in: 005a8642 user: drh tags: trunk)
2021-11-03
16:35
Remove two incorrect assert() statements added by a check-in from earlier today. (check-in: 3206edff user: drh tags: trunk)
15:59
Improved the error message that results when a schema parse fails after ALTER TABLE ADD COLUMN. (check-in: b007a39d user: drh tags: trunk)
14:02
Fix INSERT into STRICT table with STATIC generated columns. (check-in: 24285d91 user: drh tags: trunk)
12:50
Add the --strict option to speedtest1.c (check-in: a247b5d8 user: drh tags: trunk)
11:43
Fix an issue in PRAGMA integrity_check associated reporting NULL values in a NOT NULL column of type ANY in a STRICT table. (check-in: 5dff1f66 user: drh tags: trunk)
2021-11-02
22:24
Correctly handle SeekScan on an IN operator of the middle term of an index when the right-most term is a range constraint. Fix for ticket [5981a8c041a3c2f3]. (check-in: aa24660e user: drh tags: trunk)
20:52
Proposed fix for a problem associated with OP_SeekScan that results in an incorrect answer. See ticket [5981a8c041a3c2f3]. (Closed-Leaf check-in: 266e9cba user: drh tags: seekscan-fix-20211102)
17:55
Ensure that ALTER TABLE RENAME recognizes OOM errors while parsing dependent triggers and handles them appropriately. dbsqlfuzz 53e245eee15d3f19639d773048aa955c30708785. (check-in: 1d9004cd user: drh tags: trunk)
14:01
Fix a minor memory leak in the shell tool. Omit running fuzztest as part of the Device-One release test configuration, as it is now incompatible with SQLITE_OMIT_VIRTUALTABLE. (check-in: 4d70f27b user: dan tags: trunk)
11:24
Add the --remove and --glob options to the .archive command in the CLI. (check-in: ea7b12cd user: drh tags: trunk)
11:09
Add #ifdef logic to os_unix.c so that it builds with SQLITE_OMIT_WAL defined. (check-in: 948c2cb2 user: dan tags: trunk)
10:54
Fix a minor typo in a comment. (Closed-Leaf check-in: 06a5bf43 user: drh tags: archive_remove)
10:47
Add recent dbsqlfuzz cases to test/fuzzdata8.db. (check-in: 8c3f2536 user: drh tags: trunk)
07:32
Fix a broken assert() in fts5 that could fail if the snippet() function were used with a query phrase containing 0 tokens on a detail=none or detail=col table. (check-in: 0a5b94b9 user: dan tags: trunk)
00:18
Add globbing option to shell's .archive command. (check-in: 13fb74ac user: larrybr tags: archive_remove)
2021-11-01
22:33
zap trailing whitespace (check-in: f2a908e9 user: larrybr tags: archive_remove)
22:30
Add a test for .ar -r and fix a use-of-uninitialized-variable bug (check-in: 978d5ed4 user: larrybr tags: archive_remove)
17:22
Add --remove subcommand to shell's .archive command (check-in: 23525449 user: larrybr tags: archive_remove)
12:53
The VVA() macro in json1.c must be active during SQLITE_COVERAGE_TEST because it affects the outcome of testcase() macros. (check-in: 92c3d253 user: drh tags: trunk)
2021-10-30
20:22
Add the sqlite3_autovacuum_pages() interface. (check-in: ca2703c3 user: drh tags: trunk)
18:17
Fix an incorrect assert() statement in sqlite3GenerateConstraintChecks(). dbsqlfuzz 4190cff310aeab359a55f354e560db95d3a6f47d (check-in: 623c0d08 user: drh tags: trunk)
17:58
Fix a memory leak in test code on this branch. (Closed-Leaf check-in: 60cd9da9 user: dan tags: autovacuum-pages-callback)
17:30
Merge trunk changes into this branch. (check-in: 638c1b0c user: dan tags: autovacuum-pages-callback)
2021-10-29
16:19
Reorder a test add earlier today to OP_Transaction for easier testing. (check-in: 8ba73b3c user: drh tags: trunk)
14:04
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 7623132e user: drh tags: reuse-schema)
13:10
Allow "VACUUM INTO" to change the page_size of a database even if the original database is in WAL mode. Enhancement suggested by forum post 033f2c9d1f. (check-in: efc7e8c9 user: drh tags: trunk)
12:29
Add pragmas "multiplex_enabled", "multiplex_chunksize", and "multiplex_filecount" to the multiplexer implementation. (check-in: 39c5e80d user: drh tags: trunk)
09:59
Fix the OP_Transaction opcode so that if an error other than SQLITE_SCHEMA occurs first, the original error is not overwritten by SQLITE_SCHEMA. dbsqlfuzz 85bf7e262017c6c7bddb03ff6d8541511985d36c. (check-in: 5374226d user: drh tags: trunk)
2021-10-28
19:49
Fix .import -skip issue reported at https://sqlite.org/forum/forumpost/4c0816c24fc9d16f?t=h (check-in: 3aadbe17 user: larrybr tags: trunk)
12:07
Minor changes to make it easier for static analyzers to reason about the code. (check-in: ba4104aa user: drh tags: trunk)
00:09
Ensure that the WAL code correctly handles all possible outcomes from the walIndexPage() routine. (check-in: 6979efbf user: drh tags: trunk)
2021-10-27
23:55
Ensure that all possible outcomes for walIndexPage() are accounted for by callers. (Closed-Leaf check-in: 12715c6b user: drh tags: wal-tuneup)
20:23
Avoid the 1-based indexing on the WalHashLoc.aPgno[] array. Make it 0-indexed instead. (check-in: 28f5f709 user: drh tags: wal-tuneup)
19:57
Improve the comment on walIndexPage() to more accurately describe the post-conditions. (check-in: b619e936 user: drh tags: wal-tuneup)
19:05
New assert()s to help prove correctness in sqlite3VdbeMemExpandBlob(). (check-in: 7238d580 user: drh tags: trunk)
17:15
Fix the build for various the OMIT-everything compile-time option. No impact on regular builds. (check-in: 94780571 user: drh tags: trunk)
15:19
Fix a harmless compiler warning in memdb.c. (check-in: 22fdc658 user: drh tags: trunk)
15:16
Fix a harmless compiler warning in fuzzcheck. (check-in: 1cfb7e8a user: drh tags: trunk)
13:16
Change fuzzcheck so that it accepts binary dbsql files. (check-in: c87a2426 user: drh tags: trunk)
12:05
Add the --script option to fuzzcheck. (check-in: 5a9676bd user: drh tags: trunk)
2021-10-26
22:36
Enhance fuzzcheck so that if an argument is an ordinary disk file (not a database) it is read in and processed as a script. (check-in: 978dc89d user: drh tags: trunk)
17:36
Improved CLI error messages. (check-in: 8443a272 user: drh tags: trunk)
16:57
Add phase and error number to CLI error messages. (Closed-Leaf check-in: 7f87a298 user: larrybr tags: detail_cli_errors)
10:16
Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB. (check-in: 0e79584a user: drh tags: reuse-schema-3.36)
10:02
Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB. (Leaf check-in: e4662603 user: drh tags: branch-3.36)
09:53
Fix the busy_timeout restriction on fuzzcheck so that it can deal with hexadecimal integer literals. (check-in: 4b41535b user: drh tags: trunk)
2021-10-25
18:51
Remove a NEVER() in rebuildPage that is reachable, as is demonstrated by dbsqlfuzz case beac09b2756b5d285aa68f9737fdb06c972f159a. (check-in: ac3f6178 user: drh tags: trunk)
12:54
Do not allow large busy_timeout pragmas in fuzzcheck, as they accomplish nothing other than making the tests unnecessarily slow. (check-in: fba441bf user: drh tags: trunk)
2021-10-23
22:14
Improve the authorizer filter for ATTACH on fuzzcheck. (check-in: 87d49e80 user: drh tags: trunk)
22:11
Provide an assert() to fire for applications that should never open or create a disk-based database file. (check-in: 5218ac78 user: drh tags: trunk)
20:32
The pager now remembers when a VFS reports that a database file is SQLITE_OPEN_MEMORY and treats that database as an in-memory database. (check-in: 967b6562 user: drh tags: trunk)
17:46
Fix the memdb VFS so that it does not allow mmap if it is resizable, and so that it never opens a disk file for any reason. (check-in: 5ee14715 user: drh tags: trunk)
11:30
Update fuzzcheck so that it allows ATTACH statements with memdb filenames. (check-in: 31671237 user: drh tags: trunk)
2021-10-22
11:17
Fix harmless compiler warnings. Improve the independence of some TCL tests. (check-in: 1a038242 user: drh tags: trunk)
2021-10-21
20:08
Enable FTS5 for fuzzcheck. (check-in: 559ba38b user: drh tags: trunk)
19:48
Fix the previous check-in so that it works with virtual tables that add new shadow tables the first time they are referenced. (check-in: f73b499e user: drh tags: trunk)
17:01
Fix the new "table_list" pragma so that it shows the correct number of columns for views and virtual tables even when the object has not been previously used. (check-in: fb0ed8c5 user: drh tags: trunk)
14:37
Merge all recent trunk changes into the begin-concurrent-report branch. (check-in: 0770f320 user: drh tags: begin-concurrent-report)
14:27
Merge trunk enhancements into begin-concurrent-pnu branch. (check-in: 4d972744 user: drh tags: begin-concurrent-pnu)
14:24
Merge trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 1958e6fa user: drh tags: begin-concurrent-pnu-wal2)
14:13
Merge recent trunk enhancements into begin-concurrent branch. (check-in: ae4eed0b user: drh tags: begin-concurrent)
14:10
Merge recent trunk enhancements into the reuse-schema branch (check-in: cd15fc3c user: drh tags: reuse-schema)
14:01
Merge recent trunk enhancements into the wal2 branch. (check-in: 7e2bc836 user: drh tags: wal2)
2021-10-20
20:22
Fix an incorrect JSON assert() that was added 5 days ago by check-in [7b8ea2298927fd34]. (check-in: e162da3a user: drh tags: trunk)
18:17
Fix the finish_test proc in tester.tcl so that it works for Windows test builds. Fix for problem introduced yesterday by check-in [3658417bf300e004]. (check-in: f52b84e6 user: drh tags: trunk)
17:58
Enabled the testcase() macros under SQLITE_DEBUG. (check-in: 0ae8dd13 user: drh tags: trunk)
13:48
Fix a problem with the CARRAY extension when the SQLITE_TRANSIENT destructor is used for non-text arrays. Forum thread 48e525b266. (check-in: cac910c1 user: drh tags: trunk)
12:52
Ensure that valid bytecode is generated for RETURNING clauses even if the schema is corrupt and PRAGMA writable_schema is set so that the schema parse returns no errors. dbsqlfuzz cb21825bdcd6fdb4b686ce4f6e2f45e781d2f220 (check-in: 69911715 user: drh tags: trunk)
11:40
Fix a case in the fts3 offsets() function where a corrupt database record could lead to dereferencing an uninitialized pointer. (check-in: 7b7d31a6 user: dan tags: trunk)
2021-10-19
19:26
Merge multi-module test logic improvements from trunk. (check-in: e00a44ac user: drh tags: autovacuum-pages-callback)
18:59
Improved cleanup in finish_test so that specifying multiple test modules on the "./testfixture" command-line is more likely to work. (check-in: 3658417b user: drh tags: trunk)
18:53
Fix permutations.test so that it can be called with a test file pattern that uses square brackets. (check-in: 55b62418 user: dan tags: trunk)
18:40
Update test scripts to unregister the test devsim VFS after it is used. (check-in: bb0e18ae user: dan tags: trunk)
18:00
Merge trunk enhancements into the autovacuum-pages-callback branch. (check-in: c26c9e50 user: drh tags: autovacuum-pages-callback)
2021-10-17
10:31
Remove an incorrect assert() added 4 days ago by check-in [9e2f06b84f994277]. Replace it with a testcase() macro. (check-in: 03dff719 user: drh tags: trunk)
2021-10-16
19:50
Fix a harmless scan-build warning in FTS5. (check-in: 0bf42bb5 user: drh tags: trunk)
18:53
Add NEVER() macros on branches that become unreachable due to the previous check-in. (check-in: 5fa272cc user: drh tags: trunk)
17:09
Have the btree layer detect when a "DELETE FROM tbl" statement is clearing a database page that is still in use (due to database corruption) and report SQLITE_CORRUPT. (check-in: a6fda39e user: dan tags: trunk)
13:59
Fix an assert() in fts5 that could fail with a corrupt database. (check-in: e9997985 user: dan tags: trunk)
2021-10-15
23:02
Demostrate a prototype sqlite3_autovacuum_pages() interface. (check-in: bb6f2b8b user: drh tags: autovacuum-pages-callback)
17:06
Protect the WhereTerm.u union using nearby assert()s and/or branches. (check-in: 8a56de5b user: drh tags: trunk)
16:15
Protect the JsonNode.u union using nearby assert()s and branches. (check-in: 7b8ea229 user: drh tags: trunk)
2021-10-14
21:13
Fix a signed integer overflow in fts5 leading to a segfault that could occur when processing corrupt records. (check-in: 69a3ff0c user: dan tags: trunk)
19:28
Protect access to the WhereLoop.u union using nearby assert()s and branches. (check-in: bdd84021 user: drh tags: trunk)
17:30
Update requirement marks. No changes to code. (check-in: 3a6887a5 user: drh tags: trunk)
2021-10-13
20:29
New tests added to test/fuzzdata8.db. (check-in: e944d717 user: drh tags: trunk)
20:11
Convert an assert() into a corruption detection branch in sqlite3BtreePayload(). dbsqlfuzz 848171b5d58f6e4a62257466e0e7de16696d4f02. (check-in: f038d7f9 user: drh tags: trunk)
15:09
Attempt to clarify the sqlite3_open_v2() documentation so that people do not come away with the idea that SQLITE_OPEN_EXCLUSIVE is an allowed bit value for the 3rd argument bitmask. (check-in: 1310a126 user: drh tags: trunk)
14:45
Back out the SQLITE_OPEN_EXCLUSIVE changes because it does not work on Windows and it does not work always on unix. (check-in: d008ad79 user: drh tags: trunk)
14:01
Remove a NEVER() macro in ALTER TABLE due to an obscure case of a nested CTE inside an UPDATE within a trigger. dbsqlfuzz e89174cbfad2d904f06b5e24df0a22510b6a1c1e (check-in: 9e2f06b8 user: drh tags: trunk)
13:00
The sqlite3_result_text() routine (and similar) should record OOM errors in addition to SQLITE_TOOBIG errors. dbsqlfuzz (check-in: eca43436 user: drh tags: trunk)
2021-10-12
22:55
Fix the group_concat() inverse function implementation so that it correctly handles BLOB inputs when database text encoding is UTF16. (check-in: 38a1326b user: drh tags: trunk)
18:05
Fix an incorrect assert() in SQLITE_ENABLE_SORTER_REFERENCES logic - a new assert() introduced 5 days ago by [87e2f5eb436fc448]. (check-in: 7cfc839e user: drh tags: trunk)
11:30
Fix a use-after-free in fts3 that could follow an optimize() in the middle of a SELECT statement when the hash table is non-empty. (check-in: 8124b2ce user: dan tags: trunk)
02:26
Fix another harmless compiler warning for MSVC. (check-in: b54c0db0 user: mistachkin tags: trunk)
02:17
Fix harmless compiler warnings in the debug build for MSVC. (check-in: 1ceb73f3 user: mistachkin tags: trunk)
2021-10-11
15:54
Fail a schema parse if a virtual table or view has a positive integer rootpage. (check-in: 02656760 user: drh tags: trunk)
15:21
Use the IsOrdinaryTable() macro, not a test of tnum, to distinguish tables from views and virtual tables. (check-in: 6189b780 user: drh tags: trunk)
09:48
New test cases added to test/fuzzdata8.db (check-in: 2e475fec user: drh tags: trunk)
09:39
Fix an over-zealous assert(). (check-in: e2bb82a4 user: drh tags: trunk)
2021-10-09
16:00
Detect any attempt to use an INDEXED BY clause on a CTE and report an error. (check-in: 35a9de2c user: drh tags: trunk)
2021-10-08
18:15
Further to the previous check-in, remove the "harmless()" macro definition as it is no longer used. (check-in: b8c9a546 user: drh tags: trunk)
18:12
Remove a "harmless()" macro that is no longer relevant. (check-in: 87c357c6 user: drh tags: trunk)
16:39
Add support for "PRAGMA writable_schema=RESET". (check-in: a51b305b user: drh tags: trunk)
16:15
Improved detection of database corruption. (check-in: c7fae46c user: drh tags: trunk)
10:25
Minor improvements to comments in the data structure definitions. No changes to code. (check-in: e77ac405 user: drh tags: trunk)
2021-10-07
23:04
New assert() statements to protect the u1 and u2 unions of SrcList. (check-in: 9b91fbcf user: drh tags: trunk)
20:46
Protect access to the Expr.y union using nearby assert()s and branches. (check-in: 87e2f5eb user: drh tags: trunk)
19:27
Break the tcl release tests into smaller units to better take advantage of multi-processor systems. (check-in: 03cef1c3 user: dan tags: trunk)
17:43
Protect all accesses to the Expr.x union using nearby assert()s and branches. (check-in: 8eaa1d4a user: drh tags: trunk)
14:19
Fix an incorrect assert() on PRAGMA table_xinfo added by the previous check-in. (check-in: f85cb287 user: drh tags: trunk)
13:40
Protect all accesses to the FuncDef.u and Expr.u unions using nearby assert()s or branches. (check-in: 9af863f0 user: drh tags: trunk)
12:11
Protect every access to the Table.u union using a nearby assert() or branch. (check-in: 50e08338 user: drh tags: trunk)
2021-10-06
10:36
Fix a macro typo introduced by [5da112c02f9e8d0b] that prevented coverage tests from working. (check-in: 566e6974 user: drh tags: trunk)
10:04
One corner case for the fix at [8b24c177061c3836] was not quite right. Caught overnight by both OSSFuzz and dbsqlfuzz and repaired here. (check-in: 79e90a82 user: drh tags: trunk)
2021-10-05
22:51
Fix a harmless typo in a comment. forum post 218c116fdf. (check-in: 8ca0c7d8 user: drh tags: trunk)
18:59
Fix harmless compiler warnings, mostly caused by prior efforts to get static analyzers to run without warnings. (check-in: cddd3b38 user: drh tags: trunk)
18:33
Fix more harmless static-analyzer warnings. As of this check-in, no warnings are generated by scan-build for clang-6 or clang-10. (check-in: a7835bea user: drh tags: trunk)
17:41
Fixes for harmless static-analyzer warnings. This also makes the code easier for humans to understand. (check-in: 36177a62 user: drh tags: trunk)
15:30
Fix separate compilation of json1.c, which was apparently broken by check-in [32f33f356931242b]. (check-in: 0c7ece67 user: drh tags: trunk)
13:00
Small change to FTS5 to help static analyzers understand that it is not dereferencing a NULL pointer. (check-in: 0d853df1 user: drh tags: trunk)
12:34
Ensure that geopoly does not invoke sqlite3_result_error_nomem() with a NULL pointer. (check-in: 2483310d user: drh tags: trunk)
11:11
Simplifications to the preupdate_hook logic to make it easier to reason about, and reduce static analyzer warnings. (check-in: 91e3b98e user: drh tags: trunk)
2021-10-04
22:34
Fix harmless static-analyzer warnings. (check-in: 32f33f35 user: drh tags: trunk)
18:59
Merge static-analyzer warning fixes and the new SQLITE_OMIT_AUXILIARY_SAFETY_CHECKS macro. (check-in: 5da112c0 user: drh tags: trunk)
18:57
Some #defines somehow failed to get set correctly in the previous check-in. Fixed here. (Closed-Leaf check-in: 15bbdf9a user: drh tags: fix-warnings)
18:21
Fix harmless static analyzer warnings in sessions, rtree, fts3 and fts5. Add the -DSQLITE_OMIT_AUXILIARY_SAFETY_CHECKS compile-time option to cause ALWAYS() and NEVER() macros to be omitted from the build. (check-in: 1c67f957 user: drh tags: fix-warnings)
16:14
Fix harmless static analyzer warnings in auxiliary build tools, mkkeywordhash.c and lemon.c. No changes to the SQLite core. (check-in: f2f279b2 user: drh tags: trunk)
15:08
Fix harmless static analyzer warnings. (check-in: 1ebcde72 user: drh tags: trunk)
13:30
The pragma_table_list virtual table should have only one "schema" column. (check-in: 886feffa user: drh tags: trunk)
13:18
Fix harmless static analyzer warnings. (check-in: 6604a085 user: drh tags: trunk)
12:16
Merge recent trunk changes into the begin-concurrent-report branch. (check-in: 71b10294 user: drh tags: begin-concurrent-report)
12:09
Merge recent trunk enhancements into begin-concurrent-pnu branch. (check-in: 35ad7bc6 user: drh tags: begin-concurrent-pnu)
12:02
Merge recent trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: bce02eaa user: drh tags: begin-concurrent-pnu-wal2)
11:54
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 4f5ef7aa user: drh tags: begin-concurrent)
11:49
Merge recent trunk enhancements into the reuse-schema branch. (check-in: 64234c5c user: drh tags: reuse-schema)
11:44
Merge recent trunk enhancements into the wal2 branch. (check-in: 127173e0 user: drh tags: wal2)
11:10
Fix query plans created by whereShortCut() so that they always check transitive constraints that drive an index. The is analogous to the [f1f9b5de3c59489b] check-in, just for whereShortCut() rather than the full query planner. Fix for the issue described by forum post a65cacbf5e1c41ba. (check-in: 8b24c177 user: drh tags: trunk)
2021-10-03
22:03
In CLI, ensure correct line-accumulation state whenever line(s) are dumped or processed. And test this. (check-in: be211a9c user: larrybr tags: trunk)
00:12
Add the sqlite3ResultStrAccum() internal interface to simplify the the implementation of functions that return strings. (check-in: e548e929 user: drh tags: trunk)
2021-10-02
18:22
Try to fix a harmless static-analyzer warning in sqlite3BtreeTransferRow(). (check-in: 5906a015 user: drh tags: trunk)
17:46
Fix a harmless static-analyzer warning in sqlite3ExprCode(). (check-in: 918c22e8 user: drh tags: trunk)
17:34
Remove an unnecessary static buffer from sqlite3VdbeExpandSql(). (check-in: 953a33b7 user: drh tags: trunk)
17:12
Make the sqlite3_filename_xxxx() interfaces robust against NULL pointer arguments, even though the documentation says the behavior is undefined in that case. (check-in: dd64c60b user: drh tags: trunk)
16:39
Fix harmless compiler warnings (check-in: bdb9dc8a user: drh tags: trunk)
15:34
Fix CLI line processing. (back to start state after meta-command executes) (check-in: 928c2a34 user: larrybr tags: trunk)
2021-10-01
22:48
Fix a problem with group_concat() when it is used as a window function with a sliding window, as described by forum thread ccf3b5673ba852cf. (check-in: f47f7f78 user: drh tags: trunk)
21:01
Fix harmless compiler warnings. (check-in: 94b59691 user: drh tags: trunk)
20:39
Change things so that SQLITE_OMIT_VIRTUALTABLE implies SQLITE_OMIT_ALTER_TABLE. (check-in: 2f7c946c user: dan tags: trunk)
17:06
Fix a potential write outside of array bounds in the --hexdb decoder of the CLI when given corrupt input. (check-in: c7fdd775 user: drh tags: trunk)
15:05
Fix a buffer overread in fts5 that could occur when processing an "ORDER BY rowid DESC" query against corrupt database records. (check-in: fe098a93 user: dan tags: trunk)
02:45
Remove unreachable branches in the fixed group_concat() code. (Closed-Leaf check-in: 8bd721c2 user: drh tags: group_concat-fix-legacy)
02:16
Merge updates from trunk (check-in: 35351371 user: drh tags: group_concat-fix-legacy)
00:25
Fixes to the version of "varsep" group_concat so that (1) it builds under separate compilation and (2) omits tabs in source code and (3) runs faster than trunk. This variant of the group_concat_varsep branch might be preferred over the tip because it preserves (undocumented) legacy behavior about the position of separators relative to terms. (check-in: 04399cf9 user: drh tags: group_concat-fix-legacy)
2021-09-30
21:42
Adjust 3 query result expectations to reflect changed group_concat() behavior with varying separator. (Closed-Leaf check-in: 86f9c07a user: larrybr tags: group_concat_varsep)
18:42
Fix a problem with view handling in SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 6e791a24 user: dan tags: trunk)
17:39
Fix rtreedoc.test so that it works with SQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: a300adc2 user: dan tags: trunk)
17:20
Simplify windowed group_concat() by allowing a change in undocumented behavior (fails some new tests) (check-in: 9d8e6167 user: larrybr tags: group_concat_varsep)
10:47
Update a test case in rtreedoc.test to account for the fact that release builds generate fewer VM instructions than debug builds. (check-in: 7d16b302 user: dan tags: trunk)
2021-09-29
20:17
Add NEVER() macros on branches that are not reachable since [a0df216f7c3f8963]. (check-in: 5d771f35 user: drh tags: trunk)
19:18
Fix a typo in altertab3.test. (check-in: 18d38b13 user: dan tags: trunk)
19:15
Have the dbstat module arrange things internally so that there are 256 addressable bytes following each page buffer. This way, small buffer overreads caused by corrupt database pages do not lead to undefined behaviour. (check-in: c4c705ab user: dan tags: trunk)
18:33
Fix another problem with ALTER TABLE and vector UPDATE statements within triggers. (check-in: a0df216f user: dan tags: trunk)
16:38
Add new test file rtreedoc3.test. (check-in: 54604869 user: dan tags: trunk)
16:35
Sync w/trunk (check-in: a4c18b2f user: larrybr tags: group_concat_varsep)
14:14
Add extra tests for the group_concat() fix on this branch. (check-in: 3d148615 user: dan tags: group_concat_varsep)
14:01
Improved testability of changes from check-in [255b0eeed113d83b]. (check-in: bbfd083c user: drh tags: trunk)
13:36
Fix an out-of-bounds read in fts5 that could occur when processing corrupt records. (check-in: 9bbc01fb user: dan tags: trunk)
00:32
Get group_concat() to handle varying separator lengths when windowing (check-in: 98e0f2bf user: larrybr tags: group_concat_varsep)
2021-09-28
10:44
Fix a potential ALTER TABLE problem with expressions like ( (<sub-select>) IN () ). (check-in: df0d7e36 user: dan tags: trunk)
2021-09-27
17:11
Have the dbstat virtual table take a copy of each page buffer that it traverses instead of just a reference to the page-cache object. This avoids problems if an error causes transaction rollback while a dbstat cursor is open. dbsqlfuzz crash-417224040fee04f0f0e62b70265c518893b08769. (check-in: 6ab25f8b user: dan tags: trunk)
15:44
Fix a problem in ALTER TABLE causing table or column references in sub-selects ton the RHS of a vector SET clause in an UPDATE within a trigger (i.e. "SET (a,b) = ( (SELECT...), <expr> )"). (check-in: 255b0eee user: dan tags: trunk)
2021-09-25
20:28
Load recent dbsqlfuzz cases into test/fuzzdata8.db. (check-in: 7a8fcf6d user: drh tags: trunk)
20:19
Fix a memory leak in rtree triggered by corrupt database records. dbsqlfuzz 397ad036a9013d7318da30ef84947d2baaaa6d6c. (check-in: 706322c2 user: dan tags: trunk)
18:21
Fix a bad interaction between the pager cache and the dbstat module that could lead to a malfunction following an OOM. dbsqlfuzz 9ed3e4e3816219d3509d711636c38542bf3f40b1. (check-in: e03554a6 user: dan tags: trunk)
17:07
Add const to parameters on various internal interfaces. (check-in: 70c221c5 user: drh tags: trunk)
2021-09-24
19:57
Dbsqlfuzz (a097eaad43c3c845b236126df92fb49b25449b0c) found a way to reach the assert() that was added to sqlite3_declare_vtab() by [eb94f4a8174436b1]. This check-in fixes the problem. (check-in: 857d26a6 user: drh tags: trunk)
16:14
Add lots of new "const" on internal function parameters. There is opportunity for many more - this is a work in progress. (check-in: a3c71a67 user: drh tags: trunk)
12:59
Ensure that sqlite_stat1 and sqlite_stat4 are ordinary tables (not views or virtual tables) before trying to load them (dbsqlfuzz bc02a0cde82dee801a8d6f653d2831680f87dca1). This prevents sqlite3_declare_vtab() from running with db->init.busy turned on. Even so, enhance sqlite3_declare_vtab() to be able to deal with db->init.busy being on, in case there are undiscovered paths to that state. Each of these two changes are independently sufficient to prevent the problem fixed by the previous check-in [c7560c1329965ab5] but there is no harm in keeping that third layer of protection in place. (check-in: eb94f4a8 user: drh tags: trunk)
02:14
Ensure that the db->init.azInit array is initialized at all times. dbsqlfuzz 0ad6d441f9bf3dfc32626a9900bc1700495b16f9 (check-in: c7560c13 user: drh tags: trunk)
2021-09-23
17:27
Commencing dynamic extensibility transition. (a WIP, may not build) (check-in: 5ea71afe user: larrybr tags: cli_extension)
2021-09-22
14:43
Fix harmless compiler warnings. (check-in: d678ecca user: drh tags: trunk)
14:26
For shell.c.in, define CHAR_BITS to 8 on platforms that do not have that value set by default. This fixes the build on older machines. (check-in: 96610cc8 user: drh tags: trunk)
13:43
Fix harmless compiler warnings in shell.c.in, and a compiler warning in sqlite3expert.c which is a real error, though also harmless. (check-in: 56da0e9c user: drh tags: trunk)
13:07
Fix an incorrect assert() in rtree that was added recently by [f7ad73c49507c943]. Change it to testcase(). (check-in: 3aa0bf3a user: drh tags: trunk)
10:57
Enhance the TCL-based test harness so that it is possible to list multiple test modules on the "testfixture" command-line and have them all run. For example: "./testfixture test/shell*.test" (check-in: 45caf9b8 user: drh tags: trunk)
10:28
Use sqlite3_snprintf() for the ".changes" output formatting in the shell because it now uses %lld, and some older C compilers do not understand that construct. (check-in: 53dadf80 user: drh tags: trunk)
2021-09-21
20:03
Fix .expert name collision bug reported at https://sqlite.org/forum/forumpost/05e6f32984561f57?t=h (check-in: 4a3f98ad user: larrybr tags: trunk)
19:19
Speed and (slightly) simplify shell's input line early processing. (check-in: a1c7f7f8 user: larrybr tags: trunk)
17:26
Add the "PRAGMA table_list" command with its corresponding eponymous table-valued function: "pragma_table_list". (check-in: 2c0e7ae5 user: drh tags: trunk)
2021-09-20
21:42
Accomplish fileio standalone for Win32 with less intervention. (check-in: af5dcc9c user: larrybr tags: trunk)
20:15
Allow fileio extension to be a stand-alone DLL for Win32 (check-in: d1cc3105 user: larrybr tags: trunk)
2021-09-19
18:31
Adjust shell tests for *Nix and Windows test platform anomaly (Leaf check-in: 577544c5 user: larrybr tags: speedy_cli)
2021-09-18
21:35
Sync w/trunk, further streamline shell's resumable prescan. (check-in: 9e00f9f7 user: larrybr tags: speedy_cli)
16:15
Further tests for legacy rtree geom callbacks. (check-in: 99d6bb22 user: dan tags: trunk)
2021-09-17
21:12
Shell's .read pipe now works for Windows too. (check-in: 929bcc40 user: larrybr tags: trunk)
20:43
Add tests for legacy geometry callbacks to rtreedoc2.test. (check-in: 6ad00e52 user: dan tags: trunk)
13:07
Make the affinity() function available even if compiled without SQLITE_DEBUG. Surround the implementation of all test-only SQL functions with #ifndef SQLITE_UNTESTABLE. (check-in: b7e00ef8 user: drh tags: trunk)
2021-09-16
22:23
The dbsqlfuzz fuzzer found a refutation for a recent ALWAYS() macro. (check-in: ebfc18aa user: drh tags: trunk)
20:16
Minor changes to rtree.c so that we can get full branch coverage even when it is compiled without geopoly. (check-in: f05ae9b5 user: drh tags: trunk)
19:50
Add tests to rtreedoc.test. (check-in: b18c6ec4 user: dan tags: trunk)
17:02
Add a single new ALWAYS() to rtree.c, with justification. (check-in: 778e4499 user: drh tags: trunk)
16:41
Add a tag comment in rtree.c. No changes to code. (check-in: 213410fa user: drh tags: trunk)
14:17
Add a reference counter to a structure used internally by the Tcl interface so that it does not segfault if the database connection is closed from any of the various callback scripts that may be invoked. (check-in: e54a33ce user: dan tags: trunk)
14:07
Mark an unreachable branch in rtree. (check-in: e6c4afd5 user: drh tags: trunk)
13:52
Back out a couple of ALWAYS() macros from [4fab9089868bbb05]. Test case added to TH3. (check-in: d26963a5 user: drh tags: trunk)
13:20
For ALTER TABLE RENAME COLUMN, do not try to filter virtual tables out of calls to sqlite_rename_column(). Let the function filter them itself. The WHERE clause can mistakenly let virtual tables through if the sqlite_schema table is corrupt. The sqlite_rename_column() function must deal with them. We might as well let it deal with them always. (check-in: 7c82b43b user: drh tags: trunk)
12:33
Under SQLITE_DEBUG with PRAGMA vdbe_trace=ON, show an output line if the VDBE aborts for any reason. (check-in: 7e3d6810 user: drh tags: trunk)
07:32
Simplify the routine that attempts to estimate the size of an rtree index by looking at the sqlite_stat1 entry for the %_rowid table. (check-in: 06c329c1 user: drh tags: trunk)
05:39
Mark various unreachable branches in rtree.c with ALWAYS() or NEVER(). (check-in: 4fab9089 user: drh tags: trunk)
05:24
New ALWAYS() and assert() to mark unreachable branches in rtree.c. (Closed-Leaf check-in: f7ad73c4 user: drh tags: tree-testing)
2021-09-15
19:53
In rtree.c, remove an incorrect ALWAYS(). Add other ALWAYS() and NEVER(). (check-in: cbaac887 user: drh tags: tree-testing)
19:13
Add more ALWAYS() macros on unreachable branches in rtree.c (check-in: fbba89da user: drh tags: tree-testing)
16:20
Fix the xBestIndex method on rtree so that it correctly recognizes that rowid=? works the same as id=?. (check-in: c74c07cc user: drh tags: trunk)
15:56
Add ALWAYS() macros on some unreachable branches in rtree. (check-in: 9123f680 user: drh tags: trunk)
15:53
Further updates to rtreedoc.test. (check-in: e6672783 user: dan tags: trunk)
14:48
Fix non-build for a test configuration (check-in: c9a4ab05 user: larrybr tags: trunk)
13:09
Simplify some of the corrupt shadow-table detection logic in rtree. (check-in: 0c4f37aa user: drh tags: trunk)
11:15
Squelch needless narrowing warning. (check-in: 5540e6ab user: larrybr tags: trunk)
10:49
Ensure rtreedoc.test is not run for builds without the rtree extension. (check-in: 42dff223 user: dan tags: trunk)
2021-09-14
20:07
Add test cases to rtreedoc.test. (check-in: afe0ec4d user: dan tags: trunk)
18:57
Update requirements marks to reflect recent documentation changes. (check-in: 08cab892 user: drh tags: trunk)
14:16
Add test cases to rtreedoc.test. (check-in: b62de126 user: dan tags: trunk)
11:27
Minor updates to rtreedoc.test. (check-in: b22c75e4 user: dan tags: trunk)
2021-09-13
23:11
Shell to .read any named character source file/device (again.) (check-in: c6fe4f8d user: larrybr tags: trunk)
18:32
Add test cases to rtreedoc.test. (check-in: 4ee99d31 user: dan tags: trunk)
18:16
Add assert() statements to refute forum post 9f4e7f58fbb66ddd. (check-in: 83a83475 user: drh tags: trunk)
16:36
Add new test file rtreedoc.test. (check-in: 8c4b1482 user: dan tags: trunk)
13:53
Fix an incorrect comment and possible integer overflow in pager resulting from check-in [23ca23894af352ea]. Problem reported by forum post e2ea1a3f61. Also change the datatype of Pager.pageSize to i64 even though page size never exceeds 65536, in order to help prevent future problems of this kind. (check-in: f4a552ed user: drh tags: trunk)
2021-09-11
14:33
Fix a case where the system error was not being set correctly. (check-in: 13a524b3 user: dan tags: wal-shm-exceptions)
02:42
CLI prescanner made to match SQLite's rules for delimited identifiers. Tests begun. (check-in: 15b105c5 user: larrybr tags: speedy_cli)
2021-09-10
22:00
Make replace.tcl useful with TCL 8.4 (check-in: 2dd61dd9 user: larrybr tags: trunk)
21:28
If an EXCEPTION_IN_PAGE_ERROR exception is caught, make the underlying OS error code available via sqlite3_system_errno(). (check-in: fdb20e9e user: dan tags: wal-shm-exceptions)
19:45
Make CLI prescan handle goofy identifier delimiters too. Streamline code. (check-in: 968aed69 user: larrybr tags: speedy_cli)
18:35
Fix (luckily harmless) typo in memdb.c per https://sqlite.org/forum/forumpost/15af8872d5999df1 (check-in: d577030c user: larrybr tags: trunk)
01:45
When showHeader set at CLI invocation, do not auto-set it later. (check-in: 733b7d4f user: larrybr tags: trunk)
01:02
Back out changes [00286ca5d998d802] and [6844ede29e1dac93] (replacing the associated branches with NEVER()) and add a single new test to btreeOverwriteCell() that detects when an overflow pages is also mapped into a b-tree page and raises and immediate SQLITE_CORRUPT error before making any changes. dbsqlfuzz 81791bd980fe6935ff2c7334ec8bef11c1c12b82 and others. (check-in: 32210fa4 user: drh tags: trunk)
00:58
Speed-up CLI's processing for huge block comments, for any content (check-in: c4568f9f user: larrybr tags: speedy_cli)
2021-09-09
19:19
Remove a NEVER() in btree that is sometimes reachable. dbsqlfuzz b9140023005430654c8fe544cf0a082ef8d561c1. (check-in: 6844ede2 user: drh tags: trunk)
18:06
Avoid masking off an OOM fault in rtreecheck(). (check-in: 3ebfe712 user: drh tags: trunk)
14:03
Improved database corruption detection in the editPage() subroutine of the btree rebalancer. dbsqlfuzz f035b1b5a100a5f0cffb95c958b6c67d7c5eaf1f. (check-in: 00286ca5 user: drh tags: trunk)
2021-09-08
21:49
Speedup CLI's gulping of many huge block SQL comments. (check-in: 729620c5 user: larrybr tags: trunk)
19:25
Fix PRAGMA integrity_check so that it does not try to enforce types on ANY columns in a STRICT table. (check-in: 57384fda user: drh tags: trunk)
2021-09-07
20:58
For sqldiff, sqlite_schema comparisons must use compound (synthesized) PK. (check-in: 5bdd8466 user: larrybr tags: trunk)
19:23
New test cases added to fuzzdata8.db. No code changes. (check-in: 51e5aada user: drh tags: trunk)
19:04
Make sqldiff able to compare sqlite_schema tables (for detailed schema differences.) (check-in: 7ff92da9 user: larrybr tags: trunk)
16:05
Fix a memory leak in fts5 that could occur when writing to an fts5 table that is being scanned by an fts5vocab cursor. (check-in: 1183552d user: dan tags: trunk)
15:41
Fix a potential NULL pointer deference in the LIKE optimization. The problem was introduced by the addition of generated columns in check-in [b855acf1831943b3] (SQLite version 3.31.0, 2020-01-22). Reported by Wang Ke in [forum/forumpost/699b44b3ee|forum post 699b44b3ee]. (check-in: b9417d40 user: drh tags: trunk)
2021-09-06
16:15
Fix a use-after-free error that could occur if an fts5 table is written while scanning it using an fts5vocab cursor. (check-in: e751c2ec user: dan tags: trunk)
15:59
Fix an issue in the "shrink.test" test script reported by forum post 90a74bd618. (check-in: 6c3734ed user: drh tags: trunk)
11:44
Restore the use of system isnan() that was removed by check-in [ea748edecb261f2b]. See forum thread d7c530ac587f59e6. (check-in: b3cfe23b user: drh tags: trunk)
2021-09-05
18:45
Complete shell.c maker's migration to TCL v.8.4 (check-in: e4b9b5b1 user: larrybr tags: cli_extension)
2021-09-03
18:11
Fix an assertion fault in pcache introduced by [4bc93658aa563f2f] and detected by OSSFuzz. Test case in TH3. (check-in: 2262a494 user: drh tags: trunk)
2021-09-02
16:29
Get shell.c maker acceptable to TCL v8.4 and minor tweaks (check-in: c60f4f90 user: larrybr tags: cli_extension)
01:21
Meld -safe option into CLI (check-in: c7c84998 user: larrybr tags: cli_extension)
2021-08-31
15:53
Have the planner ensure that if one scan uses a subset of the WHERE clause of another, that scan is estimated to cost less and return fewer rows. (check-in: c7b34930 user: dan tags: trunk)
2021-08-30
17:02
Do not disable a rowid=? term used to drive an IPK index if it is a transitive constraint. Commit [f1f9b5de] made the same change for non-IPK indexes. (check-in: 46e28cbc user: dan tags: trunk)
2021-08-27
11:26
Patch lemon to fix "error" token handling, according ot forum post e680f42f53090061. (check-in: 106b5e53 user: drh tags: trunk)
2021-08-26
21:12
Change the structuree exception handler in wal.c to catch EXCEPTION_IN_PAGE_ERROR instead of EXCEPTION_ACCESS_VIOLATION. (check-in: 0c6ab539 user: dan tags: wal-shm-exceptions)
18:31
Add the --safe to the CLI. Also the --nonce option and the .nonce command. (check-in: c76870cb user: drh tags: trunk)
2021-08-24
17:07
Correctly preserve the collating sequence for a column when changing its datatype. Fix for the problem reported by forum post 36be3d3a08da9d92. Test cases in TH3. (check-in: c7f0813c user: drh tags: trunk)
2021-08-23
15:56
Fix a typo in a comment. No changes to code. (check-in: d953646a user: drh tags: trunk)
10:28
Back out the change that allows typeless columns in strict tables. Replace that capability with an ANY type for strict tables that will accept any datatype with BLOB affinity. (check-in: d8fd1a2b user: drh tags: trunk)
2021-08-21
20:54
Allow typeless columns in STRICT tables that are able to accept any data type. (check-in: 1e2dcc2d user: drh tags: trunk)
16:42
Defer deleting subqueries in the compound-SELECT code generator until the end of code generation, in order to avoid deleting expressions out from under the aggregation function sanity checking assert()s that occur near the end of SELECT code generation. This fixes the assertion fault described by forum post cfcb4b461d. The problem goes back to check-in [6e6b3729e0549de0]. (check-in: 600f1991 user: drh tags: trunk)
15:49
Add test cases to ensure that there is at least one test that causes an exception to be thrown from each SEH_INJECT_FAULT macro. (check-in: e480146f user: dan tags: wal-shm-exceptions)
2021-08-20
19:51
Improvement to error handling in Lemon. No impact on SQLite. Forum post 2f468f43cbc48d7f (check-in: 18cc2f85 user: drh tags: trunk)
18:18
Use VVA_ONLY() instead of TESTONLY() in SEH macros so that the build works for coverage testing. (check-in: 9e9d5b56 user: drh tags: wal-shm-exceptions)
17:23
Add missing SEH_INJECT_FAULT macros. (check-in: 27e9bdb3 user: dan tags: wal-shm-exceptions)
16:19
Add some assert() statements and fix small issues with code on this branch. (check-in: bd9b373b user: dan tags: wal-shm-exceptions)
15:44
Support for STRICT tables. A table with the STRICT option only allows a few core datatypes on columns and enforces those types rigidly. Also, PRIMARY KEY columns must be NOT NULL. (check-in: f9c1d344 user: drh tags: trunk)
11:50
Fix a problem on this branch causing checkpoints that do not proceed because they can't get the CHECKPOINT lock to return incorrect output values. (check-in: 5a98820c user: dan tags: wal-shm-exceptions)
08:05
Improved error messages for the SQLITE_CONSTRAINT_DATATYPE error. (Closed-Leaf check-in: 39abca01 user: drh tags: strict-tables)
01:12
Do not allow the xfer-optimization to move the content of an ordinary table into a strict table. (check-in: 1ed1b594 user: drh tags: strict-tables)
2021-08-19
23:10
Enable this branch to run both with and without the -DSQLITE_USE_SEH option. (check-in: 840e0a14 user: drh tags: wal-shm-exceptions)
21:01
If SQLITE_USE_SEH is defined, handle structured-exceptions thrown by MSVC builds if the *-shm file mapping is accessed after it becomes invalid for some reason. (check-in: 5c5fa470 user: dan tags: wal-shm-exceptions)
16:29
Improved comments. Fewer opcodes for integrity_check on strict tables. (check-in: 4ee57fb5 user: drh tags: strict-tables)
02:58
Enhance PRAGMA integrity_check so that it verifies the datatype of all columns in STRICT tables. (check-in: 97c9248b user: drh tags: strict-tables)
00:24
STRICT tables require all fields of the PRIMARY KEY to be NOT NULL. (check-in: 5efdf9ac user: drh tags: strict-tables)
2021-08-18
23:00
Merge the WITHOUT ROWID, NOT NULL ON CONFLICT bug fix into the strict-tables branch. (check-in: 7ee01ee4 user: drh tags: strict-tables)
22:26
Fix ON CONFLICT clause processing for NOT NULL constraints of PRIMARY KEY columns on WITHOUT ROWID tables. Ticket [f2be158c57aaa8c6] (check-in: 13abba09 user: drh tags: trunk)
19:22
Trying to insert an incorrect datatype into a STRICT table raises an SQLITE_CONSTRAINT_DATATYPE error. Seems to work, though lots more testing is needed. (check-in: a19305e5 user: drh tags: strict-tables)
13:13
What would it be like if you could add the keyword "STRICT" after a CREATE TABLE statement to cause the table to (1) allow only a few well-defined datatypes, (2) rigidly enforce those types, (3) require NOT NULL on PK columns, (4) always enforce foreign key constraint, and so forth? This branch seeks to explore that question. (check-in: 78732b9f user: drh tags: strict-tables)
12:05
Rename the Column.eType field to Column.eCType - with an extra "C". (check-in: b9b0dcd5 user: drh tags: trunk)
2021-08-17
19:59
Fix an off-by-one error in the error-handling logic of the Lemon parser-generator. This does not affect SQLite. Forum cff80737bf. (check-in: 7cca8080 user: drh tags: trunk)
2021-08-12
14:22
By default, do not use memory mapping to access the temporary files used for external sorts. The old behaviour (to use memory mapping by default) may be restored by building with SQLITE_ENABLE_SORTER_MMAP defined. (check-in: 306694df user: dan tags: trunk)
2021-08-11
18:56
Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB. (Leaf check-in: 56869f54 user: dan tags: rbu-replace-hack)
18:44
If the special "sqlite_rbu_replace_hack" table is present in an RBU database, use REPLACE instead of INSERT when writing index entries to imposter tables. (check-in: 4b73e151 user: dan tags: rbu-replace-hack)
18:43
During DELETE, if an index entry is missing, do not raise the SQLITE_CORRUPT_INDEX error (added by [f339f31f9e9a856b]) if in "PRAGMA writable_schema=ON" mode. (check-in: 19e56291 user: drh tags: trunk)
13:48
Do not apply the push-down optimization to CTE subqueries that will be reused in other contexts in where the same optimization is unlikely to be valid. Fix for the bug reported by forum post d496c3d29bc93736. (check-in: a7ce29a6 user: drh tags: trunk)
13:19
Improved comment on the OP_OpenDup used to get a new cursor for a reused materialized CTE. (check-in: b1926cc0 user: drh tags: trunk)
2021-08-09
19:54
Fix a compiler warning in pcache1. Reduce the maximum size of a pcache1 cache to 2147418112 pages. (check-in: 4bc93658 user: drh tags: trunk)
19:41
Merge recent trunk enhancements into the begin-concurrent-report branch. (check-in: 25a768cb user: drh tags: begin-concurrent-report)
19:33
Merge recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: 514b3cef user: drh tags: begin-concurrent-pnu)
19:15
Sync to trunk (check-in: dd356ace user: larrybr tags: cli_extension)
18:35
Merge recent trunk enhancements into the begin-concurrent-pnu-wal2 branch. (check-in: 47a9b759 user: drh tags: begin-concurrent-pnu-wal2)
18:26
Merge recent trunk enhancements into the wal2 branch. (check-in: 84dac820 user: drh tags: wal2)
18:21
Merge recent trunk enhancemenets into the begin-concurrent branch. (check-in: b88b6328 user: drh tags: begin-concurrent)
18:17
Merge recent trunk enhancements into the reuse-schema branch. (check-in: c8d1f17f user: drh tags: reuse-schema)
18:13
Further improvements to the eOpenState bit values. (check-in: d44f74f1 user: mistachkin tags: trunk)
18:07
Ensure that the pcache1 cache size does not get so big that it overflows the integer that is keeping track of the cache size. (check-in: bf9d70fc user: drh tags: trunk)
17:45
Fix harmless compiler warnings and improve the presentation for the new --threadsafe option to the CLI. (check-in: 7929dc2f user: drh tags: trunk)
17:37
Undocumented "--threadsafe N" option added to the CLI for testing purposes. One of SQLITE_CONFIG_SINGLETHREAD, _MULTITHREAD, or _SERIALIZED is called depending on the value of the N integer. (check-in: 2d8f297c user: drh tags: trunk)
17:36
Improved Hamming bit-distance between the SQLITE_STATE constants. (check-in: 5100b045 user: drh tags: trunk)
13:06
Fix comments associated with sqlite3.eOpenState. No logic changes. (check-in: fd8f498f user: drh tags: trunk)
11:03
Merge latest trunk changes into this branch. (check-in: 67ed7422 user: dan tags: wal2)
2021-08-07
23:16
Refactor sqlite3.magic into sqlite3.eOpenState. (check-in: e5d6512a user: drh tags: trunk)
2021-08-06
20:17
Fix an RBU problem with restarting an update after the *-oal file is already larger than 4GiB. (check-in: 087b8b41 user: dan tags: trunk)
19:38
Attempt to fix the showwal.c utility program so that it works on WAL files larger than 4GiB. (check-in: 5c0f9ea9 user: drh tags: trunk)
15:26
Fix harmless compiler warnings. Omit redundant copies of os_common.h and hwtime.h from the amalgamation. (check-in: 09142700 user: drh tags: trunk)
2021-08-05
15:27
Store the collating sequence name for each column of a table as an extension to the column name, for an additional savings in the heap space needed to hold the schema. (check-in: 832ac4c1 user: drh tags: trunk)
2021-08-04
14:50
Add NEVER() macros on recently introduced unreachable branches. (check-in: 806939eb user: drh tags: trunk)
13:42
Always prefer built-in SQL functions over app-defined SQL functions within sqlite3NestedParse(). Formerly this was the case for a few calls to sqlite3NestedParse(), but not for all of them. (check-in: 164662ef user: drh tags: trunk)
11:29
Avoid using LIKE with the target db in RBU. It is possible the user may issue "PRAGMA case_sensitive_like = 1" or override the like() user function, causing RBU to malfunction. (check-in: 7cbd8cd5 user: dan tags: trunk)
2021-08-03
23:23
Fix the build for SQLITE_ENABLE_UPDATE_DELETE_LIMIT. (check-in: 5150d2da user: drh tags: trunk)
18:45
Improved harmony with the reuse-schema branch. (check-in: cbc703f7 user: drh tags: trunk)
17:05
Merge recent trunk enhancements into the begin-concurrent-report branch. (check-in: 385e3b4e user: drh tags: begin-concurrent-report)
16:49
Merge recent trunk changes into the begin-concurrent-pnu branch. (check-in: 2c25f25b user: drh tags: begin-concurrent-pnu)
16:44
Merge recent trunk changes into the begin-concurrent-pnu-wal2 branch. (check-in: 5b6f6514 user: drh tags: begin-concurrent-pnu-wal2)
16:31
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 8d806cf9 user: drh tags: begin-concurrent)
16:11
Merge recent trunk enhancements into the reuse-schema branch. (check-in: d71adc3f user: drh tags: reuse-schema)
2021-08-02
20:29
Merge recent trunk enhancements into the wal2 branch. (check-in: f615d7ba user: drh tags: wal2)
18:03
Refactor field names in the Column object, zCnName and zCnColl, to make them unique and thus easier to find amid all the other code. (check-in: 8b781dca user: drh tags: trunk)
16:41
Refactor the Table object to reduce its memory footprint. (check-in: bbb6759b user: drh tags: trunk)
2021-07-31
20:30
Refactor the way that DEFAULT expressions are stored on columns, in order to save memory in the common case where the column has no DEFAULT clause. (check-in: 8646547e user: drh tags: trunk)
19:37
Sync to trunk (check-in: d449941b user: larrybr tags: cli_extension)
2021-07-30
23:30
Recognize certain standard datatypes ("INT", "INTEGER", "REAL", "TEXT", and "BLOB") and if a column has one of those datatypes, store the type part of the bit-field information in the Column structure to save space. (check-in: d2da62a9 user: drh tags: trunk)
20:09
If a generated column uses the optional keywords GENERATE ALWAYS, try to avoid putting those keywords in the typename of the column. Forum post ff3ffe09251c105b (check-in: 3c954863 user: drh tags: trunk)
18:39
Avoid clownfeet in the names columns when the column names are quoted in the original CREATE TABLE statement. (check-in: 980f7292 user: drh tags: trunk)
12:47
Reduce clownfooting in the allocation of the Table.aCol array. This reduces the amount of heap space required to hold large schemas by about 11%. (check-in: 2941ded0 user: drh tags: trunk)
2021-07-29
18:34
Enhance the wal.c source file with an ASCII-art schematic of the -shm file header. (check-in: a6c160e0 user: drh tags: trunk)
17:31
Improvements to asserts to enforce magic numbers in the wal-index format. Also improve automatic configure and make builds on legacy PPC iBooks. (check-in: 87b8d478 user: drh tags: trunk)
17:23
Complete warning-free build on old PPC iBook. (Closed-Leaf check-in: ef2a0850 user: drh tags: wal-asserts)
17:01
Fix an error in one of the assert() statements added by [23b08fe9db24a953]. (check-in: ad24334b user: drh tags: wal-asserts)
16:49
Minor tweaks to various TCL build scripts so that they work even for TCL 8.4, which is obsolete, but is also all that is available for some legacy platforms. (check-in: 2269ce64 user: drh tags: wal-asserts)
16:48
Improve comments and add new assert() statements in WAL to help document how everything works. (check-in: 23b08fe9 user: drh tags: wal-asserts)
14:27
Merge the latest enhancements from trunk. (Leaf check-in: 8498d772 user: drh tags: win-blocking-locks)
00:33
Remove ALWAYS() macros that can be true if the internal test function implies_nonnull_row() is used in the result set of a query and contains comparison operator against a computed column. dbsqlfuzz 4c34db5bff6247f33ee49e341a1f3018e72be0a0. (check-in: 4d1dbfa3 user: drh tags: trunk)
2021-07-28
18:13
Add test case to ensure that sessions works with DELETE statements that use the truncate optimization (i.e. a DELETE without a WHERE clause). (check-in: a2fc5311 user: dan tags: trunk)
02:04
Fix a harmless uninitialized variable read that occurs after an error associated with a subquery that uses DISTINCT. Found by a fuzzer. (check-in: e9719f97 user: drh tags: trunk)
01:22
Reduce the scope of a variable in order to fix a harmless compiler warning that occurs under -DSQLITE_OMIT_AUTOMATIC_INDEX. (check-in: 36d5dbbe user: drh tags: trunk)
2021-07-26
19:49
Remove sqldiff --visible-controls option, make it always happen. Add test cases for controls made visible (check-in: ff74c0cc user: larrybr tags: trunk)
18:28
Give sqldiff --visible-controls option to deal with non-graphic text content robustly across platforms (check-in: 68d2373f user: larrybr tags: trunk)
01:35
Manual merge of new .connection shell command (check-in: 0d41f7f9 user: larrybr tags: cli_extension)
2021-07-23
19:26
Merge the ".connection" CLI enhancement from trunk. (check-in: d317d44f user: drh tags: win-blocking-locks)
18:43
Enhance the CLI with the ".connection" command that can switch between up to five different database connections. Used for manual testing of multiple database connections in the same process. (check-in: 54eaf076 user: drh tags: trunk)
14:53
Merge recent enhancements on trunk into the win-blocking-locks branch. (check-in: 9ecad2f8 user: drh tags: win-blocking-locks)
2021-07-22
21:11
Set the checkSchema flag if a CREATE TABLE parse fails because the table already exists, to ensure that the table was not previously deleted by some other connection. (check-in: 91bcb962 user: drh tags: trunk)
18:22
Fix ALTER TABLE DROP COLUMN so that it generates valid bytecode even when operating on a corrupt database and using PRAGMA writable_schema=ON. dbsqlfuzz 5f09e7bcc78b4954d06bf9f2400d7715f48d1fef (check-in: b65f4f76 user: drh tags: trunk)
16:07
One of the optimizations of check-in [de9c86c9e4cdb34f] does not work for terms originating in the ON/USING clause, as demonstrated by forum post 6cf3bb457c3f4685. This check-in disables that optimization for ON/USING terms. Also improve the TreeView display for the resulting "true"/"false" nodes to show that they originate from the ON/USING clause. Add a testcase() to the other optimization to show that it can still be used for ON/USING terms. (check-in: 1f679604 user: drh tags: trunk)
10:44
Fix a problem in the new os_unix.c code. Refine the threadtest3 test case some. (Leaf check-in: 2039d447 user: dan tags: unix-timed-wait-exp)
2021-07-21
15:42
Improved robustness of cursor renumbering in the UNION ALL flattener when operating on vector assignments of an UPDATE FROM. dbsqlfuzz 417d2b053b9b3c9edaf22dd515564f06999e029c (check-in: 60695359 user: drh tags: trunk)
2021-07-20
21:02
Add in-process blocking locks to os_win.c using a similar technique. (check-in: b67c157f user: dan tags: unix-timed-wait-exp)
17:23
Merge changes from the win-blocking-locks branch into this one. (check-in: 85fd18d7 user: dan tags: unix-timed-wait-exp)
16:07
Run a "PRAGMA quick_check", if necessary, on the modified table after an ALTER TABLE ADD COLUMN to verify that added NOT NULL or CHECK constraints are satisfied by existing rows. Abort the ADD COLUMN if not. Forum post c04814903d6ec4f7. (check-in: e3794997 user: drh tags: trunk)
14:57
Avoid a malfunction that could occur if the same correlated column reference appears in both the GROUP BY and the HAVING clause of a sub-select. dbsqlfuzz a779227f721a834df95f4f42d0c31550a1f8b8a2. (check-in: 1e35cc6d user: dan tags: trunk)
08:23
Fix issues in the new ADD COLUMN constraint checking. Add preliminary test cases. (Closed-Leaf check-in: 48434ad3 user: drh tags: add-column-constraint-check)
07:35
Demonstration code to show how NOT NULL and CHECK constraints can be verified after an ALTER TABLE ADD COLUMN. (check-in: 039f5403 user: drh tags: add-column-constraint-check)
02:02
It does not work to deserialized into TEMP, so do not allow it. The sqlite3_deserialize() routine now returns SQLITE_ERROR if you try. (check-in: 18068cc6 user: drh tags: trunk)
00:18
Fix compilation of 'threadtest3' for some older versions of MSVC. (check-in: b5ede6a6 user: mistachkin tags: trunk)
2021-07-19
20:52
More precision in comparing integers and floating point values while processing the integer primary key for OP_SeekGE and similar. Forum post 2bdb86a068. (check-in: f9c6426d user: drh tags: trunk)
20:34
Revise the testthread3.walthread6 test case to better demonstrate the advantages of blocking locks. (check-in: 952b4cae user: dan tags: unix-timed-wait-exp)
17:06
Merge trunk with this branch. (check-in: 853c621b user: dan tags: unix-timed-wait-exp)
16:49
Updates so that "threadtest3[.exe]" can be built for windows with MSVC. (check-in: 4ce585fb user: dan tags: trunk)
14:00
In defensive mode, allow statements that write to shadow tables to be prepared from with virtual-table xSync() calls. (check-in: c8601d83 user: dan tags: trunk)
03:38
Fix minor spacing issues in the MSVC makefile. (check-in: d78c272b user: mistachkin tags: trunk)
03:37
Minor enhancements to new OSTRACE messages. (check-in: 3249a6a3 user: mistachkin tags: win-blocking-locks)
2021-07-16
22:43
Try to omit the ORDER BY clause in subqueries if doing so does not change the result in any way. See Forum post 2d76f2bcf65d256a for details and history. (check-in: 85ddaf1b user: drh tags: trunk)
20:16
Minor comment improvements. (Closed-Leaf check-in: 6854b591 user: drh tags: omit-subquery-order-by)
18:30
Experiment with having SQLITE_ENABLE_SETLK_TIMEOUT builds on unix use a condition variable to wait for wal locks held by other threads. (check-in: 4a9f5ce7 user: dan tags: unix-timed-wait-exp)
17:11
De-typo sqlite3_expanded_sql() doc (check-in: 56b0f541 user: larrybr tags: trunk)
17:04
Modify the generate_series() table-valued functions so that its first argument (the START value) is required. Throw an error if that argument is not supplied. In this was the series.c loadable extension can be used as a demonstration of how to code an xBestIndex function to require certain parameters. Compile with -DZERO_ARGUMENT_GENERATE_SERIES to obtain the legacy behavior. (check-in: 459d85a2 user: drh tags: trunk)
15:30
Fix the "main.mk" makefile so that "series.c" is a dependency of "shell.c". (check-in: ff959917 user: drh tags: trunk)
01:19
Get the "omit ORDER BY in FROM-clause subqueries" optimization working for the core test cases. (check-in: e31c5888 user: drh tags: omit-subquery-order-by)
2021-07-15
23:34
By default, do not emit #line directives in the amalgamation. (check-in: bacfa936 user: mistachkin tags: trunk)
23:12
Initial work on blocking locks for the Win32 VFS. Various other small enhancements. (check-in: 584c2425 user: mistachkin tags: win-blocking-locks)
19:29
Attempt to omit ORDER BY clauses from FROM-clause subqueries if those ORDER BY clauses do not affect the output. See forum thread 2d76f2bcf65d256a for discussion. This can help the query flattener in some cases, resulting in faster query plans. The current implemention does not always work. (check-in: ef97c3e7 user: drh tags: omit-subquery-order-by)
16:39
Change references to the schema table in sqlite3_analyzer to the new SQLITE_SCHEMA name. (check-in: 3beb77d6 user: drh tags: trunk)
2021-07-14
21:18
Fix a use-after-free error in ioerr.test caused by an error in test code. (check-in: 1594056a user: dan tags: trunk)
19:35
Enhance the Windows VFS to recognize SQLITE_FCNTL_LOCK_TIMEOUT and make the value set there available to the winLockFile() function. (check-in: 954b5d61 user: drh tags: win-blocking-locks)
2021-07-13
22:49
Enhance comments pertaining to the interface linkage / calling convention macros. (check-in: c378e992 user: mistachkin tags: trunk)
21:59
Further revisions to #line handling for amalgamation builds. (check-in: 9a843212 user: mistachkin tags: trunk)
20:55
Get correct #line tags into amalgamation for other builds too. (check-in: 999eb800 user: larrybr tags: trunk)
15:30
Remove two incorrect assert() statements from the logic used to derive column names and types from subqueries. This allows the SQL associated with CVE-2020-13871 (ticket [c8d3b9f0a750a529]) to be tested. (Closed-Leaf check-in: d2e67220 user: dan tags: branch-3.28a)
11:59
Get #line tags into amalgamation, subject to configure. (check-in: 5d81b598 user: larrybr tags: trunk)
11:55
Merge from trunk, rename tool option for its effect (Leaf check-in: 9327f73c user: larrybr tags: line_tags)
11:30
Do not attempt to run Tcl sessions tests unless both SQLITE_ENABLE_PREUPDATE_HOOK and SQLITE_ENABLE_SESSIONS are defined. (check-in: 385db794 user: dan tags: trunk)
01:45
Amalgamation has #line directives by default. Minor mksqlite3c.tcl changes (check-in: ba3eff71 user: larrybr tags: line_tags)
2021-07-12
15:00
Fix a defect in the query-flattener optimization identified by ticket [8f157e8010b22af0]. This fix is associated with CVE-2020-15358. (Leaf check-in: bcd014c4 user: dan tags: branch-3.32a)
14:38
Fix a defect in the query-flattener optimization identified by ticket [8f157e8010b22af0]. This fix is associated with CVE-2020-15358. (check-in: 9e001b63 user: dan tags: branch-3.28a)
2021-07-11
12:58
Much self-doc improvement for shell.c generation. Misleading error message fixed. (check-in: 7738ce1b user: larrybr tags: cli_extension)
2021-07-10
14:48
.tables fixup for legacy behavior. (check-in: 827ea61d user: larrybr tags: cli_extension)
03:42
Migration to dispatched meta-commands done (check-in: ac4267da user: larrybr tags: cli_extension)
2021-07-09
23:12
Clarify comment on sqlite3.h's interface decaration macros. (check-in: 7cb09aef user: larrybr tags: trunk)
16:00
Remove disused linkage macros. (Leaf check-in: f14d3571 user: drh tags: disused-link-macros)
14:59
Fix an assert() that might fail if sqlite3_create_function_v2() is invoked with NULL xStep and xFinal callbacks and a non-NULL xDestroy. (check-in: ab1550a6 user: dan tags: trunk)
13:52
Enhance the sqlite3_create_function() interfaces to assume a value of SQLITE_UTF8 is presented with a nonsense value for the preferred encoding. This is undocumented behavior added for robustness. (check-in: c1bb5cff user: drh tags: trunk)
13:29
Merge latest trunk changes into this branch. (check-in: 0e968f9d user: dan tags: reuse-schema)
11:52
Add the usual "#ifdef __cplusplus" magic to header file ext/misc/carray.h. Also update carray.h/carray.c to use SQLITE_API in the usual way. (check-in: 0f97c2a4 user: dan tags: trunk)
00:12
Allow CLI shell build to #include same user-specified header as library build. (check-in: eb8af9a4 user: larrybr tags: trunk)
2021-07-08
23:35
Rename optional SQLITE_CUSTOM_INC define to SQLITE_CUSTOM_INCLUDE. (check-in: 060aec37 user: mistachkin tags: trunk)
22:12
Allow library build to #include a user-specified header. (check-in: 71e6490b user: larrybr tags: trunk)
18:29
Preserve and return to the user any error message returned by a failed xConnect() call on an eponymous virtual table that prevents a query from being compiled. (check-in: bbbbeb59 user: dan tags: trunk)
12:12
Fix an issue with the SQLite Expert extension when a column has no collating sequence. Forum post 78165fa250. (check-in: b1e0c22e user: drh tags: trunk)
2021-07-07
19:44
Fix a harmless compiler warning in the "fuzzcheck" test program. (check-in: 8c432642 user: drh tags: trunk)
19:40
Fix a harmless compiler warning - duplicate local variable named "pRHS". (check-in: 5bc05faf user: drh tags: trunk)
18:43
General cleanup of mkshellc.tcl, + help and options, decruft (check-in: 8bdd5fbf user: larrybr tags: cli_extension)
16:48
Follow-up to [68db1ff9c44fa9c3]: The number of registers needed by PRAGMA foreign_key_check was increased too late for an assert() deep down inside of sqlite3ExprCode(). So move the size increase a little earlier. Forum post 79c9e4797d. (check-in: 7072404a user: drh tags: trunk)
15:52
Fix a recently introduced segfault that might occur if a sub-select were used as a term on the RHS of an IN(...) operator for which the LHS is a row-value. (check-in: f586c06a user: dan tags: trunk)
13:53
Improve the error message in cases where there is a row-value on the LHS of an IN() operator, the RHS is a list (not a sub-select) and at least one element of the list is not a row-value with the correct number of elements. (check-in: 6b22f4e7 user: dan tags: trunk)
11:51
Instead of disallowing writes to fts5 tables if there are fts5vocab cursors open on them (commit [c49a6ed7]), abort any fts5vocab queries if the on-disk structure of the fts5 table changes. (check-in: 9dbdc900 user: dan tags: trunk)
2021-07-06
20:44
Handle "<vector> IN (<vector>, <vector> ...)" in the same way as "<vector> IN (VALUES(<vector>, <vector>, ...)". (check-in: 981d230e user: dan tags: trunk)
15:47
Create new branch named "branch-3.36" (check-in: 5eea151d user: larrybr tags: branch-3.36)
02:07
More commands dispathed. Dispatch translation parameterized. (check-in: 372e3241 user: larrybr tags: cli_extension)
2021-07-05
19:01
Do not allow writes to an fts5 table if there are any open fts5vocab cursors. (check-in: c49a6ed7 user: dan tags: trunk)
18:37
Add the ATOMIC_INTRINSICS compile-time output output. Move sqlite3Int.h in front of ctime.c so that default values that are not overridden are shown in PRAGMA compile-time option output. (check-in: e3069526 user: drh tags: trunk)
17:15
Revert [5204c2c4a7b73a64], restoring the old pre-processor logic for determining the availability of the __atomic_store_n()/__atomic_load_n() primitives. (check-in: e690abb9 user: dan tags: trunk)
11:27
Allow sub-queries in the FROM clause of an UPDATE...FROM statement to access the object being updated without using an alias, as is required in the parent query. (check-in: 740cb430 user: dan tags: trunk)
02:40
Improved rebustness in sqlite3ExprListDup() when it contains a vector assignment from an UPDATE where the initial term is omitted. This can happen during a UNION ALL query flattening while processing a virtual table update in which the first term of the vector is repeated. Forum post 16ca0e9f32. (check-in: 2547cfe3 user: drh tags: trunk)
01:11
Ensure that TK_SELECT_COLUMN Expr nodes always have their iTable field set to to the number of columns in the vector. This is not strictly necessary. It just simplifies the state description and make the code easier to reason about. (check-in: 026f08d4 user: drh tags: trunk)
00:07
Fix an incorrect comment on testcase misc1-27.0. No changes to code. (check-in: 49829ae3 user: drh tags: trunk)
2021-07-04
22:38
Streamline most common command definition (check-in: dd76b41a user: larrybr tags: cli_extension)
22:33
Enhance the treeview debugging mechanism so that it correctly deals with TK_ROW expression nodes. (check-in: e87fdb65 user: drh tags: trunk)
2021-07-03
19:20
Create infrastructure for dynamic shell extension. (check-in: 5e7e0d4e user: larrybr tags: cli_extension)
18:57
Fix a (harmless) typo in a comment. No code changes. (check-in: d2b9b8da user: drh tags: trunk)
02:55
In the PRAGMA foreign_key_check, ensure that sufficient registers are allocated for the virtual machine, even if one or more foreign keys reuses the same column multiple times and has more columns than the table it is part of. Forum post a6b0c05277. (check-in: 68db1ff9 user: drh tags: trunk)
2021-07-02
12:25
Put ALWAYS() on a branch that is always true due to [d4097364c511709b]. Fix a testcase precondition associated with the same check-in. (check-in: 55e2fbeb user: drh tags: trunk)
12:08
Fix a harmless assertion fault discovered by OSSFuzz. The assertion fault is harmless because the assert() checks a condition that that is harmless if false and the assert() is disabled in production builds. (check-in: 79443aab user: drh tags: trunk)
2021-07-01
18:19
Allow unqualified "rowid" references to be used in join queries, provided that only one of the source objects has a rowid. Forum post ab5b077c32636e49 (check-in: d4097364 user: dan tags: trunk)
16:57
Import the updated nmakehlp.c file used by the TCL Extension Architecture (TEA) builds in the amalgamation tarballs. Forum post 5a5001f20a. (check-in: 595bf95b user: drh tags: trunk)
2021-06-30
14:04
Fix a memory leak in fts5 that could occur when processing a query containing multiple classes of error. (check-in: 7c279670 user: dan tags: trunk)
12:11
Fix an assert() in fts5 that might fail when dealing with corrupt records. (check-in: 9e760e25 user: dan tags: trunk)
11:53
Do not enforce the SQLITE_LIMIT_FUNCTION_ARG limit for internally generated SQL. This prevents problems with statements like ALTER TABLE if the function argument limit is set too low. Forum post 17735aa21f3ddab2. (check-in: 763fdec5 user: drh tags: trunk)
2021-06-28
15:25
When generating data for a RETURNING clause, avoid assuming cursor number 0 is available for use. (check-in: 4b2c59ac user: dan tags: trunk)
2021-06-25
14:48
The OP_ReopenIdx opcode should clear the cursor if the cursor is being reused. This prevents leaving the cursor in an initialized state which could cause problems for a subsequent OP_SeekScan opcode. Fix for ticket [6dcbfd11cf666e21] and the OP_SeekScan optimization of check-in [4a43430fd23f8835]. (check-in: d4bf5243 user: drh tags: trunk)
11:21
Remove a redundant "ANALYZE" line from the ".fullschema" output. (check-in: 7b47f420 user: drh tags: trunk)
11:14
Fix a bug in the ".fullschema" dot-command of the CLI brought to light by check-in [a2ddb89b206c1387] - raising an error on at attempt to access the rowid of a subquery or view. (check-in: 36875827 user: drh tags: trunk)
00:25
Document sqlite3_wal_hook() return. (check-in: 8acaf796 user: larrybr tags: trunk)
2021-06-24
18:23
Allow the SQLITE_OPEN_EXCLUSIVE flag in sqlite3_open(). Return the SQLITE_CANTOPEN_EXISTS extended code to indicate that the open failed because the database already exists. (check-in: d091150f user: drh tags: trunk)
2021-06-23
17:41
Make conditional nature of sqlite3_normalized_sql() better known. (check-in: 0e0ece71 user: larrybr tags: trunk)
16:07
Fully incorporate *_changes64() API improvement. (check-in: 6699a2f6 user: larrybr tags: trunk)
11:39
Show CROSS JOINs in the TreeView debuggingn output. (check-in: 72e09b6c user: drh tags: trunk)
11:12
Fix a problem handling ORDER BY terms of the form "ORDER BY likely(<integer>)" within window frames. (check-in: 710f75b9 user: dan tags: trunk)
2021-06-22
23:30
This is another alternative fix to the covering index on WHERE_MULTI_OR in a LEFT JOIN problem that is fixed on trunk nearby. In this alternative, covering indexes are simply disabled for WHERE_MULTI_OR on a LEFT JOIN. This might have run-time impact on some obscure queries. This patch is saved for historical reference only. (Closed-Leaf check-in: 66856410 user: drh tags: multi-or-covidx-fix3)
23:27
This is an alternative fix to the covering index on WHERE_MULTI_OR in a LEFT JOIN problem that is fixed nearby. This one works by having the OP_NullRow opcode create the index if it does not already exist. That is slightly more complex. This patch is saved for historical reference only. (Closed-Leaf check-in: 956bafb6 user: drh tags: multi-or-covidx-fix2)
23:24
When an index is used by all branches of the WHERE_MULTI_OR optimization and becomes a covering index, make sure the index has been created prior to NULLing it in the OP_NullRow opcode of a LEFT JOIN. See forum post 0575376e07. The covering-index for WHERE_MULTI_OR optimization was added by [62678be3df35cdcb]. Test cases are in the orindex01.test module of TH3. (check-in: 787c76a8 user: drh tags: trunk)
18:32
Add the sqlite3_changes64() and sqlite3_total_changes64() API functions. (check-in: 48fdec22 user: dan tags: trunk)
18:06
Fix a problem causing sqlite3_changes() to return an incorrect value following a "DELETE FROM tbl" command on an intkey table (because internal b+tree cells were being included in the count). (check-in: f662ff47 user: dan tags: trunk)
14:59
Ensure that the cell array used in balance_nonroot() is always large enough, even if the pages being balanced are corrupt. (check-in: 53f64e83 user: dan tags: trunk)
2021-06-20
22:52
Load recent dbsqlfuzz cases into test/fuzzdata8.db. (check-in: a766bba0 user: drh tags: trunk)
22:49
Remove a NEVER() that is reachable by a corrupt database. dbsqlfuzz 8456a0f88e39a49fb675d8f77394979ebb2a03c1. Test case in TH3. (check-in: 1c41e86f user: drh tags: trunk)
22:17
Do not allow an SQLITE_CORRUPT error to mask a prior SQLITE_IOERR in balance_nonroot(). dbsqlfuzz 5e1c86e7f18023f2b9abe3429977d7ea726f50d8 (check-in: 50e81876 user: drh tags: trunk)
2021-06-19
20:20
Remove unnecessary (redundant) variable initialization from sqlite3BtreeInsert() for a small size reduction and performance increase. (check-in: 70d18364 user: drh tags: trunk)
18:35
The previous check-in is a significant change to btree, so go ahead and increment the version number for the next development cycle. (check-in: 2eb66970 user: drh tags: trunk)
18:32
Split the sqlite3BtreeMovetoUnpacked() routine into two separate routines sqlite3BtreeTableMoveto() and sqlite3BtreeIndexMoveto(), since we usually know the type of btree in advance. This results in less branching and better performance. (check-in: 3b0d34e5 user: drh tags: trunk)
2021-06-18
19:01
Merge version 3.36.0 (check-in: 79221520 user: drh tags: reuse-schema)
18:36
Version 3.36.0 (check-in: 5c9a6c06 user: drh tags: trunk, release, version-3.36.0)
2021-06-17
17:44
Merge recent trunk changes into branch-concurrent-pnu-wal2 via that wal2 branch. (check-in: 2ff7e562 user: drh tags: begin-concurrent-pnu-wal2)
17:38
Merge recent trunk enhancements into begin-concurrent-report via begin-concurrent-pnu. (check-in: 204dbc15 user: drh tags: begin-concurrent-report)
17:30
Merge recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: 229107b1 user: drh tags: begin-concurrent-pnu)
17:29
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 59303e69 user: drh tags: begin-concurrent)
17:26
Merge recent trunk enhancements into reuse-schema branch. (check-in: 92d8f967 user: drh tags: reuse-schema)
16:53
Merge the latest trunk enhancements into the wal2 branch. (check-in: 41363fb9 user: drh tags: wal2)
2021-06-16
19:23
Add an ALWAYS on a branch in STAT4-only logic that is now always true due to check-in [c21bc5a2353e660f]. (check-in: 7bd55eee user: drh tags: trunk)
18:58
Omit a handful of tests from pager1.test when testing SQLITE_ENABLE_ZIPVFS builds. (check-in: c3036c28 user: dan tags: trunk)
16:56
Do not run test file sessionbig.test on 32-bit platforms. It uses too much memory. (check-in: 75e53215 user: dan tags: trunk)
15:56
Adjust the mkshellc.tcl script so that the generated code always uses unix-style line endings. (check-in: 9f69af4d user: drh tags: trunk)
13:26
Avoid ominous warning in showdb.c (check-in: f8d7ac01 user: larrybr tags: trunk)
12:26
Adjustments to requirement markings in comments. No changes to code. (check-in: be00e45b user: drh tags: trunk)
11:32
Enhanced defense against integer overflow in ALTER TABLE. (check-in: fb7f094e user: drh tags: trunk)
2021-06-15
20:10
Fix some #ifdefs so that builds work for all supported compile-time options. (check-in: ca7d78f7 user: drh tags: trunk)
20:07
Fix an incorrect ifdef in the previous check-in. (Closed-Leaf check-in: 4b2bb467 user: drh tags: ifdef-update)
18:46
Fix some minor #ifdef issues so that all of the supported compile-time options continue to build. (check-in: d8cf4070 user: drh tags: ifdef-update)
15:36
Update the "nmakehlp.c" utility program sources associated with the TCL Extension Architecture, obtained from https://core.tcl-lang.org/sampleextension/file. Perhaps this new version will sit better with salmonx's static analyzer (ref1), (ref2). (check-in: 603b851d user: drh tags: trunk)
15:15
Add NULL checks on all sqlite3_vfs_find(0) calls. This is not strictly necessary. There are no vulnerabilities here. However, adding these checks avoids unnecessary static analyzer complaints. Forum post ce1193be15. (check-in: 272a15b9 user: drh tags: trunk)
14:34
Prevent an infinite loop in the trim() SQL function if the second argument is a carefully malformed UTF8 string. (check-in: 829343c2 user: drh tags: trunk)
2021-06-14
20:49
Fix typos in testcase() macros from check-in [c09d90eec2a49b94]. (check-in: d4d9869c user: drh tags: trunk)
20:41
In the authorizer, use SQLITE_DROP_INDEX, not SQLITE_DROP_TEMP_INDEX when dropping an index in an attached database. (check-in: e5a5acd6 user: drh tags: trunk)
20:08
Fix an ALTER TABLE problem with handling infinite loops of CTEs in the database schema. (check-in: c09d90ee user: dan tags: trunk)
14:52
Fix a test script problem in corruptN.test. (check-in: 3ddfe9ae user: dan tags: trunk)
14:35
Update this branch with latest changes from trunk. (check-in: f21a53fb user: dan tags: reuse-schema)
14:25
Update this branch with latest changes from wal2. (check-in: 0ab89901 user: dan tags: begin-concurrent-pnu-wal2)
14:12
Update this branch with latest changes from trunk. (check-in: b38c2b8b user: dan tags: wal2)
14:01
Update this branch with latest changes from begin-concurrent-pnu. (check-in: a485d1a1 user: dan tags: begin-concurrent-report)
14:00
An index on the expression "likely(X)" should store the true value of X, even if X is a real number with no fractional part. The optimization of storing some REAL indexed values as INT (see [10d851353c2abead]) should be omitted for index columns that are expressions. Forum post 3b940c437a. (check-in: 791473bc user: drh tags: trunk)
13:49
Update this branch with latest changes from trunk. (check-in: 74b42754 user: dan tags: begin-concurrent-pnu)
12:23
Update this branch with latest trunk changes. (check-in: d8199634 user: dan tags: begin-concurrent)
11:20
Avoid allocating oversized column names in the sqllimit1.test module. (check-in: 7068f1f6 user: drh tags: trunk)
2021-06-13
19:14
The opcode that preceeds OP_SeekScan is usually OP_IdxGT but can sometimes be OP_IdxGE. Adjust asserts accordingly. Follow-up to [9a2ab6092d644fc3]. dbsqlfuzz e41762333a4d6e90a49e628f488d0873b2dba4c5 (check-in: d6803ed8 user: drh tags: trunk)
17:55
Improved defense against OOM errors in sqliteInitOne(). dbsqlfuzz 429db39cd5777c46479641e8637c48c62890042d (check-in: b6c57e0e user: drh tags: trunk)
08:23
Correct link in .ar help. (check-in: de9d0f95 user: larrybr tags: trunk)
2021-06-12
18:12
The sqlite3WithPush() routine might destroy its second argument if there was a prior OOM. Do not use the second argument of sqlite3WithPush() if this happens. (check-in: baa3f962 user: drh tags: trunk)
17:45
An alternative approach to the use-after-free problem. (Closed-Leaf check-in: 6796b7a2 user: drh tags: alternative-oom-fix)
16:17
Fix a use-after-free that could follow an OOM in ALTER TABLE. (Edit:) Still contains problems. (Closed-Leaf check-in: 193b14a5 user: dan tags: original-uaf-fix)
2021-06-11
13:18
Reapply two recent ALTER TABLE error checks that turned out to be necessary after all. dbsqlfuzz fc5a9deefda00dda914748985155a6d4c44174e5. (check-in: 230fedd9 user: drh tags: trunk)
12:41
Avoid bugs in some implementations of dlopen() by avoiding calls to dlopen() with a filename argument that exceeds FILENAME_MAX bytes. Forum post 08a0d6d9bf. (check-in: 01f3877c user: drh tags: trunk)
12:14
Fix a crash in new ALTER TABLE code that could follow an OOM. (check-in: 6f1f2a0a user: dan tags: trunk)
12:02
Remove an unreachable branch added by the previous commit. (check-in: 852ee0e9 user: dan tags: trunk)
11:14
Fix problems with ALTER TABLE and schemas that contain views with some recursive CTEs, or CTEs that reference other CTEs. Forum post 9d965f2956. (check-in: 8b1f9a51 user: dan tags: trunk)
2021-06-10
19:37
Fix an assert() added by the previous commit that could fail with some database schemas. (Closed-Leaf check-in: 5079b5d5 user: dan tags: alter-table-cte-fix-1)
19:08
Fix problems with ALTER TABLE and schemas that contain views with complex CTEs. (check-in: 32e3ecfc user: dan tags: alter-table-cte-fix-1)
14:36
Improved robustness following OOM in the constant propagation optimization. dbsqlfuzz 001a20255c0df7495c21df62a20ea5b51e22c390. (check-in: 8658a64d user: drh tags: trunk)
2021-06-09
14:45
Set the database connection error code for an oversize argument to sqlite3_bind_blob64() or sqlite3_bind_text64(). Forum post a636276f0d451667 and 33821c8db543c. (check-in: 56ff58c0 user: drh tags: trunk)
13:39
Add defensive code to better handle corrupt records in fts5. (check-in: a99c29b5 user: dan tags: trunk)
2021-06-08
23:46
Remove two assert()s in FTS5 that checks for database corruption right before actual code does the same check. dbsqlfuzz 9680db8f5338cb9b6060eb3a02d984555d4472e3. (check-in: f3f82967 user: drh tags: trunk)
17:56
Try to avoid a double-free in the showdb utility program when running pgidx on a corrupt database. See forum post a60ea5a4d4 for context (check-in: e3188a86 user: drh tags: trunk)
12:22
Add an assert() to prevent the value of the SQLITE_VTABRISK macros from being changed in a way that would break logic. (check-in: 33babdb5 user: drh tags: trunk)
12:15
Avoid a buffer overread in fts3 that could occur when handling corrupt data structures. (check-in: 45f459d2 user: dan tags: trunk)
2021-06-07
17:36
Fix a buffer overread that could occur in fts5 when handling corrupt records. (check-in: 078962a2 user: dan tags: trunk)
15:28
Fix a buffer overrun in fts3 that could occur when handling corrupt records and '^' queries. (check-in: 9d0b6b0f user: dan tags: trunk)
14:21
Add recent dbsqlfuzz test cases to test/fuzzdata8.db. (check-in: 16202200 user: drh tags: trunk)
13:50
Avoid use of uninitialized memory while running defragmentPage() on a corrupt database file. dbsqlfuzz 4c45cecc0b255aaf2ea85453ccd17e814fd0b6b2 (check-in: 35e40d75 user: drh tags: trunk)
11:50
Fix an assert() in the OP_ParseSchema opcode that might fail on a corrupt database file when running with PRAGMA writable_schema=ON. dbsqlfuzz e7d743ca65f2767e415095f0c5a49166a0f55eea. (check-in: 10801f65 user: drh tags: trunk)
00:54
Remove unnecessary end-of-line whitespace from the regexp.c extension. (check-in: 17e26a1f user: drh tags: trunk)
00:41
Omit the unnecessary highlighting of the security implications of SQLTIE_DIRECTONLY in the sqlite3_create_function() documentation. No changes to code. (check-in: 2aa9368b user: drh tags: trunk)
2021-06-04
23:26
A better fix for the problem addressed by [4eb80b0cc61526c1]. This fix also avoids reading uninitialized variables. (check-in: 1c71de43 user: drh tags: trunk)
21:46
Make MSVC build examples work when taken literally, and say when they do. (check-in: b53ca8ed user: larrybr tags: trunk)
17:47
Improvements to the OP_SeekScan optimization. Added the SQLITE_TESTCTRL_TUNE test-control. (check-in: 9a2ab609 user: drh tags: trunk)
16:17
Add the (missing) dependency of regexp.c to the shell.c rule in the makefiles. This dependency should have been added by [5d4535bfb603d7c8] but was missed. (check-in: c93be7e6 user: drh tags: trunk)
16:11
Fix harmless compiler warnings. (check-in: 83aca2d8 user: drh tags: trunk)
15:56
Fix more cases in the regexp extension where the 0x00 terminator at the end of the input string is being pattern matched. [forum/forumpost/9104f0d9e7|Forum post 9104f0d9e7]. (check-in: 569e00d4 user: drh tags: trunk)
13:40
Revamp SQLITE_TESTCTRL_TUNE to provide visibility of current turning parameter values. (Closed-Leaf check-in: 677e645e user: drh tags: seekscan-improvements)
13:16
Add support for SQLITE_TESTCTRL_TUNE and the ".testctrl tune ID VALUE" command in the CLI. (check-in: f1199d58 user: drh tags: seekscan-improvements)
12:29
Merge recent trunk enchancements into the seekscan-improvements branch. (check-in: d9e85fe8 user: drh tags: seekscan-improvements)
2021-06-03
18:56
Fix a case where combining row-value UPDATE FROM syntax with window functions over aggregates can cause an error. dbsqlfuzz ae4516bff08d736f203f09934e2f4d31e0b3e7ce (check-in: 4a587c34 user: dan tags: trunk)
18:51
Fix the truncate optimization so that PRAGMA count_changes and changes() return correct values even for a WITHOUT ROWID table. Forum post 07dedbf9a1. (check-in: 820ae3b1 user: drh tags: trunk)
13:51
Add the regexp() and regexpi() extension functions to the CLI. (check-in: 5d4535bf user: drh tags: trunk)
13:44
Fix a bug in the regexp extension in which the "." wildcard would match the 0x00 terminator at the end of the comparison string. (check-in: fa23108b user: drh tags: trunk)
12:31
Fix the case-insensitive version of the regexp() function so that it does not use the prefix optimization incorrectly. Forum post 983b43ef8e. (check-in: 1a8e43cc user: drh tags: trunk)
2021-06-02
19:28
Add an optimization control bit to disable the OP_SeekScan optimization. (check-in: f674c41e user: drh tags: seekscan-improvements)
18:50
Fix an ALWAYS which can be false. (check-in: a87f8ecd user: drh tags: seekscan-improvements)
17:32
Tighten assert() restrictions on the OP_SeekScan opcode. (check-in: dbc33d3a user: drh tags: seekscan-improvements)
17:14
Never use WHERE_IN_SEEKSCAN for the 2nd or subsequent IN operator. (check-in: d0b98619 user: drh tags: seekscan-improvements)
12:44
This is an attempt to address the OP_SeekScan performance issue identified by forum post b4fcb8a598. (check-in: d58efb3f user: drh tags: seekscan-improvements)
2021-06-01
21:07
Fix issue in 'mkopcodeh.tcl' tool that prevented its termination in rare circumstances. (check-in: a8d92113 user: mistachkin tags: trunk)
15:37
Fix a problem with running ALTER TABLE against schemas that contain compound SELECT statements with ORDER BY clauses containing one or more references to the second or subsequent component SELECT statements. This fixes the problem reported by forum post 31ceaa8461. (check-in: 587a3044 user: dan tags: trunk)
2021-05-29
23:07
Do not confuse the ">" operator with IS NOT NULL when checking to see if a partial index is usable. Forum post d813704d7c. (check-in: 8cc23931 user: drh tags: trunk)
21:50
Fix a subtle error in an assert(). dbsqlfuzz eefbd0215c0c1b4bcc32b8141b48b35f7b431300 (check-in: a5ec81eb user: drh tags: trunk)
2021-05-28
14:28
If a subquery is used to drive an index, this change avoids making an extra copy of the result of that subquery. But, such situations are probably sufficiently unusual that the added complexity of this enhancement is not worth the performance gain. So I'm going to park this check-in on a branch. If we later find a use case to justify it, we can merge it to trunk then. This is the "further change" that was promised by the prior check-in comment. (Leaf check-in: 4488cb88 user: drh tags: copy-optimization)
12:48
Make a deep copy of the result of a subquery in case the subquery is reused. Fix for the problem reported by forum post 28216b36ac and introduced by check-in [f30fb19ff763a7cb]. Further changes to try to optimize the new OP_Copy opcode back into either OP_SCopy or OP_Move will be attempted separately. A test case will be in TH3. (check-in: c9f0b9cb user: drh tags: trunk)
12:15
Fix a potential memory leak in json_group_object() following an error. dbsqlfuzz cd32630de3ff039d97089592b63cb3616f8ec9dd (check-in: 21676731 user: drh tags: trunk)
2021-05-27
16:31
Add the merge-test.tcl script to ease verification of LTS branches. (check-in: f958ffbc user: drh tags: trunk)
15:24
The SQLITE_ENABLE_SHARED_SCHEMA compile-time option is on by default in the configure-generated makefile, permitting a complete test of this branch using "./configure && make test". (check-in: e867d226 user: drh tags: reuse-schema)
14:09
Improved comment on the prpagateConstants() routine. No changes to executable code. (check-in: d61a875d user: drh tags: trunk)
10:23
Remove a NEVER that is reachable following OOM in writable_schema=ON mode with a corrupt schema. (check-in: 4eb80b0c user: drh tags: trunk)
2021-05-26
23:10
Improvements to the constant-propagation optimization in order to better deal with unusual affinities. See forum post 6a06202608 for more detail. (check-in: 9be208a6 user: drh tags: trunk)
19:52
Minor optimization to opcode comparison logic in the fixes to the constant-propagation optimization on this branch. (Closed-Leaf check-in: f17dec40 user: drh tags: constant-propagation-fix)
19:37
Add new test file whereM.test. Containing tests for the change on this branch. (check-in: c4c76b82 user: dan tags: constant-propagation-fix)
18:51
Avoid assuming that an expression like "x=10" in a WHERE clause implies that CASE(x AS TEXT)=='10'. (check-in: 389ec669 user: dan tags: constant-propagation-fix)
18:46
Take care that the code is not generated for the same Select object more than once, as transformations that apply during the first pass might cause problems for the second pass. dbsqlfuzz 836b625cd8a41809ef80fc7ebaa6554357bcb463. (check-in: f30fb19f user: drh tags: trunk)
14:32
Update an assert() in wherecode.c that might fail following an unrelated SQL error. (check-in: 3e2c36a8 user: dan tags: trunk)
2021-05-25
16:10
Do not run sessionbig.test as part of the session_strm permutation. It is too slow. (check-in: 708ce7ad user: dan tags: trunk)
15:21
Update an allocation routine in the sessions module to allow it to allocate the maximum size permitted by sqlite3_realloc64(). (check-in: 0b45e821 user: dan tags: trunk)
11:39
Enhance the shell tool ".dump PATTERN" command so that it dumps the contents of shadow tables when a virtual table is identified by the PATTERN. (check-in: b0bc5ab9 user: dan tags: trunk)
2021-05-24
14:35
Fix a problem in the in-memory journal code that could occasionally lead to a segfault when a sub-transaction that modified zero pages was committed. (check-in: 17960165 user: dan tags: trunk)
12:28
Minor comment improvements in fuzzcheck.c. (check-in: 7aca8d52 user: drh tags: trunk)
12:13
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: 5bb5c9ec user: drh tags: trunk)
11:35
Fix the TreeView module so that it works with the TK_ERROR exprssion. Also fix an assert() that was failing due to the recent TK_ERROR addition. (check-in: dd56fbe0 user: drh tags: trunk)
00:17
Additional defenses (above and beyond [b986600520696b0c]) to prevent an invalid subquery from causing problems downstream. If an error is found while analyzing a subquery expression, change the expression to TK_ERROR so inhibit further processing on that expression. dbsqlfuzz cf624b8c0484c66e0f552bf6475e3e3f2c22b24e. (check-in: 0be6b6c9 user: drh tags: trunk)
2021-05-23
17:47
Do not push a WITH clause onto the processing stack if prior errors have occurred. dbsqlfuzz 6b7a144674e215f06ddfeb9042c873d9ee956ac0. (check-in: c2066dde user: drh tags: trunk)
2021-05-22
15:05
Merge latest trunk changes into this branch. (check-in: dbc65a69 user: dan tags: reuse-schema)
11:23
Do not invoke sqlite3ExprAffinity() after a syntax error that might have left the tree in an inconsistent state. See also [e8a1515b44380cc5] and forum post 7e484e225c. (check-in: b9866005 user: drh tags: trunk)
11:00
The fix in the previous check-in was only correct if the OOM occurs on the initial allocation. This changes should make it correct for a resize as well. (check-in: 57087ab2 user: drh tags: trunk)
01:30
If an FTS5 Cursor fails to enlarge the space for the aInst array, set the size of the aInst array to zero. dbsqlfuzz 294254b8105cca409f27a711f1eb2e9e63cbcac5. (check-in: 4ae5e5b5 user: drh tags: trunk)
2021-05-21
21:49
If there are errors in a nested CTE, be sure to abandon processing. Do not continue since the parse tree may have been left in a goofy state which could cause use-after-free and segfaults. See forum post aa4a7a3980 for an example. (check-in: 94225d69 user: drh tags: trunk)
17:31
Merge latest changes from wal2 into this branch. (check-in: 4efefb59 user: dan tags: begin-concurrent-pnu-wal2)
16:42
Merge the latest trunk enhancements into the wal2 branch. (check-in: 95cc7783 user: drh tags: wal2)
16:41
Fix a problem with SQLITE_MAX_MEMORY in malloc.c. (check-in: c18dbe2f user: dan tags: trunk)
16:32
Merge the latest trunk changes into begin-concurrent-report branch via the begin-concurrent-pnu branch. (check-in: 1dc6cf51 user: drh tags: begin-concurrent-report)
16:17
Merge recent trunk changes into the begin-concurrent-pnu branch. (check-in: a8d05f8e user: drh tags: begin-concurrent-pnu)
15:33
Merge all recent trunk changes into the begin-concurrent branch. (check-in: 0dba9010 user: drh tags: begin-concurrent)
13:32
Add a new sqlite3_config() option for setting the maximum precision of a printf() substitition. The default value is 100,000. It was formerly more than 2 billion. The default can be changed using the SQLITE_PRINTF_PRECISION_LIMIT compile-time option. (Leaf check-in: fd8b68a4 user: drh tags: compile-time-precision-limit)
2021-05-20
23:25
Fix a faulty assert() statement in sqlite3ExprListDup(). This is a continuation of the fix at [59812e7ef705226c]. (check-in: 240f7494 user: drh tags: trunk)
18:11
Enhance one test case to use various alternative definitions of DUAL. (check-in: 179dcb6b user: drh tags: trunk)
17:15
Ensure that objects within view definitions are not incorrectly resolved to CTEs that are part of the statement using the view. (check-in: f7dcc4b5 user: dan tags: trunk)
11:42
Ensure the required b-tree mutexes are held for "CREATE TABLE IF NOT EXISTS" and "DROP TABLE IF EXISTS" statements on attached databases. (check-in: 67bde016 user: dan tags: trunk)
00:44
Replace [0f0959c6f95046e8] with a new and better solution that also fixes the CTE name resolution problem described in forum post 8590e3f6dc. Test cases for both problems added. (check-in: 5614279d user: drh tags: trunk)
00:10
Fixes and improvements to PRAGMA compile_options. (check-in: 34579549 user: drh tags: trunk)
2021-05-19
23:29
final merge from trunk (Leaf check-in: 06629569 user: larrybr tags: compile_options)
21:55
When constructing the synthensized SELECT statement that is used to choose the rows in an UPDATE FROM, make sure the first table is really the table being updated, and not some common-table expression that happens to have the same name. forum post a274248080. More changes associated with CTE name resolution are pending. (check-in: 0f0959c6 user: drh tags: trunk)
20:01
Incorporate ..._DESERIALIZE revision. (check-in: b70587cc user: larrybr tags: compile_options)
19:55
merge from trunk (check-in: 19ffe3cf user: larrybr tags: compile_options)
19:28
Add a comment with useful information about SHM locking. No changes to deliverable code. (check-in: 4e81ea3b user: drh tags: trunk)
19:27
Fix a formatting error on the comment. (Closed-Leaf check-in: 6f2fb60e user: drh tags: better-comment)
16:55
Add a table of shared-memory lock offsets in a comment in the os_unix.c code. Include some assert()s to help verify the numbers. (check-in: b480aacb user: drh tags: better-comment)
14:49
Allow aggregate sub-selects within ORDER BY and PARTITION BY clauses of window frame definitions. (check-in: 3daab949 user: dan tags: trunk)
12:17
Improved column name and column type determination for the RETURNING clause. (check-in: 699c3399 user: drh tags: trunk)
02:33
Cure some TCL test failures and narrow an object scope. (check-in: 1155696c user: larrybr tags: trunk)
2021-05-18
19:10
In the MULTI-INDEX OR query plan, code for sub-expressions can sometimes be generated twice. But for some subqueries, generating code off of the same tree twice causes problems. So now MULTI-INDEX OR makes a copy of the sub-expressions it uses to avoid code-generating them more than once. dbsqlfuzz 9ebd2140e7206ff724e665f172faea28af801635. (check-in: 4a55f725 user: drh tags: trunk)
12:36
Improved comments on the generated opcodes.h file. (check-in: f2a17f1f user: drh tags: trunk)
00:52
Add a CORRUPT_DB term to an assert() added earlier today. (check-in: 304739d2 user: drh tags: trunk)
2021-05-17
17:14
Fix harmless compiler warnings. (check-in: ace12a39 user: drh tags: trunk)
16:54
Enhance the integer-comparison optimization on the OP_Eq and similar opcodes so that it avoids a lot of useless work. (check-in: 4221f41a user: drh tags: trunk)
16:20
Fix problems with refering to CTEs from within sub-selects in PARTITION BY or ORDER BY clauses of window frame definitions. Also a problem with renaming a column when the schema contains a trigger containing a correlated sub-select within a window frames PARTITION BY or ORDER BY clause. (check-in: 4c6cd54a user: dan tags: trunk)
13:11
When deleting an SQL function that does not exist, return without doing anything at all rather than creating a tombstone function. In this way, function deletes that happen inside virtual-table destructors that are run when a database connection is closing do not create new tombstones in the function table after the function table has already been purged. forum post 726219164b. (check-in: 391c7313 user: drh tags: trunk)
11:19
Performance improvement in sqlite3TableLock(). (check-in: 0d77e371 user: drh tags: trunk)
2021-05-15
19:36
Performance optimization in the memory allocation of allocateCursor. (check-in: 9d16323d user: drh tags: trunk)
13:08
Performance optimization to the clearCell() routine inside of btree. (check-in: c4e02619 user: drh tags: trunk)
2021-05-14
20:01
Small performance improvement for sqlite3BtreeInsert(). (check-in: 4ae64484 user: drh tags: trunk)
15:37
Avoid adding superfluous virtual WHERE clause terms that might arise due to the constant propagation optimization. (check-in: cf63abbe user: drh tags: trunk)
14:26
Attempt the constant propagation optimization on any WHERE clause that has a top-level AND operator, even if the query is not a join. This is an attempt to partially address the concern raised in forum post 830d37b928. (check-in: e994c9f2 user: drh tags: trunk)
13:32
Fix an over-length source code comment in whereexpr.c. No logic changes. (check-in: af5eb902 user: drh tags: trunk)
2021-05-13
18:24
Modify the sqlite3_stmt_readonly() interface so that it returns false for CREATE TABLE IF NOT EXISTS statements even if the table already exists and the statement is really a read-only no-op. Likewise for DROP TABLE, CREATE INDEX, and DROP INDEX. Update the documentation for sqlite3_stmt_readonly() to reflect this new behavior. (check-in: cf8eb465 user: drh tags: trunk)
13:43
The content columns of the index-btree that implements a WITHOUT ROWID table are not ordered and so the query planner should not assume they are ordered. Fix for the issue identified by forum post 6c8960f545. (check-in: c21bc5a2 user: drh tags: trunk)
2021-05-12
22:15
Further simplification of the reverse-order scan logic of the previous check-in. (check-in: b2b0e23b user: drh tags: trunk)
22:02
Fix the query plan for an indexed lookup on a WITHOUT ROWID table with a DESC primary key when the primary key is constrained by an inequality. See forum post 8988341615. Test cases in TH3. (check-in: f65c929b user: drh tags: trunk)
15:39
Fix a race condition that can lead to deadlock in the memdb VFS if one thread is trying to open an existing database at the same moment that another thread that is the only prior user of that database is trying to close it. (check-in: b635375d user: drh tags: trunk)
14:17
Add the new threadtest5 test program for stressing multiple database connections in the same process hammering on a single database. Primarily designed to test memdb, but works on any database. (check-in: 8db1c069 user: drh tags: trunk)
11:55
Enhance the memdb VFS so that it is able to share databases among multiple database connections in the same process, as long as the database filename begins with "/". This provides a way for threads to share an in-memory database without the use of shared-cache mode. (check-in: 533fffc4 user: drh tags: trunk)
02:52
Respond correctly to OOM during mutex allocation. (Closed-Leaf check-in: 98dae595 user: drh tags: memdb-enhancement)
02:09
Mark an unreachable branch as NEVER(). (check-in: 6c20d9d4 user: drh tags: memdb-enhancement)
2021-05-11
11:40
Fix a NEVER() that can sometimes be true. (check-in: 8f9f1cbc user: drh tags: memdb-enhancement)
11:33
Merge changes from branch-3.35. Specifically, fixes for a running RBU with a cksumvfs VFS. (Leaf check-in: ca62c36b user: dan tags: reuse-schema-3.35)
11:25
Fixes for cksmvfs and rbu so that they work together. (Leaf check-in: ce8b589e user: dan tags: branch-3.35)
10:47
Fix a NEVER() that can sometimes be true. dbsqlfuzz 9a86fb3830977e216fde061bfbe1c1e5c2e9bfc4 (check-in: f39666e6 user: drh tags: trunk)
2021-05-10
23:48
Enhance the memdb VFS to provide the ability to share a single database among multiple database connections. (check-in: 0617c66a user: drh tags: memdb-enhancement)
13:28
Add new output columns to the "PRAGMA database_list" statement. (Leaf check-in: 905085a7 user: drh tags: database-list-enhancement)
2021-05-08
17:18
Enable the sqlite3_serialize() and sqlite3_deserialize() interfaces by default. Omit the SQLITE_ENABLE_DESERIALIZE option and replace it with the SQLITE_OMIT_DESERIALIZE option. (check-in: 6df3b03e user: drh tags: trunk)
11:57
Fix help-text typo in the CLI. (check-in: 56075314 user: drh tags: trunk)
2021-05-07
15:46
Detect misuse of aggregate functions in the ORDER BY clause of a query even if the query also contains window functions. (check-in: 0d11d777 user: drh tags: trunk)
14:16
This was suppose to be a merge from trunk. But something went wrong. (Closed-Leaf check-in: c5e2de1d user: dan tags: bad-merge)
2021-05-06
20:47
Fixes for cksmvfs and rbu so that they work together. (check-in: f35f6972 user: dan tags: trunk)
13:45
Remove an assert() in FTS5 that can (rarely) be false in the event of an OOM while processing a corrupt database file. (check-in: 5f12f891 user: drh tags: trunk)
11:02
Improved detection of oversized cells in balance_nonroot(), especially in index b-trees when a cell is being moved from a child page into the parent page in order to become a new divider cell. (check-in: 9080d3d5 user: drh tags: trunk)
2021-05-05
19:46
Provide the sqlite3PrintMem() routine on SQLITE_DEBUG builds, which can be invoked from a debugger to get a summary of the status of an sqlite3_value or Mem object. (check-in: 5ac24179 user: drh tags: trunk)
11:47
Fix an undefined-integer-overflow problem in fts3.c. (check-in: a0bf931b user: dan tags: trunk)
2021-05-04
23:21
When applying the optimization that disables WHERE clause terms that drive indexes, make sure not to do so if the term being disabled is a transitive constraint. Fix for the problem identified by forum post eb8613976a. (check-in: f1f9b5de user: drh tags: trunk)
18:24
Also for the 0x20000 bit of ".wheretrace", show when WHERE clause terms are disabled. (check-in: 625fb253 user: drh tags: trunk)
16:51
Additional debugging output for whereScanNext() showing equivalence classes when the ".wheretrace" setting contains the 0x20000 bit. (check-in: 9280e3d9 user: drh tags: trunk)
12:07
Back out the EXISTS-to-IN optimization. It slows things down rather than speeds them up depending on the query. And (see forum post 8692d94725) it sometimes results in an incorrect answer. We may come back and revisit this optimization later, but for now it seems best just to disable it. (check-in: 16252d73 user: drh tags: trunk)
2021-05-03
13:35
Fix minor coverity warnings in the CLI. (check-in: 204086a9 user: drh tags: trunk)
13:24
Fix a potential memory leak following OOM in the decimal extension. (check-in: 5127f737 user: drh tags: trunk)
2021-05-01
12:09
Back out the NEVER() inserted by [c7309ed3c7588c7e] because it is reachable after all. dbsqlfuzz bc17a306a09329bba0ecc61547077f6178bcf321 (check-in: 20a4f3f1 user: drh tags: trunk)
2021-04-30
16:12
Guard against a NULL-pointer dereference following OOM in the JSON extension. (check-in: ea221f3c user: drh tags: trunk)
12:30
Fix a harmless "unused variable" warning when compiling with -DSQLITE_COVERAGE_TEST. (check-in: 0bef3fb1 user: drh tags: trunk)
2021-04-29
19:30
Reduce API lifetime requirement for objects passed to sqlite3_bind_...() with SQLITE_STATIC. Also fix broken session doc links (by zapping refs.) (check-in: 327eb479 user: larrybr tags: trunk)
18:03
Fix the operation of the "-" argument to --load-dbsql in the fuzzcheck program. (check-in: 1f18b3cb user: drh tags: trunk)
15:49
Fix the IN-early-out optimization so that it works even for the corner case where the NULL bypass fires before the affinity of the LHS operator has been set. Fix for the problem described in forum post 6a3ec138e9. (check-in: eb40248c user: drh tags: trunk)
13:58
Enhanced "PRAGMA vdbe_trace=on" output associated with the seekHit flag. (check-in: 68395000 user: drh tags: trunk)
13:37
Fix harmless compiler warnings. See forum post 256140e470. (check-in: 1b8da792 user: drh tags: trunk)
10:48
Update test/fuzzdata8.db with recent dbsqlfuzz finds. (check-in: bce2ea39 user: drh tags: trunk)
2021-04-28
17:37
Ignore the TEMP or TEMPORARY keyword on CREATE statements which parsing the schema out of an existing database file. Those keywords should never be there. This change simply adds robustness in case a legacy or damaged database is seen. (check-in: 65ec39f0 user: drh tags: trunk)
15:43
Adjust a VDBE coverage macros due to the enhancement at [506333742103c1f4]. (check-in: daed59b4 user: drh tags: trunk)
2021-04-27
17:36
Create new branch named "testing_help" (Leaf check-in: a97a5022 user: larrybr tags: testing_help)
17:18
Further improvements to the handling of RETURNING clauses on changes to TEMP tables with triggers. dbsqlfuzz 683913e98f54fe4f14e8dd11a48011f73bdca58d (check-in: ff3538ae user: drh tags: trunk)
13:04
RETURNING bug fix: Correctly deal with RETURNING statements on changes to TEMP tables that also have triggers. dbsqlfuzz 78b9400770ef8cc7d9427dfba26f4fcf46ea7dc2 (check-in: d0b15ecc user: drh tags: trunk)
11:28
Fix a segfault that could occur when querying a corrupt data structures with an fts5token table. (check-in: cbedfa05 user: dan tags: trunk)
04:47
merge latest trunk (check-in: 3ff22824 user: larrybr tags: compile_options)
00:05
Better error messages on showdb. (check-in: 7e18e114 user: drh tags: trunk)
2021-04-26
23:57
Improved robustness of the "showdb" debugging program when it is parsing corrupt database files. (check-in: 3eabac2e user: drh tags: trunk)
22:30
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: 88d20500 user: drh tags: trunk)
21:23
Fix the UNION ALL flattener optimization so that it works better with recursive CTEs. dbsqlfuzz 88ed5c66789fced139d148aed823cba7c0926dd7 (check-in: f80d7bb2 user: drh tags: trunk)
21:00
Add ALWAYS() to branches that are no longer reachable due to recent enhancements. (check-in: 63c50fbd user: drh tags: trunk)
20:18
refix altertab.test (check-in: db032156 user: larrybr tags: trunk)
15:32
Fix a problem that could cause a crash in sqlite3BtreeDelete() when operating on a corrupt database file. (check-in: 6c633466 user: dan tags: trunk)
15:28
More aggressive detection of OOM errors in resolveAlias(). dbsqlfuzz 7f96832c2ef7ee472022ed805b064e55e41094b2 (check-in: e99faf4f user: drh tags: trunk)
14:32
When doing the optimization that attempts to avoid sorting on a GROUP BY, do not assume that the values in an index on an expression are non-NULL. Bug discovered by Wang Ke's fuzzer and reported at forum post 74330094d8. (check-in: 7178dc3a user: drh tags: trunk)
14:09
Do not initialize eponymous virtual tables when parsing the schema. This can happen if the db is corrupt. (check-in: cb8c41aa user: dan tags: trunk)
2021-04-25
23:13
Skip test when no JSON. (check-in: 6fcb2438 user: larrybr tags: trunk)
2021-04-24
23:40
Make window range queries more robust against corrupt database files. dbsqlfuzz f22df3a7b2aab0937a415484514fc2f68a293c99. (check-in: 50633374 user: drh tags: trunk)
12:24
Treat byte-order marks (BOMs) at the start of a token as whitespace. This enhancement is inspired by forum post ed8f696a20. (check-in: 3d55c21c user: drh tags: trunk)
12:20
Fix testcase altertab-25.1 due to check-in [c7909e8e0d0577c6] disallowing ALTER TABLE on eponymous virtual tables. (check-in: 32255e39 user: drh tags: trunk)
2021-04-23
13:57
Fix harmless compiler warnings in fuzzcheck. (check-in: e7b4ffec user: drh tags: trunk)
12:58
Enhance the --load-dbsql and related options of fuzzcheck so that if the argument is a single - then filenames are read from standard input. (check-in: e1548802 user: drh tags: trunk)
12:16
Give a better final output line for the --spinner option on fuzzcheck. (check-in: 93729614 user: drh tags: trunk)
11:50
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: 8da88508 user: drh tags: trunk)
11:37
Fix an assert() in fts5_index.c that may fail if the database records are corrupt. (check-in: dfadb96e user: dan tags: trunk)
00:59
Improved OOM detection in sqlite3ExprCheckIN(). dbsqlfuzz 46ae2d8f473ac672f3042cc14ab67aeab9ffa6c2 (check-in: fac12115 user: drh tags: trunk)
2021-04-22
20:01
Change a memcpy() into a memmove() to prevent a warning about overlapping regions passed to memcpy() in case of some obscure and unlikely database corruption. (check-in: bab132cb user: drh tags: trunk)
19:34
Fix harmless compiler warnings of unused function parameters in FTS5. (check-in: 14273915 user: drh tags: trunk)
18:52
Further tweaks for comments in sqlite3session.h. (check-in: 553ada28 user: dan tags: trunk)
18:39
Change to comments in sqlite3session.h. No changes to code. (check-in: 353ebb71 user: dan tags: trunk)
18:02
Raise an error on an attempt to rename an eponymous virtual table. (check-in: c7909e8e user: drh tags: trunk)
17:55
Add the experimental sqlite3session_changeset_size() API. (check-in: 3de544d4 user: dan tags: trunk)
17:40
Add the sqlite3session_object_config() API. Current used to enable/disable collecting data for sqlite3session_changeset_size(). (Closed-Leaf check-in: 4d5fd215 user: dan tags: session-changeset-size)
16:54
Improved handling of errors in ALTER TABLE RENAME. dbsqlfuzz 3e3e2e076e53d02288f80af41a11143a6ddf8c88 (check-in: 9c7a449f user: drh tags: trunk)
14:43
Fix the date/time translation logic in the zipfile extension so that it works with boundary cases. See forum post d82289d69f for the trouble report. (check-in: c8de5f06 user: drh tags: trunk)
13:59
Ensure that the typedefs for specific-length integers in zipfile.c are correct. (check-in: f1f2a490 user: drh tags: trunk)
12:38
In the whereLoopXfer() routine, ensure that the destination is fully initialized even if an OOM error occurs. (check-in: c4258708 user: drh tags: trunk)
2021-04-21
23:13
The new OP_Null opcode from check-in [8b54102a00852b72] was not coded correctly. This check-in attempts to fix that. (check-in: 02af30aa user: drh tags: trunk)
20:52
Add the experimental sqlite3session_changeset_size() API. (check-in: b5564a6f user: dan tags: session-changeset-size)
12:03
Add recent dbsqlfuzz test cases to test/fuzzdata8.db. (check-in: 6fe50dcc user: drh tags: trunk)
11:58
Initialize the key registers in the skip-scan optimization to NULL, in case the query is run on a corrupt database that causes the initialization of the key to be bypassed. dbsqlfuzz 62fdf2bece00d24cac8a4edf2cf562e6eeac779d (check-in: 8b54102a user: drh tags: trunk)
11:32
Fix a problem allowing SQL variables to be used expressions within the second and subsequent ON CONFLICT clauses of an UPSERT within a trigger. (check-in: 2a28910a user: dan tags: trunk)
2021-04-20
22:48
Remove a testcase() that is no longer relevant due to the previous check-in. (check-in: ca70c8ac user: drh tags: trunk)
20:48
More aggressive detection of database corruption in the rebuildPage() routine. (check-in: a18c6506 user: drh tags: trunk)
13:31
Update an assert() in btree.c that may fail with a corrupt database. (check-in: d74bf88c user: dan tags: trunk)
12:14
In the sqlite3SelectDup() routine, do not do an incomplete duplication due to OOM. This in turn requires several new NEVER() and ALWAYS() macros for unreachable branches. (check-in: a61c0e6b user: drh tags: trunk)
00:09
Add two ALWAYS() macros for branches no longer reachable due to the previous check-in. Later: Dbsqlfuzz quickly found ways to make both of these ALWAYS() conditionals false. (Closed-Leaf check-in: 8f339f43 user: drh tags: mistake)
2021-04-19
20:36
Improvement to check-in [d564d8882ef18b55] to detect the OOM fault even if it occurs deep down inside the duplicated expression. (check-in: 3e863cd0 user: drh tags: trunk)
19:59
An improvement to check-in [1a341378ab24a509] that omits the new Walker.bWalkWinDefn boolean (which is not always initialized) and uses a special value for xSelectCallback2 instead. (check-in: bef2238d user: drh tags: trunk)
19:07
Merge in the 3.35.5 patches. (check-in: 35d1c9a5 user: drh tags: reuse-schema-3.35)
18:32
Version 3.35.5 (check-in: 1b256d97 user: drh tags: release, branch-3.35, version-3.35.5)
18:03
Ensure that a WITHOUT ROWID table does not have the .iPKey field set, even if an OOM error occurs while parsing a schema in PRAGMA writable_schema=ON mode. Add extra assert() statements to triple-check that this never happens. dbsqlfuzz 803bb1f63d6f3bd6c14db568494d6e96be8f1ec9. (check-in: 41228350 user: drh tags: trunk)
16:45
Remove fts5 test functions fts5_expr(), fts5_expr_tcl(), fts5_isalnum() and fts5_fold() from release builds. (check-in: c68a6c6c user: dan tags: trunk)
15:05
In the query flattener, avoid invalidating an expression if an OOM occurs. This prevents problems in higher-level routines that might not check for the OOM after processing a subquery. dbsqlfuzz fb70fa8602421f87673e0670b0712ff2b5240ea0 (check-in: d564d888 user: drh tags: trunk)
12:05
Update the version number to 3.35.5. (check-in: d917b70a user: drh tags: branch-3.35)
2021-04-18
15:45
Create new branch named "auth-vac" (Leaf check-in: 5a7410ac user: larrybr tags: auth-vac)
06:03
Ensure that all records are updated by setting the OPFLAG_SAVEPOSITION flag when updating records as part of ALTER TABLE DROP COLUMN. Fix for [c88f3036a2]. (check-in: 11c368f2 user: dan tags: branch-3.35)
05:52
Modify the drop column code to handle WITHOUT ROWID tables for which a single column appears more than once in the primary key. (check-in: cfa8912a user: dan tags: branch-3.35)
05:30
Ensure that all records are updated by setting the OPFLAG_SAVEPOSITION flag when updating records as part of ALTER TABLE DROP COLUMN. Fix for [c88f3036a2]. (check-in: 354a4db5 user: dan tags: trunk)
2021-04-17
20:13
Remove a couple of NEVER() macros from the code for walking window lists. (check-in: 4ec9ef4b user: dan tags: trunk)
20:13
Merge trunk bug/test fixes (check-in: 830b0b1c user: larrybr tags: compile_options)
20:04
Bring in permutations mod. (check-in: 7a1316f3 user: larrybr tags: trunk)
19:59
Do not run external_reader.test as part of permutation "journaltest", as it requires wal mode. (check-in: 9f5f16cf user: dan tags: trunk)
18:43
Allow more time for perf tests when instrumented. Condition another on feature it needs. (check-in: f0dd9cf2 user: larrybr tags: trunk)
18:39
Add new dbsqlfuzz cases to test/fuzzdata8.db. (check-in: d18793e5 user: drh tags: trunk)
14:42
Fix cases where code in expr.c was failing to handle OOM failures that occurred while processing sub-select expressions. (check-in: 62efe2ee user: dan tags: trunk)
13:46
Ensure that variables are not used in the WINDOW clause of a query inside of a trigger. dbsqlfuzz d9cf66100064952b66951845dfab41de1c124611 (check-in: 1a341378 user: drh tags: trunk)
2021-04-16
23:53
Merge from trunk. (check-in: 43894f0b user: larrybr tags: compile_options)
23:43
Add geopoly to $::sqlite_options() and use it to pass more tests. (check-in: 23da5016 user: larrybr tags: trunk)
22:53
Performance optimizations in the code generator, especially in name resolution. (check-in: ab83a998 user: drh tags: trunk)
21:29
Make a test conditioned on feature used. (check-in: 31afda7a user: larrybr tags: trunk)
19:25
Add new dbsqlfuzz-generated cases to test/fuzzdata8.db. (check-in: 1ac0a056 user: drh tags: trunk)
17:09
Fix another undefined behaviour in fts3 that could follow an OOM error. (check-in: fac3ff85 user: dan tags: trunk)
16:55
Avoid signed integer overflow when finding snippets in fts3 by using 64-bit integer offsets. (check-in: 4cc09a87 user: dan tags: trunk)
15:44
Merge from trunk. (check-in: d762784a user: larrybr tags: compile_options)
12:33
Remove an ALWAYS() from a branch in sqlite3ExprAddCollateToken() which can be false following an OOM. dbsqlfuzz 9e8516bf1e786c84e520ae43141b75b7399f8618. (check-in: 6af4e6d0 user: drh tags: trunk)
12:13
Fix an assert() in whereLoopAddOr() that can be wrong if an OOM occurs in an OR constraint on a virtual table if one of the terms of the OR is an IN operator. dbsqlfuzz 5ee7350b40014f5a878c5d6e76913a2d619f5146 (check-in: 5cb40e53 user: drh tags: trunk)
11:25
Fix an assert() in fts3 that might fail when handing corrupt records. (check-in: d0e2d674 user: dan tags: trunk)
11:05
Fix the comment on the implementation of the pi() SQL function. No changes to code. (check-in: 5620bd46 user: drh tags: trunk)
10:25
Dial back assumptions on compile option defaults to reflect actual conditionals. (check-in: cb312772 user: larrybr tags: compile_options)
01:03
Do not invoke sqlite3ExprAffinity() if there is a possibility that the Expr is incomplete due to a prior OOM. dbsqlfuzz b8a824706914488bd236da51118eb9174ceb870f (check-in: e8a1515b user: drh tags: trunk)
2021-04-15
23:43
Merge from (forked) trunk. Handle compile options that differ from default by being 0. (check-in: 6eb83f83 user: larrybr tags: compile_options)
19:09
Fix a bad interaction between constant propagation and transitive term handling causing patterns like "WHERE unlikely(t1.x=t1.y) AND t1.y=?" to return non-matching rows. See forum post c38462ab5e. (check-in: 2363a14c user: dan tags: trunk)
13:26
Add extra test case for OOM handling in where.c. (check-in: 7163de3d user: dan tags: trunk)
12:56
Make sure the WhereInfo.pExprMods list is properly cleared when existing sqlite3WhereBegin() early due to an OOM fault. dbsqlfuzz 1247a51318047aba42e7f6991dfa62577cb7a151. (check-in: 0e19af72 user: drh tags: trunk)
00:26
Bring pragma compile_options up to date. And make mkctimec.tcl help do so. (check-in: 63ea3e29 user: larrybr tags: compile_options)
2021-04-14
15:25
Prevent an assert() from failing if sqlite3_blob_reopen() is called on a blob-handle that has already hit an SQLITE_CORRUPT error. (check-in: b5dc7aba user: dan tags: trunk)
12:11
Fix a potential crash when using json_group_array() as a window function. (check-in: 3c266690 user: dan tags: trunk)
11:20
Fix an assert() in the code generator for expressions so that it is valid even after an OOM. (check-in: 427e83eb user: drh tags: trunk)
2021-04-13
18:39
Fix a problem with handling expressions like "(col IS NULL AND <expr1>) OR col == NULL" in WHERE clauses. Reported at https://sqlite.org/forum/forumpost/1c4f2fdcc4. (check-in: e8c7bd34 user: drh tags: branch-3.35)
17:45
Fix an undefined signed integer overflow in fts5. (check-in: e6f0adb0 user: dan tags: trunk)
13:48
Do not leave a WITHOUT ROWID table without a primary key index structure due to an OOM error. This prevents downstream troubles in the case of PRAGMA writable_schema=ON. dbsqlfuzz 69fb32cc82d59b4d790881566e3f6c727e616122 (check-in: 608b6644 user: drh tags: trunk)
13:20
The SQLITE_NoSchemaError flag should not apply to OOM errors while parsing the schema. (check-in: 9cc484ad user: drh tags: trunk)
13:01
Earlier detection empty_result_callbacks in sqlite3InitCallbac() to avoid problems with corrupt schemas an writable_schema=ON. dbsqlfuzz ca4ca43bdb22eab9859de4979aec615af851e111. (check-in: fb305fe0 user: drh tags: trunk)
12:28
In the rtreedepth() function, detect OOM when converting a zeroblob() on input. dbsqlfuzz ed23eda7cc3a8a054f85ea19d55c59ba2ca72744. (check-in: 69f843c8 user: drh tags: trunk)
01:12
Fix an error in the inversion function for json_group_array(). dbsqlfuzz 68a4b0f668b7bc27235e3f1c5cff8a2d94cfa17e. (check-in: e718a62e user: drh tags: trunk)
2021-04-12
23:18
Fix a faulty assert() inside sqlite3ExprDup(). (check-in: 59812e7e user: drh tags: trunk)
22:39
Fix an assert() in OP_ParseSchema so that it works even after an OOM. (check-in: 79b88353 user: drh tags: trunk)
18:32
Avoid taking the address of a NULL pointer following an OOM in FTS5. Doing so is harmless in actual practice, but it technically UB so we want to avoid it. (check-in: 1cfcd9dc user: drh tags: trunk)
17:34
Add an assert() to show that the SF_Resolved flag does not get set if errors are being suppressed. (check-in: f455c5b0 user: drh tags: trunk)
16:59
Fix a segfault that could occur if the ORDER BY clause of a compound SELECT contains a sub-select that uses one or more window functions. (check-in: 5ba15ebb user: dan tags: trunk)
12:58
Fix the display of SrcList in the sqlite3TreeView debugging routines. (check-in: 28ecb381 user: drh tags: trunk)
12:02
Avoid an assert() failure when a compound scalar sub-select is, due to a "WHERE (sub-select) AND (... OR ...)" clause, coded twice by the code generator. (check-in: a4e3f133 user: dan tags: trunk)
11:51
Fix harmless comment typo in main.c. (check-in: 785a553e user: drh tags: trunk)
2021-04-11
00:11
Add NEVER() to a branch that is no longer reachable due to check-in [a1d823f6879ce1ac]. (check-in: 5fda21fe user: drh tags: trunk)
2021-04-10
20:27
Avoid an uninitialized-memory valgrind error by tightening up corruption detection in internal routine defragmentPage(). (check-in: 8096f7ae user: dan tags: trunk)
20:21
Add NEVER() to a branch that became unreachable with check-in [58f36af2271517ab]. (check-in: e07ce463 user: drh tags: trunk)
15:34
Avoid invoking sqlite3Atoi64() will a null pointer following an error from ExpandBlob(). (check-in: 780412f2 user: drh tags: trunk)
14:49
Fix a problem with handling expressions like "(col IS NULL AND <expr1>) OR col == NULL" in WHERE clauses. Reported at https://sqlite.org/forum/forumpost/1c4f2fdcc4. (check-in: 40852ca8 user: dan tags: trunk)
13:37
Refactor NameContext.nErr into nNcErr to avoid confusion with Parse.nErr. Do not abandon sqlite3ResolveExprList() on nNcErr if nErr is still zero as we might have hit a problem with ORDER BY resolution that should be a suppressed error. dbsqlfuzz 41b9dad40919d3549ca7e52d893da81a6dded4ad (check-in: 7d674970 user: drh tags: trunk)
2021-04-09
22:34
Remove a NEVER() in a corruption detection conditional in defragmentPage(). dbsqlfuzz 9c61c33802600b2b01dfb09b0386ceb4ade02a19 (check-in: c174f5d3 user: drh tags: trunk)
22:20
Remove an ALWAYS() that is actually reachable following an OOM on an UPDATE FROM of a virtual table. dbsqlfuzz aa03237ef7c4a028c7cdaf8bbcde2b62e2bcd36e (check-in: 49eac389 user: drh tags: trunk)
20:50
Have the VFS in memdb.c return SQLITE_IOERR_NOMEM instead of SQLITE_NOMEM when an OOM error is encountered. This is required to get the pager module to handle such OOM errors correctly in some cases. (check-in: 09c96b4c user: dan tags: trunk)
2021-04-08
20:29
Fix a use-after-free error that could occur when processing "SELECT aggregate(DISTINCT <expr>)..." queries. (check-in: 0e478986 user: dan tags: trunk)
19:56
Remove an ALWAYS() that might be false under very unusual circumstances. dbsqlfuzz 300261f469ace7ecc57ed32ea7b0de3ea9d7dbf. Test case in TH3. (check-in: 466f5089 user: drh tags: trunk)
19:39
Handle the corruption fixed by the previous commit in a different way so as to also fix dbsqlfuzz crash 753de0a0ac5b25b18f1e4d41e650d3333cdc270c. (check-in: cb27ce25 user: dan tags: trunk)
15:19
Handle a special case of corruption that can present if "PRAGMA writable_schema=1" is set. Fix for dbsqlfuzz test case 6229ad63de49e3ba0630aaf0058868f36008bcca. (check-in: 58f36af2 user: dan tags: trunk)
14:15
Harden the filter_over grammar rule against OOM faults. dbsqlfuzz e47c54502a9c36778a5ed553199d5870e2ebd9f2 (check-in: f375f541 user: drh tags: trunk)
13:52
Remove an incorrect assert() from sqlite3EndTable(). dbsqlfuzz 4af45bcda779592449b1985433bca90b0e683b9b. (check-in: 38a1085c user: drh tags: trunk)
13:41
Fix an obscure memory leak in FTS3. dbsqlfuzz 26a51001beeff35649d2e328b05ec06f93c577a5 (check-in: be7cd9eb user: drh tags: trunk)
2021-04-07
18:17
Do not allow the use of rowid for views and subqueries unless compiled with -DSQLITE_ALLOW_ROWID_IN_VIEW. (check-in: a2ddb89b user: drh tags: trunk)
18:08
Add the SQLITE_ALLOW_ROWID_IN_VIEW option to omitttest.tcl. (Closed-Leaf check-in: 83b8e4c2 user: drh tags: no-rowid-on-view)
17:46
Merge latest changes into this branch. (check-in: 655c2841 user: dan tags: begin-concurrent-report)
17:32
Merge latest trunk changes into this branch. (check-in: 1f3f7e4b user: dan tags: begin-concurrent-pnu)
15:45
Also prohibit the use of rowid from a subquery. Add the SQLITE_ALLOW_ROWID_IN_VIEW compile-time option to restore legacy behavior in case somebody actually needs it. (check-in: 14b1d56e user: drh tags: no-rowid-on-view)
15:23
Merge version 3.35.4 with this branch. (check-in: 4b4f8791 user: dan tags: reuse-schema-3.35)
15:13
Update a broken assert() on this branch. (check-in: e69f2989 user: dan tags: reuse-schema)
13:20
Unnecessary local variable initialization to fix a harmless compiler warning. (check-in: c22e47c7 user: drh tags: trunk)
12:59
In FTS3, if the xBegin method fails to start a transaction due to an OOM error, then make sure that the virtual table is left in a consistent state. dbsqlfuzz 85ef48423fda4eef79a551654445d8ef3537a590. (check-in: dd553578 user: drh tags: trunk)
12:36
Fix an assert in the automatic-index constructor that can be false following an OOM error. dbsqlfuzz ee04d66c627ed5b5301e0ce09e24db47e0f1544e. (check-in: cc6463fe user: drh tags: trunk)
12:21
Earlier detection of page 1 on the freelist (which is impossible) and reporting of that as database corruption. dbsqlfuzz 6fe6c504b320be5e3eed66896cb0db28bfb38a93. (check-in: b1bf0d98 user: drh tags: trunk)
12:02
Fix a possible crash that could occur when executing a drop column operation on a corrupt database schema. (check-in: c3378494 user: dan tags: trunk)
09:31
Fix seg-fault upon appendvfs attempt to open non-existent file. (check-in: 04f6439f user: larrybr tags: trunk)
2021-04-06
23:29
Do not apply the optimization that omits DISTINCT if all result terms are part of a UNIQUE index if the index is also a partial index. Fix for the bug reported by forum post 66954e9ece. (check-in: c2f940b0 user: drh tags: trunk)
22:56
Detect OOM earlier in the geopoly extension. dbsqlfuzz 0986e7b020e6137fc6b96331f91d15753d18e42d. (check-in: 72371175 user: drh tags: trunk)
21:20
Modify the drop column code to handle WITHOUT ROWID tables for which a single column appears more than once in the primary key. (check-in: e0d25070 user: dan tags: trunk)
19:13
Raise an error if a query tries to access the "rowid" of a view, as views do not have rowids. (check-in: 7a73c616 user: drh tags: no-rowid-on-view)
18:40
Restructure a loop in window.c to avoid hitting an assert() following an OOM. dbsqlfuzz test case 6ef74a9659de87e9be3d8694ad062c448aa7ef1d. (check-in: 887c19a1 user: dan tags: trunk)
18:02
Update an assert statement that could fail when using "PRAGMA writable_schema = 1" to access a database with a corrupt schema. (check-in: 55cad6f6 user: dan tags: trunk)
17:51
Fix issue with failing --enable-debug --enable-fts5 build. (check-in: e7491acc user: dan tags: trunk)
16:55
New test cases added to fuzzdata8.db. (check-in: 039ad662 user: drh tags: trunk)
16:42
Silence an msan warning triggered by a corrupt database by initializing a local variable in sqlite3Insert(). (check-in: f64deece user: dan tags: trunk)
16:16
Avoid a use-after-free that may occur when accessing a corrupt database schema with "PRAGMA writable_schema = 1" set. (check-in: a1d823f6 user: dan tags: trunk)
14:46
Remove some test routines from release builds of fts5. (check-in: 3088bf15 user: dan tags: trunk)
13:57
Fix incorrect RETURNING test cases in wherelimit.test (check-in: 20d21ff9 user: dan tags: trunk)
13:56
Earlier detection of OOM errors during window function processing. dbsqlfuzz b08676f5a0437552c95d2a5d7ef285f8c451ea35. (check-in: 8e04f52e user: drh tags: trunk)
13:53
Handle "RETURNING rowid" clauses attached to INSERTs on views without causing an assert() to fail. Fixes dbsqlfuzz crash 0081f863d7b2002045ac2361879fc80dfebb98f1. (check-in: 9c5b7386 user: dan tags: trunk)
13:03
Further improvements (subsequent to [d91450847a3a3a72]) to handling of attempts to delete a journal using the memdb VFS. dbsqlfuzz ac61dab357279a6a531de067f040e9a4828d2df0. (check-in: a0839406 user: drh tags: trunk)
12:50
Earlier detection and handling of OOM problems. dbsqlfuzz 39f2963ea5559aa3a16e24e0e3cb42aac85a7371. (check-in: 8d46df73 user: drh tags: trunk)
2021-04-05
22:42
Relax an assertion on the sqlite3WhereEnd() routine after dbsqlfuzz found a counter-example. (check-in: e6b591e7 user: drh tags: trunk)
22:30
Add a missing CORRUPT_DB to an assert in the OP_ResultRow opcode. (check-in: 82f92d79 user: drh tags: trunk)
19:23
Adjust the README.md file so that build instructions work for Fossil version 2.12 and later. Forum post 51f28bb701. (check-in: 51f87adc user: drh tags: trunk)
19:05
Do not allow floating point rounding errors to cause a window function xInverse() function to be invoked before the corresponding xStep() call. (check-in: 7a19fed4 user: dan tags: trunk)
17:50
Fix an assert() that can be false when doing an incremental vacuum on a corrupt database file. dbsqlfuzz cced0668cfd4da4eb2382cb9dd26c17c64aaff76. (check-in: 15b80101 user: drh tags: trunk)
16:20
Avoid coding unindexed WHERE constraints if an equivalent transitive term has already been coded by an outer loop. (check-in: 644bb77f user: dan tags: trunk)
13:41
Do not invoke the xDelete method when converting to PRAGMA journal_mode=OFF if the underlying VFS does not support that method. dbsqlfuzz 39d6af88ef5242f866c4f9b21ede330c5c1e36a8. (check-in: d9145084 user: drh tags: trunk)
11:39
As a continuation of [1f66a85b7757754f], ensure that an OOM that occurs while checking the validity of the schema is reported out as SQLITE_NOMEM and not as SQLITE_SCHEMA. (check-in: 5045c8a7 user: drh tags: trunk)
2021-04-04
23:56
Fix an assert() in sqlite3BtreeLast() that needs an "|| CORRUPT_DB" term. Dbsqlfuzz case b92b72e4de80b5140c30ab71372ca719b8feb618. (check-in: ad718388 user: drh tags: trunk)
14:22
Avoid compile error when SQLITE_OMIT_VIRTUALTABLE defined. (check-in: 0ee0ef47 user: larrybr tags: trunk)
12:52
Make shell .parameter feature type-agnostic. Hush harmless compiler warning. (check-in: 35cf295e user: larrybr tags: trunk)
2021-04-03
23:30
Improved robustness to OOM conditions in the window function logic. dbsqlfuzz 0c123f7d80b29beaafc8411c12129e46f7ffdac3. (check-in: 35ff7cbf user: drh tags: trunk)
20:35
Take care not to change an SQLITE_NOMEM error into SQLITE_SCHEMA. (check-in: 1f66a85b user: drh tags: trunk)
19:23
Fix a crash in handling queries of the form "SELECT aggregate(DISTINCT tbl.col) FROM ... LEFT JOIN tbl ...". Fixes a problem introduced by [ef4ac0ddd297bbd3]. (check-in: 0dcf808d user: dan tags: trunk)
2021-04-02
20:53
Merge latest trunk changes with this branch. (check-in: a2216259 user: dan tags: begin-concurrent-report)
20:43
Correctly capture the error when a RETURNING clause appears on an attempt to UPDATE an eponymous virtual table. dbsqlfuzz 486f791cbe2dc45839310073e71367a1d8ad22dd. (check-in: 778a9a6e user: drh tags: trunk)
20:40
Merge latest trunk changes into this branch. (check-in: a7e612ee user: dan tags: begin-concurrent-pnu)
20:29
Merge latest trunk changes into this branch. (check-in: 98420842 user: dan tags: begin-concurrent)
19:55
Add experimental SQLITE_FCNTL_EXTERNAL_READER file control. (check-in: e16da5af user: dan tags: trunk)
18:59
Fix a problem with the geopoly_bbox() function. (check-in: f3a2eb97 user: drh tags: trunk)
15:20
Version 3.35.4 (check-in: 5d4c6577 user: dan tags: release, branch-3.35, version-3.35.4)
11:59
Fix incorrect RETURNING test cases in wherelimit.test (check-in: 64b0eb7e user: drh tags: branch-3.35)
2021-04-01
11:30
When resolving names in the RETURNING clause, do not accept trigger names even within subquires. (check-in: 8541c71b user: drh tags: branch-3.35)
2021-03-31
23:56
When resolving names in the RETURNING clause, do not accept trigger names even within subquires. See forum post 34c81d83c9177f46 for context. (check-in: fd4ea3f6 user: drh tags: trunk)
17:49
When resolving column names in the RETURNING clause, do not ignore an incorrect table name qualifier. Raise an error instead. (check-in: 3b916924 user: drh tags: branch-3.35)
17:42
When resolving column names in the RETURNING clause, do not ignore an incorrect table name qualifier. Raise an error instead. See forum post 85aef8bc01 for context. (check-in: 51d5c50b user: drh tags: trunk)
13:51
Defer deletion of expressions that are optimized out by the AND optimizer in the sqlite3ExprAnd() routine until the corresponding Parse object is deleted. This avoids a dangling pointer in AggInfo if sqlite3ExprAnd() is invoked by the push-down optimization. The dangling pointer appears to be harmless in release builds, only showing up in debug builds. Problem found by dbsqlfuzz. (check-in: 77a30f3f user: drh tags: branch-3.35)
13:41
Ensure that negative numbers may not be used in frame offset clauses even if they are initially text value. e.g. (RANGE BETWEEN '-1' PRECEDING ...). (check-in: 2d179f58 user: drh tags: branch-3.35)
13:31
Defer deletion of expressions that are optimized out by the AND optimizer in the sqlite3ExprAnd() routine until the corresponding Parse object is deleted. This avoids a dangling pointer in AggInfo if sqlite3ExprAnd() is invoked by the push-down optimization. The dangling pointer appears to be harmless in release builds, only showing up in debug builds. Problem found by dbsqlfuzz. (check-in: c36b4358 user: drh tags: trunk)
11:31
Ensure that negative numbers may not be used in frame offset clauses even if they are initially text value. e.g. (RANGE BETWEEN '-1' PRECEDING ...). (check-in: 8b681b27 user: dan tags: trunk)
2021-03-30
01:57
Raise an error if a term of the form "TABLE.*" appears in the RETURNING clause, as SQLite does not (yet) know how to handle that. Ticket [132994c8b1063bfb]. (check-in: 257e16f7 user: drh tags: branch-3.35)
01:52
Raise an error if a term of the form "TABLE.*" appears in the RETURNING clause, as SQLite does not (yet) know how to handle that. Ticket [132994c8b1063bfb]. (check-in: 3039bcaf user: drh tags: trunk)
2021-03-29
21:59
Increase the patch number to 3.35.4. (check-in: 4375cec2 user: drh tags: branch-3.35)
21:16
Do not do the EXISTS-to-IN transformation if the sub-select has LIMIT clause. Ticket [de7db14784a08053] (check-in: 3bf8a357 user: dan tags: branch-3.35)
20:28
Do not do the EXISTS-to-IN transformation if the sub-select has LIMIT clause. (check-in: d07e246f user: dan tags: trunk)
20:04
Add "#ifdef SQLITE_DEBUG" blocks around test variables sqlite3_fts5_may_be_corrupt and sqlite3_fts3_may_be_corrupt. (check-in: 00455954 user: dan tags: trunk)
20:01
Simplify the comparison opcodes in the bytecode engine, for a performance improvement. (check-in: f2af5868 user: drh tags: trunk)
19:47
Fix VDBE coverage macros. (Closed-Leaf check-in: ebe100de user: drh tags: compare-opcode-opt)
18:53
Omit the SQLITE_STOREP2 and SQLITE_KEEPNULL options from the comparison opcodes, allowing them to run faster. This required refactoring the vector comparison logic, which in turn required changing OP_ElseNotEq into OP_ElseEq. (check-in: 380b4605 user: drh tags: compare-opcode-opt)
14:40
Add the OP_ZeroOrNull opcode and use it to compute boolean values for scalar comparisons, rather than the SQLITE_STOREP2 parameter to the comparison opcode. (check-in: 93781b6f user: drh tags: compare-opcode-opt)
13:47
The comparison opcodes (ex: OP_Eq) now set the iCompare flag so that the result of comparison can be used by subsequent OP_Jump or OP_ElseNotEq opcodes. (check-in: bd00df8f user: drh tags: compare-opcode-opt)
2021-03-28
23:37
Alternative implementation of the comparison opcode speed-up of check-in [4a8805d9a66dc888] that should pass muster with UBSAN. (check-in: afb18f64 user: drh tags: trunk)
20:44
Document the "%token" directive for Lemon. This directive has been in place for a while, but was previously undocumented. (check-in: 36624d37 user: drh tags: trunk)
2021-03-27
20:45
Performance improvement in the comparison opcodes by rewriting an array lookup using pointer arithmetic. This makes gcc 5.4.0 builds with -Os both faster and smaller. Though I suspect that in newer compilers with better optimizers in will probably make no difference at all in the generated machine code. Later: Even though the new code is perfectly valid, and generates correct machine code that is both smaller and faster, UBSAN complains about it in OSSFuzz. So we will take it out. So here was have an example of OSSFuzz coercing a widely used application to become bigger and slower. (Leaf check-in: 4a8805d9 user: drh tags: gcc-opt)
16:21
For the sqlite3_bind_text16 TCL binding used for testing, ensure that there are at least 3 terminating zeros, so that there will always be a \u0000 character even if the original byte sequence is an odd number of bytes. (check-in: c23d092f user: drh tags: trunk)
2021-03-26
23:59
In the sqlite3_bind_text and sqlite3_bind_text16 TCL commands of the test suite, ensure that the string is zero-terminated if the size argument is negative. (check-in: f472fd64 user: drh tags: trunk)
14:04
Merge up all the 3.35.3 changes into the begin-concurrent-pnu-wal2 branch. (check-in: 4d425e64 user: drh tags: begin-concurrent-pnu-wal2)
13:58
Merge the 3.35.3 enhancements into the wal2 branch. (check-in: a1b8d9d2 user: drh tags: wal2)
13:47
Merge patch 3.35.3 into the begin-concurrent-report branch. (check-in: 4ba9fc34 user: drh tags: begin-concurrent-report)
13:38
Merge version 3.35.3 changes into the begin-concurrent-pnu branch. (check-in: 7e4c48af user: drh tags: begin-concurrent-pnu)
13:31
Merge from 3.35.3 into the begin-concurrent branch. (check-in: 988da36c user: drh tags: begin-concurrent)
13:16
Merge in changes for 3.35.3 (check-in: 76f19f4b user: drh tags: reuse-schema)
12:12
Version 3.35.3 (check-in: 4c5e6c20 user: drh tags: release, branch-3.35, version-3.35.3)
2021-03-24
23:30
Remove old testcases() macros. Also remove surplus end-of-line whitespace. (check-in: 54b41915 user: drh tags: trunk)
19:57
Add a comment to snapshotrevert.c warning of the undefined effects reverting to an old snapshot may have on newer readers. (Leaf check-in: 00af3bd2 user: dan tags: snapshot-revert)
19:54
Add experimental extension "snapshotrevert". (check-in: 2d5ee3ba user: dan tags: snapshot-revert)
19:44
Comment improvements to on the distinct-agg optimization. Show a line in the EQP output when using an ephemeral table to implement DISTINCT on an aggregate. (check-in: 037ca79e user: drh tags: trunk)
17:28
Improvements to distinct aggregates such that they can sometimes avoid using an ephermeral table to test for duplicates if the column that is distinct is part of an index. (check-in: ef4ac0dd user: drh tags: trunk)
17:04
Fix a harmless compiler warning. (check-in: 26b005a9 user: drh tags: trunk)
2021-03-23
22:15
Fix a problem with renaming a column when there is a quoted string immediately following the column name somewhere in the schema. (check-in: 4719fae6 user: dan tags: trunk)
21:02
Add an ALWAYS() on a branch that is always taken. (check-in: 0646d226 user: drh tags: trunk)
19:39
Test result adjustments in test/misc7.test due to the EQP format change. (check-in: d3ade8c7 user: drh tags: trunk)
16:34
When doing schema updates, try to convert (incorrect) double-quoted strings into (SQL-standard) single-quoted strings. (check-in: 07704704 user: drh tags: trunk)
15:39
Tweaks to test/scanstatus.test to account for the new EQP format. (check-in: 2eb28afd user: drh tags: trunk)
15:07
Changes to test/analyzeG.test to conform to the new EXPLAIN QUERY PLAN syntax. (check-in: d8afde1b user: drh tags: trunk)
14:33
Fix a test case in bigmmap.test so that it works with the new EXPLAIN QUERY PLAN output format. (check-in: 9ac064fe user: drh tags: trunk)
14:27
Add the ExprList.nAlloc column and use it to make the sqlite3ExprListAppend() routine much faster. (check-in: 1d3c4662 user: drh tags: trunk)
01:06
Enhance the EXPLAIN QUERY PLAN output to use symbolic names to describe subqueries, where possible, instead of cryptic subquery index numbers. And in other ways, make the EQP output cleaner and easier to read. Little code is changed, but many of the test results had to be tweaked to align with the new output format. (check-in: f8e28308 user: drh tags: trunk)
2021-03-22
18:53
Merge recent fixes from trunk. (Closed-Leaf check-in: 4a343698 user: drh tags: eqp-improvements)
16:50
Increase the version number to 3.36.0 to begin the next development cycle. (check-in: 5cee689d user: drh tags: trunk)
16:47
This branch for any further patches on 3.35. We anticipate 3.35.3 in a few days. Hopefully there will never be a need for 3.35.4. (check-in: 8de4cb98 user: drh tags: branch-3.35)
2021-03-21
18:23
Fix an assert() that in preupdate-hook logic (not normally built) that can be false when running VACUUM on a corrupt database file under PRAGMA writable_schema=ON. (check-in: 6bb21340 user: drh tags: trunk, same-as-3.35.3)
17:52
Add a better comment and an assert() on the code inside sqlite3CreateIndex() that REPLACE indexes come at the end of the index list. forum post ceb51d83f7 (check-in: 71e4da13 user: drh tags: trunk)
2021-03-20
23:15
Fix the "box" output mode in the shell when statement returns zero-column rows (for example from "PRAGMA incremental_vacuum"). (check-in: 34439fe3 user: drh tags: trunk)
15:46
Use the canonical name, not the AS name, when showing the MATERIALIZE or CO-ROUTINE lines for a CTE. (check-in: 1b83e232 user: drh tags: eqp-improvements)
15:11
Revise tests cases to align with the new EXPLAIN QUERY PLAN output. (check-in: 50fbd532 user: drh tags: eqp-improvements)
01:00
Fix a faulty assert() in the OP_SkipScan opcode. dbsqlfuzz a15a9b2ca82e812ad52f62c86cc93dca0dc72f01. Test cases in TH3. (check-in: 1805b9aa user: drh tags: trunk)
2021-03-19
19:44
Further simplification of the EQP output. Only show "SUBQUERY n" if the subquery is anonymous. (check-in: 1fadd305 user: drh tags: eqp-improvements)
19:09
Merge enhancements from trunk. (check-in: d192d737 user: drh tags: eqp-improvements)
17:54
In the wholenumber virtual table, increase the cost penalty for running open-loop. This appears to fix the problem reported by forum post b52a020ce4. (check-in: f12b5404 user: drh tags: trunk)
16:29
Dbsqlfuzz found a new way to make that branch in codeVectorCompare reachable. (check-in: 959272c2 user: drh tags: trunk)
15:02
Fix tokenizer's classification of EBCDIC newline. (check-in: 8680f6a8 user: larrybr tags: trunk)
14:51
Restore the NEVER() that was taken out by [f481636f1a0333c6] because that case is no longer reachable after the previous check-in. (check-in: e3a78b2a user: drh tags: trunk)
14:26
Fix a crash that could occur when an INSERT has more than one ON CONFLICT clause, at least one of which contains an unresolvable symbol. (check-in: 74208386 user: dan tags: trunk)
13:53
Correlated CTEs should not generate a materialization subroutine. If they need to be materialized, each use case must be materialized separately. dbsqlfuzz 01b8355086998f0a452cb31208e80b9d29ca739a. (check-in: d72d865d user: drh tags: trunk)
13:00
Improved labeling of EXPLAIN QUERY PLAN output. Many test failures due to the different output format. (check-in: 6f8faec0 user: drh tags: eqp-improvements)
2021-03-18
20:04
Add a NEVER() on a branch that was made unreachable by the "circular reference" fix. (check-in: 114d9780 user: drh tags: trunk)
18:27
Disable a test case requiring generate_series when virtual tables are not available. (check-in: ee86e2f4 user: drh tags: trunk)
18:25
Fix a problem causing spurious "<cte>: circular reference" errors to be reported when there is actually a different error in the SQL statement. (check-in: 99812236 user: dan tags: trunk)
16:52
Increase the patch level to 3.35.3. (check-in: 259b7c3e user: drh tags: trunk)
16:47
Fix the OP_OpenDup opcode so that it is able to duplicate a cursor that was itself opened by OP_OpenDup. Add additional verification of ephemeral tables. Fix for ticket [bb8a9fd4a9b7fce5]. (check-in: bcbe5308 user: drh tags: trunk)
16:36
Remove unnecessary code from sqlite3BtreeClose() and add test cases. (Closed-Leaf check-in: edbfdcae user: drh tags: opendup-fix)
15:42
Further sanity checking of the OpenDup cursors. (check-in: 0ec71cf1 user: drh tags: opendup-fix)
14:36
Fix the dbsqlfuzz-derived authorizer in fuzzcheck to avoid creating junk files when running rogue tests. (check-in: eca21a62 user: drh tags: trunk)
14:31
Automatically close ephemeral b-trees when their last cursor is closed. (check-in: 39b5af18 user: dan tags: opendup-fix)
13:55
Fix a problem with the filename normalizer in unix, discovered by dbsqlfuzz. (check-in: ff1eca7f user: drh tags: trunk)
13:42
Allow instruction OP_OpenDup to duplicate cursors created by OP_OpenDup, as well as by OP_OpenEphemeral. (check-in: b8de980b user: dan tags: opendup-fix)
13:19
New assert statements associated with Ephemeral cursors in the bytecode engine. (check-in: a8ce73e2 user: drh tags: trunk)
12:36
Change the name of the iDataVersion field of Btree to iBDataVersion to make it distinct from Pager.iDataVersion. (check-in: e4c44c0b user: drh tags: trunk)
2021-03-17
19:52
Update to version 3.35.2 (check-in: 18bec0d2 user: drh tags: reuse-schema)
19:07
Version 3.35.2 (check-in: ea80f300 user: drh tags: trunk, release, version-3.35.2)
19:05
Fix a harmless compiler warning in the appendvfs.c extension. (check-in: 0ed7eb91 user: drh tags: trunk)
14:29
If there are already 500 or more simple SELECTs in a query, do not add more by flattening UNION ALL sub-queries into parent join queries. (check-in: 9520bed2 user: dan tags: trunk)
11:25
Fix a problem in sqldiff virtual table hanlding to do with tab and other non-space whitespace characters in the CREATE VIRTUAL TABLE statement. (check-in: 1737e4fd user: dan tags: trunk)
2021-03-16
18:41
Date/time functions with no arguments (ex: date() or time()) should be non-deterministic. Fix for ticket [2c6c8689fb5f3d2f]. (check-in: 1734c332 user: drh tags: trunk)
18:24
Add tests for sqlite_rename_quotefix(). Fix a memory leak in the same. (Closed-Leaf check-in: 53155005 user: dan tags: alter-quotefix)
16:14
Have ALTER TABLE RENAME COLUMN and DROP COLUMN use sqlite_rename_quotefix() to convert any double-quoted strings in the database schema to their single-quoted equivalents. (check-in: 6446c096 user: dan tags: alter-quotefix)
14:43
Increase the version number to 3.35.2. (check-in: 7a211b3f user: drh tags: trunk)
14:26
Fix recent breakage of the appendvfs extension. (check-in: 7dbbe5b3 user: drh tags: trunk)
14:12
Comment and stylistic changes to the appendvfs.c implementation. (Closed-Leaf check-in: 25c3186a user: drh tags: appendvfs_fix)
11:21
Merge trunk changes into this branch. (check-in: f15d5105 user: dan tags: alter-quotefix)
11:11
Fix a problem with ALTER TABLE RENAME COLUMN when used on a schema that features generated columns. Fix for [a753a856]. (check-in: 0e255b26 user: dan tags: trunk)
07:06
Fix assert typo. (check-in: 3aedf818 user: larrybr tags: appendvfs_fix)
06:50
Merge from trunk. (check-in: eae8236f user: larrybr tags: appendvfs_fix)
06:41
Fix appendvfs bug exposed with bigger files, and add tests for such conditions. (check-in: 19b1f53a user: larrybr tags: appendvfs_fix)
04:03
Create new branch named "appendvfs_fix" (check-in: 026edd60 user: larrybr tags: appendvfs_fix)
2021-03-15
20:22
Add internal SQL function sqlite_rename_quotefix(). For converting double-quoted strings to their single-quoted counterparts in DDL statements. (check-in: d874b300 user: dan tags: alter-quotefix)
19:34
Merge version 3.35.1 into the reuse-schema branch. (check-in: 0fe60a63 user: drh tags: reuse-schema)
16:53
Version 3.35.1 (check-in: aea12399 user: drh tags: trunk, release, version-3.35.1)
15:12
Improvements to the built-in ".dump" documentation in the CLI. (check-in: 0915f969 user: drh tags: trunk)
15:02
Bump the version number to 3.35.1. (check-in: 184d5a35 user: drh tags: trunk)
14:58
Improved detection of conflicting indexes when doing DROP COLUMN on a column whose name is quoted in the index definition. Fix for ticket [1c24a659e6d7f3a1]. (check-in: c450d0ad user: drh tags: trunk)
12:56
Make shell's .help output for .dump more accurate as to what can be dumped. (Closed-Leaf check-in: f91d8c09 user: larrybr tags: cli-tweaks)
12:32
Create new branch named "cli-tweaks" (check-in: 4cf056a5 user: larrybr tags: cli-tweaks)
2021-03-14
20:17
An additional test case (Closed-Leaf check-in: 7e2d7ca1 user: drh tags: tkt-1c24a659-b)
19:55
An alternative approach for fixing ticket [1c24a659e6d7f3a1]. (check-in: a2adae90 user: drh tags: tkt-1c24a659-b)
01:40
Never allow a double-quoted identifier that appears by itself in the argument list of an index to be interpreted as a string literal. Proposed fix for ticket [1c24a659e6d7f3a1]. (Closed-Leaf check-in: 7c8aa381 user: drh tags: tkt-1c24a659)
2021-03-13
18:23
Fix a memory leak in the new code on this branch. (Closed-Leaf check-in: 0817cf2e user: dan tags: distinct-agg-opt)
17:21
Fix typos in comments and add test cases. (check-in: 01312a3d user: dan tags: distinct-agg-opt)
2021-03-12
23:15
Update generated autoconf/Makefile.msc to reflect its source. (check-in: d9f8f488 user: larrybr tags: trunk)
21:59
Add test for autoconf/Makefile.msc current with respect to its generator input. (Leaf check-in: 4dfd8716 user: larrybr tags: derived_tests)
21:09
Fix a crash in new code on this branch. (check-in: c05ed2a8 user: dan tags: distinct-agg-opt)
20:29
Merge v3.35.0 release to this branch. (check-in: 6733ed76 user: larrybr tags: derived_tests)
20:24
Create new branch named "derived_tests" (check-in: 8dc765d3 user: larrybr tags: derived_tests)
18:33
Merge latest trunk changes into this branch. (check-in: 198bc510 user: dan tags: distinct-agg-opt)
18:24
Attempt to use an index for DISTINCT aggregate queries that have GROUP BY clauses. (check-in: 3bca003c user: dan tags: distinct-agg-opt)
17:26
Merge the 3.35.0 release into the reuse-schema branch. (check-in: c8237a02 user: drh tags: reuse-schema)
17:18
Merge the 3.35.0 release into the begin-concurrent-pnu-wal2 branch. (check-in: 939b9e75 user: drh tags: begin-concurrent-pnu-wal2)
17:08
Merge the 3.35.0 release into the wal2 branch. (check-in: 03142e5f user: drh tags: wal2)
16:50
Merge the 3.35.0 release into the begin-concurrent-report branch. (check-in: 27f8f56b user: drh tags: begin-concurrent-report)
16:24
Merge the 3.35.0 release into the begin-concurrent-pnu branch. (check-in: a0a9dd52 user: drh tags: begin-concurrent-pnu)
16:18
Merge version 3.35.0 changes into the begin-concurrent branch. (check-in: 7e38c889 user: drh tags: begin-concurrent)
15:10
Version 3.35.0 (check-in: acd63062 user: drh tags: trunk, release, major-release, version-3.35.0)
13:49
Fix broken requirement marks. (check-in: 98d67152 user: drh tags: trunk)
01:49
Fix the ".read" command in the CLI so that SQLITE_OMIT_POPEN disables reading from a pipeline. (check-in: cea34f3c user: drh tags: trunk)
00:44
Conform description of sqlite3changeset_op() arguments to implemented behavior, some reformatting. This is a comment-only change; no code is affected. (check-in: 9d6e544c user: larrybr tags: trunk)
2021-03-11
21:00
Update this branch with latest fixes from trunk. (check-in: 12363f8e user: dan tags: reuse-schema)
20:07
Merge latest wal2 changes into this branch. (check-in: 88c3c173 user: dan tags: begin-concurrent-pnu-wal2)
19:42
Merge latest trunk changes into this branch. (check-in: 30f912d0 user: dan tags: wal2)
19:26
Merge latest changes from begin-concurrent-pnu into this branch. (check-in: 6994a2d8 user: dan tags: begin-concurrent-report)
19:08
Merge latest trunk changes with this branch. (check-in: eb310136 user: dan tags: begin-concurrent-pnu)
18:52
Update this branch with latest changes from trunk. (check-in: 79d44ebd user: dan tags: begin-concurrent)
15:57
Fix a Tcl object leak in test_session.c. (check-in: 07150cf1 user: dan tags: trunk)
13:43
Bug fix in appendvfs.c: Adjust the size parameter for SQLITE_FCNTL_SIZE_HINT to account for the prefix. (check-in: 41df3bbe user: drh tags: trunk)
10:55
Merge latest trunk changes into this branch. (check-in: ef8c6e06 user: dan tags: reuse-schema)
08:49
Have the Tcl tests support environment variable SQLITE_TEST_PATTERN_LIST, so that if it is set it is interpreted as a list of patterns that are matched against tests file names. Only test files that match at least one pattern are run. (check-in: b7c92e1d user: dan tags: trunk)
2021-03-10
20:04
Fix sanitizer complaint in fts3 code. (check-in: 424b39ea user: dan tags: trunk)
19:32
Fix further sanitizer complaints in the fts5 code. (check-in: 4cb00b9d user: dan tags: trunk)
18:21
Improved testcase() related the SQLITE_MAX_ATTACHED vs. SQLITE_MAX_DB problem. (check-in: 27d3c00e user: drh tags: trunk)
17:52
Improvement to the ATTACH-abuse authorizer logic in fuzzcheck. (check-in: 88132f69 user: drh tags: trunk)
17:43
Do not run avfs.test when testing SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 2ab6957a user: dan tags: trunk)
16:35
Do not confuse the constant SQLITE_MAX_ATTACHED with the maximum number of schemas. Add the new SQLITE_MAX_DB constant for the maximum number of schemas. Forum post a006d86f72. (check-in: 7b65fb9f user: drh tags: trunk)
15:10
Fix test file avfs.test so that it works with SQLITE_DEFAULT_AUTOVACUUM builds. Do not run avfs.test under test permutation "journaltest". (check-in: 2c6078eb user: dan tags: trunk)
14:57
Fix a few sanitizer complaints in fts5. (check-in: 4fe4fee0 user: dan tags: trunk)
10:43
Fix a problem preventing wapptest from setting SQLITE_ENABLE_LOCKING_STYLE for OSX tests. Also modify the "Sanitize" configuration in releasetest_data.tcl to subsume test item 6g. (check-in: f762d7df user: dan tags: trunk)
06:06
When shell has no .ar, fake its effect w.r.t. page_size and table creation/filling. (check-in: 959f5c65 user: larrybr tags: trunk)
2021-03-09
23:38
Add appendvfs.c to the MSVC makefile. (check-in: a6681fbb user: drh tags: trunk)
21:20
Update a comment in btree.h. (check-in: 9645fe1a user: dan tags: trunk)
20:58
Fix a bad comment (copy-paste error) in the byte code engine. No code changes. (check-in: 1c017457 user: drh tags: trunk)
19:52
Improved comments on the NOT NULL strength reduction optimization. (check-in: a85d7229 user: drh tags: trunk)
19:32
Extra comments and testcase() macros associated with the new sqlite3ParserAddCleanup() mechanism. No changes to release builds. (check-in: c3c86911 user: drh tags: trunk)
17:09
Add --enable-math to the amalgamation autoconf. On be default. Improved logging of the amalgamation autoconf. (check-in: 85d28b52 user: drh tags: trunk)
16:47
Add missing comment to new routine in select.c. (check-in: ef2f0cf2 user: dan tags: distinct-agg-opt)
16:35
Math functions are enabled by default in the main configure script. (check-in: b7456e07 user: drh tags: trunk)
16:06
Experimental optimization for distinct aggregates (e.g. "SELECT count(DISTINCT <expr) FROM ..."). (check-in: eb919611 user: dan tags: distinct-agg-opt)
13:53
Improvements to the configure script. Math functions are enabled by --enable-all. (check-in: c79c6d18 user: drh tags: trunk)
13:12
Update the authorizer in fuzzcheck to align with dbsqlfuzz. (check-in: f86d8fae user: drh tags: trunk)
2021-03-08
20:13
Add tests for too-tiny appended DBs, clarify align macro. (check-in: eb40a8de user: larrybr tags: trunk)
17:22
Add test cases for ALTER TABLE. (check-in: 9c9ba36e user: dan tags: trunk)
17:17
Fix a bad assert in RENAME COLUMN. dbsqlfuzz 3f0a7245b69cd08617d7d7781ebaedb0fe765a93. (check-in: f13e0d12 user: drh tags: trunk)
16:29
Fix a harmless compiler warning in appendvfs.c (check-in: f538961a user: drh tags: trunk)
16:13
Enable internal functions for fuzzcheck. (check-in: 79281603 user: drh tags: trunk)
14:32
Added test/avfs.test (missing from branch merge for some reason.) (check-in: 08fa6705 user: larrybr tags: trunk)
14:26
Merge appendvfs updates and testing. (check-in: 63fcf301 user: larrybr tags: trunk)
13:45
Require that the appendvfs suffix mark indicate that the appended database begins at an offset that is a muliple of 512 and that the appended database contains at least 512 bytes. (Leaf check-in: aeb87cc7 user: drh tags: appendvfs_tighten)
13:30
Correct the precendence order for rules that determine how a database is opened by appendvfs when a database is appended to another database. (check-in: 92989fc5 user: drh tags: appendvfs_tighten)
12:59
Minor comment and formatting changes. (check-in: cf2add06 user: drh tags: appendvfs_tighten)
01:31
Add tests for sqlite3 shell with -append flag. (check-in: d1790288 user: larrybr tags: appendvfs_tighten)
2021-03-07
18:55
Add grow/shrink tests. Fix truncate bug. Make appendvfs.c easier to inspect. (check-in: c9521fa5 user: larrybr tags: appendvfs_tighten)
2021-03-06
23:49
Merge from trunk. (check-in: 729117cd user: larrybr tags: appendvfs_tighten)
23:36
Create initial tests for appendvfs, and make it available as a statically loaded extension. (check-in: 9f33d451 user: larrybr tags: appendvfs_tighten)
15:13
Limit parenthesis nesting depth in FTS3 expressions to SQLITE_MAX_EXPR_DEPTH. (check-in: 5ddd8032 user: drh tags: trunk)
14:46
Ensure the correct collation sequence is used for comparisons when delimiting a RANGE window. (check-in: 01eae68e user: dan tags: trunk)
13:28
Fix a crash in fts3 that could occur when running a NEAR query on a corrupt database. (check-in: 609d9499 user: dan tags: trunk)
13:02
Fix a possible NULL pointer dereference when applying a DROP COLUMN to a corrupt database schema. dbsqlfuzz 419aa525df93db6e463772c686ac6da27b46da9e (check-in: 349ccf58 user: drh tags: trunk)
2021-03-05
20:52
Merge last day of trunk changes, reverify build. (check-in: 1d67ed1c user: larrybr tags: appendvfs_tighten)
20:46
Fix appendvfs bug exposed by docsapp build (in docsrc), and tighten/revise published behavior. (check-in: 7f0f2eac user: larrybr tags: appendvfs_tighten)
18:33
Modify the SQLITE_DBCONFIG_ENABLE_VIEW option so that it always permits TEMP views, just as SQLITE_DBCONFIG_ENABLE_TRIGGER always permits TEMP triggers. (check-in: 83dab8b3 user: drh tags: trunk)
15:42
Fix problems with RETURNING clauses attached to UPDATEs on tables with virtual columns. (check-in: 6b41b136 user: dan tags: trunk)
15:29
Fix another problem with RETURNING clauses in UPDATEs against tables with virtual columns. (Closed-Leaf check-in: f0ef5c76 user: dan tags: returning-fix)
15:10
Fix an assert() failure that could be triggered by a correlated sub-query in a RETURNING clause. (check-in: 551260c8 user: dan tags: returning-fix)
14:08
Fix the processing of implied LIMIT clauses when flattening a compound query. (check-in: 90c6b9fc user: drh tags: trunk)
09:42
Create new branch named "appendvfs_tighten" (check-in: 48c968bf user: larrybr tags: appendvfs_tighten)
2021-03-04
19:44
Mark the NotUsed parameter to the dropColumnFunc() function as unused, to avoid a harmless compiler warning. (check-in: 23459071 user: drh tags: trunk)
18:34
Put ALWAYS() on a branch that is now always true because of changes in OOM behavior due to check-in [9adf6e2469d18bc3]. (check-in: 8a1bb9c3 user: drh tags: trunk)
18:31
Update shell.c.in so that SQLITE_SHELL_IS_UTF8 is set to 0 if the -municode option is passed to gcc on windows. (check-in: 99e6a0f0 user: dan tags: trunk)
16:32
Remove a branch made unreachable by check-in [e893f88750ea64d4]. (check-in: 20d7dc12 user: drh tags: trunk)
16:10
Fix a segfault that could occur following an OOM condition. (check-in: 9adf6e24 user: dan tags: trunk)
16:03
Earlier detection of a misplaced ORDER BY or LIMIT clause in a compound SELECT. This prevents problems in recursive CTEs with multiple recursive terms in which there is an ORDER BY or LIMIT clause on the last non-recursive term. (check-in: e893f887 user: drh tags: trunk)
14:18
Fix a crash that could occur if a sub-select inside an EXISTS expression features an ORDER BY clause containing one or more window functions. (check-in: 9768e7db user: dan tags: trunk)
2021-03-03
19:54
Merge recent trunk enhancements into the reuse-schema branch. (check-in: 73bf458e user: drh tags: reuse-schema)
19:41
Merge in recent enhancements. (check-in: b0fc8ca1 user: drh tags: begin-concurrent-pnu-wal2)
19:36
Fix a buffer overrun that could occur in fts5 when running a prefix query against a corrupt db. (check-in: 4da40620 user: dan tags: trunk)
19:32
Merge recent trunk enhancements into the wal2 branch. (check-in: 0ae81039 user: drh tags: wal2)
19:25
Merge recent trunk enhancemenets into the begin-concurrent-pnu branch. (check-in: 59d3ec29 user: drh tags: begin-concurrent-pnu)
19:17
Merge recent trunk changes into the begin-concurrent branch. (check-in: acdafef8 user: drh tags: begin-concurrent)
16:46
Remove the --timeout option from the valgrindfuzz Makefile target. (check-in: 3f520b8b user: dan tags: trunk)
16:00
Fix a case where fts3 was erroneously reporting corruption. (check-in: e6c7683c user: dan tags: trunk)
14:07
Fix a harmless assertion fault resulting from [6e6b3729e0549de0] that was discovered by dbsqlfuzz. Enhance .selecttrace output to show omitted ORDER BY clauses. New dbsqlfuzz test cases added. (check-in: 27a0388a user: drh tags: trunk)
11:00
Fix a problem with using ALTER TABLE commands on database schemas that contain expressions of the form "<expr> NOT NULL" or "<expr> IS NULL" that can be evaluated at prepare time. (check-in: d2630ffa user: dan tags: trunk)
2021-03-02
21:07
Cast a string size variable to 64-bit to avoid any possibility of integer overflow. (check-in: a5940294 user: drh tags: trunk)
16:27
Limit the size of the exponent input in the second argument to the ieee754() SQL function, to avoid integer overflow. Ticket [22dea1cfdb9151e4]. (check-in: 99aab32d user: drh tags: trunk)
13:50
Change the timeout for test case "valgrindfuzz" from 600 seconds to 1200. (check-in: 7c6aa6f3 user: dan tags: trunk)
13:36
Do not run test file windowpushd.test as part of the "no_optimization" permutation. (check-in: 275a75aa user: dan tags: trunk)
00:42
Add ALWAYS() to an always-true conditional. (check-in: fa3506db user: drh tags: trunk)
2021-03-01
21:43
Add #ifndef macros so that the build works again with -DSQLITE_OMIT_AUTHORIZATION and -DSQLITE_OMIT_WINDOWFUNC. (check-in: 9400bdc6 user: drh tags: trunk)
16:16
Fix a couple of memory-sanitizer complaints that could be triggered by a corrupt database. (check-in: 39c8686c user: dan tags: trunk)
16:15
Fix another msan complain triggered by a corrupt database. (Closed-Leaf check-in: d235d406 user: dan tags: msan-fix)
2021-02-28
08:24
Initialize extra field in PgHdr1 to fix an msan complaint. (check-in: 4cb2ea57 user: dan tags: msan-fix)
2021-02-27
15:32
Add OOM test case associated with the fix in the previous commit. (check-in: a631c38d user: dan tags: trunk)
15:12
Remove a NEVER() that might sometimes be tree following an OOM. (check-in: ccb8cf52 user: drh tags: trunk)
2021-02-26
21:39
Fix a segfault that could occur when optimizing a NOT NULL constraint against an IPK column of a sub-query. (check-in: e4d1970e user: dan tags: trunk)
20:39
Attempt to optimize "x IS NULL" and "x IS NOT NULL" expressions when x is a column with a NOT NULL constraint. This addresses the performance issue described by forum post a5fc33cf9d8f4ff5. (check-in: de9c86c9 user: dan tags: trunk)
20:14
Attempt to optimize "x IS NULL" and "x IS NOT NULL" expressions when x is a column with a NOT NULL constraint. (Closed-Leaf check-in: 5ecd8425 user: dan tags: ifnull-opt)
15:20
Minor simplification in resolve.c. (check-in: 310dac34 user: dan tags: trunk)
2021-02-25
18:28
Fix test case in altercorrupt.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds. (check-in: 062b338f user: dan tags: trunk)
18:23
Fix a problem with UPDATE and DELETE statements that use both INDEXED BY and LIMIT clauses in SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds. (check-in: cc2b4b38 user: dan tags: trunk)
16:55
Fix handling of INSERT on views with implicitly named hidden columns in SQLITE_ENABLE_HIDDEN_COLUMNS builds. (check-in: 15795a96 user: dan tags: trunk)
15:50
Ensure that tests like "rbu.test" and "notify2.test" that are only run by specific configurations during release testing are run for both release and debug versions of the tests. (check-in: 911df43f user: dan tags: trunk)
2021-02-23
16:40
When a sub-transaction is released, if no pages required by containing sub-transactions were journaled, truncate the statement journal. This prevents out of control statement journal growth in some cases. See forum thread e78ffd751185a67e for context. (check-in: 23ca2389 user: dan tags: trunk)
15:53
Allow WHERE terms to be pushed down into sub-queries that contain window functions, provided that the WHERE term is made up of entirely of constants and copies of expressions found in the PARTITION BY clauses of all window functions in the sub-query. (check-in: 20689468 user: dan tags: trunk)
15:36
Further tests for the push-down optimization with window functions. (Closed-Leaf check-in: 4b089f70 user: dan tags: window-functions-pushdown)
2021-02-22
20:56
Allow WHERE terms to be pushed down into sub-queries that contain window functions, provided that the WHERE term is made up of entirely of constants and copies of expressions found in the PARTITION BY clauses of all window functions in the sub-query. (check-in: dac51f30 user: dan tags: window-functions-pushdown)
19:57
Add a few simple test cases for MATERIALIZED and NOT MATERIALIZED. (check-in: 64878124 user: drh tags: trunk)
16:42
Implement the MATERIALIZED and NOT MATERIALIZED hints on common table expressions. (check-in: b5a0778c user: drh tags: trunk)
15:44
When a sub-transaction is released, if no pages required by containing sub-transactions were journaled, truncate the statement journal. This might prevent out-of-control statement journal growth in some cases. (Closed-Leaf check-in: e36327fb user: dan tags: stmt-jrnl-truncate)
14:25
Add an ALWAYS() on a branch that is now unreachable. (Closed-Leaf check-in: ace54c5b user: drh tags: as-materialize-redux)
11:07
Fix inverted logic regarding the materialization hint on the push-down optimization. (check-in: b66a4957 user: drh tags: as-materialize-redux)
03:04
Add the AS MATERIALIZED and AS NOT MATERIALIZED syntax that works like it does in PostgreSQL. (check-in: a6bb272e user: drh tags: as-materialize-redux)
2021-02-21
23:44
Materialize any CTE that is used more than once. (check-in: ba59159f user: drh tags: as-materialize-redux)
21:04
Rename the "struct SrcList_item" object to the more succinct "SrcItem". This is a symbolic change only. The logic is unmodified. (check-in: bfd5bf2c user: drh tags: trunk)
01:19
Simplified resolution of CTE names. Slightly faster and about 100 bytes of code smaller. (check-in: 0d2c992f user: drh tags: trunk)
2021-02-20
21:20
Performance improvement in resolving the INDEXED BY index name for the common case where there is no INDEXED BY clause. (check-in: 554b286a user: drh tags: trunk)
19:22
Fix a case where FTS3/4 could pass a NULL pointer to memcpy() when handling a corrupt db. (check-in: 68bb541a user: dan tags: trunk)
18:02
Update sqlite3changeset_apply_v2() so that it handles no-op UPDATE changes (UPDATE changes that modify no columns). This fixes a regression introduced by [e4ccfac09b]. Also modify sqlite3rebaser_rebase() so that it does not output changesets containing such UPDATEs. (check-in: 0288a801 user: dan tags: trunk)
14:57
Break out the Cte object from the With object. This will make it simpler to add new kinds of Cte objects (ex: DML statements) and/or MATERIALIZED keywords in the future. It brings trunk into closer alignment with the experimental as-materialize branch. (check-in: f03efe90 user: drh tags: trunk)
13:36
Simplification to where.c manually cherrypicked from the as-materialize branch. (check-in: 03805a61 user: drh tags: trunk)
12:47
Merge changes from trunk. (Later:) Abandon this line of development. See the as-materialize-redux branch. (Closed-Leaf check-in: 7a90571e user: drh tags: as-materialize)
2021-02-19
18:39
Fix another problem handling corrupt database files in the ALTER TABLE DROP COLUMN code. (check-in: 9edf2ddc user: dan tags: trunk)
15:34
Add tests for ALTER TABLE DROP COLUMN commands. (check-in: 05dbea9b user: dan tags: trunk)
14:32
Add support for "ALTER TABLE ... DROP COLUMN ..." commands. (check-in: c844a331 user: dan tags: trunk)
14:13
Fix a crash that could occur in ALTER TABLE DROP COLUMN if the sqlite_schema table was corrupt. (Closed-Leaf check-in: 126ee1ec user: dan tags: alter-table-drop-column)
09:46
Omit an branch made unreachable by the improved error message from dropping the last column of a table. (check-in: c5719fc5 user: drh tags: alter-table-drop-column)
09:36
The COLUMN keyword in ALTER TABLE DROP COLUMN is optional. (check-in: a22f87fb user: drh tags: alter-table-drop-column)
09:09
Give a better error message on DROP COLUMN when attempting to drop the last column of a table. (check-in: 5e1f362b user: drh tags: alter-table-drop-column)
02:30
Add a NEVER() to an unreachable branch in the DROP COLUMN logic. (check-in: 963f498a user: drh tags: alter-table-drop-column)
2021-02-18
23:53
Add missing VdbeCoverage() macros. (check-in: 9bb720e6 user: drh tags: alter-table-drop-column)
23:03
Enhance renameParseSql() to better handle OOMs. (check-in: 68bcde7a user: drh tags: alter-table-drop-column)
22:47
Merge changes from trunk into the alter-table-drop-column branch. (check-in: 9ea64007 user: drh tags: alter-table-drop-column)
20:27
Fix DROP COLUMN so that it works even if the user has registered an authorizer callback. (check-in: e5f14418 user: dan tags: alter-table-drop-column)
19:25
Fix a problem with schema error detection when processing ALTER TABLE DROP COLUMN commands. (check-in: 565a6fd0 user: dan tags: alter-table-drop-column)
17:48
Add test cases for ALTER TABLE DROP COLUMN. (check-in: 204ee5e2 user: dan tags: alter-table-drop-column)
15:59
Avoid invoking the update or pre-update hooks during VACUUM operations. (check-in: 3c25cb4a user: dan tags: trunk)
15:45
Improvement to the INSERT optimization of check-in [16ac213c57196361] so that it works with SQLITE_ENABLE_HIDDEN_COLUMN but is also easier to maintain and a little faster as well. (check-in: f985a78e user: drh tags: trunk)
14:27
Disable the optimization of [16ac213c57196361] when the SQLITE_ENABLE_HIDDEN_COLUMN compile-time option is used, as the optimization does not work in that case. (check-in: 5168b06b user: drh tags: trunk)
12:18
Ensure that the pre-update hook is invoked for INSERT operations on WITHOUT ROWID tables that use the xfer optimization. (check-in: 66bbad23 user: dan tags: trunk)
01:02
Add missing VdbeCoverage() macros to some of the new RETURNING code. (check-in: 53a53909 user: drh tags: trunk)
00:59
Performance optimization in the resolver. (check-in: 1aafb94d user: drh tags: trunk)
00:26
Performance optimization in the code generator for INSERT for the common case where the target table has neither generated nor hidden columns. Also fix a redundant (and thus unreachable) branch in the resolver. (check-in: 16ac213c user: drh tags: trunk)
2021-02-17
21:13
Use the sqlite3ParserAddCleanup() mechanism to ensure that the AggInfo structure associated with an aggregate query is deallocated, for a performance increase and size reduction. (check-in: 7a139967 user: drh tags: trunk)
20:46
Fix a problem with OOM error handling in the new code on this branch. (check-in: ea999c9d user: dan tags: alter-table-drop-column)
20:19
Merge trunk changes into this branch. (check-in: 0cd5e2f9 user: dan tags: alter-table-drop-column)
20:08
Fix various issues with the changes on this branch. Add test cases for the same. (check-in: 10538ec6 user: dan tags: alter-table-drop-column)
13:19
Enhance the ".once" and ".output" commands in the CLI so that if the filename argument begins with "|" the name becomes the concatenation of all subsequent arguments. Hence, commands like ".once | open -f" become possible without the need for quotes. (check-in: c46a94a6 user: drh tags: trunk)
2021-02-16
20:43
Add experimental implementation of ALTER TABLE DROP COLUMN. Only some cases work so far. (check-in: f0217937 user: dan tags: alter-table-drop-column)
20:32
Simplification to the resolveAlias() routine. (check-in: 00bead39 user: drh tags: trunk)
20:01
New SELECTTRACE macros more clearly deliniate when the query planner is invoked in the middle of PRAGMA vdbe_addoptrace output. (check-in: 7c03ce49 user: drh tags: trunk)
19:29
Remove unnecessarily complexity from sqlite3WithReleaseByParse(). Improved TreeView output for the enhanced CTE structures. This code still does not work 100%. I'm saving my place in order to (maybe) come back to it later. (check-in: 30bb18b4 user: drh tags: as-materialize)
16:32
Trying to get the new AS MATERIALIZE syntax of CTEs to work. There are still performance and memory management issues. This is a WIP check-in. (check-in: bf0fd9b2 user: drh tags: as-materialize)
00:48
Change the syntax from "GENERATED AS" to "AS MATERIALIZED" so as to match the syntax of PostgreSQL 12+. (Closed-Leaf check-in: 78dcddd9 user: drh tags: with-generated-as)
2021-02-15
17:51
Merge the LIKE operator fix from trunk. (check-in: 8c861878 user: drh tags: with-generated-as)
17:02
Fix an issue with the LIKE operator when it includes the "ESCAPE '_'" clause. Ticket [c0aeea67d58ae0fd]. (check-in: 27d41179 user: drh tags: trunk)
14:55
Merge minor fixes from trunk. (check-in: d876b287 user: drh tags: with-generated-as)
14:32
Add tests for sqlite3_column_count(). (check-in: 7cc65ae5 user: dan tags: trunk)
13:17
Ensure that the ALTER TABLE statements return 0 for sqlite3_column_count(). (check-in: 29c1932a user: drh tags: trunk)
11:14
Fix an error in the test case fix in [ecd71203]. (check-in: 5411bfa4 user: dan tags: trunk)
2021-02-13
23:46
If the GENERATED keyword occurs before the AS keyword in a common table expression (CTE) definition, then that CTE becomes an "optimization barrier". For now, that means the CTE is always materialized. It also means that query flattener or pushdown optimizations that cross the CTE boundary are omitted. (check-in: 186ec18b user: drh tags: with-generated-as)
21:01
Add a test-control that allows setting a LIKE pattern for common table expression names such that CTEs with matching names become an optimization barrier - They are not flattened and are implemented by materialization. (Closed-Leaf check-in: 15692ec0 user: drh tags: optbarrier-test-ctrl)
18:14
Fix incorrect test name labels in the select1.test script. (check-in: 179c79ea user: drh tags: trunk)
16:39
Avoid manifesting a CTE (or other view) multiple times when it is possible to reuse the first manifestation. (check-in: 9692f510 user: drh tags: trunk)
14:26
Fix a problem in the unreleased union-all flattening enhancement (check-in: e4f8a79f user: dan tags: trunk)
2021-02-12
21:22
Fix a test case to account for the fact that different versions of OpenBSD behave differently when a program tries to read() from a file-descriptor open on a directory. (check-in: ecd71203 user: dan tags: trunk)
21:07
Parsing of DML statements in a WITH clause. But at this point, it just generates an error about "not yet supported". (Leaf check-in: 964ff68d user: drh tags: dml-in-cte)
11:37
Ensure all RBU tests are run as part of release testing. (check-in: a18dc08b user: dan tags: trunk)
2021-02-11
16:19
In RBU, avoid passing VFS xShmLock calls through to the underlying VFS in cases where xShmMap calls may not be. This fixes a bad interaction with ZipVFS. (Leaf check-in: 0c3838d9 user: dan tags: reuse-schema-3.31)
2021-02-10
20:20
Merge latest trunk changes into this branch. (check-in: d29c41bd user: dan tags: reuse-schema)
20:00
Fix a longstanding problem causing an RBU vacuum to omit releasing some locks before finishing. (check-in: 66c07a07 user: dan tags: trunk)
19:49
Remove an assert() added by the previous commit that is sometimes false. (Closed-Leaf check-in: fb36ac4d user: dan tags: shm-lock-fix)
19:40
Fix a longstanding problem causing an RBU vacuum to omit releasing some locks before finishing. (check-in: cb5bdf82 user: dan tags: shm-lock-fix)
17:31
In RBU, avoid passing VFS xShmLock calls through to the underlying VFS in cases where xShmMap calls may not be. This fixes a bad interaction with ZipVFS. (check-in: bd1e9e0a user: dan tags: trunk)
2021-02-08
15:56
Correctly detect correlated subqueries when resolving names in RETURNING clauses. (check-in: b43cfa04 user: drh tags: trunk)
13:41
Improved name resolution for references to a table begin modified from within a subquery in the RETURNING clause. (check-in: 799d205b user: drh tags: trunk)
2021-02-07
23:28
Do not allow RETURNING in the DML statements of a trigger. (check-in: 7a8fe646 user: drh tags: trunk)
12:59
Fix harmless compiler warnings. (check-in: 5f8bf995 user: drh tags: trunk)
2021-02-06
14:56
Remove an ALWAYS() and NEVER() in the authorizer that become reachable as of [078dbff04a95a001]. Test case for coverage in TH3. (check-in: b469327e user: drh tags: trunk)
14:37
Fix the OSSFuzz-discovered shift problem from two days ago. This patch was omitted from [078dbff04a95a001] apparently because I made the edit to "sqlite3.c" rather than "resolve.c" where it belongs. (check-in: 864772ff user: drh tags: trunk)
2021-02-05
17:34
Remove unreachable code. Fix a shift UB problem introduced yesterday and discovered by OSSFuzz. (check-in: 078dbff0 user: drh tags: trunk)
2021-02-04
23:20
Change the RETURNING algorithm so that outputs accumulate in an ephemeral table until all modifications have been completed, and only then do results start being returned. This should help prevent problems with interleaved sqlite3_step() calls on two separate DML statements. It also seems to be closer to how PostgreSQL works, which might prevent compatibility problems. (check-in: c4615eb2 user: drh tags: trunk)
22:59
Remove dead code. Fix RETURNING for INSERT into a virtual table. (Closed-Leaf check-in: dbfa3869 user: drh tags: returning-manifested)
21:19
Initial commit (Leaf check-in: e73dbce8 user: shearer tags: selective-debug)
21:17
Fix an issue with RETURNING from UPSERT. (check-in: 757b74ba user: drh tags: returning-manifested)
20:52
Snapshot. New design appears to work on a simple test case. (check-in: 8a65fbee user: drh tags: returning-manifested)
17:29
Preliminary changes for a new implementation of RETURNING that captures all results in a buffer and plays them all back after the DML statement completes. This avoids problems with interleaved DML statements. This particular check-in is a non-functional work in progress. (check-in: 04b77d63 user: drh tags: returning-manifested)
13:52
Add NEVER() to a branch that check-in [5d54d9fd40638138] apparently made unreachable. (check-in: 5c8e6296 user: drh tags: trunk)
13:44
Performance optimization in sqlite3FinishCoding(). (check-in: 0f34f241 user: drh tags: trunk)
11:14
Work toward handling interleaved RETURNING statements. Trunk does not handle that case correctly. This branch is a partial implementation of ideas that might, however. (Closed-Leaf check-in: e1eb6213 user: drh tags: interleaved-returning)
2021-02-03
19:38
Corrections to the 'filepath_normalize' test suite helper procedure. (check-in: 32f4d044 user: mistachkin tags: trunk)
18:32
Change the name of Vdbe.magic to Vdbe.iVdbeMagic to disambiguate with sqlite3.magic. (check-in: 6b29e549 user: drh tags: trunk)
14:20
Avoid doing any foreign-key constraint related processing for an UPDATE statement that does not modify any columns that are part of FK constraints, even if the table has a self-referencing FK. (check-in: 7f3b036e user: dan tags: trunk)
13:20
Fix a harmless compiler warning. (check-in: 1eb69c64 user: drh tags: trunk)
13:08
Add support for the RETURNING clause following PostgreSQL syntax. Also change the behavior of SQLITE_DBCONFIG_ENABLE_TRIGGER so that TEMP triggers are always allowed, regardless of the setting. (check-in: 416c898b user: drh tags: trunk)
12:35
Fix an assert() that might be off-by-one in the case of a prior errors in the parse. (check-in: 06b15b17 user: drh tags: trunk)
00:55
Modify the SQLITE_DBCONFIG_ENABLE_TRIGGER setting so that it only disables main-schema triggers and allows TEMP trigger to continue operating. This is safe, since only the application (not an attacker) can add TEMP triggers. It will also all us to disengage SQLITE_DBCONFIG_ENABLE_TRIGGER on Fossil databases since Fossil has no main-schema triggers but does use TEMP triggers. (Closed-Leaf check-in: a10c5a25 user: drh tags: returning)
00:05
Load enhancements from trunk into the returning branch. (check-in: b84c7f60 user: drh tags: returning)
2021-02-02
20:46
Do not allow aggregates in a RETURNING clause. Fix a memory leak that occurs when window functions are used in a RETURNING clause. (check-in: 2e9bd94b user: drh tags: returning)
20:41
Modify the sessions extension to use more efficient SQL when applying a changeset or patchset. (check-in: e4ccfac0 user: dan tags: trunk)
12:01
Report an error if RETURNING is used for DELETE or UPDATE of a virtual table. (check-in: bd5dee84 user: drh tags: returning)
00:16
Allow the RETURNING trigger to exist for virtual tables. (check-in: 2f244ab4 user: drh tags: returning)
2021-02-01
21:26
Add a few test cases for RETURNING together with UPDATE/DELETE LIMIT. (check-in: 7611c77d user: drh tags: returning)
12:39
Improved corrupt database detection in balance_nonroot(). (check-in: 5d54d9fd user: drh tags: trunk)
01:57
Modify RETURNING so that it does not return changes implemented by cascading foreign keys or by triggers. (check-in: 6e62470a user: drh tags: returning)
2021-01-31
16:45
Mark an unreachable branch as ALWAYS(). (check-in: cb8b797a user: drh tags: returning)
15:50
New opcode OP_ChngCntRow used to output the result of PRAGMA change_count. Only this new opcode, and not OP_ResultRow, checks for foreign key errors. Faster performance, and now also works with RETURNING. (check-in: 154fc2b1 user: drh tags: returning)
12:41
When setting the number of result columns in a RETURNING trigger, be sure to set that value in the top-level bytecode program, not in the immediate caller of the trigger. (check-in: 1f1ce7ce user: drh tags: returning)
2021-01-30
21:55
Improved comments on the new code. (check-in: a38f0c1d user: drh tags: returning)
16:16
Add an ALWAYS() to an unreachable branch. (check-in: 6bb6de42 user: drh tags: returning)
14:17
Change the OP_ResultRow opcode so that it does not cancel pending statement transactions. (check-in: fea91e3a user: drh tags: returning)
12:07
Fix a obsolete assert() in the bytecode engine. Improved OOM detection in sqlite3AddReturning(). (check-in: 138b10d5 user: drh tags: returning)
03:06
Fix handling of an OOM condition in sqlite3AddReturning(). (check-in: 52204cd7 user: drh tags: returning)
02:43
Fix a memory deallocation problem that comes up when doing a RETURNING query on a corrupt database. I think I fixed this before, but it got unfixed with stale editor content. (check-in: 02b1415e user: drh tags: returning)
02:34
Another attempt to get trigger selection correct for RETURNING triggers. (check-in: 1b8ed522 user: drh tags: returning)
02:22
When running the RETURNING trigger, if it is tagged as a DELETE trigger, do not use it as INSERT or UPDATE. (check-in: 3c7a6e04 user: drh tags: returning)
01:30
Test cases added. RETURNING works with UPSERT as does PG. (check-in: f5698f96 user: drh tags: returning)
2021-01-29
22:33
Better handling of errors in RETURNING due to corrupt database files. (check-in: 6aa2a058 user: drh tags: returning)
21:31
RETURNING works even if "PRAGMA count_changes=ON" is set. (check-in: a9122d97 user: drh tags: returning)
21:18
Allow "*" wildcards in the RETURNING clause. (check-in: b0e3ae30 user: drh tags: returning)
19:32
Working prototype. (check-in: b7ef4dc2 user: drh tags: returning)
16:20
Fix possible division-by-zero in the new log() SQL functions. Problemm discovered by OSSFuzz. (check-in: 1ffd321a user: drh tags: trunk)
14:22
Incorporate the sqlite3TriggerList() optimization from trunk. And move the pReturning field to the uninitialized area in the Parse object, to save memset() time. (check-in: 29fbaf0e user: drh tags: returning)
13:47
Performance optimization (and size reduction) in sqlite3TriggerList() for the common case where there are no TEMP triggers. (check-in: 0defaf73 user: drh tags: trunk)
2021-01-27
20:35
Merge recent enhancements from trunk. (check-in: 5fbcb208 user: drh tags: returning)
19:15
Fix an issue with IN operator optimization introduced by check-in [4a43430fd23f8835] and described by ticket [ee51301f316c09e9]. (check-in: 9dc7fc9f user: drh tags: trunk)
17:15
Ensure a cursor used by the SeekScan operator does not point to a valid row on the first iteration of the loop. Possible fix for [ee51301f316c09e]. (Closed-Leaf check-in: 390cf60a user: dan tags: fix-2d6e8400)
2021-01-25
21:24
Add an extra log message in the case of an SQLITE_CORRUPT_INDEX error. (check-in: 0571c241 user: drh tags: trunk)
2021-01-22
21:23
Enhance the query planner to enable it to use an index for IS NOT NULL constraints, even if STAT4 is not enabled. (check-in: 7b2a7c73 user: drh tags: trunk)
20:28
Merge fixes from trunk. Omit a conditional in sqlite3IsLikeFunction() that was made unreachable by this enhancement. (Closed-Leaf check-in: 0b42f9eb user: drh tags: isnotnull-opt)
2021-01-21
21:36
Do not allow VACUUM to resize the page_size to 512 if the reserve_byte value is 31 or greater. forum post e807885dc5. (check-in: d5ea75a0 user: drh tags: trunk)
20:42
Performance optimizations in exprAnalyze() (check-in: 6d60cf54 user: drh tags: isnotnull-opt)
17:54
Always enable the IS NOT NULL optimization, even if STAT4 is not enabled. (check-in: fc98218c user: drh tags: isnotnull-opt)
16:02
Fix a problem caused by using an SQL variable in an OVER clause within a trigger program. Edit: The problem appears to have existed ever since window functions landed on trunk (check-in [17198a1206e2fbc9]) on 2018-06-30, version 3.25.0. (check-in: 02264ab6 user: dan tags: trunk)
15:40
Fix a problem caused by using an SQL variable in an OVER clause within a trigger program. (Closed-Leaf check-in: 4f676466 user: dan tags: fix-over-trigger)
2021-01-20
23:01
Improvements to the auxiliary "main.mk" makefile so that it works better with multi-threaded builds. (check-in: d1873054 user: drh tags: trunk)
15:10
Incorporate the 3.34.1 patches into the reuse-schema branch. (Leaf check-in: cc0e5828 user: drh tags: reuse-schema-3.34)
14:10
Version 3.34.1 (Leaf check-in: 10e20c0b user: drh tags: release, patch, version-3.34.1, branch-3.34)
10:59
Add tests for sqlite3session_memory_used() interface. (check-in: 5596611f user: dan tags: trunk)
2021-01-19
20:38
Fix an issue with sha3_query() when the first argument contains blank SQL statements. (check-in: a1a7a5f2 user: drh tags: branch-3.34)
20:17
Bump the version number to 3.34.1. (check-in: cea7d0f8 user: drh tags: branch-3.34)
20:09
Fix a problem handling sub-queries with both a correlated WHERE clause and a "HAVING 0" clause where the parent query is itself an aggregate. The problem was apparently introduced by check-in [6e6b3729e0549de0] (check-in: 30a4c323 user: drh tags: branch-3.34)
20:04
Prevent potential segfault in the sqlite-expert idxPopulateStat1 context cleanup code. (check-in: 69e31d52 user: drh tags: branch-3.34)
2021-01-18
19:28
Fix harmless compiler warnings seen with MSVC. (check-in: dc7938d2 user: mistachkin tags: trunk)
19:27
Update test helper procedure 'get_pwd' to handle the ComSpec environment variable being absent. (check-in: fe197955 user: mistachkin tags: trunk)
12:35
Enhance the query planner so that it is able to code EXISTS operators in the WHERE clause as if they were IN operators, when appropriate. (check-in: c1862abb user: drh tags: trunk)
00:11
More comments on the EXISTS-to-IN optimization logic. (Closed-Leaf check-in: 92cc2909 user: drh tags: exists-to-in)
2021-01-17
00:13
Minor simplification of the EXISTS-to-IN logic. (check-in: cac90a9f user: drh tags: exists-to-in)
2021-01-16
20:22
Improved handling of vector equalities in the EXISTS-to-IN translator. (check-in: ef49ee4a user: drh tags: exists-to-in)
18:55
Give the EXISTS-to-IN optimization the ability to handle some cases that involve vector comparisons, instead of throwing a mysterious error in those cases. (check-in: 87e78a19 user: drh tags: exists-to-in)
18:22
Add debugging output about the EXISTS-to-IN optimization when the ".wheretrace" flag has the 0x20 bit set. (check-in: 0dad5ce3 user: drh tags: exists-to-in)
12:15
Fix a hyperlink in the Lemon documentation. (check-in: 2ffb2ffa user: drh tags: trunk)
2021-01-15
17:51
Add OOM injection tests for new code on this branch. (check-in: 9a181dba user: dan tags: exists-to-in)
16:37
Update header comments for routines added by this branch. (check-in: 950030d6 user: dan tags: exists-to-in)
15:32
Ensure the EXISTS->IN transformation preserves the collation sequence of the comparison operation. (check-in: a373baae user: dan tags: exists-to-in)
15:21
Fix a potential NULL pointer dereference following OOM. (check-in: 8ce3cb90 user: drh tags: exists-to-in)
15:17
Add a new optimizer disabling bit to close off the exists-to-in optimization, for testing purposes. (check-in: a80c9a07 user: drh tags: exists-to-in)
14:25
Small performance improvement in the EXISTS-to-IN translator for the common case where the EXISTS operator is not found in the WHERE clause. (check-in: dcb7772d user: drh tags: exists-to-in)
14:15
Merge the latest trunk enhancements into the exists-to-in branch. (check-in: 13c4c908 user: drh tags: exists-to-in)
11:39
Add simple tests (and a fix) for the change on this branch. (check-in: 897f3f40 user: dan tags: exists-to-in)
2021-01-14
20:57
Improvements to the min/max optimization. Fix for a performance regression introduced at [b8ba2f17f938c035] reported by forum post 4050026ab8 (check-in: 249a71cc user: drh tags: trunk)
20:50
Allow the planner to convert an EXISTS(SELECT...) expression in a WHERE clause to the equivalent IN(...) expression in situations where this is possible and advantageous. (check-in: 9f90a882 user: dan tags: exists-to-in)
00:53
The early-out of the inner loop on the min/max optimization was overly aggressive for the cases where there is a join and outer loops contain IN operators. Fix this. Test case in TH3. (Closed-Leaf check-in: ccd3bae1 user: drh tags: minmax-opt-exp)
2021-01-13
21:05
Fix a harmless compiler warning. (check-in: 83ec01e3 user: drh tags: minmax-opt-exp)
19:28
Expand the number of optimization-disable bits from 16 to 32. Use one of the new bits to disable the min/max optimization, so that we can more easily verify that we get the same answer both with and within that optimization. (check-in: fd0c9a12 user: drh tags: minmax-opt-exp)
15:23
Further enhancements to the min/max optimization of check-in b8ba2f17f938c035 to fix the performance regression identified by forum post 4050026ab8. (check-in: 188772a1 user: drh tags: minmax-opt-exp)
12:59
cli: Omit surplus whitespace at the end of lines in .explain output. (check-in: 11e4eb09 user: drh tags: trunk)
11:44
In the .selecttrace output, show the ORDER BY clause added by the Min/Max optimization. (check-in: db0ecfe6 user: drh tags: trunk)
2021-01-12
20:16
Lexer and grammar rules for a RETURNING clause on DELETE/INSERT/UPDATE. Actually making this work, though, will involve a lot more code which will likely slow down processing for the common case where there is no RETURNING clause. Furthermore, RETURNING seems to be of limited usefulness and it is not standard SQL. So we abandon it here. These experimental changes are parked in a branch as an historical reference. If circumstances changes, we might take up the cause again some day. (check-in: abf8da81 user: drh tags: returning)
16:26
Merge the ParseCleanup enhancement to trunk. (check-in: 35824c1b user: drh tags: trunk)
15:30
Fix a potential use-after-free following an OOM in sqlite3ParserAddCleanup() and add a mechanism to detect situations where this might occur in the future. (Closed-Leaf check-in: 38ef8ab9 user: drh tags: parse-cleanup)
14:23
Rerun autoconf. (check-in: 8f3ab5da user: drh tags: trunk)
14:19
Fix for the top-level configure script so that it works with tcl 8.7. (check-in: 4810f814 user: dan tags: trunk)
2021-01-11
20:37
Add a linked list of ParseCleanup objects to the end of a Parse object and use that list as a place to put other sub-objects that need to be deallocated. Have a single such list for infrequently used sub-objects is more efficient than doing an a separate check for each kind of sub-object. Edit: Now possible to have use-after-free following an OOM. (check-in: affa2b7b user: drh tags: parse-cleanup)
2021-01-09
19:10
New CLI command: ".stats vmstep" enables the display of the virtual-machine step count only, after each command. Useful for optimization problems. (check-in: 49dfce46 user: drh tags: trunk)
18:24
More detailed compile-time testing before attempting to use atomic load intrinsics. See forum post fc0237a39b30ac0a. (check-in: 5204c2c4 user: drh tags: trunk)
2021-01-08
19:53
Fix an issue with sha3_query() when the first argument contains blank SQL statements. (check-in: 24baab9a user: drh tags: trunk)
2021-01-07
16:59
Update cksumvfs to check that the xCurrentTimeGetInt64 method of the underlying VFS is not NULL before invoking it. (check-in: c71f6cad user: dan tags: trunk)
16:29
Fix problems with some "crashsql" tests. (check-in: 0c8e2ede user: dan tags: trunk)
16:10
Fix harmless typos in comments per forum post 7849e58dd5 (check-in: d1e22e2f user: drh tags: trunk)
2021-01-04
18:28
Add extra test for handling of embedded nul characters in the fts4 unicode61 tokenizer. (check-in: c2c2c7e9 user: dan tags: trunk)
2021-01-02
23:56
In Lemon, factor the parser stack overflow detection logic out of the yy_reduce() subroutine and into the main parser routine, so that when overflow is detected, it can exit immediately. This saves a single conditional in the main loop of the parser. (check-in: 203c049c user: drh tags: trunk)
2021-01-01
22:06
Avoid allocating space to hold the prepared statements for CREATE statements when parsing the schema of an existing database, since those prepared statements are never used.. This helps to make startup faster, (check-in: d01e9f2d user: drh tags: trunk)
21:02
Faster and smaller test to ensure that the sqlite_schema.sql field is always a CREATE statement of some kind. (check-in: 76de2bb0 user: drh tags: trunk)
20:04
Change the unions of the Table.addColOffset field from characters to bytes. This makes the query that implements ALTER TABLE ADD COLUMN more complex and slightly slower, but also makes CREATE TABLE statement parsing faster by avoiding a call to sqlite3UtfCharLen(). Since, CREATE TABLE parsing is far more common than ALTER TABLE, this is a net win for performance. (check-in: 6f25f252 user: drh tags: trunk)
19:17
Use the column name hash to improve performance of column name collision detection while parsing CREATE TABLE statements. (check-in: d02820f0 user: drh tags: trunk)
18:32
Modify the makefile rule for "startup" so that it always builds with -Os and -DSQLITE_THREADSAFE=0 and no other options, for consistency of performance. (check-in: 5ac939e0 user: drh tags: trunk)
18:23
Size reduction and performance increase in sqlite3Prepare(). (check-in: 41f45c8e user: drh tags: trunk)
17:01
Small size reduction and performance improvement in sqlite3VdbeMakeReady() by linking the new prepared statement into the prepared statement list sooner rather than later. (check-in: 2996e800 user: drh tags: trunk)
16:43
Streamline processing of the authenticator callback for the common case when there is no callback. (check-in: d3196685 user: drh tags: trunk)
15:13
Add the "startup" test program designed to measure startup performance, and in particular schema parsing time. (check-in: 7b3b31ef user: drh tags: trunk)
01:44
Do not attempt to take a pointer to the ceil() and floor() functions as those routines are intrinsics on some versions of MSVC. (check-in: e5d7209e user: drh tags: trunk)
2020-12-30
13:20
New test case for the HAVING fix of check-in [f62f983b56623f0e]. (check-in: 45f46317 user: drh tags: trunk)
13:10
New test cases for cursor renumbering in the UNION ALL query flattener. (check-in: 270babf2 user: drh tags: trunk)
2020-12-29
16:48
Add an ALWAYS on an always-true conditional in the cursor renumbering logic of the UNION ALL flattener. Edit: turns out this change is incorrect and the conditional is reachable after all. See the nearby trunk check-in for test cases. (Closed-Leaf check-in: 5774318e user: drh tags: mistake)
15:06
Do not set the P3 parameter on OP_RowCell when copying an index btree, as P3 is not used in that case. (check-in: eef070a4 user: drh tags: trunk)
2020-12-28
21:42
Fix missing comma in ctime.c that would cause the ENABLE_MATH_FUNCTIONS output rw to merge with whatever row followed. Problem reported in forum post aacac97680. (check-in: 328bc4a0 user: drh tags: trunk)
2020-12-23
16:46
Add the sqlite3session_memory_used() API to the sessions module. For querying the amount of heap memory currently being used by a session object. (check-in: 823f75c2 user: dan tags: trunk)
2020-12-22
20:35
Fix SQLITE_OMIT_WINDOWFUNC builds by moving declaration of sqlite3ExpandSubquery out of "ifndef SQLITE_OMIT_WINDOWFUNC" block. (check-in: 9587fa8b user: dan tags: trunk)
19:57
Fix a couple spelling typos in comments. (check-in: 907ddf86 user: mistachkin tags: trunk)
16:23
Fix a problem handling sub-queries with both a correlated WHERE clause and a "HAVING 0" clause where the parent query is itself an aggregate. The problem was apparently introduced by check-in [6e6b3729e0549de0] (check-in: f62f983b user: dan tags: trunk)
14:54
Simplification to the aggregate-function analysis error detection logic at the end of sqlite3Select(). (check-in: 82884438 user: drh tags: trunk)
2020-12-21
19:50
Fix problems with joining UNION ALL sub-queries against other sub-queries that contain LEFT JOIN. (check-in: d554f710 user: dan tags: trunk)
18:39
Fix a problem when flattening joins between a UNION ALL sub-query and another sub-query that uses more than one window function. (check-in: ef9733fe user: dan tags: trunk)
14:51
Enhance documentation to show that "ro" is the correct way to say "readonly" in the mode= query parameter. (check-in: 788b9685 user: drh tags: trunk)
12:14
Add the --timer option to fuzzcheck. Get the --timeout option working in fuzzcheck when running dbsql tests. (check-in: 3b0c9b41 user: drh tags: trunk)
2020-12-20
14:51
Always declare the sqlite3WhereTrace variable, even for non-debug builds. (check-in: 88d93ee3 user: drh tags: trunk)
2020-12-19
15:39
Fix a broken assert() in fts5 that could be triggered by corrupt database records. (check-in: b79f59f9 user: dan tags: trunk)
13:58
Allow UNION ALL sub-queries to be flattened even if the parent query is a join. (check-in: df1d6482 user: drh tags: trunk)
2020-12-18
18:04
Fix for the previous fix in the case where a UNION ALL sub-query is joined against some other compound query. (Closed-Leaf check-in: 63c5cfb9 user: dan tags: union-all-flattener)
16:13
When flattening UNION ALL subqueries into a join query, ensure that separate cursor numbers are used for each segment of the newly flattened query. (check-in: c510377b user: dan tags: union-all-flattener)
2020-12-17
17:17
Fix a part of the header comment for flattenSubquery(). (check-in: dc0937ce user: dan tags: union-all-flattener)
16:48
Add test cases and minor fixes to this branch. (check-in: 5d6dc29d user: dan tags: union-all-flattener)
15:17
In the CLI, add the ".filectrl data_version" command. And put the various ".filectrl" subcommands in alphabetical order. (check-in: 34344521 user: drh tags: trunk)
11:30
Merge latest trunk changes into this branch. (check-in: 9f41f604 user: dan tags: reuse-schema)
11:24
Fix a problem with sqlite3_expanded_sql() that could occur with statements that use both numbered (e.g. "?1") and unnumbered (i.e. "?") parameters. (check-in: 2a6cd683 user: dan tags: trunk)
2020-12-16
21:09
Enhance the sqlite3BtreeTransferRow() routine so that it does more careful checks for corrupt database pages. (check-in: 85952e71 user: drh tags: trunk)
20:00
Allow sub-queries that use UNION ALL to be flattened, even if the parent query is a join. Still some problems on this branch. (check-in: 00e4bf74 user: dan tags: union-all-flattener)
14:20
Remove an unnecessary and incorrect #ifdef. Fix harmless compiler warnings. (check-in: 31cd1bbf user: drh tags: trunk)
13:20
Fix a typo in the sqlite3_free_filename() documentation. (check-in: 7316ee19 user: drh tags: branch-3.34)
13:17
Fix a typo in the sqlite3_free_filename() documentation. (check-in: 48301edc user: drh tags: trunk)
2020-12-15
19:27
Fix another integer overflow triggered by a corrupt database in recently modified vacuum code. (check-in: 4e2dd2a5 user: dan tags: trunk)
16:28
When the -statstep option is passed to the "rbu" executable, print out memory stats right before exiting, as well as every -statstep steps. (check-in: 94f81b51 user: dan tags: trunk)
13:55
Change an fts5 assert() that can be triggered by a corrupt database to an if() condition. (check-in: ea0a7f10 user: dan tags: trunk)
2020-12-14
16:50
Merge the latest trunk enhancements into the begin-concurrent-pnu branch. (check-in: daf04650 user: drh tags: begin-concurrent-pnu)
16:26
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: a1708e84 user: drh tags: begin-concurrent)
15:39
Enhance UPSERT so that it allows multiple ON CONFLICT clauses and does not require a conflict target for DO UPDATE. (check-in: 6b01a24d user: drh tags: trunk)
15:25
Fix an integer overflow problem in new VACUUM code. (check-in: 59b4367f user: dan tags: trunk)
13:52
Minor changes for test coverage. (Closed-Leaf check-in: e5a8fa50 user: drh tags: generalized-upsert)
2020-12-12
00:43
More test cases. No new problems discovered. (check-in: f34dd67e user: drh tags: generalized-upsert)
00:28
New test cases with corresponding bug fixes. (check-in: f22c21a9 user: drh tags: generalized-upsert)
2020-12-11
19:36
Begin adding test cases. Fix one bug found so far. More are pending. (check-in: aadd67dd user: drh tags: generalized-upsert)
19:01
Fix an assert() broken by recent changes to vacuum. (check-in: dd058da8 user: dan tags: trunk)
17:11
Small performance tweaks. (check-in: 5321d60c user: drh tags: generalized-upsert)
16:49
Bug fixes so that legacy tests pass. New tests for new functionality have not yet been added. (check-in: aa76790e user: drh tags: generalized-upsert)
16:03
Add an "#ifndef SQLITE_AMALGAMATION" block around the typedef for u64 in shathree.c. (check-in: b411f29e user: dan tags: trunk)
14:34
Fix the configure script on the autoconf distribution so that the --disable-threadsafe option works. See FreeBSD bug 244459. (check-in: e64ff2cc user: drh tags: trunk)
14:22
Fix the expert extension so that it handles generated columns correctly. (check-in: c2ae7ba6 user: dan tags: trunk)
01:17
Logic is in place to handle multiple ON CONFLICT clauses, but it does not work. Any use of ON CONFLICT will likely lead to memory faults. This is an incremental check-in to save my place. (check-in: 15514231 user: drh tags: generalized-upsert)
2020-12-10
20:31
Use an iterator for the index loop in sqlite3GenerateConstraintChecks(). The idea is that this iterator can be enhanced to traverse the indexes in any order, as required by multi-index UPSERT. (check-in: 64a4a91e user: drh tags: generalized-upsert)
19:54
Remove a redundant branch added by [56a54258560]. (check-in: b4d6f6d7 user: dan tags: trunk)
19:51
Changes to avoid loading large records into memory within VACUUM. (check-in: 56a54258 user: dan tags: trunk)
19:20
Fix minor issues with new code on this branch. (Closed-Leaf check-in: f7fa76d0 user: dan tags: vacuum-lomem)
18:07
Merge trunk changes into this branch. (check-in: 7337eed6 user: dan tags: vacuum-lomem)
18:06
Better integrate the changes on this branch with OP_Insert and OP_IdxInsert. (check-in: 101cef14 user: dan tags: vacuum-lomem)
13:49
Add an optional function to the chsumvfs extension. When activated by the SQLITE_CKSUMVFS_INIT_FUNCNAME macro, this function will invoke the file-control that sets the number of reserved bytes to 8. This can be used to initialize a cksumvfs database file by programming languages that do not have access to the sqlite3_file_control() interface. (check-in: 01841fb4 user: drh tags: trunk)
12:49
The DO UPDATE code generator searches for the correct ON CONFLICT clause to use. (check-in: a47e35ee user: drh tags: generalized-upsert)
2020-12-09
23:35
Fix compilation issues with MSVC related to C99. (check-in: c0de6c1f user: mistachkin tags: trunk)
20:33
Transfer large index or WITHOUT ROWID records between b-trees when vacuuming without loading them into memory. (check-in: dfd4ca68 user: dan tags: vacuum-lomem)
20:30
For upsert, the constraint check code generator uses a copy of the index list for the target table, which can potentially be reordered. (check-in: 3194c00c user: drh tags: generalized-upsert)
16:49
Add tests for a 'delete' command on a contentless table where values that weren't actually inserted are NULL. (check-in: 818c647c user: dan tags: trunk)
16:32
Avoid loading large intkey rows when VACUUMing, even if the page-size is changing. (check-in: 0d2c3776 user: dan tags: vacuum-lomem)
13:11
Improved comments in sqliteInt.h. No changes to code. (check-in: 8ccb8d1d user: drh tags: generalized-upsert)
01:34
Initialize all terms in the ON CONFLICT clause stack. (check-in: 5e683fd1 user: drh tags: generalized-upsert)
2020-12-08
20:19
Experimental changes to vacuum to avoid loading large records entirely into memory. Currently only works in limited cases only - for rowid tables when the page-size does not change. (check-in: c90e063c user: dan tags: vacuum-lomem)
14:29
Enhance UPSERT parsing to allow multiple ON CONFLICT clauses. Only the very last clause may omit the conflict target, but the conflict target may now be omitted for the DO UPDATE resolution. (check-in: 2ca62f4c user: drh tags: generalized-upsert)
2020-12-07
23:14
Fix a bad assert() in math1Func(). (check-in: 4b286129 user: drh tags: trunk)
21:19
Fix to the --disable-math option to ./configure. (check-in: 99ff6418 user: drh tags: trunk)
21:13
Many more math functions. Semantics follows PG wherever possible. (check-in: 6b93627b user: drh tags: trunk)
17:15
Begin adding new SQL functions that depend on -lm: ceil(), ceiling(), floor(), ln(), log(), and log10() so far. More to follow. (check-in: 4db5f2f7 user: drh tags: trunk)
2020-12-04
18:47
Update this branch with latest trunk changes. (check-in: 846e8444 user: dan tags: reuse-schema)
17:05
Fix harmless compiler warnings associated with the recent FTS5 enhancements. (check-in: 1db7c751 user: drh tags: trunk)
16:58
Fix a bug in the ".eqp" command of the shell that was introduced by the recent sqlite3SelectTrace/SQLITE_TESTCTRL_TRACEFLAGS changes. (check-in: fd02dffc user: drh tags: trunk)
16:49
Ensure that fts5 function matchinfo() is registered before running tests that use it in fts5corrupt3.test. (check-in: 932e05e0 user: dan tags: trunk)
16:26
Fix a test script problem in walvfs.test. (check-in: 4c5076fb user: dan tags: trunk)
16:25
Fix an incorrect datatype no the sqlite3WhereTrace variable in test1.c. (check-in: 4e6dab30 user: drh tags: trunk)
16:09
Eliminate the sqlite3_unsupported_selecttrace global variable by creating a new test-control to control SELECT tracing. Note that SELECT tracing is only available on debug builds. (check-in: fb07c4e3 user: drh tags: trunk)
16:04
Further changes to the trace variables to try to eliminate (harmless) compiler warnings in all configurations. (Closed-Leaf check-in: 3a4c98b9 user: drh tags: traceflags-test-control)
01:17
Alternative implementation of ".selecttrace" and ".wheretrace" that uses a test-control rather than global variables. (check-in: d36d6f29 user: drh tags: traceflags-test-control)
2020-12-03
21:22
When merging prefix lists in fts5, use 16-way merges instead of 2-way merges. This faster. (check-in: 026a9350 user: dan tags: trunk)
19:25
Do not simulate OOM faults on the SQLITE_FCNTL_CKPT_START and SQLITE_FCNTL_CKPT_DONE file-controls, as those are write-only and the return value is always ignored. (check-in: 62a2d394 user: drh tags: trunk)
14:21
Enhance the generate_series() table-valued function to support negative step values. (check-in: 9b60fc48 user: drh tags: trunk)
2020-12-02
20:07
Prevent potential segfault in the sqlite-expert idxPopulateStat1 context cleanup code. (check-in: c24f1344 user: mistachkin tags: trunk)
19:08
Allow a search for an N character prefix in fts5 to use a prefix index of size N+1, if no prefix index of size N exists. (check-in: 78a7801d user: dan tags: trunk)
18:27
Fix the ".open" command in the CLI so that it accepts command-line options both before and after the filename. (check-in: d330bf0c user: drh tags: trunk)
16:23
Improve performance for fts5 column filters that filter for more than one column. e.g. "{col1 col2 col3}:phrase". (check-in: d8de2f23 user: dan tags: trunk)
02:58
Parameterize the hash function in mkkeywordhash.c. This was an attempt to find a better hash function, which turned out to not be successful. (check-in: 2195d731 user: drh tags: trunk)
00:22
Increase the version number to 3.35.0 to begin the next development cycle. (check-in: edbabaa3 user: drh tags: trunk)
00:20
Slightly faster tokenization of non-keyword identifiers. (check-in: 55fa22bd user: drh tags: trunk)
2020-12-01
23:18
Add the --lookaside SIZE COUNT command-line option to the dbfuzz2 testing tool. (check-in: 2466960c user: drh tags: trunk)
16:36
Merge the 3.34.0 release into the reuse-schema branch. (check-in: 73b5f614 user: drh tags: reuse-schema)
16:14
Version 3.34.0 (check-in: a26b6597 user: drh tags: trunk, release, major-release, version-3.34.0)
2020-11-30
18:52
Update the tea/win/makefile.vc file that ships as part of the autoconf package to use "sqlite3" instead of "tclsqlite3" for the installed dll filename. (check-in: 23212b1a user: dan tags: trunk)
18:43
Update the tea/win/makefile.vc file that ships as part of the autoconf package to use "sqlite3" instead of "tclsqlite3" for the installed dll filename. (Closed-Leaf check-in: 93d4d9dc user: dan tags: win-tea-fix)
14:20
Do not reuse the obsolete SQLITE_TESTCTRL_PRNG_RESET value for SQLITE_TESTCTRL_SEEK_COUNT. Give SEEK_COUNT its own unique value. This avoids incompatibility with legacy test code. (check-in: fdba0b12 user: drh tags: trunk)
2020-11-27
20:56
Improve the speed of the tokenizer by recognizing that tokens starting with letters "_", "Y", or "Z" can never be SQL keywords and must be ordinary identifiers. (Closed-Leaf check-in: 16e281ed user: drh tags: faster-tokenizer)
19:40
Fix a compiler warning in fts5_aux.c. (check-in: 8edb983b user: dan tags: trunk)
16:15
Add missing cast to fts5 bm25() code. (check-in: 6ff96738 user: dan tags: trunk)
16:08
Remove a redundant "if( rc==SQLITE_OK )" from the fts5 bm25() code. (check-in: d85f4f27 user: dan tags: trunk)
16:05
Move an "if( rc==SQLITE_OK )" to outside a loop body in the fts5 bm25() code. (check-in: 14a4dcf3 user: dan tags: trunk)
15:28
Fix a case in the FTS5 integrity check where a corrupt database could cause a buffer overread. (check-in: a32b4f65 user: dan tags: trunk)
2020-11-26
20:13
Update mkunicode.tcl to match the change erroneously made to machine generated file fts5_unicode2.c in [b7b7bde9]. (check-in: 326d579d user: dan tags: trunk)
18:41
Merge latest changes from wal2 branch. (check-in: b451bb72 user: dan tags: begin-concurrent-pnu-wal2)
18:08
Merge latest trunk changes into this branch. (check-in: cb1f6f18 user: dan tags: wal2)
17:54
Merge latest changes from begin-concurrent-pnu into this branch. (check-in: d2de81a2 user: dan tags: begin-concurrent-report)
17:36
Merge latest changes from trunk into this branch. (check-in: a42e6f34 user: dan tags: begin-concurrent-pnu)
11:37
Update this branch with latest changes from trunk. (check-in: ddb97eee user: dan tags: begin-concurrent)
2020-11-25
20:29
Merge trunk changes into this branch. (check-in: f4b7c100 user: dan tags: reuse-schema)
18:44
Update a requirement mark in the e_expr.test script. (check-in: bb174a07 user: drh tags: trunk)
16:28
Fix harmless compiler warnings about unused function parameters. (check-in: 25d067c2 user: drh tags: trunk)
15:29
Fix a potential NULL pointer dereference in the geopoly_overlap() routine of the GeoPoly extension. (check-in: b5665712 user: drh tags: trunk)
14:50
Fix the shell1.test test script so that it works on windows. (check-in: 9bd15b07 user: drh tags: trunk)
13:59
Change the -init option to the command-line shell to honor the -bail option. Also change it to report an error if the filename mentioned cannot be opened. (check-in: a29f54bd user: drh tags: trunk)
2020-11-24
23:40
Fix a typo in the sqlite3_txn_state() documentation. (check-in: 5b432529 user: drh tags: trunk)
21:19
Add the new sqlite3_txn_state() interface to the set of routines accessible by run-time loadables extensions. (check-in: db25f1dc user: drh tags: trunk)
19:55
Fix a harmless typo in a comment. (check-in: b2a201f1 user: drh tags: trunk)
17:55
Fix a bug in OOM handling code introduced by [6a28713d]. (check-in: 8a786ce9 user: dan tags: trunk)
16:44
Ensure that super-journal and other journal filenames passed by SQLite to an sqlite3_vfs.xOpen() implementation may be safely passed to sqlite3_uri_parameter() and similar functions. (check-in: 6a28713d user: dan tags: trunk)
13:14
Remove the VERSION_NUMBER macro from configure.ac as it has been unused since 2009 check-in [7f4810747b086498]. See also forum post bb2c634fcd. (check-in: 5466dd55 user: drh tags: trunk)
2020-11-23
21:05
Syntactic changes to work around a bug in gcov 9.3.0. No changes to the generated code for release builds. (check-in: 4f1573b1 user: drh tags: trunk)
17:36
In os_unix.c, put ALWAYS() on unreachable branches associated with pathname normalization. (check-in: b45a08e3 user: drh tags: trunk)
15:30
Fix a test script problem causing crash8.test to fail when run with leak-sanitizer. (check-in: 2c437f7a user: dan tags: trunk)
14:50
Allow "substring()" as an alias for "substr()" for compatibility with other SQL engines. (check-in: aa2ee575 user: drh tags: trunk)
2020-11-20
14:16
Add file doc/vdbesort-memory.md, containing notes on the way vdbesort.c uses heap memory. (check-in: 07f53899 user: dan tags: trunk)
11:17
Declare a variable "const" in order to avoid compiler warnings. (check-in: 4f5481bf user: dan tags: wal2)
2020-11-19
21:12
The xFullPathname method of the unix VFS now normalizes the filenames by omitting surplus "/", "/./" and "/../" strings. (check-in: c38dec6f user: drh tags: trunk)
21:01
More test case changes so that shared-cache mode tests all work with normalized database names. (Closed-Leaf check-in: 6f0d5f09 user: drh tags: stronger-nofollow)
20:07
Fix the tkt3793 test case so that work even when filenames are normalized. (check-in: e85d32ac user: drh tags: stronger-nofollow)
19:43
Use an ephemeral table rather than a RowSet to remember rowids in the two-pass UPDATE algorithm, as this uses much less memory for large UPDATEs. (check-in: 842c4327 user: drh tags: trunk)
16:08
Fix things so that sqlite3_database_file_object() works with wal2 filenames. (check-in: c2426ae8 user: dan tags: wal2)
2020-11-18
23:44
If a read() or pread() indicates that the database file is unreadable due to filesystem damage, then it returns SQLITE_IOERR_CORRUPTFS which is then converted into SQLITE_CORRUPT before being returned to the application. (check-in: 849e4e14 user: drh tags: trunk)
21:50
Improvements to the mechanism that attempts to report SQLITE_CORRUPT if pread() says that the underlying filesystem is corrupt. (Closed-Leaf check-in: b887c750 user: drh tags: detect-corrupt-fs)
21:15
Merge trunk changes into this branch. (check-in: 6004de52 user: dan tags: reuse-schema)
20:55
Update cksumvfs.c so that if SQLITE_AMALGAMATION is defined, SQLITE_CKSUMVFS_STATIC is implied. (check-in: 184e9d78 user: dan tags: trunk)
18:36
Add test infrastructure for cksumvfs. And update cksumvfs so that it works in concert with version 2 VFSs. No changes to core SQLite. (check-in: 43d4801d user: dan tags: trunk)
14:30
Fix a problem causing sqlite3_carray_bind() to return an undefined value. (check-in: 083203a5 user: dan tags: trunk)
14:12
Update test code to fix a problem with SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 29c779a0 user: dan tags: trunk)
12:48
On unix, for certain error codes of read()/pread() return SQLITE_IOERR_CORRUPTFS instead of SQLITE_IOERR_READ. And then convert this error into SQLITE_CORRUPT prior to returning back to the application. (check-in: 9538ea84 user: drh tags: detect-corrupt-fs)
2020-11-17
21:26
Claw back most of the performance lost in the previous commit. (Closed-Leaf check-in: df8ce267 user: drh tags: lowmem-update-exp)
21:09
Fix trivial memory leaks in the shell and sqldiff programs. (check-in: 272793e5 user: dan tags: trunk)
18:25
Fix test file busy2.test so that it works with the "inmemory_journal" permutation. (check-in: b192fddd user: dan tags: trunk)
14:41
Add a single-argument form to the CARRAY table-valued function, with content bound using the sqlite3_carray_bind() interface that is included with the extension. (check-in: 7b229cb1 user: drh tags: trunk)
2020-11-16
18:45
Enhance the unix VFS so that it removes extra "/", "/./" and "/../" from the database filename. (check-in: 7ba89d3e user: drh tags: stronger-nofollow)
2020-11-14
20:03
Modify UPDATE so that two-pass updates on a rowid table use an ephemeral table to store rowids rather than a RowSet. This uses less memory, though it is slower. (check-in: 4673096d user: drh tags: lowmem-update-exp)
2020-11-12
18:16
Improved diagnostics output with ".wheretrace 0x800". No changes to non-debug builds. (check-in: 772ae83c user: drh tags: trunk)
2020-11-11
19:11
Fix a typo in a comment. No changes to code. (check-in: 572f1ed5 user: drh tags: trunk)
2020-11-08
20:44
Use NEVER and ALWAYS macros to confirm that the return value from sqlite3ExprSkipCollateAndLikely() is never NULL in some of its use cases. (check-in: 76d2eb86 user: drh tags: trunk)
2020-11-06
16:48
Add ALWAYS() to conditionals associated with SHM locking that are always true. (check-in: b599e890 user: drh tags: trunk)
2020-11-05
19:13
Suppress errors associated with TEMP triggers that reference objects in non-TEMP databases. This is a continuation of the fix for ticket #3810 shown in check-in [ba1afc040171810d] from 2009-08-06, based on a bug report in forum post 157dc791df (check-in: 991ca9b2 user: drh tags: trunk)
14:50
Remove unused variable from speedtest1.c (check-in: c0a18565 user: drh tags: trunk)
2020-11-03
11:54
Make platform compilation clearer, including the section that applies to both *ix and Windows Add link to the detailed compilation instructions Add brief Android section, it seems strange to omit it since Android is the majority use case by numbers (Closed-Leaf check-in: 2a71bebf user: shearer tags: docupdate)
11:27
Update for new git-style syntax in Fossil (check-in: d46b6778 user: shearer tags: docupdate)
11:20
Add links, especially for the docsrc repo, which is otherwise hard to find (check-in: e03867e2 user: shearer tags: docupdate)
2020-11-02
00:40
Fix an another OSS-Fuzz discovered assertion fault due to ALTER TABLE and strange triggers. (check-in: 6646d789 user: drh tags: trunk)
2020-10-31
18:58
Add the -tabs command-line option to the CLI. (check-in: 7d01e84d user: drh tags: trunk)
16:33
Update the ALTER TABLE command to correctly handle UPDATE ... FROM statements within trigger programs. (check-in: 3e6af890 user: dan tags: trunk)
2020-10-27
11:58
Prettify btree.h headings. Close branch. (Closed-Leaf check-in: ee9689ad user: shearer tags: btree-code-documentation)
11:13
Typo in btree.h (and unwanted merge; this branch for cherrypicking btree.h only) (check-in: eb6e5fc1 user: shearer tags: btree-code-documentation)
11:07
Final commit in btree.h reorg. No more unknowns. (check-in: ea06f1d1 user: shearer tags: btree-code-documentation)
2020-10-26
18:14
Always create a statement journal when using the OP_ParseSchema opcode, as you never know when it might fail. See the discussion on forum post daa2c728cc. (check-in: aa512f72 user: drh tags: trunk)
16:22
Ensure that the table argument passed to Tcl_GetIndexFromObjStruct() in the sessions module test code is declared "static". (check-in: 80eba105 user: dan tags: trunk)
13:24
Prevent fts5 tokenizer unicode61 from considering '\0' to be a token characters, even if other characters of class "Cc" are. See forum thread 09609d7e22 for details. (check-in: b7b7bde9 user: dan tags: trunk)
2020-10-22
18:58
Minor tweaks to query planning weights so that when STAT4 is enabled and functioning, a full table scan is more likely to be selected if that seems like the fastest solution. Only do this when STAT4 info is available because an error has a large potential downside. (check-in: 263293f1 user: drh tags: branch-3.28)
18:50
Minor tweaks to query planning weights so that when STAT4 is enabled and functioning, a full table scan is more likely to be selected if that seems like the fastest solution. Only do this when STAT4 info is available because an error has a large potential downside. (check-in: 0e7e113d user: drh tags: trunk)
18:16
Test case updates. (Closed-Leaf check-in: 27c681c9 user: drh tags: avoid-bad-indexes)
15:47
Sometimes it makes sense to do a full table scan rather than try to use an index when most of the rows will be selected. This branch is trying to tune the query planner to make that happen more often. (check-in: 0f42099a user: drh tags: avoid-bad-indexes)
2020-10-20
14:40
Fix the sqlite3_hard_heap_limit() so that it works with sqlite3_realloc64() in addition to sqlite3_malloc64(). Improvements to OOM processing and debugging aids in the fuzzcheck utility. (check-in: 602d7369 user: drh tags: trunk)
12:37
Fix an assert() inside of debug-only code that can fail following an OOM. (check-in: 79da254f user: drh tags: trunk)
2020-10-19
20:49
Fix an incorrect table ref-count in the new recursive CTE logic that might result in a reference to freed memory following a syntax error. (check-in: 75a02888 user: drh tags: trunk)
12:35
Enhance recursive common table expressions to support two or more recursive terms. (check-in: 77e64647 user: drh tags: trunk)
01:44
New test cases for recursive CTEs with multiple recursive terms. (Leaf check-in: cd5182bd user: drh tags: cte-enhancement)
01:23
Allow multiple recursive terms in the compound SELECT of a recursive CTE. This facilitates writing a query to find find the connected components of an undirected graph. (check-in: 5481fa8c user: drh tags: cte-enhancement)
2020-10-18
18:35
Fix harmless compiler warnings. (check-in: 7f8802bb user: mistachkin tags: trunk)
2020-10-17
22:13
Fix the SQLITE_DESERIALIZE_FREEONCLOSE flag so that it works as it is documented to work. See forum post ba1dff667a (check-in: d6fac8a1 user: drh tags: trunk)
19:09
Fix an incorrect printf() in debugging logic in where.c. Problem reported by forum post 80a9c47769772207. (check-in: 883da4da user: drh tags: trunk)
2020-10-15
17:59
Minor fixes to the cksumvfs documentation in the header comment of the source file. Enhance speedtest1.c so that it can more easily do performance comparisons of cksumvfs. (check-in: ed3bb818 user: drh tags: trunk)
14:37
The windows VFS accepts query parameter "exclusive=true" to cause it to take a mandatory file lock, preventing other applications from even reading the file. See forum thread 11b5560864189b5d. (check-in: 05b573fd user: drh tags: trunk)
2020-10-14
21:31
Enhancements to TclKit batch tool for MSVC. (check-in: 2a8a4552 user: mistachkin tags: trunk)
21:30
Fix typo in a documentation comment. (check-in: 462adc7d user: mistachkin tags: trunk)
15:46
Enhanced documentation for sqlite3_vtab_nochange() to make it clear that it is an optimization and that virtual table implementations should be prepared for it to always return false. (check-in: 3e264361 user: drh tags: trunk)
2020-10-12
18:09
Fix some fts5 problems with signed integer overflow causing segfaults in -ftrapv builds. (check-in: 7e17c2f4 user: dan tags: trunk)
17:57
Improved quoting of the table name argument for the ".import" command of the CLI. See forum post 34591fefbe. (check-in: ce97b56d user: drh tags: trunk)
16:54
Add options --data-only and --nosys to the ".dump" command in the CLI. (check-in: 57123b14 user: drh tags: trunk)
15:27
Fix ALTER TABLE so that it can run even if the schema contains unknown collation sequences. (check-in: bc4bb943 user: dan tags: trunk)
14:56
Add the --nosys option to the .schema command in the CLI. (check-in: b72ee694 user: drh tags: trunk)
14:29
Fix UPDATE FROM statements on virtual tables that are declared WITHOUT ROWID. See forum post 0fee7951eb for more information. (check-in: bcb0bc6a user: dan tags: trunk)
13:24
Fix BEGIN IMMEDIATE and BEGIN EXCLUSIVE so that they work even if one or more of the database files in the connection are read-only. Test cases for this are in TH3. (check-in: 2fa08c39 user: drh tags: trunk)
2020-10-07
11:24
In the CSV extension, use SQLITE_TRANSIENT rather than SQLITE_STATIC on return values that can in fact change. (check-in: 54b54f02 user: drh tags: trunk)
2020-10-06
15:48
More additions and improvements to btree.h documentation (check-in: a49a7cde user: shearer tags: btree-code-documentation)
2020-10-05
16:41
Allow fts5 trigram tables created with detail=column or detail=none to optimize LIKE and GLOB queries. Allow case-insensitive tables to optimize GLOB as well as LIKE. (check-in: 64782463 user: dan tags: trunk)
2020-10-03
19:16
Do not apply affinities when creating entries for automatic indexes on views. Fix for [95302bdb]. (check-in: df12f097 user: dan tags: trunk)
17:06
Fix a segfault caused by running "column LIKE NULL" against an fts5 table using the trigram tokenizer. Fix for [e33ee62575fc22]. (check-in: 6e72a08d user: dan tags: trunk)
14:36
FTS5 does not handle tokens that contain embedded nul characters. Prevent the trigram tokenizer from returning such tokens. Fix for [2ba5930b2]. (check-in: b1d04874 user: dan tags: trunk)
2020-10-02
15:15
Fix some test code so that testfixture can build with SQLITE_OMIT_WAL defined. (check-in: dd009cd7 user: dan tags: trunk)
13:57
Import further corner-case fixes for the in-scan-vs-index or OP_SeekScan optimization from trunk. (check-in: c144d640 user: drh tags: branch-3.28)
13:48
Additional corner-case fixes for the in-scan-vs-index or OP_SeekScan optimization. (check-in: ad5ab24e user: drh tags: trunk)
12:49
Remove an incorrect assert() from the OP_SeekScan opcode. (check-in: c0400f8c user: drh tags: trunk)
12:42
Fix a faulty assert() statement. Add new test cases. (check-in: 80ecdb3d user: drh tags: trunk)
12:11
For the OP_SeekScan optimization, the OP_IdxGT does not necessarily come right after the OP_SeekGE. So use the P2 operand of OP_SeekScan to point to the first instruction after OP_IdxGT. Problem found by dbsqlfuzz. (check-in: ec37744c user: drh tags: branch-3.28)
11:55
For the OP_SeekScan optimization, the OP_IdxGT does not necessarily come right after the OP_SeekGE. So use the P2 operand of OP_SeekScan to point to the first instruction after OP_IdxGT. Problem found by dbsqlfuzz. (check-in: 091d7193 user: drh tags: trunk)
02:07
Disable the OP_SeekScan opcode of the in-scan-vs-index optimization when in PRAGMA reverse_unordered_selects mode, as the OP_SeekScan only works with forwards scans. Thanks to OSSFuzz for pointing out the problem to us. (check-in: 9a1cdf7e user: drh tags: branch-3.28)
02:02
Disable the OP_SeekScan opcode of the in-scan-vs-index optimization when in PRAGMA reverse_unordered_selects mode, as the OP_SeekScan only works with forwards scans. Thanks to OSSFuzz for pointing out the problem to us. (check-in: c75c3a3b user: drh tags: trunk)
2020-10-01
17:24
Add experimental "trigram" tokenizer to fts5. (check-in: c4e8ec79 user: dan tags: trunk)
17:15
Add the -trigram option to the fts5txt2db.tcl script. (Closed-Leaf check-in: a394dd26 user: dan tags: fts5-trigram)
16:10
Add tests for the trigram tokenizer. Fix minor issues. (check-in: 897ced99 user: dan tags: fts5-trigram)
15:46
Fix the OP_SeekScan opcode so that its variable names do not cause problems for the test/vdbe-compress.tcl script. (check-in: 7a78274a user: drh tags: trunk)
14:38
Remove a debugging printf() accidentally left in the previous check-in. (check-in: e9d1efa5 user: drh tags: trunk)
14:36
The IN-early-out optimization does not work for virtual tables. Do not try to use it there. Fix for ticket [2d5a3163563d559f]. Test cases in TH3. (check-in: dbec6910 user: drh tags: trunk)
2020-09-30
20:35
Add experimental unicode-aware trigram tokenizer to fts5. And support for LIKE and GLOB optimizations for fts5 tables that use said tokenizer. (check-in: 0d7810c1 user: dan tags: fts5-trigram)
18:22
Improved query optimization for multi-column indexes where the second or later columns are constrained by an IN operator and the earlier index columns limit the search to a small number of rows. Use the new OP_SeekScan opcode which does scanning of the relevant range of the index but gives up and falls back to doing a seek if the number of rows scanned grows to large, in order to guard against pathological cases where the estimated number of rows to be scanned is far too small. (check-in: f07ac3fb user: drh tags: branch-3.28)
18:06
Improved query optimization for multi-column indexes where the second or later columns are constrained by an IN operator and the earlier index columns limit the search to a small number of rows. Use the new OP_SeekScan opcode which does scanning of the relevant range of the index but gives up and falls back to doing a seek if the number of rows scanned grows to large, in order to guard against pathological cases where the estimated number of rows to be scanned is far too small. (check-in: 4a43430f user: drh tags: trunk)
18:03
For the OP_SeekScan opcode, adjust the number of steps run before giving up based on the estimated number of comparisons needed to perform a seek. (Closed-Leaf check-in: dc4172e6 user: drh tags: in-scan-vs-index)
17:32
Back out the incorrect optimization of check-in [e51ecadcbdef5ce6] as ticket [5c4e7aa793943803] reports a case where the optimization does not work. (check-in: 7395e96b user: drh tags: trunk)
15:36
In the query flattener when substituting expression Y in place of expression X, if X is marked has having come from an ON or USING clause of a LEFT JOIN, then be sure that all subexpressions of Y, not just the root node of Y, are similarly marked. Otherwise, if Y is an AND operator, it will be split up during WHERE clause analysis and the subexpressions will not get the special treatment needed by LEFT JOIN ON/USING clauses. Fix for ticket [66e4b0e271c47145]. (check-in: 69f9eb73 user: drh tags: trunk)
09:17
Better understanding of savepoint code (check-in: ce6d8d62 user: shearer tags: trunk)
00:48
Add an sqlite3FaultSim() call to btreeNext() to make it easier to simulate I/O errors in calls to sqlite3BtreeNext(), and in OP_SeekScan. (check-in: 29cca775 user: drh tags: in-scan-vs-index)
00:10
In the OP_SeekScan opcode, changes to pOp must occur after the call to VdbeBranchTaken() so that the VdbeBranchTaken() attributes the branch to the correct opcode. (check-in: 61fbe7aa user: drh tags: in-scan-vs-index)
2020-09-29
23:52
The OP_SeekScan opcode is a no-op if the cursor is not pointing to a valid row upon entry. (check-in: 4afc96b5 user: drh tags: in-scan-vs-index)
20:22
Coverage testing of the OP_SeekScan opcode. Fix a problem that comes up when OP_SeekScan reaches the end of the table. (check-in: 9e57e758 user: drh tags: in-scan-vs-index)
17:29
Improved comments on the new OP_SeekScan opcode. (check-in: 6110fdd5 user: drh tags: in-scan-vs-index)
16:05
Improved performance by manually in-lining the sqlite3VdbeIdxKeyCompare() routine for the OP_IdxGT opcode and its kin. (check-in: 2206a2c8 user: drh tags: in-scan-vs-index)
15:32
Typo fix to repair the early-out optimization. Also avoid unnecessary OP_SeekHit opcodes. (check-in: 8fd7d8df user: drh tags: in-scan-vs-index)
01:48
The OP_SeekScan opcode works, but using it requires disabling the IN-earlyout optimization because the OP_IfNoHope opcode might move the cursor. (check-in: f3c36b84 user: drh tags: in-scan-vs-index)
2020-09-28
19:51
Revisiting the IN-scan optimization to try to fix it for the corner case where the statistics deceive the query planner into using a scan when an indexed lookup would be better. This check-in changes the code generation to do the IN-scan using a new OP_SeekScan opcode. That new opcode is designed to abandon the scan and fall back to a seek if it doesn't find a match quickly enough. For this work-in-progress check-in, OP_SeekScan is still a no-op and OP_SeekGE still ends up doing all the work. (check-in: d720b698 user: drh tags: in-scan-vs-index)
15:49
Small performance improvement and size reduction by reducing the size of the WhereTerm object. (check-in: 43f7ddad user: drh tags: trunk)
13:34
Avoid the possibility of integer overflow on the --pagecache option to the CLI. See forum post 10a2892377 (check-in: d3d13df3 user: drh tags: trunk)
2020-09-25
17:17
Clarify (check-in: 14dba0f3 user: shearer tags: btree-code-documentation)
16:54
Distinguish between checkpoints (WAL-only, implementation specific) and savepoints (Btree internal implementation of COMMIT/ROLLBACK subtransactions) and SQL SAVEPOINT (identical name for SQL-level subtransactions) (check-in: ae686ab6 user: shearer tags: btree-code-documentation)
14:26
Reset to trunk's func. Still learning Fossil. (check-in: a4840cf5 user: shearer tags: btree-code-documentation)
13:56
More classification of functions. Fix incorrect comment that sqlite3BtreeCursorHasHint() is only used within asserts. (check-in: 78d8db7c user: shearer tags: btree-code-documentation)
09:42
Merge recent trunk changes into the btree-code-documentation branch (check-in: 3a576608 user: shearer tags: btree-code-documentation)
08:17
Add reminder comment that, by definition, these functions won't be called from elsewhere in SQLite. Useful to remember for beginners who may suspect unusued code. (check-in: 6f5c1fde user: shearer tags: btree-code-documentation)
2020-09-24
11:41
Added context to explain that the test coverage is about MC/DC in general, not just an SQLite-specifc test harness. (check-in: 770dbedd user: shearer tags: btree-code-documentation)
06:37
Group metadata definitions together (check-in: 5c306f42 user: shearer tags: btree-code-documentation)
2020-09-23
17:31
Figured out where/how sqlite3BtreeRowCountEst() is called (check-in: a4653715 user: shearer tags: btree-code-documentation)
2020-09-21
20:18
Fix harmless compiler warning seen with MSVC. (check-in: 4591ee03 user: mistachkin tags: trunk)
14:53
In fts5 integrity checks, do not compare the contents of the index against an external content table unless specifically requested. (check-in: 78216369 user: dan tags: trunk)
2020-09-20
13:33
Remove a new assert() that the compiler finds is always true at compile-time, to avoid a compiler warning. (check-in: 8bbaee23 user: drh tags: trunk)
12:10
Attempt to silence harmless static analyzer warnings in Lemon and in the Lemon-generated parser. (check-in: de8ce22a user: drh tags: trunk)
2020-09-17
21:11
Fix a typo in the documentation comment for sqlite3_preupdate_hook(). (check-in: 4542d194 user: dan tags: trunk)
17:01
Fix a problem in sqlite-expert causing it to ignore equality constraints on the second or subsequent columns of a multi-column PRIMARY KEY. (check-in: c666c85a user: dan tags: trunk)
15:16
Fix a problem in fts5 causing the in-memory hash table to be flushed more often than necessary. (check-in: 9a55601d user: dan tags: trunk)
15:04
Order btree.h by logical function, add comments (check-in: ab53b317 user: shearer tags: btree-code-documentation)
14:16
Fix a "jump depends on unitialized value" valgrind/asan error in fts5. (check-in: 66f94d62 user: dan tags: trunk)
11:56
Earlier detection of corruption in the rtreecheck() SQL function to prevent a (harmless) read of an uninitialized value. (check-in: e2074b24 user: drh tags: trunk)
11:32
Prevent use-after-free of the u.vtab.idxStr string following an OOM while generating the OP_VFilter opcode. (check-in: 751fe4ed user: drh tags: trunk)
00:46
DISTINCT may not be ignored inside a UNION ALL common table expression. Fix for ticket [c51489c3b8f919c5] (check-in: 7d2b590d user: drh tags: trunk)
2020-09-16
19:48
Fix a pair of assert()s in "PRAGMA foreign_key_check" that might have given a false-positive following an OOM. (check-in: 9ea3039b user: drh tags: trunk)
16:55
Fix harmless compiler warnings in Lemon. (check-in: 6c94ba4b user: drh tags: trunk)
16:55
Merge bugfixes made since version 3.33.0 into this branch. (Leaf check-in: 2e269dcd user: dan tags: reuse-schema-3.33)
16:49
Fix a buffer overread found by OSSFuzz that could occur if a WITHOUT ROWID table with many columns was NATURAL JOINed against itself. (Leaf check-in: 807643c5 user: dan tags: branch-3.33)
16:48
Do not invoke usleep() for more than 999999 microseconds. (check-in: 1f0055d0 user: dan tags: branch-3.33)
16:45
Fix a tsan error that could occur when using shared-cache mode. (check-in: 61981b97 user: dan tags: branch-3.33)
16:44
Fix another (harmless in practice) tsan error in shared-cache mode. (check-in: 553e20c3 user: dan tags: branch-3.33)
16:41
Apply the same fix for ticket [9eda2697f5cc1aba] to text-to-integer conversions that was done for floating point conversions by check-in [1c76f1d8ec0937a2]. (check-in: 1b4801de user: dan tags: branch-3.33)
16:40
Correctly handle expressions like "x IS (not) true/false" within the rhs of IN() expressions. Fix for [f3ff1472]. (check-in: 42361033 user: dan tags: branch-3.33)
16:39
Fix a crash that could occur in SQLITE_MAX_EXPR_DEPTH=0 builds when processing SQL containing syntax errors. (check-in: 6438db45 user: dan tags: branch-3.33)
16:38
Do not skip over TK_IF_NULL_ROW operators when bypassing TK_COLLATE operators. Fix to check-in [ac31edd3eeafcef4] which was itself a fix for ticket [45f4bf4eb4ffd788]. (check-in: 85041611 user: dan tags: branch-3.33)
2020-09-15
20:48
Fix a buffer overread found by OSSFuzz that could occur if a WITHOUT ROWID table with many columns was NATURAL JOINed against itself. (check-in: 3d35fa0b user: dan tags: trunk)
12:29
Do not invoke usleep() for more than 999999 microseconds. (check-in: 1f5ed852 user: drh tags: trunk)
2020-09-11
15:01
Catch fts5 index corruption caused by issuing 'delete' commands with incorrect data earlier in some cases. Also fix a couple of test script problems. (check-in: b79f19ed user: dan tags: trunk)
2020-09-10
15:09
Try again to fix the typo in the sqlite3_txn_state() documentation. (check-in: 6d1ab040 user: drh tags: trunk)
14:54
Fix typo in the documentation for the new sqlite3_txn_state() interface. (check-in: 23f7d017 user: drh tags: trunk)
12:41
If an amalgamation is created using SQLITE_ENABLE_UPDATE_DELETE_LIMIT, ensure that it can still be compiled without that option by setting the SQLITE_UDL_CAPABLE_PARSER flag in the preamble. (check-in: 5b905d7d user: drh tags: trunk)
2020-09-07
11:23
Merge latest trunk changes into this branch. (check-in: ae1a778d user: dan tags: reuse-schema)
11:14
Fix another (harmless in practice) tsan error in shared-cache mode. (check-in: 5a74fa3f user: dan tags: trunk)
2020-09-06
17:40
Remove an artifical limitation on the length of columns in the "box" output mode of the command-line shell. (check-in: 783fa887 user: drh tags: trunk)
2020-09-05
06:21
Fix a bug in Lemon that might cause it to crash if there is a multi-terminal token with a space following the "|" separator. This does not affect SQLite. (check-in: 430c5d1d user: drh tags: trunk)
2020-09-04
19:12
Merge tsan error fix from trunk into this branch. (check-in: 93cc60b3 user: dan tags: reuse-schema)
19:10
Fix a tsan error that could occur when using shared-cache mode. (check-in: de80bc87 user: dan tags: trunk)
17:40
Update this branch with latest changes from trunk. (check-in: ca8deb44 user: dan tags: reuse-schema)
17:30
Ensure that the busy-handler count is reset at the end of each sqlite3_file_control() and sqlite3_prepare() (and _v2() and _v3()). (check-in: 5dd05940 user: dan tags: trunk)
2020-09-02
16:14
Add tests for virtual table shmlock. (Leaf check-in: 1c6a8442 user: dan tags: shmlock-vtab)
15:26
Fix reporting on locks from external processes. Various other fixes. (check-in: 459de23e user: dan tags: shmlock-vtab)
2020-09-01
20:56
Add file-controls and a vtab frontend for querying the unix VFS for the currently held shm-locks. Still some issues. (check-in: ef10e1b3 user: dan tags: shmlock-vtab)
19:02
Fix harmless compiler warning. (check-in: a711e8cd user: mistachkin tags: trunk)
12:26
In the Lemon output, add a prefix comment that explains that the output file is automatically generated and shows the name of the source file. (check-in: d34caf3b user: drh tags: trunk)
11:20
Lemon updates: (1) include the #defines for all tokens in the generated C file, so that the C-file can be stand-alone. (2) If the grammar begins with a %include {...} directive on line one, make that directive the header for the generated C file. (3) Enhance the lemon.html documentation. (check-in: 84d54eb3 user: drh tags: trunk)
02:02
Improvements to the IN-early-out optimization so that it works more efficiently when there are two or more indexed IN clauses on a single table. (check-in: 49b7631e user: drh tags: branch-3.28)
01:52
Improvements to the IN-early-out optimization so that it works more efficiently when there are two or more indexed IN clauses on a single table. (check-in: 35505c68 user: drh tags: trunk)
00:26
Fix a harmless compiler warning. (check-in: 3ca0b7d5 user: drh tags: trunk)
00:09
Minor changes - fix a compiler warning and add an assert(). (Closed-Leaf check-in: 07222dce user: drh tags: in-early-out-fail)
2020-08-31
20:37
Update this branch with the "PRAGMA noop_update" fix from begin-concurrent-report. (Leaf check-in: 1d984722 user: dan tags: begin-concurrent-unixshmlock-opt)
20:29
Update this branch with the "PRAGMA noop_update" fix from begin-concurrent-pnu. (check-in: 3c0423f0 user: dan tags: begin-concurrent-report)
20:27
Restore the "PRAGMA noop_update" feature that was broken by [2b3241cf67c8eea7]. (check-in: 5fa4cbcb user: dan tags: begin-concurrent-pnu)
19:58
Merge the SEEK_COUNT instrumentation enhancement from trunk. (check-in: 689ede95 user: drh tags: in-early-out-fail)
19:19
An attempt to improve the performance of the IN-early-out optimization (see check-in [09fffbdf9f2f6ce3]) by avoiding unnecessary calls to the b-tree search algorithm in OP_IfNoHope when the index key is at hand and the same answer can be obtained by doing a quick key comparison. Update: Experiment did not work out. (Closed-Leaf check-in: 8301da31 user: drh tags: branch-3.28-in-early-out-fail)
18:49
New test-control that returns the number of calls to sqlite3BtreeMovetoUnpacked() on the main database and then resets the counter. This only works for SQLITE_DEBUG builds. (check-in: dca5b919 user: drh tags: trunk)
16:31
An attempt to improve the performance of the IN-early-out optimization (see check-in [09fffbdf9f2f6ce3]) by avoiding unnecessary calls to the b-tree search algorithm in OP_IfNoHope when the index key is at hand and the same answer can be obtained by doing a quick key comparison. Update 2020-08-31: This experiment did not work out. A better approach is now on trunk. (check-in: e9d983c6 user: drh tags: in-early-out-fail)
12:29
Fix the documentation for the OP_IdxGT family of opcodes to show that the P5 operand is not used. (check-in: 62f7d2a6 user: drh tags: trunk)
2020-08-29
19:00
Fix a sanitizer warning in zipfile.c. (check-in: ded1a75b user: dan tags: trunk)
15:36
Improve performance of wal-mode locking on unix in cases where there are hundreds of connections to a single database within the same process. (check-in: 30214727 user: dan tags: begin-concurrent-unixshmlock-opt)
15:15
Improve performance of wal-mode locking on unix in cases where there are hundreds of connections to a single database within the same process. (check-in: a1c19eea user: dan tags: trunk)
2020-08-28
20:01
Fix handling of an xShmLock(SHARED, UNLOCK) call when the caller does not hold any lock on the specified slot, but another connection in the same process holds an EXCLUSIVE. (Closed-Leaf check-in: 3eb36502 user: dan tags: unixshmlock-opt)
19:27
Modify the unixShmLock() function to avoid iterating through the (possibly large) set of connections to the same database file. (check-in: e0faddf0 user: dan tags: unixshmlock-opt)
18:47
Add the miscellaneous 'series' extension to the shell. (check-in: fc0856dc user: mistachkin tags: trunk)
13:10
Update Lemon documentation. Patches from sgbeal. (check-in: f5dc8344 user: drh tags: trunk)
12:58
Fix a couple of unreachable branches. (check-in: f2d26f2b user: drh tags: trunk)
11:19
Add fts5 test to confirm that for a table with columns a, b, c and d, "{a b}" and "-{c d}" are handled similarly. (check-in: 1a049209 user: dan tags: trunk)
2020-08-27
20:55
Remove a (harmless) redundant variable from the CLI implementation. (check-in: 3f7bbb84 user: drh tags: trunk)
18:36
Include the original text of the CHECK constraint in the error message for anonymous CHECK constraints. (check-in: 5ce34a95 user: drh tags: trunk)
16:28
Apply the same fix for ticket [9eda2697f5cc1aba] to text-to-integer conversions that was done for floating point conversions by check-in [1c76f1d8ec0937a2]. (check-in: aafb7a21 user: drh tags: trunk)
14:53
Do not attempt to run test script analyze3.test as part of the "prepare" permutation. (check-in: f7f13cb1 user: dan tags: trunk)
2020-08-26
19:07
Enhance the ".databases" command in the CLI so that it shows the result of sqlite3_db_readonly() and sqlite3_txn_state() for each database file. (check-in: 0ffd16d2 user: drh tags: trunk)
10:50
If the argument to the ".read" command in the CLI begins with "|" then run the remainder of the argument as a command and read input from the output of that command. (check-in: 6c716f4b user: drh tags: trunk)
2020-08-25
19:09
Add support for the sqlite3_txn_state() interface. (check-in: ad195e3d user: drh tags: trunk)
2020-08-24
23:44
Reduce the N in the logN term for the sorting cost associated with computing DISTINCT by B-Tree by half, under the assumption that the DISTINCT will eliminate about half the rows of output. This is really a wild guess. But we do not have any better way of estimating what the row-count reduction due to DISTINCT will actually be. (check-in: 8787417e user: drh tags: trunk)
10:52
Correctly handle expressions like "x IS (not) true/false" within the rhs of IN() expressions. Fix for [f3ff1472]. (check-in: 493a2594 user: dan tags: trunk)
2020-08-20
16:25
Fix a crash that could occur in SQLITE_MAX_EXPR_DEPTH=0 builds when processing SQL containing syntax errors. (check-in: 5f58dd3a user: dan tags: trunk)
11:03
Avoid a buffer overrun in test code that could occur if certain test functions were passed a hex-string containing an odd number of digits. (check-in: 3c5e63c2 user: dan tags: trunk)
2020-08-19
23:51
Try to make SQLite easier to compiler for Mac Catalyst. See forum post 803387a1c5. (check-in: e1595a20 user: drh tags: trunk)
23:32
Do not skip over TK_IF_NULL_ROW operators when bypassing TK_COLLATE operators. Fix to check-in [ac31edd3eeafcef4] which was itself a fix for ticket [45f4bf4eb4ffd788]. (check-in: 871f2ddc user: drh tags: trunk)
15:24
Update releasetest_data.tcl so that the "Fast-One" configuration runs bigmmap.test as part of release testing. (check-in: a0aa35aa user: dan tags: trunk)
15:21
Fix a problem in test file bigmmap.test. (check-in: d8e47382 user: dan tags: trunk)
2020-08-17
21:03
When doing an UPDATE or DELETE using a multi-column index where only a few of the earlier columns of the index are useful for the index lookup, postpone doing the main table seek until after all WHERE clause constraints have been evaluated, in case those constraints can be covered by unused later terms of the index, thus avoiding unnecessary main table seeks. (check-in: 0ecda433 user: dan tags: branch-3.28)
09:11
Fix the -quote option on the CLI to set the correct column separator. (check-in: c778f829 user: drh tags: trunk)
2020-08-16
00:30
Optimization to sqlite3BeginWriteOperation(). (check-in: 2173d4c6 user: drh tags: trunk)
2020-08-15
23:48
Optimization of the sqlite3SrcListDelete() routine. (check-in: 1b4acd1a user: drh tags: trunk)
22:23
Remove more unnecessary sqlite3GetVdbe() calls, replacing them with assert()s. (check-in: b7dc9321 user: drh tags: trunk)
21:55
Avoid unnecessary calls to the sqlite3GetVdbe() routine. Add assert() statements to prove each call is unnecessary. (check-in: 86d3790c user: drh tags: trunk)
19:58
Omit the unnecessary not-NULL check on the upper bound of a forward index range scan. The subsequent OP_IdxGT will always catch the NULL. Similarly, omit the not-NULL check on the lower bound of a reverse index range scan, as the SeekLE opcode will disallow the NULL. (check-in: e51ecadc user: drh tags: trunk)
2020-08-14
21:51
When doing an UPDATE or DELETE using a multi-column index where only a few of the earlier columns of the index are useful for the index lookup, postpone doing the main table seek until after all WHERE clause constraints have been evaluated, in case those constraints can be covered by unused later terms of the index, thus avoiding unnecessary main table seeks. (check-in: 7fee0b10 user: drh tags: trunk)
21:37
Update the version number to 3.34.0 for the next development cycle. (check-in: 70f34f3d user: drh tags: trunk)
21:32
Optimizations to the logic that converts main table accesses into equivalent index accesses. Code is now slightly smaller and faster than trunk. (Closed-Leaf check-in: 611b6404 user: drh tags: delete-bytecode-optimization)
20:04
For UPDATE and DELETE, use OP_DeferredSeek always. If the seek must later be resolved, add the OP_FinishSeek opcode after all WHERE clause terms have been processed. This obviates the need for the WHERE_SEEK_TABLE and WHERE_SEEK_UNIQ_TABLE flags to sqlite3WhereBegin() and the ensuing complication, and it allows the covering index optimization to be used further into WHERE clause processing. (check-in: a495f60d user: drh tags: delete-bytecode-optimization)
17:39
Experimental change to try to get some DELETE operations to access values using the index rather than the main table, so as to avoid unnecessary main table seeks. (check-in: 2f7cb6ab user: drh tags: delete-bytecode-optimization)
16:14
Fix an inconsequential memory leak in sqldiff. Update the "Sanitize" case in wapptest.tcl to use -fsanitize=address,undefined, and to run more tests. (check-in: 613fb5c2 user: dan tags: trunk)
13:55
Merge the 3.33.0 release into the reuse-schema branch. (check-in: e456d437 user: drh tags: reuse-schema)
13:23
Version 3.33.0 (check-in: fca8dc8b user: drh tags: trunk, release, version-3.33.0)
2020-08-13
17:27
Fix "make test" handling of environment variable QUICKTEST_OMIT so that it can be used to exclude test files in other than the main test directory. (check-in: b0509760 user: dan tags: trunk)
2020-08-12
16:19
Improvement on the previous fix. (check-in: f6cffa2d user: drh tags: trunk)
15:39
Fix an assertion() fault in ALTER TABLE found by OSSFuzz. Test case in TH3. (check-in: 41de742c user: drh tags: trunk)
2020-08-11
21:53
Fix harmless USAN warnings from gcc9. (check-in: 72c4c69f user: drh tags: trunk)
18:17
New test cases for the use of the ieee754 and decimal extensions in the CLI. (check-in: bc1590f3 user: drh tags: trunk)
18:00
Modify a test for corruption within the wal checkpoint code to account for the pending-byte page. And for the fact that test configurations might move the pending-byte page. (check-in: 7dfb74c3 user: dan tags: trunk)
17:20
Minor comment fixes. No changes to code. (check-in: 533aeb90 user: drh tags: trunk)
16:46
Remove an unused #define from sqliteInt.h. (check-in: d5b254f9 user: drh tags: trunk)
14:55
Merge all changes since the 3.32.0 release into the reuse-schema branch. (check-in: b1a77b7e user: drh tags: reuse-schema)
14:06
Update this branch with latest from begin-concurrent-pnu. (check-in: 3ee73880 user: dan tags: begin-concurrent-report)
14:01
Do not run tests in concreport.test for non SQLITE_ENABLE_PREUPDATE_HOOK builds. (check-in: e39e7a6f user: dan tags: begin-concurrent-report)
13:22
Merge all the latest changes into the begin-concurrent-pnu-wal2 branch. (check-in: ebefcb86 user: drh tags: begin-concurrent-pnu-wal2)
11:34
Merge latest trunk changes into this branch. (check-in: 91262e66 user: dan tags: wal2)
2020-08-10
21:30
Merge recent trunk fixes into the begin-concurrent-pnu branch. (check-in: 2ae78c99 user: drh tags: begin-concurrent-pnu)
21:16
Merge recent trunk enhancements into begin-concurrent. (check-in: ed4c742c user: drh tags: begin-concurrent)
21:01
Simplify #ifdefs associated with Parse.eParseMode. Fix an #ifdef error associated with SQLITE_OMIT_AUTOVACUUM. (check-in: 5bbd4bdd user: drh tags: trunk)
19:35
Fix a problem causing test failures in corruptL.test for some permutations. (check-in: 680bdc65 user: dan tags: trunk)
19:30
Fix a problem building fts3 separately from the amalgamation. (check-in: 2a167cfb user: dan tags: trunk)
14:34
Fix a shell tool build error caused by some combinations of options. (check-in: 33cd5341 user: dan tags: trunk)
14:18
Fix harmless compiler warnings that surface in newer versions of GCC. (check-in: 9d670a31 user: drh tags: trunk)
11:21
Fix another test script problem in walvfs.test. (check-in: 1b89d393 user: dan tags: trunk)
10:43
Fix minor test script problems. (check-in: 5d54cd44 user: dan tags: trunk)
2020-08-09
17:58
Fix a harmless compiler warning. (check-in: 6f91769f user: drh tags: trunk)
2020-08-08
20:15
Fix the check-in at [41474548ef3f7454] so that it computes the pointer in time for error checking at the end of the routine in the case of a non-OOM error. (check-in: 13d2fed7 user: drh tags: trunk)
20:11
Fix test script busy2.test so that it works with the inmemory-journal permutation. (check-in: b412d1d1 user: dan tags: trunk)
20:03
Changes to busy2.test, corruptL.test and fkey5.test so that new test cases pass with all test permutations. (check-in: d62d1711 user: dan tags: trunk)
19:52
Fix a test script problem causing an error for SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds in corruptL.test. (check-in: a85520e0 user: dan tags: trunk)
17:55
Move a pointer computation until after OOM checks to avoid a nuisance USAN warning. (check-in: 41474548 user: drh tags: trunk)
17:02
Change the name of sqlite3SelectTrace to sqlite3_unsupported_selecttrace. (check-in: 5ecd03a2 user: dan tags: trunk)
15:40
Update requirement marks due to wording improvements in the documentation. (check-in: bf875a1c user: drh tags: trunk)
00:44
Reorder declarations in the decimal extension for C89. (check-in: eface2da user: drh tags: trunk)
2020-08-07
19:52
Do the oversize-WAL corruption test before the size hint is issued. (check-in: fdc5fb90 user: drh tags: trunk)
18:52
Fix a file-descriptor leak in test script corruptL.test. (check-in: ec2c340c user: dan tags: trunk)
16:28
Return an SQLITE_CORRUPT error if the final expected size of the database when checkpointing is not reasonable - where reasonable is defined (basically) as the sum of the sizes of the database and wal files. (check-in: e2799563 user: dan tags: trunk)
14:47
Add the --checkpoint option to speedtest1. (check-in: 4cffa9bb user: drh tags: trunk)
14:22
Fix compilation issues with MSVC. (check-in: c5a7e6d2 user: drh tags: trunk)
2020-08-06
16:45
Fix the columnar output modes in the CLI so that they work with parameters. See https://sqlite.org/forum/forumpost/17ba6aac24 for details of the problem fixed. (check-in: d573aa9b user: drh tags: trunk)
2020-08-04
16:11
Fix compilation issues with MSVC. (Closed-Leaf check-in: af07d845 user: mistachkin tags: msvcWarn)
2020-07-31
23:34
Back out a NEVER() that turns out to be reachable. (check-in: 8cf342d4 user: drh tags: trunk)
20:56
Improved non-locking PRNG. (check-in: eb7a9c04 user: drh tags: begin-concurrent)
17:08
Merge latest wal2 changes into this branch. (check-in: ebd39665 user: dan tags: begin-concurrent-pnu-wal2)
16:01
Merge latest trunk changes into this branch. (check-in: 0c0d0a77 user: dan tags: wal2)
02:07
Remove an ALWAYS() that turns out to be reachable. (check-in: 12bb75d9 user: drh tags: trunk)
2020-07-30
23:47
Test for schema corruption is reachable after all. (check-in: 2032236c user: drh tags: trunk)
22:33
Provide an alternative "guaranteed-safe" method for overwriting the WAL index on recovery, in case some platform is found for which memcpy() cannot do this safely. (check-in: 168cccba user: drh tags: trunk)
19:56
Merge begin-concurrent-pnu changes into this branch. (check-in: fd01e788 user: dan tags: begin-concurrent-report)
19:37
Merge latest trunk change into this branch. (check-in: 2b3241cf user: dan tags: begin-concurrent-pnu)
19:19
Merge latest trunk changes into this branch. (check-in: e8a66515 user: dan tags: begin-concurrent)
17:37
Fix compiler warnings in MSVC. (check-in: 96e3dba2 user: drh tags: trunk)
17:29
Allow for page numbers as large as 4294967294 (0xfffffffe) which means database files as large as 281 TB. (check-in: 166e82dd user: drh tags: trunk)
17:14
Fix unreachable branches. (Closed-Leaf check-in: 905752da user: drh tags: larger-databases)
2020-07-29
16:18
Dozens and dozens of typo fixes in comments. This change adds no value to the end product and is disruptive, so it is questionable whether or not it will ever land on trunk. (Leaf check-in: a80ae2c9 user: drh tags: typos)
12:23
Fix signed/unsigned compiler warnings. (check-in: 1d69eee8 user: drh tags: larger-databases)
2020-07-28
20:32
Earlier detection of out-of-range page numbers in the btree layer. (check-in: 805bb67a user: drh tags: larger-databases)
17:51
Merge enhancements from trunk. (check-in: 969c25bb user: drh tags: larger-databases)
17:29
If a writer crashes in WAL mode and leave the SHM file in an inconsistent state, subsequent transactions are now able to recover the SHM file even if there are active read transactions. (check-in: ee8a1080 user: drh tags: trunk)
17:17
Add an sqlite3FaultSim() to make an OOM case more accessible and remove the ALWAYS() on the conditional that is false when the OOM actually occurs. (Closed-Leaf check-in: 2a251af8 user: drh tags: unlocked-recovery)
2020-07-27
20:16
On recovery, always overwrite the old with the new, even if they are the same. Add ALWAYS() macros on branches currently thought to be unreachable, pending additional testing. (check-in: 7052cf1d user: drh tags: unlocked-recovery)
15:05
Fix a couple of test scripts to match the new wal recovery behaviour on this branch. (check-in: 3af61e83 user: dan tags: unlocked-recovery)
15:01
Improved error reporting if walLockExclusive() fails. (check-in: cf962d21 user: drh tags: unlocked-recovery)
2020-07-25
20:16
When trying to read the index header, accept either of the two headers that have a valid checksum after 15 attempts to get exactly matching headers fail. (Closed-Leaf check-in: 3549faef user: drh tags: more-aggressive-wal-recovery)
20:16
Allow a wal mode recovery to proceed even if there are readers. (check-in: 74374aeb user: dan tags: unlocked-recovery)
2020-07-24
13:49
Merge recent changes from trunk. (check-in: 22e8e690 user: drh tags: larger-databases)
11:01
Remove a surplus space from a comment (check-in: 73fecc68 user: drh tags: trunk)
09:17
Fix other potentiall pointer aliasing problems associated with subclassing of the sqlite3_file object for various VFS implementations. (check-in: 270ac1a0 user: drh tags: trunk)
09:14
Fix pointer aliasing problem in the in-memory journal code. Ref: forum post d44eb2fc44 (check-in: 892e9191 user: drh tags: trunk)
2020-07-23
20:37
Turns out this is an aliasing bug in SQLite, not a GCC bug. Was: Work-around for what appears to be another GCC bug - this one for GCC 8.3.0 on ARM. See the SQLite forum post for discussion. (Closed-Leaf check-in: 40c44d38 user: drh tags: mistake)
18:03
Add the OMIT_ZLIB compile-time option to sessionfuzz.c. (Originally checked into the wrong branch.) (check-in: 6019bf8a user: drh tags: trunk)
18:01
Add the OMIT_ZLIB compile-time option to sessionfuzz.c. (Closed-Leaf check-in: 0785e314 user: drh tags: wrong-branch)
15:23
Fix a typo in an error message. (check-in: 849b03d8 user: drh tags: larger-databases)
14:27
Merge fixes from trunk. (check-in: dd39418e user: drh tags: larger-databases)
14:12
An ORDER BY clause can slip into an SRT_Upfrom query via the query flattener, even without the SQLITE_ENABLE_UPDATE_DELETE_LIMIT compile-time option. So always enable the code to deal with that case. (check-in: 6a3111cd user: drh tags: trunk)
13:45
Fix another case where a corrupt record could cause an assert() to fail in fts3. (check-in: 28515bbb user: dan tags: trunk)
09:14
Merge support for partial integrity checks. (check-in: b5443b47 user: drh tags: larger-databases)
00:45
Add the ability to do a PRAGMA integrity_check (or quick_check) on a single table by specifying the table name as the argument. (check-in: 65dd3214 user: drh tags: trunk)
2020-07-22
21:11
Detect out-of-bounds rootpage values in the schema. (check-in: e4a92688 user: drh tags: larger-databases)
21:05
Disable rootpage bounds checking when the SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS setting is off, to facilitate reaching obscure error states during testing. (Closed-Leaf check-in: d7dd4fc4 user: drh tags: rootpage-bounds-check)
20:12
Improvements to rootpage bounds checking during schema parse. (check-in: 75599a97 user: drh tags: rootpage-bounds-check)
18:03
When parsing the schema, detect out-of-bounds rootpage values and throw an error. (check-in: 6c3a2727 user: drh tags: rootpage-bounds-check)
17:12
All TCL tests now passing. (check-in: 4c5f3c6c user: drh tags: larger-databases)
13:56
Most test cases now passing. (check-in: 92e2ab38 user: drh tags: larger-databases)
13:38
Continuing work toward supporting unsigned 32-bit page numbers. (check-in: 9ce1710a user: drh tags: larger-databases)
11:42
Enhance showdb to be 32-bit clean. (check-in: a8200327 user: drh tags: larger-databases)
10:36
Merge fixes from trunk. (check-in: d2aac001 user: drh tags: larger-databases)
2020-07-21
18:36
Work-around for GCC bug 96270. (check-in: 9679c0c6 user: drh tags: trunk)
18:25
Add the sqlite3Int64ToText() routine and use it to convert integers to text, as it is much faster than the generic text formatter. (check-in: 14eed318 user: drh tags: trunk)
2020-07-20
23:33
Fix the ".read" command so that it gives an error when its argument is a directory. See forum message 4c53c434ca. (check-in: 6d258c3c user: drh tags: trunk)
18:07
Fix a corner-case error in the new UPDATE FROM logic helpfully discovered by OSSFuzz. (check-in: 5cc20093 user: drh tags: trunk)
14:54
Add the "enlargedb" utility program used to construct very large database files for testing. (check-in: 66858d87 user: drh tags: larger-databases)
13:11
Faster column name lookup in the columnIndex() routine using hashing. (check-in: de2a9081 user: drh tags: trunk)
12:47
Initial changes to allow database up to 281TB in size. (check-in: 9cb7da9b user: drh tags: larger-databases)
2020-07-18
18:59
Fix test case result on a DELETE with an INDEXED BY clause due to improvements in the query planner at [d901837fea1ed54d] (check-in: 020dbfa2 user: drh tags: trunk)
18:44
More harmless compiler warning fixes. (check-in: 4c0d208c user: drh tags: trunk)
18:03
Fix a harmless compiler warning. (check-in: 5a0b0c6e user: drh tags: trunk)
15:52
Add UPDATE FROM compatible with postgresql. (check-in: 88baf1eb user: drh tags: trunk)
2020-07-17
22:20
Add ALWAYS() around a conditional that is always true. (Closed-Leaf check-in: 270e17bb user: drh tags: update-from)
18:07
Use #ifdef to omit code that is only reachable when the SQLITE_ENABLE_UPDATE_DELETE_LIMIT compile-time option is used. (check-in: 587ded60 user: drh tags: update-from)
16:31
Make it an error to repeat the target object/alias of an UPDATE statement in its FROM clause. (check-in: d90a37e9 user: dan tags: update-from)
15:34
Add a couple of "#ifdef SQLITE_ENABLE_UPDATE_DELETE_LIMIT" blocks missing from new code on this branch. (check-in: cc471df0 user: dan tags: update-from)
11:07
Bring this branch up to date with begin-concurrent-pnu. (check-in: 12a909fb user: dan tags: begin-concurrent-report)
2020-07-16
20:57
Allow BEGIN CONCURRENT transactions to contain schema modifications. However, this causes them to conflict with all other transactions. (check-in: 2160ede1 user: dan tags: begin-concurrent-pnu-wal2)
20:39
Allow BEGIN CONCURRENT transactions to contain schema modifications. However, this causes them to conflict with all other transactions. (check-in: e9393a18 user: dan tags: begin-concurrent-pnu)
20:24
Allow BEGIN CONCURRENT transactions to contain schema modifications. However, this causes them to conflict with all other transactions. (check-in: 9a4a0230 user: dan tags: begin-concurrent)
18:55
Relax pointless restrictions on allowing tables in the FROM clause from crossing over LEFT JOINs, as long as the table being moved is not the right table of the LEFT JOIN. (check-in: c1ea0649 user: drh tags: trunk)
14:52
Modifications to test code so that the sqlite3MemdebugHastype() assert() statements are enabled for Tcl tests. (check-in: e3c423cb user: dan tags: update-from)
14:19
Small performance improvement and size reduction in sqlite3DbStrNDup(). (check-in: 35cd8706 user: drh tags: trunk)
10:48
Add OOM test for UPDATE...FROM statements inside triggers. (check-in: 917a479b user: dan tags: update-from)
02:36
Fix a double-free of the FROM clause of an UPDATE inside of triggers. (check-in: 706c8da2 user: drh tags: update-from)
00:45
Separate VdbeCoverage() macro for different jumps. (check-in: da593e57 user: drh tags: update-from)
2020-07-15
21:53
Fix a problem in UPDATE FROM in which it tries to free using sqlite3_free() instead of sqlite3DbFree(). (check-in: 8ca87526 user: drh tags: update-from)
20:01
This was originally a merge to trunk. But after further testing, maybe it is better to run it a little longer on a branch. (check-in: 7d7d5ecb user: dan tags: update-from)
19:38
Add tests for UPDATE...FROM and foreign keys. (check-in: 6c3668f9 user: dan tags: update-from)
18:30
Fix problems that could occur if a table with the same name as the table being updated appeared in the FROM clause of an UPDATE statement. (check-in: 13224cbd user: dan tags: update-from)
15:32
Fix a problem in SQLITE_ENABLE_HIDDEN_COLUMN builds occuring when an UPDATE...FROM fired an INSTEAD OF trigger. (check-in: 5176cb7a user: dan tags: update-from)
11:00
Update this branch with changes from trunk. (check-in: 53b8b507 user: dan tags: update-from)
02:15
New test cases for decimal and ieee754. (check-in: 73d62f82 user: drh tags: trunk)
2020-07-14
23:58
Improvements to the min()/max() optimization so that it is able to use indexes where terms are constrained by IN operators. (check-in: b8ba2f17 user: drh tags: trunk)
22:20
Now appears to work. All legacy tests pass. Need to add new tests, however. (Closed-Leaf check-in: 81e64509 user: drh tags: minmax-opt-exp)
19:51
Support UPDATE...FROM statements in trigger programs. (check-in: 4f6d8d0e user: dan tags: update-from)
15:30
Fix an obsolete header comment on the sqlite3WhereIsOrdered() routine. (check-in: 5041f6a1 user: drh tags: trunk)
13:02
Merge fixes from trunk. (check-in: 2af372f5 user: drh tags: minmax-opt-exp)
12:40
Early detection of freelist size corruption in incremental vacuum. (check-in: f25a56c2 user: drh tags: trunk)
02:03
Fix a crash. Not all tests pass, but tests do at least run to completion now. (check-in: b5d38e28 user: drh tags: minmax-opt-exp)
01:51
Fix an obsolete assert(). (check-in: 221e0210 user: drh tags: minmax-opt-exp)
01:03
Merge latest changes from trunk. This branch still does not work. (check-in: 61443872 user: drh tags: minmax-opt-exp)
2020-07-13
20:43
Add test for LEFT JOIN in UPDATE...FROM statement. (check-in: 4f3dff04 user: dan tags: update-from)
20:10
Add test cases and fixes for UPDATE...FROM statements that modify primary key columns. (check-in: 47c87af3 user: dan tags: update-from)
18:04
Merge latest trunk changes with this branch. (check-in: 5ee3c27e user: dan tags: update-from)
15:35
Add back the ALWAYS() macro that was removed by [f7a74f89dbd58b47] as the condition is no longer reachable due to the previous check-in. (check-in: 9cb03bea user: drh tags: trunk)
15:20
Fix a problem causing queries containing window functions to ignore collation sequences under some circumstances. (check-in: e6c2192e user: dan tags: trunk)
11:06
Fix an integer overflow bug in fts5 triggered by a corrupt record. (check-in: 49da8bdc user: dan tags: trunk)
2020-07-11
16:45
Add second test case for the improvement in [30735432]. (check-in: 1bd18ca3 user: dan tags: trunk)
16:42
Improved detection of a corrupt database schema. Fix for a problem discovered by dbsqlfuzz. (check-in: 30735432 user: drh tags: trunk)
2020-07-10
21:43
Remove unnecessary code from the window functions implementation. (check-in: 1e87da9c user: drh tags: trunk)
19:09
An attempt to get the Min/Max optimization working with IN constraints. Not currently working. (check-in: 4a64c16f user: drh tags: minmax-opt-exp)
11:12
Fix a broken assert() in fts3 that could fail when handling corrupt records. (check-in: 51247323 user: dan tags: trunk)
2020-07-09
21:29
Fix handling of another corrupt database case in fts3. (check-in: ccff8cb8 user: dan tags: trunk)
14:05
Fix a comment typo. No changes to code. (check-in: 610ee8d5 user: drh tags: trunk)
2020-07-07
19:24
Remove bashism from configure script. (check-in: 138beebb user: dan tags: trunk)
2020-07-06
12:13
Increase the resolution of the vdbe opcode counters to 64 bits, as apparently some users run single prepared statements that go for longer than 4 billion instructions. See forum post "Possible freeze in the progress loop" (check-in: 612eb590 user: drh tags: trunk)
2020-07-04
20:29
Fix the table_info pragma so that it always checks the schema version and reprepares, even if it is a no-op. (check-in: 6da77973 user: drh tags: trunk)
2020-07-03
21:24
Fix the line-number of error messages coming out of the ".import" command when the --skip option is used. (check-in: e0a8b11d user: drh tags: trunk)
21:18
Fix a compiler warning about an unused procedure in the parser. (check-in: b27bb4fe user: drh tags: trunk)
18:07
Update the lemon documentation to match recent enhancements. (check-in: ca7630a5 user: drh tags: trunk)
17:24
If the amalgamation is built using OPT_FEATURE_FLAGS = -DSQLITE_UDL_CAPABLE_PARSER then it can be compiled with or without the -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT option and it works either way. (check-in: 1f96a29d user: drh tags: trunk)
15:41
In lemon, add "%if" and "%else" and allow boolean expressions as the argument to "%if", "%ifdef", and "%ifndef". (check-in: 951d22b7 user: drh tags: trunk)
12:32
Fix the pragma_foreign_key_check virtual table so that it accepts arguments. (check-in: 07f849de user: drh tags: trunk)
12:15
Fix a problem with "PRAGMA foreign_key_check" where if a table in one schema appears to have foreign key constraints against another table in a different schema, the pragma will try to check the constraints even though they do not apply because they are in different schemas. (check-in: 81bc4b65 user: drh tags: trunk)
2020-07-02
17:05
Minor simplification to the 32-bit varint decoder. (check-in: 6ffd17b6 user: drh tags: trunk)
2020-07-01
16:19
Ensure that the "PRAGMA schema_version" command causes the schema to be reparsed and reloaded. (check-in: 27d4a9a7 user: drh tags: trunk)
14:07
Fix a problem with VM code generated for some aggregate SELECT statements that feature min()/max() aggregates both with and without FILTER clauses. (check-in: 2094da75 user: dan tags: trunk)
2020-06-30
18:21
Add a test to ensure that "PRAGMA wal_checkpoint = FULL" invokes the busy-handler to wait on read-locks. (check-in: f068fb11 user: dan tags: trunk)
15:32
Avoid a potential buffer overread in fts3 when processing corrupt records. (check-in: 4d0cfb12 user: dan tags: trunk)
2020-06-29
20:26
Fix generated columns so that they play well with upsert. See the forum post by "iffycan" for details. (check-in: fa9d93cf user: drh tags: trunk)
20:20
Change the magic number used to identify the "excluded" pseudo-table in an UPSERT statement into a #define constant. (check-in: e96c2ac9 user: drh tags: trunk)
20:09
Document the dual-use of the P5 operand to the OP_MakeRecord opcode. (check-in: a73f80f2 user: drh tags: trunk)
19:58
Passive checkpoints do not use the busy-handler. So, in order to minimize visible changes for legacy applications, do not enable blocking locks for passive checkpoints. (Closed-Leaf check-in: 9c2b4bdd user: dan tags: wal-setlk-changes)
18:30
Change the name of IntegrityCk.mallocFailed to IntegrityCk.bOomFault to avoid confusion with the sqlite3 object field with the same name. (check-in: 87c7d962 user: drh tags: trunk)
18:22
Change things so that if SQLITE_ENABLE_SETLK_TIMEOUT is defined as 2 instead of 1, all blocking locks are taken for a single millisecond and the default busy-handler invoked as normal. (check-in: ac381e6e user: dan tags: wal-setlk-changes)
17:52
Add test script to verify busy-timeouts are working for SQLITE_ENABLE_SETLK_TIMEOUT builds. (check-in: ada43e7c user: dan tags: trunk)
16:30
Do not run resetAccumulator() after a malloc failure. (check-in: 1b426603 user: drh tags: trunk)
13:33
Fix another fts3 problem with processing corrupt records. (check-in: 6e0ffa20 user: dan tags: trunk)
13:12
Small performance improvement in the sqlite3_step() interface. (check-in: 61400ef9 user: drh tags: trunk)
2020-06-26
20:41
Fix a problem that could cause an infinite loop in the fts3 'merge' command. (check-in: be545f85 user: dan tags: trunk)
17:56
When computing the verification hash in speedtest1, do not include the value of floating point results (which can very in trailing bits depending on platform) but merely hash the fact that a floating point value was received. (check-in: e12225d5 user: drh tags: trunk)
16:17
Improvements to speedtest1.c for more consistent verification hashes. (check-in: d34b8ff5 user: drh tags: trunk)
15:42
Improvements to speedtest1. Added the --memdb and --output options. The --verify option now outputs a hash of SQL outputs. The speed-check.sh script disables the hashing feature with --legacy and adds the --verify option. (check-in: f3455cec user: drh tags: trunk)
15:32
Add the ieee754_to_blob() and ieee754_from_blob() functions. Fix the handling of subnormal forms in the two-argument version of ieee754(). (check-in: c78cbf2e user: drh tags: trunk)
14:05
Add --verify to speed-check.sh and add --memdb and --output to speedtest1.c. Other improvements to speedtest1.c. (Closed-Leaf check-in: 89a11120 user: drh tags: speedtest-hash)
04:34
Fix a possible null pointer deref following OOM. Discovered by dbsqlfuzz. (check-in: cc888878 user: drh tags: trunk)
2020-06-25
23:21
Update the showlocks utility program so that it functions on files with a huge number of locks without overflowing the stack. (check-in: adb7484f user: drh tags: trunk)
20:28
Enhance the --verify option to speedtest1.c so that it computes and displays a hash of the result from all SQL queries, for verification purposes. (check-in: 60d1e46c user: drh tags: speedtest-hash)
2020-06-24
15:06
Add the ieee754_mantissa() and ieee754_exponent() functions to the iee754 extension. Build the ieee754 extension into the CLI. (check-in: db2f0836 user: drh tags: trunk)
13:52
Fix the decoding of subnormal values in the ieee754 extension. (check-in: 838817b6 user: drh tags: trunk)
13:14
In the one-argument version of the ieee754() extension function, if the argument is an 8-byte blob, interpret that blob as a binary64 floating point and decode it. (check-in: 4199c1e8 user: drh tags: trunk)
12:29
Add the decimal extension. It is built into the shell, but is an optional add-on for the library. It is not included in the amalgamation. (check-in: 5391687b user: drh tags: trunk)
11:45
Fix the ".selecttrace" command in the CLI (only available when compiled with the non-standard -DSQLITE_ENABLE_SELECTTRACE option) so that it does not segfault if invoked without any arguments. (check-in: d45c27a3 user: drh tags: trunk)
2020-06-23
20:03
Enhance the --testset option on speedtest1 so that it can accept a comma-separated list of test modules to run in order. (check-in: 780e8aaa user: drh tags: trunk)
17:57
Try to remove end-of-line whitespace when building the amalgamation. (check-in: be3e7814 user: drh tags: trunk)
15:29
Fix a harmless compiler warning. (Closed-Leaf check-in: e1416c8b user: drh tags: decimal)
14:44
Avoid unnecessary normalization in decimal_sum(). Trim excess trailing zeros off the result of decimal_mul(). (check-in: 0294ce07 user: drh tags: decimal)
2020-06-22
21:25
Add the decimal_mul() function. (check-in: 72eee04b user: drh tags: decimal)
19:12
An extension for doing decimal arithmetic on strings. (check-in: 4c3b8560 user: drh tags: decimal)
16:02
Fix problems with handling return value of mmap() in lsm_unix.c (mmap() returns MAP_FAILED on error, not NULL). (check-in: da06168c user: dan tags: trunk)
2020-06-20
03:43
Work around a bug (an incorrect warning) in Clang-8. (check-in: 06729114 user: drh tags: trunk)
2020-06-19
15:35
Reverse unintentional spacing change in the previous check-in. (check-in: c7b2ee1e user: mistachkin tags: trunk)
15:33
Include 'sqlite3rc.h' in the amalgamation archive targets. (check-in: 3df579ca user: mistachkin tags: trunk)
15:24
Extend the refactoring into extensions. Clean up stray newlines. (check-in: 7a876209 user: drh tags: trunk)
13:33
Further refactoring of the schema table name. (check-in: 9536fa0a user: drh tags: trunk)
11:34
Refactoring various names. No changes in the resulting machine code. (check-in: 7bb08b1b user: drh tags: trunk)
2020-06-18
14:30
Merge the 3.32.3 release into the reuse-schema branch. (Leaf check-in: c2d36763 user: drh tags: reuse-schema-3.32)
14:00
Version 3.32.3 (Leaf check-in: 7ebdfa80 user: drh tags: release, branch-3.32, version-3.32.3)
13:16
Fix an assert() that could fail when operating on a database with a corrupt schema. (check-in: b69b9c06 user: drh tags: branch-3.32)
2020-06-17
20:29
Fix an assert() that could fail when operating on a database with a corrupt schema. (check-in: 4a340c9b user: dan tags: trunk)
17:27
Fix an assert() in fts3 that could fail when processing a corrupt record. (check-in: ea71fb7f user: drh tags: branch-3.32)
14:54
Fix an assert() in fts3 that could fail when processing a corrupt record. (check-in: 4adc0a1b user: dan tags: trunk)
14:14
Fix a problem with retrying constraint failures within sqlite3changeset_apply() calls with the SQLITE_CHANGESET_INVERT flag is set. (check-in: d73e857b user: dan tags: trunk)
12:37
Merge miscellaneous fixes from trunk into the 3.32 branch. (check-in: d55b8e79 user: drh tags: branch-3.32)
2020-06-16
19:51
Add new file doc/wal-lock.md, containing notes on wal-mode blocking locks. (check-in: c6b1d3a3 user: dan tags: trunk)
17:34
In the CLI, only interrupt tabular outputs at the end of a line. And print "Interrupt" on a line after stopping the output. (check-in: f3bd6893 user: drh tags: trunk)
15:19
Merge 3.32.2 changes into the reuse-schema branch. (check-in: dc081336 user: drh tags: reuse-schema-3.32)
14:12
Add a test case covering the previous check-in to the test/fuzzdata8.db file. (check-in: 95379da0 user: drh tags: trunk)
14:06
Fix an assert() in fts3 that can fail when processing a corrupt record. (check-in: a58a6d6f user: dan tags: trunk)
2020-06-15
20:27
Provide "sqlite_schema" as an alternative name to the table that holds the database schema. (check-in: 61782a7a user: drh tags: trunk)
20:05
Fix the CLI so that interrupts work in columnar output mode. (check-in: 9472f1fe user: drh tags: trunk)
14:38
Fix the --enable-update-limit option to ./configure. (check-in: d31fd57e user: drh tags: trunk)
13:51
Fix a defect in the query-flattener optimization identified by ticket [8f157e8010b22af0]. (check-in: 10fa79d0 user: drh tags: trunk)
2020-06-14
13:40
Check-in [1d4f86201dab9a22] changed a testcase() to an assert() because we didn't know how to reach that condition any more. But YongHeng's fuzzer found a way. So now we change it back. Ticket [9fb26d37cefaba40]. (check-in: 90b1169d user: drh tags: trunk)
2020-06-13
21:24
Avoid deleting expression nodes in the flattener code, as they may be referenced by AggInfo objects further up the stack. Ticket [e367f31901ea8700] (check-in: cc1fffde user: dan tags: trunk)
03:18
Identifiers "TRUE" and "FALSE" cannot take on their boolean constant values if they are operands of the "." operator. (check-in: ad738286 user: drh tags: trunk)
2020-06-12
15:45
New test case added to test/fuzzdata8.db. (check-in: 14a5cbdd user: drh tags: trunk)
15:17
Fix a buffer overread in fts3 that could occur when decoding a corrupted record. (check-in: 9a4a40c4 user: dan tags: trunk)
00:31
Remove a NEVER() that turns out to be reachable. (check-in: 44e573ec user: drh tags: trunk)
2020-06-11
16:04
Add a new assert() to the SELECT processing. (check-in: 98cea4a3 user: drh tags: trunk)
15:53
Avoid rewriting compound SELECT statements that use a different collation sequence for ORDER BY and record processing a second time if they contain window functions. Fix for [b706351c]. (check-in: 32a88bdd user: dan tags: trunk)
00:57
Provide the ability to use the SELECTTRACE() debugging macro outside of the select.c source file. Use this to add a new SELECTTRACE() entry in window.c for improved tracing of window-function parse-tree rewriting. (check-in: 30c6d895 user: drh tags: trunk)
2020-06-10
14:30
Make sure the bbox object is fully initialized in geopoly, even if reading a corrupted database. (check-in: fd5abb1a user: drh tags: trunk)
11:18
Ensure that aggregate functions that (a) are part of SELECT statements with no FROM clause and (b) have one or more scalar sub-selects as arguments are assigned to the correct aggregate context. Fix for ticket [7c6d876f84e6e7e2] (check-in: dafd2466 user: dan tags: branch-3.32)
11:01
Ensure that the "push-down" optimization does not push constraints down into compound queries if any of the component queries uses window functions. (check-in: d31850fe user: dan tags: branch-3.32)
11:01
Disable AggInfo consistency checks when unwinding after an OOM. (check-in: 7e2833fb user: dan tags: branch-3.32)
10:58
Ensure that the "push-down" optimization does not push constraints down into compound queries if any of the component queries uses window functions. (check-in: 094dcfe7 user: dan tags: trunk)
03:07
Disable AggInfo consistency checks when unwinding after an OOM. (check-in: 65179814 user: drh tags: trunk)
2020-06-09
23:50
Ensure that aggregate functions that (a) are part of SELECT statements with no FROM clause and (b) have one or more scalar sub-selects as arguments are assigned to the correct aggregate context. Fix for ticket [7c6d876f84e6e7e2] (check-in: c29a9e48 user: drh tags: trunk)
22:11
Mark an always-true conditional with ALWAYS(). (Closed-Leaf check-in: 35a23684 user: drh tags: agg-context-fix)
17:45
Ensure that aggregate functions that (a) are part of SELECT statements with no FROM clause and (b) have one or more scalar sub-selects as arguments are assigned to the correct aggregate context. (check-in: 16a41fa8 user: dan tags: agg-context-fix)
14:56
Crazy experimental change to refcount the AggInfo objects. (Leaf check-in: 9a4cc1db user: drh tags: refcount-agginfo)
13:53
Modify a test file to avoid causing Tcl to allocate too much memory. (check-in: 232431f3 user: dan tags: trunk)
13:38
Give the expression pointer fields of AggInfo distinctive names in order to simplify tracking of all their uses. (check-in: a53bdd31 user: drh tags: trunk)
13:17
Persist AggInfo expressions before deleting them when omitting the LIMIT clause in a subquery. One possible fix for ticket [7c6d876f84e6e7e2]. (Leaf check-in: 04867cba user: drh tags: tkt-7c6d876f84e6e7e2)
11:59
Improved tree-view debugging output for aggregate functions. (check-in: b5711b4e user: drh tags: trunk)
2020-06-08
14:43
Fix a case where a corrupted fts3 record could cause an assert() failure, or spurious SQLITE_NOMEM error in builds with assert() disabled. (check-in: d48af4d2 user: dan tags: trunk)
12:51
Increase the version number to 3.32.3. (check-in: a376ec69 user: drh tags: branch-3.32)
12:49
When an Expr object is changed and that Expr is referenced by an AggInfo, then also update the AggInfo. Also, persist all AggInfo objects until the Parse object is destroyed. This is a new fix for ticket [c8d3b9f0a750a529]. (check-in: 44a58d6c user: drh tags: branch-3.32)
11:34
When an Expr object is changed and that Expr is referenced by an AggInfo, then also update the AggInfo. Also, persist all AggInfo objects until the Parse object is destroyed. This is a new fix for ticket [c8d3b9f0a750a529] that avoids the follow-on problems identified by tickets [0899cf62f597d7e7], [1f6f353b684fc708], [e5504e987e419fb0], and [f7d890858f361402]. (check-in: 6e6b3729 user: drh tags: trunk)
2020-06-07
22:44
Fix minor OOM problems. (Closed-Leaf check-in: 8b23d802 user: drh tags: persist-agginfo)
20:18
AggInfo objects might be referenced even after the sqlite3Select() function that created them has exited. So AggInfo cannot be a stack variable. And it must not be freed until the Parse object is destroyed. (check-in: 3c840b4d user: drh tags: persist-agginfo)
17:33
Alternative fix to ticket [c8d3b9f0a750a529]: Prior to deleting or modifying an Expr not that is referenced by an AggInfo, modify the AggInfo to get its own copy of the original Expr. (check-in: 7682d8a7 user: drh tags: persist-agginfo)
14:42
New debugging output. (Leaf check-in: c0d9dfe5 user: drh tags: early-winfunc-rewrite-dev)
12:26
Improvements to the treeview debugging display. (check-in: a7c5c739 user: drh tags: early-winfunc-rewrite-dev)
00:51
Extra steps to ensure that queries that involve both window functions and aggregate functions are processed correctly by sqlite3WindowRewrite(). Fix for ticket [e5504e987e419fb0]. (Leaf check-in: 765bbcce user: drh tags: branch-3.32-early-winfunc-rewrite)
00:43
Extra steps to ensure that queries that involve both window functions and aggregate functions are processed correctly by sqlite3WindowRewrite(). Fix for ticket [e5504e987e419fb0]. (check-in: a6c2147c user: drh tags: early-winfunc-rewrite-dev)
2020-06-06
20:48
Merge multiple changes from trunk to address concerns with window-function parse-tree rewriting. (check-in: 05418b2a user: drh tags: branch-3.32-early-winfunc-rewrite)
19:54
Fix a possible ASAN violation inside of debug-only code following an OOM. (check-in: 0e021887 user: drh tags: early-winfunc-rewrite-dev)
19:35
When determining if the subquery inserted by the window-function rewriter is an aggregate query, aggregate functions that are in parameters to another window function do not count. Fix for ticket [1f6f353b684fc708] (check-in: 8583c348 user: drh tags: early-winfunc-rewrite-dev)
18:45
Clearly distinguish between window functions and scalar functions in the debugging TreeView output. (check-in: 15babdcb user: drh tags: early-winfunc-rewrite-dev)
18:34
In the query flattener, defer deleting content until after associated Parse object is destroyed, in case some of the deleted expressions have been collected for use by sAggInfo. (check-in: 03b32be4 user: drh tags: early-winfunc-rewrite-dev)
14:58
Remove an incorrect assert() added earlier today. (check-in: 3926ff17 user: drh tags: early-winfunc-rewrite-dev)
14:44
When rewriting the parse-tree for window functions, ensure that the inserted subqueries have an accurate SF_Aggregate bit set. This change also coincidentally fixes ticket [0899cf62f597d7e7], even thought that was not the issue we were working on at the time. (check-in: 2cddb24e user: drh tags: early-winfunc-rewrite-dev)
14:29
Fix an assert() failure that could occur if an ORDER BY expression attached to a compound query contains a subquery that (a) is itself a compound query, (b) uses window functions and (c) has an ORDER BY clause that includes another sub-query. (check-in: c96914ea user: dan tags: early-winfunc-rewrite-dev)
13:29
Avoid no-op calls to sqlite3SelectPrep() when processing sqlite3Select() for subqueries. This simplifies the ".selecttrace" debugging output. (check-in: 3de19ee2 user: drh tags: early-winfunc-rewrite-dev)
2020-06-05
21:36
Improved tracing of window function parse tree rewrites. (check-in: 7e8060cf user: drh tags: early-winfunc-rewrite-dev)
18:17
Assign a fake name to the ephemeral subquery tables that are created when making parse-tree changes for window functions. (check-in: c4072267 user: drh tags: early-winfunc-rewrite-dev)
15:56
Do parse-tree transformations required for window functions prior to running aggregate function analysis. Fix for ticket [c8d3b9f0a750a529]. (check-in: 79eff1d0 user: drh tags: branch-3.32-early-winfunc-rewrite)
15:40
New test case for fuzzdata8.db. (check-in: 2870d117 user: drh tags: early-winfunc-rewrite-dev)
15:26
Do parse-tree transformations required for window functions prior to running aggregate function analysis. Fix for ticket [c8d3b9f0a750a529]. (check-in: 0b42a227 user: drh tags: early-winfunc-rewrite-dev)
14:53
Ensure that the "push-down" optimization does not push constraints down into compound queries if any of the component queries uses window functions. (Closed-Leaf check-in: 2011e832 user: dan tags: early-winfunc-rewrite)
14:25
ALWAYS() and NEVER() macros added due to unreachable branches arising from the previous check-in. (check-in: 13ffedab user: drh tags: early-winfunc-rewrite)
14:10
Move the parse tree rewrite for window functions earlier in the process, before sqlite3ExprAnalyzeAggregates() has run. Add new assert()s to verify that aggregate analysis always remains valid until the end of SELECT processing. (check-in: fe702aa0 user: drh tags: early-winfunc-rewrite)
04:01
In the debugging treeview output, change the name of "SELECT-expr" expression nodes to be "subquery-expr", so as to not confuse them with actual SELECT nodes. (check-in: c1c8937a user: drh tags: trunk)
00:54
Always use ?...? to indicate optional arguments in the output of ".help" in the CLI. Change ".mode column" so that it automatically activates ".headers on" if headers have not been previously turned on or off. (check-in: 2827c0a1 user: drh tags: trunk)
2020-06-04
18:05
Add support for "box" mode in the CLI: Like "table" except that it uses unicode box-drawing characters instead of ascii-art. (check-in: 6da784c9 user: drh tags: trunk)
16:54
Improved display of ".mode table" output for empty result sets. (check-in: 7efabd68 user: drh tags: trunk)
16:34
Use __has_extension(c_atomic) instead of __has_feature(c_atomic) to detect support for atomic load and store operations with clang. (check-in: 36225579 user: dan tags: trunk)
16:07
Use AtomicStore() to set values in the wal-index hash table. (check-in: 1ab30c75 user: dan tags: trunk)
12:58
Version 3.32.2 (check-in: ec02243e user: drh tags: release, branch-3.32, version-3.32.2)
02:50
Work around a bug in clang-11.0.0. See forum post 3c2bf8042ec46195 for further info. (check-in: 3c2bf804 user: drh tags: trunk)
2020-06-03
22:57
Fix for ticket [810dc8038872e212]. (check-in: 9cfefef5 user: drh tags: branch-3.32)
22:47
Version number to 3.32.2 (check-in: 4454b27f user: drh tags: branch-3.32)
19:28
Fix for ticket [810dc8038872e212]. Thank to user "Maxulite" for tracking down the problem! (check-in: 89af93d7 user: drh tags: trunk)
15:59
Simplification to the interrupt handling logic in sqlite3VdbeExec() saves a few bytes of code space. (check-in: 43e0e59b user: drh tags: trunk)
03:00
Improve the query planner so that it is better able to find full index scan plan when there is an INDEXED BY clause. (check-in: d901837f user: drh tags: trunk)
2020-05-30
15:34
Draw the dashes below the headers in "explain" mode in the CLI. (check-in: c6b7833a user: drh tags: trunk)
00:30
Improved VDBE comments on the ANALYZE code generator. This change also fixes a harmless use of an uninitialized integer variable as an input to the %d format on a VDBE comment. (check-in: 1cb248a3 user: drh tags: trunk)
2020-05-29
21:06
Enhancements to the incremental build support for MSVC. (check-in: 2e25d915 user: mistachkin tags: trunk)
20:16
Remove a stray "&" character in the CLI, detected by a clang warning. (check-in: 5865d2f2 user: drh tags: trunk)
19:45
Add the "shelltest" target to the MSVC makefile as well. (check-in: 9924c045 user: drh tags: trunk)
19:39
Fix the ".import" command of the CLI to clean up better after errors. Add the new "shelltest" makefile target on unix platforms. (check-in: 50d4ddf1 user: drh tags: trunk)
19:17
Improvements to help text for the CLI. (check-in: 6a01e4c4 user: drh tags: trunk)
19:03
Fix a memory leak in the CLI when an unknown or unrecognized argument is given to the ".dump" command. (check-in: 71bfbbcc user: drh tags: trunk)
16:15
Improvements to columnar output in the CLI. Columns automatically expand to contain the largest row. (check-in: 4e1db8e9 user: drh tags: trunk)
14:38
Space to hold the ".width" of columns in the CLI is now obtained from malloc() and hence is not limited in the number of columns supported. (check-in: 445ed5da user: drh tags: trunk)
12:31
Incremental improvements to tabular output modes in the CLI. The "markdown" and "table" modes no have headers turned on by default. (check-in: af28bff9 user: drh tags: trunk)
11:07
Expand upon a comment in os_unix.c. No changes to code. (check-in: 77933dc4 user: dan tags: trunk)
00:21
In the json output mode of the CLI, do correct quoting of escape characters. Also, show BLOBs as JSON strings, possibly with embedded \u0000 bytes. (check-in: 0278147a user: drh tags: trunk)
2020-05-28
23:49
Progress toward adding new output modes to the CLI: json, table, and markdown. (check-in: 14f55faf user: drh tags: trunk)
20:37
Enhance the ".quote" mode in the shell so that it honors .separator. (check-in: b5e33ed5 user: drh tags: trunk)
00:45
When the sqlite_stat1 data is missing for some indexes of a table but is present for the table itself or for other indexes in the same table, then do not let the estimated number of rows in that table get too small, as doing so can deceive the query planner into ignoring a perfectly good index. (check-in: 98d42620 user: drh tags: trunk)
2020-05-27
12:44
Small performance improvement and size reduction in the expression code generator. (check-in: eeb53e21 user: drh tags: trunk)
00:02
Change a datatype from i16 to int to appease Converity and help eliminate a false-positive. (check-in: 5b560ec4 user: drh tags: trunk)
2020-05-26
20:33
Fix the cksumvfs extension so that it will not register itself more than once. (check-in: d5cdd571 user: drh tags: trunk)
20:31
Performance optimization in the transfer of error messages from statements to connections. (check-in: 0e898f4f user: drh tags: trunk)
11:23
Increase the version number to 3.33.0 to begin the next release cycle. (check-in: 790badb3 user: drh tags: trunk)
11:10
Changes to sqlite3SelectNew() to work around a false-positive warning from GCC-10. The code is very slightly larger and slower as a result. (check-in: 04e1edd8 user: drh tags: trunk)
10:54
Innocuous changes to help Coverity avoid false-positives. (check-in: 4ec8a5a2 user: drh tags: trunk)
2020-05-25
18:18
Merge version 3.32.1 into the begin-concurrent-pnu-wal2 branch. (check-in: 0f9464c5 user: drh tags: begin-concurrent-pnu-wal2)
18:09
Merge version 3.32.1 into the wal2 branch. (check-in: 5c183757 user: drh tags: wal2)
18:03
Merge versoin 3.32.1 into the begin-concurrent-pnu branch. (check-in: e8d79d2b user: drh tags: begin-concurrent-pnu)
17:27
Merge version 3.32.1 into the begin-concurrent branch. (check-in: 5e08e360 user: drh tags: begin-concurrent)
16:34
Update the reuse-schema branch to version 3.32.1 (check-in: ecf8dece user: drh tags: reuse-schema)
16:19
Version 3.32.1 (check-in: 0c1fcf47 user: drh tags: trunk, release, version-3.32.1)
15:41
Extra assert() statements in the printf() logic. (check-in: b1b182be user: drh tags: trunk)
15:19
Defensive code that tries to prevent a recurrence of problems like the one described in ticket [7a5279a25c57adf1] (check-in: 572105de user: drh tags: trunk)
12:49
Fix minor compile issues with optional extensions. (check-in: 3261ee9e user: drh tags: trunk)
12:02
Make sure variable declarations are at start of scope even when SQLITE_ENABLE_SNAPSHOT is used. (check-in: a77ceaf6 user: drh tags: trunk)
01:31
Attempt to work around a false-positive warning in the CGo compiler. (Closed-Leaf check-in: d4bf60f4 user: drh tags: cgo-warning-workaround)
2020-05-24
12:36
Version number to 3.32.1. (check-in: 56e5063c user: drh tags: trunk)
03:38
When rewriting a query for window functions, if the rewrite changes the depth of TK_AGG_FUNCTION nodes, be sure to adjust the Expr.op2 field appropriately. Fix for ticket [7a5279a25c57adf1] (check-in: ad7bb70a user: drh tags: trunk)
03:01
Move some utility Walker callbacks into the walker.c source file, as they seem to belong there better. (check-in: dac43823 user: drh tags: trunk)
02:05
Improvements to parse-tree tracing logic. No changes in deliverable code. (check-in: f7e5a68a user: drh tags: trunk)
00:30
Minor fix to a comment. No code changes. (check-in: efdbb2b4 user: drh tags: trunk)
2020-05-23
19:58
Limit the "precision" of floating-point to text conversions in the printf() function to 100,000,000. Fix for ticket [23439ea582241138]. (check-in: d08d3405 user: drh tags: trunk)
17:56
Improved bytecode comment. (check-in: 9224f154 user: drh tags: trunk)
2020-05-22
18:41
Merge version 3.32.0 into the reuse-schema branch. (check-in: 31706878 user: drh tags: reuse-schema)
18:35
Merge version 3.32.0 into the begin-concurrent-pnu-wal2 branch. (check-in: 3cb29606 user: drh tags: begin-concurrent-pnu-wal2)
18:28
Merge version 3.32.0 into the wal2 branch. (check-in: 1cb46a74 user: drh tags: wal2)
18:17
Merge the 3.32.0 release into the begin-concurrent-pnu branch. (check-in: 79663e66 user: drh tags: begin-concurrent-pnu)
18:09
Merge the 3.32.0 release into the begin-concurrent branch. (check-in: 79ad4ea2 user: drh tags: begin-concurrent)
17:46
Version 3.32.0 (check-in: 5998789c user: drh tags: trunk, release, version-3.32.0)
2020-05-21
20:38
Change a NEVER macro into a NO_TEST comment, as the conditional is reachable, but only when compiling for Windows 32-bit. (check-in: ce36b6d1 user: drh tags: trunk)
19:13
Avoid another potential OOB read in sqlite3expert.c. (check-in: 0ccea800 user: dan tags: trunk)
2020-05-20
15:02
Back out the change from [7fab1393c2b22b1f] that tries to convert invalid surrogate characters in UTF16 into the replacement character 0xfffd, as we find that this breaks some software. (check-in: 4218c7b7 user: drh tags: trunk)
2020-05-19
15:51
Add compiler hints to disable TSAN for the routines that access the -shm file header in WAL mode using a double-read with memory barrier. (check-in: 3117c1b5 user: drh tags: trunk)
15:40
In os_win.c, avoid calling sqlite3_uri_boolean() on anything other than a main-db filename. (check-in: cb0a18e6 user: dan tags: trunk)
12:29
User-suggested improvement to the README.txt for the ICU extension. (check-in: 1d1293c2 user: drh tags: trunk)
12:27
In wal.c, improved comments on concurrency issues. More use of AtomicLoad() and AtomicStore(). (check-in: 4bf566fe user: drh tags: trunk)
2020-05-18
19:55
Merge latest trunk changes into this branch. (check-in: 5dc355cc user: dan tags: begin-concurrent-pnu-wal2)
19:11
Bring the reuse-schema branch up to date with the latest trunk changes. (check-in: d8ea0cb6 user: drh tags: reuse-schema)
18:02
Add vdbevtab.lo to build of libsqlite3.lib in Makefile.msc. (check-in: f64d054b user: dan tags: trunk)
17:18
Merge latest trunk changes into this branch. (check-in: 16b1eca9 user: dan tags: wal2)
16:19
Merge recent changes from trunk. (check-in: c69f030b user: drh tags: begin-concurrent-pnu)
15:41
Merge latest trunk changes into this branch. (check-in: 9e4a7b3e user: dan tags: begin-concurrent)
2020-05-17
13:47
Avoid harmless UB in memcpy() in the JSON extension. (check-in: 69e149f7 user: drh tags: trunk)
00:26
Use the sqlite3Realloc() interface internally, rather than the public sqlite3_realloc64() equivalent, to avoid unnecessary calls to sqlite3_initialize(). (check-in: 1313557b user: drh tags: trunk)
2020-05-16
21:01
Performance optimization for the sqlite3FindTable() subroutine. (check-in: 55910b9a user: drh tags: trunk)
19:00
Merge trunk enhancements in the reuse-schema branch. (Actual date of this check-in is 2020-05-18.) (check-in: 5af4abe9 user: drh tags: reuse-schema)
18:01
The OP_RealAffinity opcode is not necessary after reading values from a virtual table (such as rtree). It is harmless, but it does use CPU cycles. Might as well leave it off. (check-in: dc18d893 user: drh tags: trunk)
17:26
Fix a use-after-free bug in the fts3 snippet() function. (check-in: 0d69f76f user: dan tags: trunk)
16:23
Extra memory barrier during initialization. (check-in: 043a7e14 user: drh tags: trunk)
15:18
Add sqlite3BeginBenignMalloc() and EndBenignMalloc() calls to debugging function sqlite3VdbePrintOp(). (check-in: 6f857d0e user: dan tags: trunk)
2020-05-15
18:48
Update code in sqlite3expert.c to account for the fact that "-- TRIGGER xyz" VM comments are now omitted for some builds. (check-in: 7cf93dc5 user: dan tags: trunk)
16:19
Fix another build problem for SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 5e1eb0fa user: dan tags: trunk)
16:05
Fix a documentation typo. No changes to code. (check-in: 758353c7 user: drh tags: trunk)
15:03
Adjust some requirement marks. No changes to code. (check-in: 7285ae2c user: drh tags: trunk)
13:52
Update test file e_fkey.test to account for the fact that new columns with REFERENCE clauses and non-NULL default values may now be added using ALTER TABLE if the table is empty. (check-in: 4087fce9 user: dan tags: trunk)
11:36
Fix SQLITE_OMIT_VIRTUALTABLE testfixture builds. (check-in: 3d9780c5 user: dan tags: trunk)
11:26
Test script changes to account for the fact that the "p5" column in the EXPLAIN output is now an integer, not a text values containing a 2-digit hex value. (check-in: 102126d8 user: dan tags: trunk)
01:18
Enhancements to long-path support in the Win32 VFS. (check-in: 0119d96d user: mistachkin tags: trunk)
01:13
Move some new test cases from fts3snippet.test into fts3snippet2.test. (check-in: fa203999 user: drh tags: trunk)
01:02
Add the SQLITE_ENABLE_FTS3_PARENTHESIS option to fuzzcheck. Add a new test case that uses that option. (check-in: c49a33db user: drh tags: trunk)
2020-05-14
23:59
Fix a null pointer deference that can occur on a strange matchinfo() query. (check-in: a4dd1489 user: drh tags: trunk)
21:16
Do not allow a virtual table to be renamed into the name of one of its shadows. (check-in: eca0ba2c user: drh tags: trunk)
2020-05-13
18:03
Implement the IIF(x,y,z) SQL function that is short-hand for "CASE WHEN x THEN y ELSE z END". For compatibility with SQL Server. (check-in: fce173cd user: drh tags: trunk)
17:26
Remove unused constant SQLITE_FUNC_COALESCE. (check-in: a116b20f user: drh tags: trunk)
13:33
Use AtomicStore() and AtomicLoad() in a few more places to avoid a theoretically undefined behaviour. This is not actually problem on any known hardware. (check-in: fda57d4d user: dan tags: trunk)
2020-05-11
11:11
New test case in test/fuzzdata8.db. (check-in: fa112301 user: drh tags: trunk)
10:55
Fix a problem handling constant integer expressions with collation sequences in PARTITION BY clauses. (check-in: 155e6649 user: dan tags: trunk)
2020-05-08
19:02
Release some restrictions on columns added by ALTER TABLE so that they only apply if the table contains one or more rows. (check-in: 3a16c0ce user: drh tags: trunk)
18:22
Fix the count-optimization so that it honors the NOT INDEXED clause. (check-in: 0d23a0b2 user: drh tags: trunk)
15:28
New test cases added to test/fuzzdata8.db. (check-in: 3fce9711 user: drh tags: trunk)
10:44
Do not retry on a failed realloc() unless SQLITE_ENABLE_MEMORY_MANAGEMENT is available, meaning that the retry has some possibility of success. (check-in: e9a8f910 user: drh tags: trunk)
2020-05-07
19:55
Fix a failing assert() in fts3 triggered by a corrupt database. (check-in: cb299a09 user: dan tags: trunk)
14:39
Changes to avoid deadlock in SQLITE_ENABLE_SETLK_TIMEOUT builds. (check-in: 652e4b23 user: dan tags: trunk)
14:26
Fix an error that could occur if the first transaction executed by a connection configured to use blocking locks is a write-transaction for which the WRITER lock cannot be obtained. (Closed-Leaf check-in: 49e4dc72 user: dan tags: setlk-deadlock-changes)
14:05
Merge trunk changes into this branch. (check-in: ac4ee696 user: dan tags: setlk-deadlock-changes)
01:56
Fix the handling of reserve-bytes so that the maximum value of 255 can be used. (check-in: 99749d4f user: drh tags: trunk)
2020-05-06
21:25
Avoid leaking a file-handle in test file walsetlk.test. (check-in: 3cfc675e user: dan tags: setlk-deadlock-changes)
21:24
Fix an assert() failure that could follow an IO error. (check-in: e89c8642 user: dan tags: setlk-deadlock-changes)
20:55
Fix harmless compiler warnings. (check-in: 92dc5913 user: drh tags: setlk-deadlock-changes)
20:45
Fix a problem preventing building without SQLITE_ENABLE_SETLK_TIMEOUT defined. (check-in: 98eb54c6 user: dan tags: setlk-deadlock-changes)
20:27
Add error code SQLITE_BUSY_TIMEOUT, used internally by the OS layer to indicate that a call to xShmLock() has failed due to timeout of a blocking lock. (check-in: f3ef9c7c user: dan tags: setlk-deadlock-changes)
19:22
Fix compiler warnings in non-SQLITE_ENABLE_SETLK_TIMEOUT builds. (check-in: 22de99ef user: dan tags: setlk-deadlock-changes)
19:14
Block on the WRITER lock when attempting to run recovery. (check-in: 105d6c9b user: dan tags: setlk-deadlock-changes)
18:46
Provide the SQLITE_DEFAULT_LEGACY_ALTER_TABLE compile-time option. (check-in: b2325a6e user: drh tags: branch-3.28)
18:43
Provide the SQLITE_DEFAULT_LEGACY_ALTER_TABLE compile-time option. (check-in: 63e659d9 user: drh tags: trunk)
17:18
Add tests for running recovery when opening a write transaction or performing a checkpoint with blocking locks enabled. Fix some failing assert() statements. (check-in: d096ea3f user: dan tags: setlk-deadlock-changes)
15:07
Merge latest trunk changes into this branch. (check-in: a3727dba user: dan tags: setlk-deadlock-changes)
2020-05-05
20:30
Unless upgrading an existing read transaction, have ENABLE_SETLK_TIMEOUT builds attempt to use a blocking lock when opening a write transaction on a wal mode database. (check-in: d6f819a9 user: dan tags: setlk-deadlock-changes)
19:54
The only known path to a corruption detection branch was cut off by the previous commit implementing earlier index corruption. So make the branch NEVER. Maybe a fuzzer will find a new path. (check-in: 9a84d8eb user: drh tags: trunk)
18:42
Earlier detection of index corruption caused by missing index entries. (check-in: f339f31f user: drh tags: trunk)
13:41
Fix a compiler warning in cksumvfs.c. (check-in: 68033bca user: drh tags: trunk)
2020-05-04
19:52
Fix harmless compiler warnings. (check-in: 8eee591d user: drh tags: trunk)
19:42
Changes to avoid deadlock in SQLITE_ENABLE_SETLK_TIMEOUT builds. (check-in: 553423c2 user: dan tags: setlk-deadlock-changes)
19:04
Minor change to the sqlite_stmt virtual table, for test coverage. (check-in: 838987b2 user: drh tags: trunk)
17:15
Simplify the initialization of built-in extensions. (check-in: 729f2397 user: drh tags: trunk)
11:47
Ensure that the master-journal name is in a form suitable to be passed into sqlite3_uri_parameter(). (check-in: d1ba026d user: drh tags: trunk)
2020-05-02
04:08
Add the SQLITE_FCNTL_CKPT_START file-control and use it to optimize the cksumvfs extension. (check-in: efdecb13 user: drh tags: trunk)
03:46
Add support for PRAGMA analyze_limit and approximate analysis. (check-in: 81254752 user: drh tags: trunk)
03:29
Add a missing VdbeCoverage() macro. (Closed-Leaf check-in: 77a55c39 user: drh tags: approximate-analyze)
00:31
Merge the bytecode and tables_used table-valued functions. Requires -DSQLITE_ENABLE_BYTECODE_VTAB at compile-time. (check-in: d09bcce3 user: drh tags: trunk)
00:01
Corner-case changes to the bytecode virtual table for testability and correctness. (Closed-Leaf check-in: baa720e4 user: drh tags: bytecode-function)
2020-05-01
18:58
Merge recent enhancements from trunk. (check-in: 96dfc71e user: drh tags: bytecode-function)
18:43
Fix problems with UPDATE...FROM statements that modify rowid or primary-key values. (check-in: 623ab585 user: dan tags: update-from)
18:37
Add the SQLITE_FCNTL_CKPT_START file-control. Use it to optimize the cksumvfs extension. (Closed-Leaf check-in: b40f5aa3 user: drh tags: ckpt-start-fcntl)
15:04
Merge recent trunk enhancements. (check-in: 2100b2c8 user: drh tags: approximate-analyze)
13:45
Clarification to the sqlite3_uri() family of interfaces. Documentation enhancement only - no changes to code. (check-in: 853703cd user: drh tags: trunk)
13:32
Update documentation for sqlite3_close_v2() for clarity. No functional changes. (check-in: 80498b69 user: drh tags: trunk)
11:31
Add the new SQLITE_IOERR_DATA result code and use it in cksumvfs. Also enhance cksumvfs to emit an sqlite3_log() message whenever it finds an invalid checksum. (check-in: a094e8bf user: drh tags: trunk)
2020-04-30
18:28
Add OOM tests for the new code on this branch. (check-in: e4a18601 user: dan tags: update-from)
15:49
Report an error if an UPDATE...FROM statement has an ORDER BY but no LIMIT clause. Add tests for multi-column primary keys. (check-in: ffcdb668 user: dan tags: update-from)
2020-04-29
20:11
Fix problems with using LIMIT and FROM clauses as part of single UPDATE statement. (check-in: b717dc3c user: dan tags: update-from)
17:41
Fix various bugs in new feature on this branch. (check-in: 823ba94e user: dan tags: update-from)
01:09
Do not allow page_size changes on an active cksumvfs database. (check-in: 2c17cdce user: drh tags: trunk)
2020-04-28
23:09
Fix incorrect error message when something goes wrong with the sqlite3_dbpage() table-valued function in the .dbinfo command of the CLI. (check-in: 0dcf0024 user: drh tags: trunk)
20:47
Add the cksumvfs extension. (check-in: 237c10f9 user: drh tags: trunk)
14:01
Use AtomicStore() when setting the mem0.nearlyFull boolean to avoid harmless TSAN warnings and to forestall doubts about threadsafety. (check-in: ce980af6 user: drh tags: trunk)
11:45
Use an AtomicLoad() macro in sqlite3HeapNearlyFull(). (check-in: 7556bc63 user: drh tags: trunk)
2020-04-27
20:55
Allow a FROM clause in UPDATE statements. (check-in: f353a1a6 user: dan tags: update-from)
2020-04-26
22:04
Yet another attempt to enhance sqlite3_load_extension() so that it works with Window-style pathnames using a backslash separator character. (check-in: b73d9a7d user: drh tags: trunk)
14:33
Fix an issue with check-in [bc3bf7c6681a96bc] when compiling on Windows. (check-in: 57b16d8c user: drh tags: trunk)
2020-04-25
21:05
Fix the sqlite3_load_extension() interface so that it tolerates backslashes in place of forward-slashes in pathnames on Windows. (check-in: bc3bf7c6 user: drh tags: trunk)
15:01
Ensure affinity is not discarded from a view column if the view appears on the rhs of a LEFT JOIN. Fix for [45f4bf4e]. (check-in: ac31edd3 user: dan tags: trunk)
2020-04-24
18:20
The new sqlite3_database_file_object() interface requires that the pager never invoke xOpen with SQLITE_OPEN_MAIN_JOURNAL unless it is using a pointer to the journal name found in the Pager structure itself. Make this the case when processing a master-journal. (check-in: b4987a5c user: drh tags: trunk)
17:55
New test case for ticket [1dcb4d44964846ad]. (check-in: 9e9f1e96 user: drh tags: trunk)
2020-04-23
20:45
Fix an uninitialized variable in the newly enhanced ".output" command of the CLI. See forum post 5978955ac1 (check-in: 65c6c26b user: drh tags: trunk)
2020-04-22
13:49
Fix an off-by-one error in the "calculated" page count output from the sqlite3_analyzer utility for databases that are more than 1GB in size. (check-in: 8789368b user: drh tags: trunk)
11:11
Fix an integer overflow in fts3 causing a usan error. (check-in: e256f852 user: dan tags: trunk)
00:50
Clarify the comment on the sqlite3BtreeGetRequestedReserve() routine. No changes to code. (check-in: 52a6acca user: drh tags: trunk)
2020-04-21
20:19
Add the sqlite3_database_file_object() interface. (check-in: f534ebea user: drh tags: trunk)
19:27
Add the sqlite3_database_file_object() interface to sqlite3ext.h. (Closed-Leaf check-in: 3cabe06b user: drh tags: sqlite3_database_file_object)
01:06
Experimental API: sqlite3_database_file_object(). (check-in: ae697b15 user: drh tags: sqlite3_database_file_object)
2020-04-20
17:35
Do not use O_NOFOLLOW when opening a directory just to call fsync() on that directory. (check-in: 2fc80ef1 user: drh tags: trunk)
16:21
Enhance the ".filectrl" command in the CLI to support the --schema option. (check-in: 698d40db user: drh tags: trunk)
15:18
The SQLITE_TESTCTRL_RESERVE operator is removed. In its place is the more general SQLITE_FCNTL_RESERVE_BYTES which is an API and which can operator on more than just the main schema. (check-in: abc1aad7 user: drh tags: trunk)
14:05
Remove an obsolete comment. No changes to code. (check-in: 4135cb02 user: drh tags: trunk)
2020-04-18
14:12
Add the --bom option to the ".excel", ".once", and ".output" commands of the CLI. Also fix the "--all" option on ".help" so that it works with two dashes in addition to just one. (check-in: d5b0def9 user: drh tags: trunk)
2020-04-17
23:46
Fix the ".excel" command and the ".open -x" and ".open -e" command so that they work better when running from an in-memory database and on Windows and when running from a script. (check-in: 07752164 user: drh tags: trunk)
2020-04-16
15:56
Merge accidentally created fork. (check-in: cb772b7a user: dan tags: trunk)
11:35
Improve corruption detection in fts3 shadow tables earlier in order to prevent an assert() from failing. (check-in: a9ec8c8f user: dan tags: trunk)
2020-04-15
17:39
Clarification of the byte-order determination for UTF16 inputs to routines like sqlite3_bind_text16() and sqlite3_result_text16() and others that accept UTF16 input strings. (check-in: a42fdcf5 user: drh tags: trunk)
2020-04-14
15:53
Build the UINT collating sequence extension into the CLI. (check-in: 2b8c6b03 user: drh tags: trunk)
15:48
Add the UINT collating sequence extension. The implementation is copied out of the "natsort" branch. (check-in: 6f46c6e3 user: drh tags: trunk)
15:35
Change the name from NATSORT to UINT. Provide an OMIT compile-time option. (Leaf check-in: cc56cbdb user: drh tags: natsort)
15:24
Merge trunk enhancements. (check-in: f1c284dd user: drh tags: natsort)
2020-04-09
19:00
Merge recent trunk changes into begin-concurrent-pnu-wal2. (check-in: 6c11b67b user: drh tags: begin-concurrent-pnu-wal2)
18:51
Merge recent trunk changes into the apple-osx branch. (Leaf check-in: d6fda470 user: drh tags: apple-osx)
18:46
Merge recent trunk enhancements into the wal2 branch. (check-in: 6fb87062 user: drh tags: wal2)
18:44
Merge recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: cedd138c user: drh tags: begin-concurrent-pnu)
18:29
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 92f71a88 user: drh tags: begin-concurrent)
15:31
When compiling the shell for WinRT, avoid using Win32 APIs that are unavailable. (check-in: 85d3dc8c user: mistachkin tags: trunk)
15:07
Merge recent trunk enhancements into the bytecode-function branch. (check-in: 7e6576ec user: drh tags: bytecode-function)
15:01
Merge trunk enhancements into the approximate-analyze branch. (check-in: 17901ea6 user: drh tags: approximate-analyze)
2020-04-07
15:07
Limit LIKE/GLOB pattern length to 100 bytes (default is 50K) when running dbsql cases in the fuzzcheck utility. (check-in: 10306118 user: drh tags: trunk)
13:08
Add the --spinner option to the fuzzcheck test program. (check-in: b1eae268 user: drh tags: trunk)
01:18
The ALTER TABLE fix of check-in [7e5ad8e0ab7ee91a] is no longer needed due to the changes at check-in [4cf8721f5ceb1fda]. But, we keep the defense in place as an assert() for extra safety. (check-in: 230556e8 user: drh tags: trunk)
00:54
Remove dead code that was added during initial development of RENAME COLUMN but never actually served a purpose. (check-in: c95c4cda user: drh tags: trunk)
2020-04-06
20:35
Performance improvement in sqlite3ResolveExprNameList(). (check-in: 7e170e67 user: drh tags: trunk)
18:16
Performance improvement for column name lookup. (check-in: 1e4b6a93 user: drh tags: trunk)
16:37
When running ALTER TABLE, avoid adding some internally generated tokens to the token map to improve performance on schemas with nested views. (check-in: 4cf8721f user: dan tags: trunk)
2020-04-04
11:58
Remove a NEVER() that could be true in sqlite3MatchEName(). (check-in: 921448f0 user: drh tags: trunk)
00:29
In the push-down optimization, do not substitute columns that have previously been identified as being constant by the propagate-constants optimization. Fix for ticket [51166be0159fd2ce]. Also, avoid factoring out constant expressions on the LHS of an IN(...) operator, as the IN(...) operation may affect the affinity of these values. Fix for [fd1bda016d1]. (Leaf check-in: 43612157 user: drh tags: branch-3.31)
00:15
In the push-down optimization, do not substitute columns that have previously been identified as being constant by the propagate-constants optimization. Fix for ticket [51166be0159fd2ce] (check-in: 70c44811 user: drh tags: trunk)
2020-04-03
20:14
Restore an #if block inadvertently removed via check-in [9c77bfe41e]. (check-in: bf6bcfc1 user: mistachkin tags: branch-3.31)
19:37
Avoid factoring out constant expressions on the LHS of an IN(...) operator, as the IN(...) operation may affect the affinity of these values. Fix for [fd1bda016d1]. (check-in: 98d56b4a user: dan tags: trunk)
16:11
Add a test case to fuzzdata8.db for the recent Henry Liu bugs. (check-in: 42b02454 user: drh tags: trunk)
15:48
Merge updates from trunk. (check-in: 348c4013 user: drh tags: bytecode-function)
13:39
Do not suppress errors when resolving references in an ORDER BY clause belonging to a compound SELECT within a view or trigger within ALTER TABLE. Fix for ticket [a10a14e9b4ba2]. Also, in the event of a semantic error in an aggregate query, early-out the resetAccumulator() function to prevent problems due to incomplete or incorrect initialization of the AggInfo object. Fix for ticket [af4556bb5c285c08]. (check-in: b6467491 user: drh tags: branch-3.31)
13:29
Fix a case when a pointer might be used after being freed in the ALTER TABLE code. Fix for [4722bdab08cb1]. (check-in: 52f800fa user: drh tags: branch-3.31)
13:19
In the event of a semantic error in an aggregate query, early-out the resetAccumulator() function to prevent problems due to incomplete or incorrect initialization of the AggInfo object. Fix for ticket [af4556bb5c285c08]. (check-in: 4a302b42 user: drh tags: trunk)
11:52
Do not suppress errors when resolving references in an ORDER BY clause belonging to a compound SELECT within a view or trigger within ALTER TABLE. Fix for ticket [a10a14e9b4ba2]. (check-in: 68429388 user: dan tags: trunk)
11:20
Fix a case when a pointer might be used after being freed in the ALTER TABLE code. Fix for [4722bdab08cb1]. (check-in: d09f8c36 user: dan tags: trunk)
2020-04-02
19:58
Fix a minor problem with EXPLAIN QUERY PLAN for triggers. (check-in: 6e11c03f user: drh tags: bytecode-function)
17:21
Minor changes for better test coverage. (check-in: ae3ac297 user: drh tags: bytecode-function)
13:21
Fix an obsolete comment in the parameter binding logic of the CLI. No changes to code. (check-in: c9c735e2 user: drh tags: trunk)
13:08
Fix another harmless compiler warning. (check-in: 949eec25 user: drh tags: bytecode-function)
12:53
Add a missing #ifdef to avoid a harmless compiler warning. (check-in: cc54de35 user: drh tags: bytecode-function)
12:24
Merge enhancements from trunk. (check-in: d1731385 user: drh tags: bytecode-function)
2020-04-01
17:10
Add support for the "ANALYZE WITH LIMIT=N" syntax. (Leaf check-in: 7e666b60 user: drh tags: analyze-with-limit)
01:15
Simple fixes to PRAGMA analysis_limit. (check-in: c20d4fde user: drh tags: approximate-analyze)
2020-03-31
20:57
Add "PRAGMA analysis_limit=N;" to limit the number of rows visited by ANALYZE when N is positive. Positive N also disables collecting stat4. (check-in: a279b151 user: drh tags: approximate-analyze)
18:41
Merge recent enhancements from trunk. (check-in: c705ce26 user: drh tags: approximate-analyze)
2020-03-30
19:38
Minor bug fix in NATSORT collating function. (check-in: a61be109 user: drh tags: natsort)
15:39
Add the NATSORT collating sequence. No test cases yet. (check-in: 79fcaa8e user: drh tags: natsort)
13:35
Use __atomic_load_n() and __atomic_store_n() for a few more things where they are available. (check-in: a49f8ec5 user: dan tags: trunk)
11:17
Fix "GCC_VESRION" typo in wal.c. (check-in: fbd93787 user: dan tags: trunk)
2020-03-28
19:02
Enhancements to the SQLITE_ENABLE_SETLK_TIMEOUT compile-time option to avoid rare deadlocks on recovery. (check-in: 06885e9a user: drh tags: trunk)
12:01
MSVC does not allow constant expressions as initializers for constants with /fp:strict. (check-in: 076658e5 user: drh tags: trunk)
2020-03-27
17:23
Modifications to the way blocking locks are used in SQLITE_ENABLE_SETLK_TIMEOUT builds so that multiple processes or threads may not deadlock when operating on a single database. (Closed-Leaf check-in: c516027d user: dan tags: setlk-deadlock-fix)
2020-03-26
16:48
Add the tables_used() table-valued function as a variation on bytecode(). (check-in: 6283c677 user: drh tags: bytecode-function)
15:28
Merge updates from trunk. (check-in: d7db0910 user: drh tags: bytecode-function)
00:29
Reinstate the optimization that converts "x IN (y)" into "x==y". (check-in: 27936e68 user: drh tags: trunk)
2020-03-25
20:31
For the LIKE pattern in the .dump command of the CLI, accept backslash as an escape character. (check-in: 029ceea6 user: drh tags: trunk)
12:50
Enhance the ".dump" command in the CLI so that it accepts multiple LIKE pattern arguments and shows the union of all matching tables. (check-in: 45fba3d7 user: drh tags: trunk)
2020-03-24
18:41
Optimize the "subprog IS NULL" constraint. (check-in: ca8c5f02 user: drh tags: bytecode-function)
17:52
Fix a memory leak. (check-in: c9f3405e user: drh tags: bytecode-function)
13:27
Provide content for the bytecode.subprog column. (check-in: df893364 user: drh tags: bytecode-function)
2020-03-23
23:17
Fix the build so that it works even without SQLITE_ENABLE_EXPLAIN_COMMENTS. (check-in: 5896cbf4 user: drh tags: bytecode-function)
20:58
The bytecode() function now runs and sometimes works, but it untested and there are known problems. (check-in: 6819b86e user: drh tags: bytecode-function)
19:14
Further simplification and modularization of the EXPLAIN logic. (check-in: aee1c12f user: drh tags: bytecode-function)
17:24
Begin breaking appear the sqlite3VdbeList() routine into subroutines that can be reused by the bytecode() table. (check-in: 2c4dd79f user: drh tags: bytecode-function)
15:49
Infrastructure for the bytecode() table-valued function. The function itself is not yet implemented. (check-in: 2795f0d6 user: drh tags: bytecode-function)
2020-03-21
23:10
Fix to the recomputation of the colUsed field added by check-in [a9bb71ba708ba722]. This fixes ticket [5829597ac43811e3]. (check-in: 5d14a1c4 user: drh tags: trunk)
22:03
Enhance the treeview system to show the SrcList_item.colUsed field for FROM clause elements. (check-in: 8a5c539b user: drh tags: trunk)
20:58
Simplify some of the code modified by the previous commit. (check-in: 04abadb5 user: dan tags: trunk)
15:41
Ensure that "main" can always be used to refer to the main database, even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. (check-in: 682b426f user: dan tags: trunk)
15:10
Consolidate some code on this branch. (Closed-Leaf check-in: a85c63da user: dan tags: main-alias-fix)
15:07
Change a bitfield in sqlite3_stmt into an unsigned character, for slightly smaller code and better performance. (check-in: 0d4d3c64 user: drh tags: trunk)
14:22
Performance optimization in sqlite3VdbeMakeReady(). (check-in: aa92f9b9 user: drh tags: trunk)
14:05
Merge updates from trunk. (Leaf check-in: 2383aa2c user: drh tags: explain-improvements)
03:40
Back out the sqlite3_stmt_mode() and EXPLAIN TABLES enhancements, but keep the other miscellaneous improvements to EXPLAIN that were implemented while adding the above: Turn magic numbers into symbolic constants. Add the sqlite3MemPrint() interface accessible to the debugger. Improve the performance and reduce the code size. (check-in: 62aece66 user: drh tags: explain-improvements)
00:05
Recompute the set of columns used for each table when the table is involved in query flattening. (check-in: a9bb71ba user: drh tags: trunk)
2020-03-20
20:54
Allow "main" to be used to refer to the main database even after SQLITE_DBCONFIG_MAINDBNAME has been used to assign another alias. (check-in: 75c85ca3 user: dan tags: main-alias-fix)
20:18
Avoid an undefined integer overflow in fts3 by detecting data structure corruption earlier. (check-in: 86e98ddc user: dan tags: trunk)
20:00
Add the EXPLAIN TABLES syntax that uses SQLITE_STMTMODE_TABLELIST. Seems to work, but not well-tested. (Leaf check-in: e7343ce7 user: drh tags: sqlite3_stmt_mode)
17:49
Further simplification of the EXPLAIN logic. Fix the test errors from the previous check-in. (check-in: 5eaba9af user: drh tags: sqlite3_stmt_mode)
16:13
Revamp the EXPLAIN infrastructure to facilitate sqlite3_stmt_mode(). The currently code mostly works, but there are test failures. This is an incremental check-in. (check-in: e9e17e21 user: drh tags: sqlite3_stmt_mode)
2020-03-19
21:17
Initial code for a proposed new sqlite3_stmt_mode() API. This is an incomplete snapshot of a work-in-progress. (check-in: 3cf7537b user: drh tags: sqlite3_stmt_mode)
18:13
Change the ESCAPE clause on the LIKE operator to override wildcard characters, in order to match the behavior of PosgreSQL. (check-in: 11e0844f user: drh tags: trunk)
17:27
Fix an integer overflow problem with the dbstat virtual table that comes up when trying to analyze a corrupt database. (check-in: 1d64f4a8 user: drh tags: trunk)
15:57
Fix a typo in a comment. No changes to code. (check-in: 3a51919a user: drh tags: trunk)
2020-03-18
15:58
Fix the build for when SQLITE_ENABLE_STAT4 is defined. (check-in: 8f0a8c2a user: drh tags: approximate-analyze)
14:43
Add the SQLITE_ANALYZE_LIMIT compile-time option (expected to be temporary) that sets a threshold at which ANALYZE starts to use approximations during the analysis process. (check-in: a773fd46 user: drh tags: approximate-analyze)
2020-03-17
17:11
Provide an estimated row count to stat_init() for STAT1 analysis. (check-in: 714419fe user: drh tags: approximate-analyze)
13:41
Remove the SQLITE_OMIT_BTREECOUNT option. Btree count is required. (check-in: a9bfa47a user: drh tags: approximate-analyze)
13:07
Improved bytecode comments for the ANALYZE command. (check-in: c38ea413 user: drh tags: approximate-analyze)
12:37
Merge changes from trunk. (check-in: 93d71026 user: drh tags: approximate-analyze)
2020-03-16
18:52
Fix handling of window functions in aggregate queries that have no GROUP BY clause. Also remove a faulty assert causing the error reported in [618156e3]. (check-in: 38e3dd38 user: dan tags: trunk)
03:07
At the end of the right-hand table loop of a LEFT JOIN that uses an IN operator in the ON clause, put the OP_IfNoHope operator after the OP_IfNotOpen operator, not before, to avoid a (harmless) uninitialized register reference. Ticket [82b588d342d515d1] (check-in: 8b437b47 user: drh tags: trunk)
2020-03-13
07:28
Merge SQLITE_NOOP_UPDATE fix into this branch. (check-in: e2cc655e user: dan tags: begin-concurrent-report)
07:23
Fix a typo causing SQLITE_NOOP_UPDATE builds to fail. (check-in: 1e2109fd user: dan tags: begin-concurrent-pnu)
2020-03-12
19:37
Add link from begin_concurrent_report.md back to branch timeline. (check-in: 61869f8b user: dan tags: begin-concurrent-report)
17:54
Remove stray comment characters at the end of an #ifdef that were accidently left in the previous check-in. (check-in: ea914bec user: drh tags: trunk)
17:28
Fix comments and strengthen assert() statements associated with the OPFLAG_SEEKEQ and BTREE_SEEK_EQ flags. (check-in: 23174921 user: drh tags: trunk)
2020-03-11
20:03
Merge enhancements from trunk. (check-in: 4945a662 user: drh tags: approximate-analyze)
19:56
Do not factor out constant functions into the initialization section of a prepared statement, because even though they are constant, they can still throw exceptions. Instead, put such functions in an OP_Once block. This fixes ticket [3c9eadd2a6ba0aa5] and causes COALESCE() and CASE...END to be short-circuit. (check-in: c5f96a08 user: drh tags: trunk)
19:41
Rename sqlite3ExprCodeAtInit() to sqlite3ExprCodeRunJustOnce(). Other changes to make the new code cleaner. Test cases added. (Closed-Leaf check-in: d7f18489 user: drh tags: do-not-factor-functions)
19:30
Add documentation notes and fix outstanding issues on this branch. (check-in: b288bbd1 user: dan tags: begin-concurrent-report)
17:58
Do not factor out constant functions into the initialization section at the end of the prepared statement, be cause if they throw an exception, it will abort the statement even if the function is never called. Better to put constant functions in an OP_Once block. (check-in: 97a18a5c user: drh tags: do-not-factor-functions)
16:46
Support reporting of blob fields. (check-in: 724a4a84 user: dan tags: begin-concurrent-report)
02:04
This variant to the fix for ticket [e0c2ad1aa8a9c691] uses fewer CPU cycles. (check-in: fb5a8a9e user: drh tags: trunk)
2020-03-10
22:55
Merge updates from trunk. (check-in: e05f743f user: drh tags: approximate-analyze)
21:14
Fix test and other problems with reporting pages read and written. (check-in: 9ae970fd user: dan tags: begin-concurrent-report)
19:55
Fix problem in test script concreport.test. (check-in: 32d1b721 user: dan tags: begin-concurrent-report)
19:24
Enhanced detection logic for preventing the use of static schema expressions by code generating routines. (check-in: 5f60b527 user: drh tags: trunk)
19:23
Prevent the read-only expressions held in the schema from being passed down into code generating subroutines where they might be changed. Pass a copy of the expression instead. (check-in: 2b750b0f user: drh tags: branch-3.31)
18:55
Further changes to ensure that expressions held in table and index definitions do not get passed down into code generator logic where they might be modified. (check-in: f45f5de0 user: drh tags: trunk)
13:35
Make a copy of the expression that defines a value of a generated column before sending it to the code generator routines. (check-in: 03d201c0 user: drh tags: trunk)
11:50
Apply the correct affinity transformations when pulling values off of the sorter index used for GROUP BY. Ticket [e0c2ad1aa8a9c691] (check-in: 101f7dea user: drh tags: trunk)
02:57
The sqlite3ExprCodeFactorable() routine should make a copy of non-factorable expressions, as they might be coming from a DEFAULT or generated column in a table constraint. (check-in: a2d6f108 user: drh tags: trunk)
01:24
Background work for experiments trying to enhance ANALYZE so that it runs off of samples of the entire index and does not need to read the entire index. (check-in: 29d1cc5c user: drh tags: approximate-analyze)
2020-03-09
21:00
Report on pages, as well as keys, read and written by BEGIN CONCURRENT transactions. (check-in: b661ccc8 user: dan tags: begin-concurrent-report)
18:26
Cleaner separation of the STAT4-specific logic in the implementation of ANALYZE. (check-in: 3df07e5a user: drh tags: trunk)
15:39
Enhancements to the ".import" command of the CLI. (check-in: cab1834c user: drh tags: trunk)
03:21
Fix typos in RowSet. (check-in: 86465c08 user: pdr tags: trunk)
01:02
Fix typos in the Lemon documentation. (check-in: 35f1f151 user: drh tags: trunk)
2020-03-08
13:33
Avoid a redundant NULL check (check-in: 25dc53f6 user: pdr tags: trunk)
2020-03-07
16:51
Fix reporting cases related to UPDATE. And of WITHOUT ROWID tables. (check-in: d28d1739 user: dan tags: begin-concurrent-report)
2020-03-06
20:51
Enhancement to log logical writes as well as reads. (check-in: 1c1f180e user: dan tags: begin-concurrent-report)
2020-03-05
20:59
Fix reporting for indexed range scans that extend past the end of the data. (check-in: ab458a31 user: dan tags: begin-concurrent-report)
19:00
Merge trunk change [895bd20b29] into this branch. (Actually check-in date was 2020-05-18) (check-in: 507f972e user: dan tags: reuse-schema)
18:04
Report an error if the main, or any other, database encoding is modified by an external process (perhaps using the backup API) after the db has been opened. (check-in: 895bd20b user: dan tags: trunk)
16:30
Merge trunk enhancements into the reuse-schema branch. (Actual check-in date is 2020-05-18) (check-in: 9d068e1e user: drh tags: reuse-schema)
16:13
Change the sqlite3.pDfltColl (the default collating sequence for the database connection) so that it is the collating sequence appropriate for the database encoding, not the UTF8 collating sequence. This helps to ensure that the database encoding collation is always used, even for expressions that do not have an defined collating sequence. Ticket [1b8d7264567eb6fc]. (check-in: 4a585189 user: drh tags: trunk)
14:19
When printing the OP_CollSeq opcode for EXPLAIN listings, include the text encoding with the name of the collating sequence. (check-in: eb5c1b77 user: drh tags: trunk)
2020-03-04
19:17
Fix cases to do with index scans. (check-in: 6ec5a899 user: dan tags: begin-concurrent-report)
2020-03-03
21:01
Extend begin_concurrent_report() so that it reports on accesses to non-intkey tables as well. (check-in: 427e2c9d user: dan tags: begin-concurrent-report)
20:48
Fix a false-positive in the debugging logic that attempts to detect the use of uninitialized registers inside triggers. Ticket [c4c56482ced89d90] (check-in: 0463576b user: drh tags: trunk)
20:04
Remove an invalid assert() on the debugging logic that checks to ensure that register values are not used after they go stale. Ticket [d165ad781b39d574]. (check-in: bd94d7d0 user: drh tags: trunk)
01:16
Improved detection of corruption in the interior nodes of a segment btree in FTS3/4. (check-in: cc99447a user: drh tags: trunk)
2020-03-02
21:00
Fix reporting for some range scan cases. (check-in: ad961aee user: dan tags: begin-concurrent-report)
16:31
Enhance the fuzzcheck test program so that it is able to simulate OOM errors in the same way that dbsqlfuzz does. (check-in: a65c8d4e user: drh tags: trunk)
15:05
Merge latest begin-concurrent-pnu changes with this branch. (check-in: b1880b18 user: dan tags: begin-concurrent-report)
01:50
Fix a faulty assert() statement in the stale-register detection logic. Ticket [da5a09be6dabbf42]. (check-in: 219c296c user: drh tags: trunk)
01:16
Ensure that the NULL-scan pass counter is initialized when a ORDER BY NULLS LAST is used on the right table of a LEFT JOIN. Ticket [e12a0ae526bb51c7]. (check-in: 704bb9a3 user: drh tags: trunk)
2020-02-29
17:19
Fix a problem with window functions occuring within sub-selects that are part of an OR term in a WHERE clause of the outer SELECT. (check-in: 1e174ed0 user: dan tags: trunk)
15:53
In the CLI, add the ".oom" command for debugging builds. (check-in: 9c3136a7 user: drh tags: trunk)
2020-02-28
16:04
The RTREE extension behaves as if data columns have type REAL, so we should actually declare them as REAL so that automatic indexes handle them correctly. Ticket [e63b4d1a65546532] (check-in: 85a9b6a9 user: drh tags: trunk)
2020-02-27
17:16
In sqlite3changeset_apply(), ensure that DELETE and UPDATE changes are always executed on main database tables, not similarly named temp tables, as documented. INSERT statements are already being handled correctly. (check-in: f71a13d0 user: dan tags: trunk)
16:21
Fix harmless compiler warnings from MSVC. (check-in: 951b39ca user: drh tags: trunk)
15:20
Merge latest trunk changes into this branch. (check-in: 3f5650aa user: dan tags: reuse-schema)
15:07
Optimization for "SELECT min(x) FROM tbl" where "x" is indexed and NOT NULL. This also allows similar queries on NOT NULL virtual table columns to be optimized. (check-in: 59726777 user: dan tags: trunk)
13:54
Extra zero terminators on the end of the blank filename returned by sqlite3PagerFilename() for an in-memory database. This helps the result work better with sqlite3_filename_journal() and similar functions. (check-in: 63e533d2 user: drh tags: trunk)
12:33
Backport the change that allows the filename passed into the xFullPathname to be used as an argument to sqlite3_uri_parameter(). (check-in: 9c77bfe4 user: drh tags: branch-3.31)
11:32
Ensure that the filename passed into the xFullPathname method of the VFS is acceptable as an argument to sqlite3_uri_parameter(). The interface spec does not guarantee this, but it has been so historically and some applications have come to depends on it. (check-in: bfb09371 user: drh tags: trunk)
2020-02-25
20:05
Update the fuzzcheck test module so that it avoids inserting text values that contain embedded NULs in the XSQL table. Fix some legacy entries in the test/fuzzdata8.db that had embedded NULs. Add in new dbsqlfuzz cases that have accumulated over on the dbsqlfuzz project for a while. (check-in: 47d4240c user: drh tags: trunk)
2020-02-24
17:05
If STAT4 determines that a WHERE clause term that is not used by an index has very high probability of being true, then do not use that term to reduce the estimated output row count. (check-in: 40739c79 user: drh tags: trunk)
16:46
Rework this changes so that instead of setting the WhereTerm.truthProb when a term is seen to be of low selectivity, it merely sets a new flag (the TERM_HIGHTRUTH flag) which causes whereLoopOutputAdjust() to ignore that term. (Closed-Leaf check-in: 4558163b user: drh tags: stat4-truthprob)
13:35
Disable the new analyzeG.test module if not building with STAT4. (check-in: 4a9d3005 user: drh tags: stat4-truthprob)
13:26
Merge bugfix from trunk. (check-in: b542dee9 user: drh tags: stat4-truthprob)
2020-02-23
17:34
Fix a problem with ALTER TABLE for views that have a nested FROM clause. Ticket [f50af3e8a565776b]. (check-in: c431b3fd user: drh tags: trunk)
2020-02-22
18:27
Do not activate the truthProb adjustment mechanism if the truth probability is less than the heuristic value, as there could be correlations unknown to stat4. Also add additional tracing output to make truthProb adjustments more visible. (check-in: c535fea1 user: drh tags: stat4-truthprob)
17:32
Add new test file analyzeG.test, containing a test for the change on this branch. (check-in: 243ab185 user: dan tags: stat4-truthprob)
16:58
When stat4 information is available, try to use it to improve the truth probability of WHERE clause terms that do not participate in the index. (check-in: 1babd6ec user: drh tags: stat4-truthprob)
13:01
In the OP_Column opcode, if the cursor is marked NullRow (due to being the right table of a LEFT JOIN that does not match) and the cursor is the table cursor for an OR-optimization with a covering index, then do not substitute the covering index cursor, since the covering index cursor does not have the NullRow flag set. Ticket [aa4378693018aa99] (check-in: f02030b3 user: drh tags: trunk)
2020-02-20
14:11
Add test case for previous commit. (check-in: 14d14eb5 user: dan tags: trunk)
14:08
Early-out on the INTERSECT query processing following an out-of-memory error. This fixes a potential null pointer dereference found by sakura(@eternalsakura13) of Alpha Team, Qihoo 360. (check-in: a67cf5b7 user: drh tags: trunk)
2020-02-19
15:39
Fix a potential NULL pointer dereference following OOM. Problem discovered by dbsqlfuzz. Test case in TH3. (check-in: 5aeb5a2d user: drh tags: trunk)
2020-02-18
23:58
Remove a NEVER() macro and add a test case to cause its argument to be true. (check-in: ee034fe9 user: drh tags: trunk)
19:49
Add the new sqlite3_create_filename() and sqlite3_free_filename() interfaces for use by Shims. Use these interfaces inside the multiplexor. (check-in: 9469f36a user: drh tags: trunk)
2020-02-17
23:08
Convert invalid surrogates to 0xfffd when translating UTF. (check-in: 7fab1393 user: drh tags: trunk)
19:25
A better (smaller and faster) solution to ticket [4374860b29383380]. (check-in: abc473fb user: drh tags: trunk)
00:12
Take care when checking the table of a TK_COLUMN expression node to see if the table is a virtual table to first ensure that the Expr.y.pTab pointer is not null due to generated column optimizations. Ticket [4374860b29383380]. (check-in: 9d0d4ab9 user: drh tags: trunk)
2020-02-16
17:40
Avoid an infinite recursion on an illegal recursive definition of an fts5vocab table. (check-in: 109ee074 user: drh tags: trunk)
2020-02-13
22:12
Fix problems in the constant propagation optimization that were introduced by check-in [1c3e5c20a9e6f501]. Fix for ticket [1dcb4d44964846ad] (check-in: c9a8defc user: drh tags: trunk)
14:51
Disallow the skip-scan optimization in the absence of sqlite_stat1 data. (check-in: e0c6b8bd user: drh tags: trunk)
13:45
Omit O_NOFOLLOW from the open() call when opening /dev/null, since /dev/null is a symlink on Solaris, we are told. (check-in: 0c683c43 user: drh tags: trunk)
11:46
Fix an incorrect assert() statement that was added yesterday. Tickets [41c1456a6e61c0e7] and [fb8c538a8f57ae2a]. (check-in: abfb043e user: drh tags: trunk)
2020-02-12
20:50
Increase the default upper bound on the number of parameters in a single SQL statement to 32766 (from 999). (check-in: 2def7569 user: drh tags: trunk)
11:57
When determining whether an == or IS constraint in a WHERE clause makes an ORDER BY term redundant, consider the collation sequence used by the == or IS comparison, not the collation sequence of the comparison expression itself. Possible fix for [fb8c538a8f]. (check-in: 16aed5d0 user: dan tags: trunk)
2020-02-10
19:37
Fix a typo in the in-tree begin-concurrent documentation (check-in: b13dae1c user: drh tags: begin-concurrent)
19:24
Mark the sha1() extension function as SQLITE_DETERMINISTIC. (check-in: 7d8dcfb9 user: drh tags: trunk)
13:29
Fix the build for when SQLITE_VDBE_COVERAGE is used. (check-in: 08438164 user: drh tags: trunk)
2020-02-07
19:44
During byte-code generation, strive to avoid jumps that merely jump to the following instruction. (check-in: bcf876e6 user: drh tags: trunk)
01:12
Simplify the code by removing the unsupported and undocumented SQLITE_HAS_CODEC compile-time option (check-in: 5a877221 user: drh tags: trunk)
2020-02-06
20:46
There is no need to keep track of the number of changed rows or of the last-insert-rowid while running VACUUM. (check-in: a8a7c05b user: drh tags: trunk)
15:38
Unroll the comparison loop inside keywordCode() for to avoid unnecessary comparisions and thus help that routine run faster. (check-in: cec5f920 user: drh tags: trunk)
13:57
Separate OP_IdxInsert and OP_SorterInsert into completely separate opcodes, helping each one to run a little faster. (check-in: 447d71f0 user: drh tags: trunk)
13:09
Remove dead code from the sqlite3_filename_database() function. (check-in: 1b618555 user: drh tags: trunk)
11:08
Merge changes on 3.31 branch into reuse-schema. (check-in: 6dbb8cb0 user: dan tags: reuse-schema-3.31)
11:02
Fix a 4 byte OOB read in test_multiplex.c. (check-in: 6279f69f user: dan tags: branch-3.31)
10:55
Fix some fts3 problems found by usan. (check-in: fb7ccf61 user: dan tags: trunk)
2020-02-05
18:28
Small size reduction and performance improvement in the sqlite3VdbeMemFromBtree() interface used to pull content out of the b-tree and into an sqlite3_value object. (check-in: ae6dd8d3 user: drh tags: trunk)
2020-02-04
20:22
Merge latest trunk/wal2 changes, including the SQLITE_ENABLE_CORRUPT_PGNO patch, with this branch. (check-in: 76668b55 user: dan tags: begin-concurrent-pnu-wal2)
20:11
Merge latest trunk changes into this branch. (check-in: 6ad4d6b7 user: dan tags: wal2)
20:09
Merge latest trunk changes, including the SQLITE_ENABLE_CORRUPT_PGNO patch, into this branch. (check-in: 23bc80cc user: dan tags: begin-concurrent-pnu)
20:08
Merge latest trunk changes, including the SQLITE_ENABLE_CORRUPT_PGNO patch, into this branch. (check-in: f253618a user: dan tags: begin-concurrent)
20:01
Enable more detailed log messages in SQLITE_ENABLE_CORRUPT_PGNO builds if database corruption is encountered. (check-in: 57c36a29 user: dan tags: trunk)
01:41
Extend the OP_Copy-coalesce optimization fix of check-in [b36126c1889e323c] so that it is also correctly disabled by the CASE operator. Ticket [9d3666754ac37d5a]. (check-in: 29a969d6 user: drh tags: trunk)
00:55
Fix a problem with the byte-code decompiler that was inserted by the enhancements at [4248980a356f659b] (check-in: af63e95d user: drh tags: trunk)
2020-02-03
19:56
Cosmetic change to the xfer-optimization to put the OP_RowData opcode closer to the corresponding OP_Insert opcode. This makes it slightly easier to read and understand the code. (check-in: 0ea2dbfc user: drh tags: trunk)
12:25
Increase the version number to 3.32.0. (check-in: 8130bbb4 user: drh tags: trunk)
2020-02-01
21:03
On an INSERT or UPDATE, perform affinity conversions on new data prior to running CHECK constraints. Ticket [86ba67afafded936]. (check-in: 1d4f8620 user: drh tags: trunk)
17:38
Fix the comment display for the OP_Function opcode. And at the same time, improve the comment generating logic to make use of the newer sqlite3_str_appendf() interface. (check-in: 4248980a user: drh tags: trunk)
14:29
Fix a problem in sqlite3CodecQueryParameters() that was introduced by the query parameter encoding changes for the 3.31.1 release. (check-in: 1240ee4f user: drh tags: apple-osx)
14:20
Merge the sqlite3CodecQueryParameters() fix into trunk. (check-in: a812f533 user: drh tags: trunk)
13:30
Fix a problem in sqlite3CodecQueryParameters() that was introduced by the query parameter encoding changes for the 3.31.1 release. (check-in: cc65ca54 user: drh tags: branch-3.31)
00:08
Merge version 3.31.1 (check-in: d250d085 user: numist tags: apple-osx)
2020-01-31
14:52
Fix a minor typo in a comment in the btreeinfo extension. (check-in: b5a66d10 user: drh tags: trunk)
2020-01-29
15:03
Fix a problem with the processing of IN(...) constraints handled by virtual table implementations that do not set the "omit" flag when the virtual table column contains at least one NULL value. (check-in: dcb48387 user: dan tags: trunk)
13:56
Add a test case for commit [ffd8bb93]. (check-in: bcd5b37b user: dan tags: trunk)
13:50
Remove a NEVER() that is in fact reachable. Test cases in dbsqlfuzz and TH3. (check-in: ffd8bb93 user: drh tags: trunk)
13:10
Add new memory barriers during initialization. (check-in: a9b2adc5 user: drh tags: trunk)
12:37
Modify a couple of FTS test cases so that they work on big-endian platforms. (check-in: b20503aa user: drh tags: trunk)
2020-01-28
20:27
Faster decoding of 32-bit variable-length integers in cases were we do not need to know the number of bytes in the encoding. (check-in: 59a31b16 user: drh tags: trunk)
20:09
Small performance improvement to the key-comparision routine for strings. (check-in: 41454499 user: drh tags: trunk)
18:09
Reinstate the optimization of converting "a IN (C)" into "a=C" but only if C is a constant. If the RHS is a table column, the complications of managing affinity and collations become too involved to mess with. (check-in: 8ac26a23 user: drh tags: trunk)
16:55
Fix a 4 byte OOB read in test_multiplex.c. (check-in: 91214891 user: dan tags: trunk)
15:02
Minor change for compatibility with the s390 architecture. (check-in: 04885763 user: drh tags: trunk)
2020-01-27
19:55
Version 3.31.1 (check-in: 3bfa9cc9 user: drh tags: trunk, release, version-3.31.1)
17:09
Update the version number to 3.31.1. (check-in: 6fb9a8fb user: drh tags: trunk)
14:40
Revise the layout of filenames in the Pager object so that it is unchanged from prior versions. It turns out that some important 3rd-party software does questionable pointer manipulations on those filenames that depend on that legacy layout. Technically, this is a misuse of SQLite by the 3rd-party software, but we want to avoid unnecessary breakage. (check-in: 34ab7606 user: drh tags: trunk)
2020-01-23
15:00
Fix typos in the sqlite3ext.h header file that prevent some newer APIs from being accessed from loadable extensions. (check-in: 14331989 user: drh tags: trunk)
00:08
Fix variable declaration issue seen with MSVC. (check-in: 8a6fe306 user: mistachkin tags: trunk)
2020-01-22
23:08
Fix a NEVER() macro that can be true if compiled with SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION. Ticket [b985f0bd1636d9bc] (check-in: 9f0f5d59 user: drh tags: trunk)
21:18
Merge version 3.31.0 (check-in: 9c3f4638 user: drh tags: begin-concurrent-pnu-wal2)
21:12
Merge version 3.31.0 (check-in: 3bb267de user: drh tags: wal2)
21:06
Merge version 3.31.0 (check-in: e65e6c01 user: drh tags: begin-concurrent-pnu)
20:56
Merge version 3.31.0 (check-in: bbbc2881 user: drh tags: begin-concurrent)
20:36
Merge version 3.31.0 (check-in: 0eae87ad user: drh tags: apple-osx)
20:02
Merge in version 3.31.0 (check-in: f418afa1 user: drh tags: reuse-schema)
18:38
Version 3.31.0 (check-in: f6affdd4 user: drh tags: trunk, release, version-3.31.0)
2020-01-21
21:01
Begin adding instrumentation to record and report on the set of key-ranges a concurrent transaction reads from the database. (check-in: c39e3c14 user: dan tags: begin-concurrent-report)
16:31
Update test file exclusive.test so that it works with the "journaltest" permutation. (check-in: 4daf94d8 user: dan tags: trunk)
16:23
Fix a problem with using views in SQLITE_OMIT_VIRTUAL_TABLE builds. Also some test case fixes required for the same builds. (check-in: 934ee8bd user: dan tags: trunk)
15:01
Fix a case in fts3auto.test that fails for SQLITE_DISABLE_FTS4_DEFERRED builds. (check-in: d241055e user: dan tags: trunk)
14:42
Fix an assert() that could fail in SQLITE_MUTATION_TEST builds following an error in a query that uses CTEs. (check-in: c7e29458 user: dan tags: trunk)
13:40
Fix a problem in the userauth extension causing it to occasionally set "PRAGMA count_changes" (and some others) to true. (check-in: 3a62f642 user: dan tags: trunk)
12:29
Fix the series.c and spellfix.c extensions to use SQLITE_VTAB_INNOCUOUS correctly. Fix the documentation on sqlite3_vtab_config() to take into account SQLITE_VTAB_INNOCUOUS and SQLITE_VTAB_DIRECTONLY. (check-in: 9265cb7f user: drh tags: trunk)
01:45
Improvements to the autoconf TEA Makefile for MSVC. (check-in: cffcf12f user: mistachkin tags: trunk)
2020-01-20
15:32
Merge recent fixes from trunk. (check-in: 9c920bba user: drh tags: reuse-schema)
14:42
In the fuzzcheck test program, reduce the default expression depth limit from 1000 to 500 to avoid stack-overflow problems when running stress tests using clang ASAN. (check-in: 63d886f4 user: drh tags: trunk)
2020-01-19
20:37
Enhancement to the CLI to allow the ".parameter init" command to work even if defensive mode is turned on. (check-in: 4d462550 user: drh tags: trunk)
2020-01-18
23:52
Documentation improvements. (check-in: 535afe15 user: drh tags: trunk)
22:20
In the TCL interface, add the ability to change the SQLITE_DBCONFIG_TRUSTED_SCHEMA setting using the "db config" method. (check-in: 1accfa8c user: drh tags: trunk)
21:34
Allow non-deterministic function in CHECK constraints. It turns out that PostgreSQL, MySQL, and SQLServer all allow this. We should not be the the exception. Ticket [830277d9db6c3ba1] (check-in: 8c8ce526 user: drh tags: trunk)
19:58
Fix a couple of test case issues on this branch. (check-in: 9830a44b user: dan tags: reuse-schema)
19:46
Do not use memcpy() of zero bytes when initializing a pager. This avoids a warning. (check-in: cca43778 user: drh tags: trunk)
19:07
Disable a redundant test case that uses a very large stack, and hence is unable to run with -fsanitize=undefined,address. (check-in: 3c63f68e user: drh tags: trunk)
19:02
Fix harmless compiler warning seen with MSVC. (check-in: cd0437ba user: mistachkin tags: trunk)
18:59
Have this branch call sqlite3LockAndPrepare() instead of sqlite3Prepare() when parsing SQL for new schema objects in order to ensure that schemas are released as soon as possible. (check-in: 7a4ec579 user: dan tags: reuse-schema)
14:50
Add extra front margin to the fake empty filename returned by sqlite3PagerFilename() for an in-memory or TEMP database. (check-in: fee94567 user: drh tags: trunk)
13:53
Fix the VDBE so that it correctly handles the sequence of operations OP_OpenEphemeral, OP_OpenDup, OP_OpenEphemeral, and OP_OpenDup in that order on the same cursor. (check-in: a1be6ee0 user: drh tags: trunk)
2020-01-17
23:27
Fix a typo in a comment. No code changes. (check-in: 4363f69c user: drh tags: trunk)
21:12
The compress() function should not be deterministic since the same input can have multiple possible compressed outputs. The uncompress() function, on the other hand, is deterministic. (check-in: 84f31490 user: drh tags: trunk)
19:14
Fix #ifdefs so it compiles cleanly with all SQLITE_OMIT compile-time options. Update compile-time option testing. (check-in: 7584e4b6 user: drh tags: trunk)
16:47
Improved rounding in the 'unixepoch' feature of the date and time functions. (check-in: c9abf1bd user: drh tags: trunk)
15:45
Update test script instrfault.test to account for the fact that bound blob values cast to text values are now intepreted using the text encoding of the database, instead of always as utf-8. (check-in: 4d6cb288 user: dan tags: trunk)
15:33
More restrictions on changes to shadow tables when in defensive mode. (check-in: b302b260 user: drh tags: branch-3.28)
15:24
Validate the type, name, and tbl_name fields of the sqlite_master table when loading the schema, unless writable_schema is engaged. (check-in: 3d13fbf2 user: drh tags: branch-3.28)
14:56
Do not allow shadow tables to be dropped in defensive mode. (check-in: ad1f760f user: drh tags: branch-3.28)
14:30
Import the 3.31.0-beta FTS3/4 code directly into the 3.28 branch, thus providing 3.28 with all the latest 3.31 fixes. FTS3 has not been enhanced to use any core functionality that was not already available in 3.23, so no modifications were made to FTS3 sources for this import. (check-in: be4269c6 user: drh tags: branch-3.28)
11:18
Fix a case in "fuzz.test" that could fail, as non-deterministic functions may no longer appear in CHECK constraints. (check-in: a370871e user: dan tags: trunk)
2020-01-16
17:53
New testcase() macros in select.c, for coverage of the change from two check-ins ago. (check-in: 52206488 user: drh tags: trunk)
16:32
Add the SQLITE_FCNTL_CKPT_DONE file-control for the use of custom VFSs. (check-in: 3cc39e50 user: dan tags: trunk)
16:12
Do not allow the constant-propagation optimization to apple to ON/USING clause terms as it does not help and it might cause downstream problems. (check-in: 1bc783da user: drh tags: trunk)
13:02
Very small performance improvement by ensuring that the argument to sqlite3VdbeFreeCursor() is non-NULL. Hold for the next sprint. (Leaf check-in: f8801ffd user: drh tags: close-cursor-faster)
12:25
Fix an SQL syntax error in the comment on the omit-left-join optimization. No changes to code. (check-in: 86b5e5a2 user: drh tags: trunk)
11:51
Clean up the definitions of the TERM_ constants in the code generator. Formatting only - no logic changes. (check-in: af06f80a user: drh tags: trunk)
2020-01-15
17:18
Fix the assert_schema_state_ok() routine so that it correctly ignores ATTACH-ed database that failed to open due to an error. (check-in: 1194a42a user: drh tags: reuse-schema)
16:20
Do not allow the "PRAGMA encoding" statement to change the database encoding if TEMP content exists, or content in any other attached database. Formerly, encoding changes were allowed if just the main database file was empty. Ticket [a08879a4a476eea9]. (check-in: 03b003c9 user: drh tags: trunk)
14:26
Merge all recent enhancements and fixes from trunk. (check-in: f7839178 user: drh tags: reuse-schema)
14:21
Merge in the latest trunk changes via the begin-concurrent-pnu branch. (check-in: 350627f3 user: drh tags: begin-concurrent-pnu-wal2)
14:11
Merge recent enhancements and fixes from trunk. (check-in: 35eae71a user: drh tags: wal2)
13:48
Merge all recent enhancements and fixes from trunk. (check-in: 110a081f user: drh tags: begin-concurrent-pnu)
13:34
Merge fixes and enhancements from trunk into begin-concurrent. (check-in: 95ba2f50 user: drh tags: begin-concurrent)
12:49
Merge all recent enhancements and fixes from trunk into the apple-osx branch. (check-in: dadedf41 user: drh tags: apple-osx)
2020-01-14
16:50
Fix the urifuncs.c extension (used for testing and debugging only) so that the sqlite3_filename_database() SQL function and its siblings correctly handle an invalid schema name passed in as the argument. (check-in: 3d7434a9 user: drh tags: trunk)
16:39
Remove an ALWAYS on a branch for improved database corruption detection in btree.c:freeSpace(). Test case found by dbsqlfuzz. (check-in: 54bf0481 user: drh tags: trunk)
16:33
Add the new noop_nd() debugging function to the noop.c extension. (check-in: 72911fb1 user: drh tags: trunk)
13:24
For the showdb utility program, more accurate detection of when the database is in autovacuum mode for the "pgidx" subcommand. (check-in: 9ce2192b user: drh tags: trunk)
13:13
Fix a minor typo on a comment in the CLI implementation. (check-in: db4fb350 user: drh tags: trunk)
00:52
Improvements to sqlite3_open_v2() documentation. (check-in: 4c4fd62a user: drh tags: trunk)
2020-01-13
15:25
More documentation updates. No code changes. (check-in: a684d4ef user: drh tags: trunk)
13:33
Documentation updates. No changes to code. (check-in: cc0e0aa3 user: drh tags: trunk)
2020-01-12
22:38
Better than removing the incorrect assert() is to change it into a testcase() together with a comment indicating where an appropriate test case can be found, and the ticket that provoked the change. Ticket [614b25314c766238] (check-in: 3e3c60d8 user: drh tags: trunk)
22:25
Change the zipfile virtual table so that the xBestIndex method gives a reasonable cost estimate even if no filename is specified. The missing filename error continues to be raised in the xFilter method. Meanwhile, the more reasonable cost estimate avoids unnecessary wierdness in the query planner. (check-in: 0e468aa6 user: drh tags: trunk)
22:20
Remove an incorrect assert(). Fix for ticket [614b25314c766238] (check-in: 6a999c5a user: drh tags: trunk)
2020-01-11
21:08
New apis: sqlite3_filename_database(), sqlite3_filename_journal(), and sqlite3_filename_wal(). Also sqlite3_uri_key(). And the other sqlite3_uri functions now work using the journal or wal filename in addition to the database file. And the sqlite3_db_filename() result is guaranteed to work as an argument to the sqlite3_uri functions. (check-in: fd7bcc53 user: drh tags: trunk)
20:27
Minor changes for consistency between sqlite3_filename_wal() and sqlite3_filename_journal(). (Closed-Leaf check-in: 9a70ff43 user: drh tags: enhanced-uri)
16:08
Redesign for better legacy compatibility. Add the sqlite3_uri_key() interface. (check-in: bcb43d11 user: drh tags: enhanced-uri)
2020-01-10
18:05
Rearchitect the way in which filenames are stored in the Pager object so that the sqlite3_uri_parameter() interface will work from journal and WAL filenames too. This check-in implements the central idea, and compile and runs somewhat, but crashes on an extended test. (check-in: 2ae77bd2 user: drh tags: enhanced-uri)
01:05
Fix to the register validity tracking logic in debug builds. No impact on release builds. (check-in: 0a500da6 user: drh tags: trunk)
00:20
Begin making changes to turn off trusted schema in command-line tools that open SQLite databases. There are a lot of these, and a lot of places to change, which makes me wonder if trusted schema should be off by default. (Leaf check-in: 3d23a275 user: drh tags: default-untrusted-schema)
00:00
Documentation updates on newer APIs. No changes to code. (check-in: 8845a8c2 user: drh tags: trunk)
2020-01-09
23:07
Fix the fossildelta.c extension so that it will compile on mingw. (check-in: 20237d5d user: drh tags: trunk)
20:44
Merge in the untrusted-schema enhancements. See doc/trusted-schema.md for details. (check-in: 5720924c user: drh tags: trunk)
20:33
Only register the fts3_tokenizer() function using a single text encoding. (check-in: 966964af user: drh tags: trunk)
20:33
Fix a harmless compiler warning. (check-in: edbf911f user: drh tags: trunk)
20:11
Fix an assert() in window.c that could fail with some obscure SELECT statements that use window functions. Ticket [678ecf429f8d1a5f] (check-in: 83dc5567 user: dan tags: trunk)
16:28
Fix a problem in the encoding display in the updated PRAGMA function_list. (Closed-Leaf check-in: 318ff772 user: drh tags: new-security-options)
16:00
Fix minor typos in the trusted-schema.md document. (check-in: 87aea3ab user: drh tags: new-security-options)
15:18
Minor formatting changes in the trusted-schema.md document. (check-in: 55553b5e user: drh tags: new-security-options)
14:51
Design notes for the new-security-options branch. (check-in: af7c1ed4 user: drh tags: new-security-options)
13:08
Simplified error message for the unsafe use of a virtual table. (check-in: d662129a user: drh tags: new-security-options)
01:20
Fix a problem that restricted edgy functions in TEMP tables. New test cases added. (check-in: 8878c407 user: drh tags: new-security-options)
2020-01-08
22:22
Block edgy functions used in DEFAULT constraints. (check-in: da434dc1 user: drh tags: new-security-options)
20:37
Performance improvements and test cases added. Allow "PRAGMA trusted_schema=ON" (check-in: 30882ca8 user: drh tags: new-security-options)
17:28
Check for whether or not it is safe to use non-innocuous functions as the function is being coded, not when its name is resolved. (check-in: 1da802d5 user: drh tags: new-security-options)
15:44
Provide the -innocuous option to the "db func" method in the TCL interface. (check-in: 0138652b user: drh tags: new-security-options)
15:43
Fix the rot13.c extension to be deterministic. Add the noop.c extension. (check-in: a679122c user: drh tags: new-security-options)
14:39
In the TreeView debugging output, show a "DDL" mark on SrcList and Expr nodes that derive from a non-TEMP schema. (check-in: fe7472fd user: drh tags: new-security-options)
13:08
Merge recent changes from trunk. (check-in: 5962921f user: drh tags: new-security-options)
12:17
When doing a text-to-double conversion on a BLOB with an odd number of bytes and assuming a UTF16 encoding, ignore the last byte. Ticket [9eda2697f5cc1aba]. (check-in: 1c76f1d8 user: drh tags: trunk)
11:36
Fix a minor formatting error in the display of BLOB values during VDBE tracing. (check-in: 29544288 user: drh tags: trunk)
10:57
Improvements to the documentation of sqlite3_create_collation(). (check-in: fa866aec user: drh tags: trunk)
04:36
Simplification of the logic in the constant-propagation optimization. (check-in: 1c3e5c20 user: drh tags: trunk)
01:43
Fix the constant propagation optimization so that it does not try to propagate constant expressions that have affinity. Ticket [82ac75ba0093e5dc] (check-in: 6db1c349 user: drh tags: trunk)
00:39
Fix a misworded comment. No code changes. (check-in: ee0bc7ed user: drh tags: trunk)
2020-01-07
19:45
Create the "trusted_schema" pragma. Add sqlite3_vtab_config() calls to set the risk rank for many virtual tables. (check-in: 4c21373c user: drh tags: new-security-options)
18:10
Enforce SQLITE_VTABRISK restrictions. (check-in: 3d87ff31 user: drh tags: new-security-options)
18:10
Fix a performance regression caused by the previous check-in. (check-in: d7d98d3d user: drh tags: trunk)
16:09
Invert the UNTRUSTED_SCHEMA setting to be TRUSTED_SCHEMA. (check-in: f5fcf1fb user: drh tags: new-security-options)
15:44
Merge recent fixes from trunk. (check-in: 5dfa33a0 user: drh tags: new-security-options)
14:51
Provide the ability to tag an application-defined function as "testonly". (Leaf check-in: e6f5c0e0 user: drh tags: testonly-functions)
13:32
Add an "|| CORRUPT_DB" term to an assert() statement inside of btree. (check-in: 03c1d75d user: drh tags: trunk)
09:06
Fix an instance of an undefined behaviour (a left-shift of a 64-bit unsigned integer by a value greater than 64) that could occur in fts3. (check-in: e1f12978 user: dan tags: trunk)
2020-01-06
20:48
In the typeof() optimization in OP_Column, expand the size of the bogus buffer provided for data so that it is big enough to cover the increased number of bytes displayed during register tracing from check-in [54553bf16fabd72d]. This is the correct fix for ticket [bbd55a97e66ff50d], though the earlier one does not hurt and is useful to retain. (check-in: e1154c39 user: drh tags: trunk)
19:30
Merge enhancements from trunk. (check-in: 9c50f6c2 user: drh tags: new-security-options)
19:23
Rewrite the (debugging use only) sqlite3VdbeMemPrettyPrint() function to use the safer StrAccum interface rather than writing directly into a static string buffer. Perhaps this will address ticket [bbd55a97e66ff50d], which we are unable to reproduce. (check-in: 69f6a7e4 user: drh tags: trunk)
18:59
Backout change [4d0b9109f7a5312d4e1] because the conditional it added is no longer reachable due to check-in [1409758f72c0206c]. (check-in: b3f26967 user: drh tags: trunk)
18:44
Move variable declaration to start-of-block for MSVC. (check-in: 55c136ef user: mistachkin tags: trunk)
17:33
Do not attempt to use the skip-scan optimization if prior terms of the index are already used for non-equality constraints. Ticket [304017f5f04a0035] (check-in: d7126a9c user: drh tags: trunk)
17:06
Ensure the SF_Aggregate flag on a SELECT statement is set if a DISTINCT is transformed to a GROUP BY. Ticket [9c944882]. (check-in: 1409758f user: dan tags: trunk)
15:25
Refactor names of flags for improved legibility. (check-in: 411e8ec2 user: drh tags: new-security-options)
2020-01-05
21:53
Remove a NEVER in btree due to a new test case from dbsqlfuzz. (check-in: 46f8ef70 user: drh tags: trunk)
2020-01-04
20:58
Refactor the names of the new controls for restricting what actions the schema can take behind the application's back. (check-in: 65d7d39a user: drh tags: new-security-options)
19:58
Enhance PRAGMA function_list to show internal functions if the direct use of internal functions is enabled via the SQLITE_TESTCTRL_INTERNAL_FUNCTIONS test control. (check-in: 7a8d7ca7 user: drh tags: new-security-options)
19:19
Merge all fixes and enhancements from trunk. (check-in: b878c30f user: drh tags: new-security-options)
19:14
Fix DBSTAT so that it returns no rows, rather than an error when the WHERE clause is "schema=NULL". (check-in: 5b246b47 user: drh tags: trunk)
19:12
Fix harmless compiler warnings. (check-in: 8452fe03 user: drh tags: trunk)
18:38
Omit the omit flat from eq constraints on column "name" of dbstat virtual tables. Fix for [74a4c386]. (check-in: cfff5cb2 user: dan tags: trunk)
18:33
Record when the OP_IfNotOpen branch is and is not taken. (check-in: 182a898b user: drh tags: trunk)
17:55
Remove another NEVER added by check-in [7b62555e285f32d3]. Dbsqlfuzz found another test case. (check-in: 481f4956 user: drh tags: trunk)
17:42
New test cases in test/in4.test require rtree, so disable those tests on builds that lack the rtree extension. (check-in: b5900914 user: drh tags: trunk)
16:55
Fix a problem where the loop for the RHS of a LEFT JOIN uses values from an IN() clause as the second or subsequent field of an index. (check-in: 95ef6896 user: dan tags: trunk)
15:37
Merge the latest fixes from trunk. (check-in: 26ef709a user: drh tags: new-security-options)
15:21
Fix a false-positive in the register validity tracking logic by moving the temporary register release call before the jump that uses that temporary register. (check-in: 9da48a5c user: drh tags: trunk)
14:57
Improve a testcase in test/fuzzdata8.db to make it more resilient. (check-in: 139aefe6 user: drh tags: trunk)
14:50
Back out another NEVER added by check-in [7b62555e285f32d3] - the test case was already in test/fuzzdata3.db, but it only occurs if compiled without SQLITE_ENABLE_PREUPDATE_HOOK. (check-in: 61f873b1 user: drh tags: trunk)
14:00
Omit the omit flag from eq constraints on column "aggregate" of dbstat virtual tables. Fix for [727074e2]. (check-in: 74ef6f2b user: dan tags: trunk)
12:34
Restore a NEVER and an assert in btree that was removed by check-in [7b62555e285f32d3]. Dbsqlfuzz found test cases. (check-in: 04a05c83 user: drh tags: trunk)
01:43
Enhance PRAGMA function_list so that it shows all instances of each FuncDef, the number of arguments, the encoding, the type, and the flags. Use this capability to locate and fix incorrect function flags in the standard build. (check-in: 9ca906d2 user: drh tags: new-security-options)
2020-01-03
21:57
Invert the SQLITE_FUNC_SAFE bit to be SQLITE_FUNC_UNSAFE. The external bit is still SQLITE_INNOCUOUS. It gets inverted as the appdef function is registered. (check-in: 1c266cb3 user: drh tags: new-security-options)
20:57
When UNSAFE_IN_VIEW is disabled, only allow functions in views that are tagged with SQLITE_INNOCUOUS. (check-in: 9ee79b25 user: drh tags: new-security-options)
20:16
In fts3, avoid making a very large memory allocation if the merge-hint record is corrupt. (check-in: 9add58fe user: dan tags: trunk)
17:40
Add NEVER macros to error-detection branches that were made unreachable (as far as I can tell) by check-in [ceacc28b03580334]. (check-in: 7b62555e user: drh tags: trunk)
16:38
Improvement to check-in [7405e98225761180] so that missing or null filenames given to the zipfile extension throw an immediate error. (check-in: 523e09bd user: drh tags: trunk)
15:51
Improve a specific case of early database corruption dectecion in the b-tree layer. (check-in: ceacc28b user: dan tags: trunk)
15:22
Merge fixes from trunk. (check-in: 002406df user: drh tags: new-security-options)
14:34
Remove an over-zealous ALWAYS() macro and add a test case that shows that the conditional can sometimes be false. (check-in: 536e9a9d user: drh tags: trunk)
14:27
Fix a possible NULL pointer dereference caused by using a "VALUES(...)" as a component of a compound SELECT with non-integer ORDER BY clause terms. (check-in: 9d791116 user: dan tags: trunk)
14:16
Fix the OP_Copy-coalesce optimization so that if the previous row happens to end with OP_Copy but is not a candidate for the optimization due to jumps, then the optimization is correctly bypassed. (check-in: b36126c1 user: drh tags: trunk)
13:55
Ensure that when a Select object is reset a new, empty, SrcList is allocated. (check-in: 4889cbf8 user: dan tags: trunk)
02:20
When generating the name of a view (or common table expression) because the SQL does not specify a name, avoid the names "true" and "false" which might be confused for the boolean literals of the same name, leading to an inconsistent abstract syntax tree. (check-in: ff9492d3 user: drh tags: trunk)
00:28
Fix a problem in sqlite3TreeViewBareExprList() in which the routine was not interpreting the new ExprList format correctly. (check-in: cd56872a user: drh tags: trunk)
2020-01-02
23:50
Merge enhancements from trunk. (check-in: 091403a6 user: drh tags: new-security-options)
22:28
Add the two-size lookaside memory allocator. Also, reduce the per-entry size of the ExprList object. (check-in: 51665bf0 user: drh tags: trunk)
22:23
NEVER() and ALWAYS() macros tagging unreachable branches. (Closed-Leaf check-in: 34b87774 user: drh tags: two-size-lookaside)
21:41
Merge the latest enhancements from trunk. (check-in: bd57e6d9 user: drh tags: two-size-lookaside)
21:30
Do not allow the zipfile virtual table to start a transaction if no filename has been specified. (check-in: 7405e982 user: drh tags: trunk)
19:50
Fix some test logic in the OP_Delete opcode so that it works after a cursor-trip. (check-in: 28900e5c user: drh tags: trunk)
18:37
Ifdef-out code that is only possible with the sessions extension. (check-in: 4fcf07f7 user: drh tags: trunk)
17:46
Have the OP_ReleaseReg opcode also invalidate the registers if P5 is non-zero. (check-in: 937be221 user: drh tags: trunk)
16:24
Handle blobs that are the return values of functions being cast to text in utf16 databases in the same way as blobs read directly from the database. Fix for [771fe617]. (check-in: e782096a user: dan tags: trunk)
15:02
Fix the OP_Move opcode so that it correctly manages dependency tracking. This change impacts debugging builds only. (check-in: 5377add4 user: drh tags: trunk)
14:42
Enhancements to aid testing and debugging: In PRAGMA vdbe_trace=on output, show pScopyFrom dependencies on register values. Add the sqlite3VdbeRegisterDump() procedure, callable from a debugger, that shows the values of all registers. Pass the VDBE pointer into test_trace_breakpoint() so that sqlite3VdbeRegisterDump() is callable from the breakpoint. (check-in: 9886cb4b user: drh tags: trunk)
13:26
Add the test_trace_breakpoint() subroutine that is invoked after each instruction is printed while running PRAGMA vdbe_trace=on. Only works for SQLITE_DEBUG builds. Also add parameters "pc" and "pOp" to test_addop_breakpoint() to make it easier to set conditionals. (check-in: 49a6368c user: drh tags: trunk)
02:50
Use OP_Copy instead of OP_SCopy to move the results of a scalar subquery. (check-in: 435c272d user: drh tags: trunk)
00:45
The sqlite3WhereEnd() call now unwinds all Expr modifications made by the sqlite3WhereBegin(). (check-in: 7bfd42f1 user: drh tags: trunk)
2020-01-01
23:02
Provide the -DSQLITE_ENABLE_INTERNAL_FUNCTIONS=1 compile-time option. Fix the ".testctrl internal_function" command in the CLI so that it does not signal an error on a valid input. (check-in: 8ee2ce92 user: drh tags: trunk)
21:14
When generating code for a subquery, make a copy of the Select object and generate the code out of the copy, in case the code generator makes modifications to expression and the Select object needs to be reused. (check-in: 4edddcc0 user: drh tags: trunk)
20:17
Ensure that when code for a scalar SELECT featuring window functions is generated more than once by the planner, separate ephemeral tables are opened for each instance. (check-in: ce141732 user: dan tags: trunk)
16:43
Fix the sqlite3ExprImpliesNonNullRow() routine so that it correctly handles a numeric comparison of two AND subexpressions. (check-in: 07e504d5 user: drh tags: trunk)
15:43
New test-only SQL functions: implies_nonnull_row(), expr_compare(), and expr_implies_expr(). The SQLITE_TESTCTRL_INTERNAL_FUNCTIONS test-control is modified to toggle internal function access on and off for a single database connection. (check-in: 473892a8 user: drh tags: trunk)
13:55
Factor out code generation for in-line SQL functions into a separate routine inside of expr.c. (check-in: 586a65a2 user: drh tags: trunk)
01:26
Issue OP_ReleaseReg opcodes against the array of registers used to compute index records after the index record has been computed. (check-in: e3330861 user: drh tags: trunk)
2019-12-31
23:17
Remove an incorrect assert() statement. Ticket [46fcd700b855e6d1] (check-in: eca7ec9c user: drh tags: trunk)
22:52
Experimental branch with new sqlite3_db_config() options that could possible enhance security for applications reading potentially compromised database files. (check-in: 96a2db26 user: drh tags: new-security-options)
18:39
Also set the SQLITE_DIRECTONLY flag on the load_extension() function. (check-in: 3bd095a5 user: drh tags: trunk)
18:12
Set the SQLITE_DIRECTONLY flag on the fts3_tokenizer() function of FTS3, thus preventing that function from being called from within a trigger or view. (check-in: f3171dc2 user: drh tags: trunk)
15:12
Refactor names. Use "small" instead of "mini" to describe the smaller of the two lookaside memory allocation sizes. (check-in: 88d24498 user: drh tags: two-size-lookaside)
14:49
Merge recent enhancements from trunk. (check-in: 39d55579 user: drh tags: two-size-lookaside)
12:18
The OP_ResultRow opcode releases the SCopy dependences on all its registers, as the values in those registers will not be reused. (check-in: 1dc83c5d user: drh tags: trunk)
2019-12-30
23:50
Back out the NEVER() from check-in [40d10e7aad5b8992] because it is reachable after all. Ticket [892575cdba4e1e36] (check-in: f481636f user: drh tags: trunk)
23:41
Add an ALWAYS() to a conditional which is apparently always true. (check-in: ea44c607 user: drh tags: trunk)
20:42
Put a NEVER() on a defensive branch. (check-in: 40d10e7a user: drh tags: trunk)
20:42
Fix a typo in a comment. No changes to code. (check-in: d4813a8d user: drh tags: trunk)
14:32
Do not use HIDDEN columns for NATURAL joins. Fix for [7c0e06b16]. (check-in: ab09ef42 user: dan tags: trunk)
06:55
In ALTER TABLE, rename columns and tables in expressions that are optimized out by the "AND 0" optimization. Doing this also fixes an otherwise harmless assert() failure. (check-in: a9e0354c user: dan tags: trunk)
2019-12-29
22:08
Do not allow triggers that run as part of REPLACE conflict resolution during an UPDATE to modify the the table being updated. Otherwise, those triggers might delete content out from under the update operation, leading to all kinds of problems. Ticket [314cc133e5ada126] (check-in: db4b7e1d user: drh tags: trunk)
00:52
Add the OP_FinishSeek opcode which completes an OP_DeferredSeek if the seek has not already completed. Also add the sqlite3WhereUsesDeferredSeek() interface to the query planner. The UPDATE implementation adds an OP_FinishSeek before running the final OP_Insert if one is needed. Ticket [ec8abb025e78f40c] and also an assertion fault reported by Yongheng. (check-in: 21ef6e99 user: drh tags: trunk)
2019-12-28
18:25
Do not attempt to flatten compound sub-queries in a FROM clause into the parent if any component of the sub-query uses a window function. (check-in: eeb76f62 user: dan tags: trunk)
18:08
Change an assert() in where.c to a testcase() macro, since the condition may be false. This was a problem with the assert() only, there is no bug in release builds that omit assert(). (check-in: 82be135d user: dan tags: trunk)
16:20
Disable early coding of transitive constraints at the end of each loop in the WHERE clause processing if the loop being coded is for a LEFT JOIN, even if the loop is part of an OR-clause optimization for virtual tables. Test cases in TH3. (check-in: 9421b442 user: drh tags: trunk)
15:24
Fix an instance where the planner might choose to use the OR-optimization when it adds no benefit. The same quirk causes an assert() to fail. This is not a bug in released versions - without the assert() the library still gets the right answer, it just does so less efficiently than it should. (check-in: f4bed1d7 user: dan tags: trunk)
14:33
Further improvements to .wheretrace during loop code generation. (check-in: c4d5b75c user: drh tags: trunk)
14:07
New enhancements to .wheretrace. The 0x20000 flag shows the WHERE clause before and after coding each loop. The 0x800 flag shows status at the start and at the end of each loop. An extra "C" tag is shown on coded terms. (check-in: 59cc46e5 user: drh tags: trunk)
13:39
Expose some of the Where data structure debug printing routines to the entire WHERE-clause processing module. (check-in: 85e76887 user: drh tags: trunk)
13:17
Add the --enable-all option to the main configure script as a short-hand to enable FTS4, FTS5, Geopoly/Rtree, JSON, and Sessions. In the amalgamation-autoconf, the --enable-rtree option (which is enabled by default) also now activates Geopoly. (check-in: 52ea0672 user: drh tags: trunk)
13:01
Simplifications to the initialization of the sqlite3_index_info structure that is used to communicate with virtual table modules. Avoid adding unused constraints to the sqlite3_index_info structure. Extra constraints are harmless, but might be confusing to people trying to understand the code. (check-in: 5e6357fc user: drh tags: trunk)
12:33
If the ".wheretrace 0x10000" bit is set, print WhereTerm.prereqAll and .prereqRight fields in the WhereTerm trace output. (check-in: a4f330b1 user: drh tags: trunk)
11:55
Two new test cases added to test/fuzzdata8.db. (check-in: 1be2c18f user: drh tags: trunk)
09:08
Second attempt to fix a problem with unwinding the WITH stack of the Parse object following an error. (check-in: 315d1f1a user: dan tags: trunk)
08:33
Merge latest trunk changes with this branch. (Closed-Leaf check-in: d693be37 user: dan tags: better-error-handling-1)
08:26
Fix an assert() failure in altertable3-22.4. (check-in: c566a91d user: dan tags: better-error-handling-1)
03:55
Fix a faulty assert() associated with query search limiting query plans. (check-in: 0d743585 user: drh tags: trunk)
02:40
Convert an assert() back into a conditional. The conditional was converted into an assert() by check-in [6ae4ad6ebee4db88] (2009-05-28) because we were unable to find a test case for it. Yongheng's fuzzer just now found that test case. (check-in: 4d0b9109 user: drh tags: trunk)
01:52
When an INSERT is receiving content from a SELECT, run an OP_ReleaseReg opcode at the top of each iteration of the loop in order to prevent spurious OP_SCopy misuse complaints. Ticket [de4b04149b9fdeae] (check-in: 6afadd3b user: drh tags: trunk)
00:36
Recompute the values for all generated columns after NOT NULL ON CONFLICT REPLACE constraints fire. Tickets [37823501c68a09f9] and [5fbc159eeb092130]. (check-in: 4cc12c18 user: drh tags: trunk)
2019-12-27
20:54
Do not attempt to unwind the WITH stack in the Parse object following an error. This fixes a separate case to [de6e6d68], but also causes an assertion fault at select.c:4666 for test case altertab3-22.4. (check-in: d29edef9 user: dan tags: better-error-handling-1)
20:06
Remove a NEVER() that is no longer true. Fix for [36ffedcb9]. (check-in: 597896ed user: dan tags: trunk)
19:46
Fix a problem involving window function aliases being referenced from sub-selects. (check-in: e3b5fc05 user: dan tags: trunk)
18:15
Add a missing "ifcapable rtree {...}" line to the window1.test test module. (check-in: 4e6fbb1a user: drh tags: trunk)
16:25
Fix a problem with window functions in aggregate queries that do not have GROUP BY clauses. (check-in: 99609786 user: dan tags: trunk)
15:31
Do not mistake constant integers in a PARTITION BY expression for references to ORDER BY style references to values returned by the SELECT statement. (check-in: 45c64d39 user: dan tags: trunk)
13:30
Follow-up to check-in [c8c6dd0e6582ec91] - change the xAccess() method to return true if the file exists and it is anything other than a regular file, or if it is a regular file with a non-zero file size. (check-in: 8a39803e user: drh tags: trunk)
08:57
When determining if an aggregate within a sub-query should be processed as part of the sub-query or an outer query, consider any FILTER clause in the same way as the arguments to the aggregate. (check-in: 1ffc045d user: dan tags: trunk)
01:50
Ensure that the Pager.changeCountDone flag is cleared whenever dropping the write lock, even when transitioning from EXCLUSIVE locking mode into NORMAL locking mode while in WAL mode. Ticket [fb3b3024ea238d5c]. (check-in: 846b1de6 user: drh tags: trunk)
00:19
Fix buffer underflows in the zipfile extension associated with zero-length or NULL filename in the ZIP archive. But report on the mailing list by Yongheng and Rui. (check-in: 465a15c5 user: drh tags: trunk)
2019-12-26
23:40
If an UPSERT can cause an Abort due to a constraint failure, make sure the query planner knows this. Ticket [7c13db5c3bf74001]. (check-in: f14ce948 user: drh tags: trunk)
23:16
An UPDATE of a table that is indexed by a constant virtual column that uses the one-pass optimization might cause the table seek to be omitted before reaching row DELETE/INSERT. Fix this by coding an extra OP_Column in that circumstance. Ticket [ec8abb025e78f40c] (check-in: e5456049 user: drh tags: trunk)
14:36
Fix an assert() in fts5 that could fail if an xSavepoint() call on another vtab fails. Fix for [167b2aac] . (check-in: a5d7f5d2 user: dan tags: trunk)
01:10
Makefile.in fix so that it works on systems that require a .EXE suffix on executables. (check-in: f482a4cd user: drh tags: trunk)
01:02
Add two new fuzzer test cases from dbsqlfuzz. (check-in: f8d5586a user: drh tags: trunk)
00:56
In the xAccess() method of the unix VFS, return true if the named object is a directory, regardless of what stat() reports as the st_size for the object. Different filesystems report st_size differently for directories. Problem reported on the mailing list by Stefan Brüns. (check-in: c8c6dd0e user: drh tags: trunk)
00:54
Fix an FTS3 test case that depends on the ICU extension so that it only runs if SQLite is compiled with ICU. (check-in: 19c6240b user: drh tags: trunk)
00:53
Fix an incorrect assert() added by check-in [fa58aad48a788802]. Problem found by dbsqlfuzz. (check-in: a17b29f0 user: drh tags: trunk)
00:20
Disable the optimization that tries to pull the value of an expression from an index on that expression if the expression is a constant. (check-in: e5fd8b50 user: drh tags: trunk)
2019-12-25
23:54
When the sqlite3WindowRewrite() routine detects and error, have it convert the SELECT statement into just "SELECT null" so that it does not leave the parse tree in a goofy state that can cause problems with subsequent code before the stack has a chance to unwind and report the error. Ticket [d87336c81c7d0873] (check-in: fa58aad4 user: drh tags: trunk)
2019-12-24
21:42
Fix a minor performance regression from check-in [401c9d30e06191d9] (check-in: 76f54ee8 user: drh tags: trunk)
21:01
Backout the early VTable cursor close change from yesterday, as Yongheng and Rui have found a test case for which it fails. The new test case is added to fuzzcheck. (check-in: ddb10f03 user: drh tags: trunk)
20:51
Fix a problem causing fts5 integrity-check failures if numeric values are inserted into a table within a utf-16 database. Fix for [752fdbf6]. (check-in: bae060f3 user: dan tags: trunk)
18:53
Make the zipfile() extension function more robust against zero-length filenames. (check-in: b9c2005f user: drh tags: trunk)
16:20
Fix another case where malformed utf-8 was being mishandled in fts5. Fix for [df46a6f3]. (check-in: 1c0a05b0 user: dan tags: trunk)
15:35
Fix an assert() added as part of commit [a11b393dc] that can fail if fts5 database records are corrupt. (check-in: 4630c1ec user: dan tags: trunk)
15:01
Extra defense against problems following an OOM. dbsqlfuzz find. Also import the latest dbsqlfuzz test cases. (check-in: 0a70f5dd user: drh tags: trunk)
14:27
Fix a spurious report of corruption that could be made by the fts5 integrity-check in SQLITE_DEBUG builds if the fts5 index contains malformed utf text. Ticket [d62981b76de521e3] (check-in: a11b393d user: dan tags: trunk)
13:41
Convert an ALWAYS() into an assert() with an extra error term. Dbsqlfuzz find, with test case in TH3. (check-in: b473ad35 user: drh tags: trunk)
01:53
Allow comparison operators of a register against itself. Ticket [188f912b51cd802a], (check-in: 401c9d30 user: drh tags: trunk)
2019-12-23
21:11
Test case for the zipfile-extension bug fix of the previous check-in. (check-in: bc8bfc7f user: drh tags: trunk)
21:04
Fix the zipfile() function in the zipfile extension so that it is able to deal with goofy filenames that contain embedded zeros. (check-in: cc0fb00a user: drh tags: trunk)
20:41
Thoroughly reset the rtree cursor at the start of each VFilter operation, including clearing its cache. This prevents left over pages in the cache which can cause problems on shutdown after a LEFT JOIN. Ticket [5eadca17c4dde90c] (check-in: 4c50afaf user: drh tags: trunk)
20:07
Remove an extra deflateInit2() call accidently left in check-in [f5ee30426e8876e7] (check-in: 953e6aa6 user: drh tags: trunk)
19:28
Do an early close of virtual table cursors to avoid unnecessary cursor contention in UPDATE for some virtual table implementations. Ticket [56a74875be799b85] (check-in: eb95dac7 user: drh tags: trunk)
18:02
Early detection of database corruption in balance_deeper(). (check-in: 61c22336 user: drh tags: trunk)
15:17
Fix a case in which SQLite could fail to identify "x BETWEEN ? AND ?" being true as implying that x is not null. Ticket [dfd66334]. (check-in: 2f179749 user: dan tags: trunk)
14:20
For expressions like (x, y) IN (SELECT ...) where the SELECT uses window-functions, require that all columns on the LHS be indexed before an index can be used. Fix for [d9ed4ebe]. (check-in: 0b1dbd60 user: dan tags: trunk)
13:24
Fix a shift-overflow problem in yesterday's check-in [36fdeb4f0a66970a] that OSSFuzz helpfully discovered overnight. Thanks Google. (check-in: bff38e2b user: drh tags: trunk)
03:37
Fix the OP_Cast operator so that when casting to TEXT, it always leaves the result in the encoding of the database. Ticket [0911b5d161b039c6]. Test cases in TH3. (check-in: f347744e user: drh tags: trunk)
02:43
Change the assert() back into a testcase(). See also check-ins [9ab985a9c8160b90] and [ddb17d92df194337] and other check-ins that those reference. Fix for ticket [9d708e474201c001] (check-in: 2c44c734 user: drh tags: trunk)
02:18
Enhance the sqlite3VdbeMemAboutToChange() shallow-copy validation mechanism by adding the new OP_ReleaseReg opcode to tell MemAboutToChange() that a range of registers is no longer needed so that the source register can be freely changed. This is a change to debugging and test builds only and does not impact release builds. Fix for ticket [c62c5e58524b204d] and [5ad2aa6921faa1ee]. The previous fix to ticket [5ad2aa6921faa1ee] is backed out by this change since this change is a better fix. (check-in: 36fdeb4f user: drh tags: trunk)
2019-12-22
23:48
Change the code generator for the IN operator so that it avoids creating OP_Eq and OP_Ne opcode with the same P1 and P3 arguments. This enables us to back out check-in [ddb17d92df194337] and also fix ticket [188f912b51cd802]. (check-in: 9ab985a9 user: drh tags: trunk)
20:29
Make a hard copy of strings in constraint checks prior to applying OP_RealAffinity, to avoid problems with a pointer accounting assert. This change is not strictly necessary - the correct answer is obtained without it and no UB occurs - however the pointer accounting asserts are useful to prevent other problems so it is a simple matter to bring this piece into compliance. Ticket [5ad2aa6921faa1ee] (check-in: 89a9dad6 user: drh tags: trunk)
20:03
When constructing the virtual MATCH term of the WHERE clause for a virtual table that is in a LEFT JOIN, be sure to set the correct Expr.iRightJoinTable value. This value does not appear to ever be used, except inside of a single assert(). But it is good to set it correctly, nevertheless. This fixes ticket [7929c1efb2d67e98], which as far as I can tell is completely harmless. (check-in: ef604882 user: drh tags: trunk)
19:41
In the WHERE clause debugging output (the .wheretrace output) show the parent index of any WhereTerm that is a child. (check-in: 7fc73332 user: drh tags: trunk)
18:55
Fix to the optimization of check-in [a47efb7c8520a011] that reads the values of expressions used in an index-on-expression directly from the index rather than recomputing the value. If the expression has a top-level COLLATE or unlikely() operator, be sure to clear the corresponding flags prior to converting it into a TK_COLUMN expression. Failure to do this is most likely harmless in production, but might cause an assertion fault in debugging builds. Ticket [b0cb8aff561a6dcd]. Test cases in TH3. (check-in: 56539e1c user: drh tags: trunk)
18:23
Back out the asserts of check-ins [a500893b6f64aced] and [d9c9fe9f5ad3fc91] as ticket [1b06916e01c82b66] demonstrates a case that refutes them. (check-in: ddb17d92 user: drh tags: trunk)
18:06
When parsing a CREATE TABLE from the sqlite_master table, delete the CHECK constraints if there are any errors, since there might otherwise be attempts to use those CHECK constraints if PRAGMA writable_schema=ON is set. This undoes the fix in check-in [ea721b34477ab8b4] for a more general solution. (check-in: a982e643 user: drh tags: trunk)
17:32
Ensure sqlite3WindowRewrite() is called on a SELECT statement before any terms aremoved from it as part of IN() clause processing. Fix for [f00d096ca]. (check-in: 8c856404 user: dan tags: trunk)
14:29
Fix "PRAGMA data_version" so that it works the same way with locking_mode=PERSIST and journal_mode=PERSIST configured. Fix for 7a458c2a5f. (check-in: 45748e2d user: dan tags: trunk)
2019-12-21
20:43
Fix a spurious report of corruption from the fts3/4 integrity-check triggered by using the languageid option. (check-in: 70815e27 user: dan tags: trunk)
19:37
When creating a new virtual table, ensure that the OP_ParseSchema opcode processes the correct entry in the sqlite_master table even if there is a second entry with the same name and table values due to database corruption and the use of writable_schema=ON. Dbsqlfuzz find. (check-in: 4dbb6e1c user: drh tags: trunk)
14:09
When a corrupt schema is loaded using writable_schema=ON, the CHECK constraints (or other expressions in the table definition) might not be fully resolved. Ensure that the code generator can deal with this if the table is subsequently used in a DML statement. dbsqlfuzz find. (check-in: ea721b34 user: drh tags: trunk)
2019-12-20
22:46
Do not try to access a generated column through an index if the collating sequence for the generated column is non-standard. Part 2 of ticket [e0a8120553f4b082] (check-in: 056bb8dc user: drh tags: trunk)
20:45
Apply real affinity to generated columns of type REAL that are extract from an index. Ticket [e0a8120553f4b082] (check-in: 728ad39e user: drh tags: trunk)
20:08
Debugging enhancment: Show the Expr.y.pTab pointer on TK_COLUMN nodes of an expression tree in the treeview. (check-in: 64154ac4 user: drh tags: trunk)
20:03
Fix a bad interaction between RBU and [df51ae19]. (check-in: 0b9d8a12 user: dan tags: trunk)
19:41
Fix two more cases in fts5 where sqlite3_value_bytes() was being called before sqlite3_value_text(). Fix for e431c355. (check-in: a1ba9a37 user: dan tags: trunk)
17:41
Export the public RBU entry points from the Win32 DLL. (check-in: e62d1791 user: mistachkin tags: trunk)
17:25
Debugging improvement: when tracing the VDBE, output the register value for OP_Cast after the cast is completed. (check-in: dc5f1d28 user: drh tags: trunk)
15:35
When computing dependencies on WHERE-clause terms, be sure to take into account the FILTER clause of aggregate functions. Problem reported by Manuel Rigger. (check-in: 3cc2b570 user: drh tags: trunk)
14:37
Improved assert() statements on the OP_Column opcode. (check-in: c538601e user: drh tags: trunk)
14:24
Load new dbsqlfuzz test cases into test/fuzzdata8.db. (check-in: 01aeeb5c user: drh tags: trunk)
14:18
Fix a potential problem with ALTER TABLE commands on schemas that contains a triggers or view featuring a sub-query that uses an ON clause with a join that is not a LEFT JOIN. (check-in: 365dd8b6 user: dan tags: trunk)
14:08
Fix harmless compiler warnings. (check-in: 2bbd014c user: drh tags: trunk)
13:24
Ensure fts5 consistently calls sqlite3_value_text() before sqlite3_value_bytes(). This matters when storing blobs in fts5 tables within utf-16 databases. Fix for [cf36cb4e02]. (check-in: c16305eb user: dan tags: trunk)
12:55
Do not continue an ALTER TABLE tree walk of a subquery if a prior error is seen in the tree. Report the problem immediately, without continuing. (check-in: 01ca865f user: drh tags: trunk)
12:33
Fix an assert() in btree.c that can fail if an INSERT is attempted on a corrupted database while in PRAGMA writable_schema=ON. (check-in: 07beb362 user: drh tags: trunk)
2019-12-19
22:08
Continuation of [e2bddcd4c55ba3cb]: Add another spot where it is necessary to abort early due to prior errors in sqlite3WindowRewrite(). (check-in: cba2a2a4 user: drh tags: trunk)
21:11
Fix the regexp extension so that it correctly translates all over-length 3-byte UTF8 sequences into 0xfffd. (check-in: 3d4c0bf8 user: drh tags: trunk)
20:37
When an error occurs while rewriting the parser tree for window functions in the sqlite3WindowRewrite() routine, make sure that pParse->nErr is set, and make sure that this shuts down any subsequent code generation that might depend on the transformations that were implemented. This fixes a problem discovered by the Yongheng and Rui fuzzer. (check-in: e2bddcd4 user: drh tags: trunk)
17:42
Detect the invalid use of NULLS LAST on an INTEGER PRIMARY KEY definition of a WITHOUT ROWID table. (check-in: 4417c5bf user: drh tags: trunk)
15:15
Fix the zipfile extension so that INSERT works even if the pathname of the file being inserted is a NULL. Bug discovered by the Yongheng and Rui fuzzer. (check-in: a80f84b5 user: drh tags: trunk)
13:17
Fix incorrect SQL generated by the Lemon change of the previous check-in. (check-in: fccfb8a9 user: drh tags: trunk)
12:29
Modify the parse.sql output file from Lemon so that the RULE table contains a column with the complete text of the rule. (check-in: 329cbb37 user: drh tags: trunk)
03:14
More restrictions on changes to shadow tables when in defensive mode. (Leaf check-in: 4146c629 user: drh tags: branch-3.30)
00:59
Minor enhancement to Win32 locking semantics. (Leaf check-in: ed66ffce user: mistachkin tags: win32LockFlags)
2019-12-18
21:22
Change an unreachable testcase() into an assert() (check-in: 062e00c4 user: drh tags: trunk)
20:51
Continue to back away from the LEFT JOIN optimization of check-in [41c27bc0ff1d3135] by disallowing query flattening if the outer query is DISTINCT. Without this fix, if an index scan is run on the table within the view on the right-hand side of the LEFT JOIN, stale result registers might be accessed yielding incorrect results, and/or an OP_IfNullRow opcode might be invoked on the un-opened table, resulting in a NULL-pointer dereference. This problem was found by the Yongheng and Rui fuzzer. (check-in: 86297431 user: drh tags: trunk)
13:42
Add the --vdbe-debug option to fuzzcheck. (check-in: 289158aa user: drh tags: trunk)
13:02
Enhancements to fuzzcheck on unix so that it captures signals and prints the current test file and test number prior to terminating. (check-in: ae7cbb24 user: drh tags: trunk)
09:17
Add a test case for fix in check-in [1ca0bd982ab1183b] (check-in: 519864da user: drh tags: trunk)
02:12
Correctly unwind the savepoint stack if the database goes read-only in the middle of a savepoint. (check-in: a96d02b4 user: drh tags: trunk)
01:31
Remove an assert() in the code generator that can fail due to an invalid INSERT statement. The same assert() appears again in the VDBE and will fire there if the problem persists in an SQL statement that does not contain errors. Gramfuzz find. (check-in: 9bdd57cb user: drh tags: trunk)
00:05
When processing constant integer values in ORDER BY clauses of window definitions (see check-in [7e4809eadfe99ebf]) be sure to fully disable the constant value to avoid an invalid pointer dereference if the expression is ever duplicated. This fixes a crash report from Yongheng and Rui. (check-in: 1ca0bd98 user: drh tags: trunk)
2019-12-17
12:03
Clean up the ExprList that holds the names of columns in a CTE before checking for unused references in the ALTER TABLE implementation. (check-in: 8223e79f user: drh tags: trunk)
2019-12-16
16:52
When a table is part of a LEFT JOIN and should be a completely NULL row due to the semantics of a LEFT JOIN, make sure any generated columns on that row evaluate to NULL. Ticket [3b84b42943644d6f] (check-in: 02714914 user: drh tags: trunk)
2019-12-15
02:49
Ensure that all ON CONFLICT REPLACE indexes are sorted to the end of the list of indexes for a table, even for weird cases where the same UNIQUE constraint occurs twice with the ON CONFLICT REPLACE clause only on the second one. This avoids an out-of-order contraint processing problem that can arise due to the optimization of check-in [469a62ca33081854]. (check-in: 1e3918ca user: drh tags: trunk)
00:36
Abort the OP_Savepoint opcode early if a virtual table xSync method fails, perhaps due to an interrupt. (check-in: 672e749a user: drh tags: trunk)
2019-12-14
19:55
When a generated column expression is initially parsed, if it contains errors convert the expression to a simple NULL. This prevents additional pieces of the expression tree that are allocated from lookaside from leaking into the schema, where lookaside allocations are not allowed. (check-in: a89b3860 user: drh tags: trunk)
18:08
Due to the previous change, the p5 parameter to OP_VColumn no longer ever contains extraneous bits, so change a testcase() into an assert() to show as much. (check-in: 5b4a88cd user: drh tags: trunk)
17:43
Do not set OP_Column flags on the instructions generated by sqlite3ExprCodeGetColumn() if the opcode generated is not really an OP_Column, which might happen if the column is virtual. Fix for ticket [b439bfcfb7deedc6] (check-in: 2401e047 user: drh tags: trunk)
15:01
Make the sqlite3ExprCodeTarget() expression code generator routine robust in the face of unknown opcodes - it simply generates a NULL value. (check-in: f8e876c8 user: drh tags: trunk)
14:15
Fix problems in fts3 with processing corrupt records and undefined integer overflows. (check-in: 3b873029 user: dan tags: trunk)
2019-12-13
23:38
Fix an utterly harmless "applying zero offset to null pointer" UB warning in sqlite3AtoF(): (check-in: 052fdf5e user: drh tags: trunk)
22:59
Initial exploration of blocky APIs, starting with a variant of sqlite3_exec. (Leaf check-in: fd849d5b user: numist tags: blocky-exec)
21:24
Patch to the page cache to avoid harmless pointer arithmetic that due to bugs in the STD-C spec is technically UB. This is to fix a harmless UBSAN complaint that OSSFuzz is hitting. (check-in: c29fc212 user: drh tags: trunk)
16:04
Change the default lookaside configuration to 40 slots of 1200-bytes each. This actually works out to 30 big slots and 93 small slots using the mini-lookaside allocator. We get the same (or better) lookaside coverage but with 72KB less memory per connection. (check-in: 47b71a84 user: drh tags: two-size-lookaside)
15:48
Cleanup and performance enhancements for mini-lookaside. (check-in: 74805668 user: drh tags: two-size-lookaside)
12:14
Merge fixes from trunk. (check-in: 9c471195 user: drh tags: two-size-lookaside)
11:42
Ensure that there is a containing SELECT statement when processing a normal aggregate function as if it were a window function. (check-in: c1014e80 user: drh tags: trunk)
11:32
*Remove* the macros, not just comment them out. (check-in: e5dc2939 user: drh tags: trunk)
11:31
Remove unused macros formerly used to define built-in aggregate functions. (check-in: 3ef0d44e user: drh tags: trunk)
01:12
Reduce the size of ExprList to 24-bytes per entry, down from 32-bytes per entry. This helps keep lookaside allocations in the mini-size. (check-in: bda92d92 user: drh tags: two-size-lookaside)
00:49
Tie up the loose ends in the ExprList size reduction. (Leaf check-in: 59d0f3af user: drh tags: two-size-lookaside, exprlist-size-reduction)
2019-12-12
22:11
Work toward reducing the incremental size of an ExprList object to 24-byte per entry, from 32-bytes (on a 64-bit machine). This helps the new mini-lookaside allocator to run better by avoiding excessive reallocs. The current change mostly works, but still has a few loose ends to tie up. This check-in is merely a snapshot to save my work. (check-in: fdda76cf user: drh tags: two-size-lookaside, exprlist-size-reduction)
20:58
Reduce the number of call sites to dbMallocRawFinish in the case where n > lookaside.sz (check-in: e392e7f2 user: numist tags: two-size-lookaside)
20:39
Fix an issue where malloc could be used to fulfill a small allocation when a large lookaside slot could have beeen used instead. (check-in: 611020e3 user: numist tags: two-size-lookaside)
20:22
Change the name of the Expr.a.zName field to zEName, so that it has a name that is distinct from other fields and variables and is hence easier to grep for. (check-in: d3783357 user: drh tags: two-size-lookaside)
17:17
Change the size of a mini-lookaside allocation to a macro (MINI_SZ) rather than a magic number (128). (check-in: 5e1949bc user: drh tags: two-size-lookaside)
16:49
Merge enhancements from trunk. (check-in: 6cb053f9 user: drh tags: two-size-lookaside)
15:19
Factor out the conditional (which is only true for rare errors) from the notValid() function in resolve.c, for a performance improvement and size reduction. Also cause failures to set the Expr node to a NULL operator so that it does not cause problems later in case PRAGMA writable_schema=ON has been set. Test cases in TH3. (check-in: c6af9f65 user: drh tags: trunk)
02:50
More efficient implementation of a lookaside allocator that supports mini (in this case, harcoded to 128B) slots. (check-in: b02fdc09 user: numist tags: two-size-lookaside)
00:20
Fix goofy string formatting in lemon.c that dates from the K&R-C days. (check-in: 48ba5e5a user: drh tags: trunk)
2019-12-11
18:53
Improved tracing output from the LEMON-generated parser. (check-in: 4d6d2fc0 user: drh tags: trunk)
16:22
Strengthen check-in [83da4d4104ee1870] by ignoring *all* WHERE-clause constraints for a virtual table that is the right table of a LEFT JOIN, as such constraints are never useful. This fixes an issue discovered by Manuel Rigger. (check-in: 840de36d user: drh tags: trunk)
15:07
When trying to drop a virtual table that has no xDestroy method, invoke the xDisconnect method rather than doing nothing, to avoid a memory leak. (check-in: 1fa29a5f user: drh tags: trunk)
14:25
The xDestroy method of a module might be NULL if the schema is corrupt. (check-in: 0457e7d1 user: drh tags: trunk)
2019-12-10
20:41
Enhance LEMON to provide the ability to mark a rules as one that will never reduce due to intervention of actions. Use this new capability to designate the EXPLAIN rule as NEVER-REDUCES. (check-in: 136cdefb user: drh tags: trunk)
18:10
Use a statement journal on a CREATE VIRTUAL TABLE statement in case the VCreate opcode fails. (check-in: aa3b0eb8 user: drh tags: trunk)
15:05
Fix parser bugs: require a semicolon after an EXPLAIN command. (check-in: 707a058a user: drh tags: trunk)
03:40
Avoid a buffer overread in fts5 that could occur when parsing corrupt configuration records. (check-in: 355afd77 user: dan tags: trunk)
02:48
Set the affinity of regular columns prior to computing the values of generated columns. Ticket [d7c3f125c925c522] (check-in: d47d66e3 user: drh tags: trunk)
2019-12-09
19:44
Rename a local variable to avoid masking a function parameter and thus causing a harmless compiler warning. (check-in: f065cf00 user: drh tags: trunk)
19:29
Add a NEVER() to the ALTER TABLE fix in check-in [1d2e53a39b87e364] (check-in: c7309ed3 user: drh tags: trunk)
18:22
The previous check-in was not quite correct, and introduced a new problem with the USING clause. Use this version instead. (check-in: ed28aaa4 user: drh tags: trunk)
17:14
Ensure that the SrcList_item.colUsed field is set correctly (set to have a 1 for all columns of the table) when a generated column appears in the USING clause of a join. (check-in: 1923efb2 user: drh tags: trunk)
15:52
Fix the NOT NULL verification logic in PRAGMA integrity_check so that it works for generated columns whose value is the result of a comparison operator. Ticket [bd8c280671ba44a7] CVE-2019-19646. (check-in: f3b39c71 user: drh tags: trunk)
14:34
Fix a gramfuzz find. If a partial index that does not reference any column of its table is used by an UPDATE statement in one-pass mode, then avoid the use of OP_DeferredSeek since the seek might not be resolved prior to the OP_Delete and OP_Insert that implement the UPDATE. (check-in: e3398c5f user: drh tags: trunk)
08:13
Avoid infinite recursion in the ALTER TABLE code when a view contains an unused CTE that references, directly or indirectly, the view itself. (check-in: 1d2e53a3 user: dan tags: trunk)
02:20
Fix possible null pointer dereferences in the fts5_expr() scalar function. (check-in: c5d44143 user: dan tags: trunk)
2019-12-08
00:06
Fix incorrect column-usage accounting associated with generated columns and added by check-in [6601da58032d18ae]. Fix for ticket [b92e5e8ec2cdbaa1]. (check-in: 9d75e1cc user: drh tags: trunk)
2019-12-07
13:42
Correctly deal with multi-row VALUES clauses that contain window functions. (check-in: 26d991f2 user: drh tags: trunk)
12:13
Ignore type affinity for auxiliary columns in RTREE as it is too error-prone to try to parse out the type from other constraints. Ticket [8bf76328ac940d52] (check-in: 7fa664ea user: drh tags: trunk)
00:22
Fix a problem with foreign keys and generated columns discovered by Manuel Rigger. (check-in: 27c0fdab user: drh tags: trunk)
2019-12-06
19:07
Early detection and reporting of too few columns in an rtree CREATE VIRTUAL TABLE statement. (check-in: ef73107f user: drh tags: trunk)
13:10
In the rtree extension, actively suppress extra tokens on the column names, and be pedantic about column affinities. Ticket [367a86e28859f1ff] (check-in: 97fb5a72 user: drh tags: trunk)
11:48
The check-in [b7810062ec2489e1] was not quite right in that it allowed an oversized shift operation (which is UB in C) on some obscure inputs. OSSFuzz found the problem for us overnight. (check-in: 62f2235a user: drh tags: trunk)
01:38
Further enhancements to RTREE, following up to check-in [f898d04cf272ef01] so that constraints are allowed to be compared to strings that look like numbers. Ticket [aa573a787b8f1fdf] (check-in: 32772dfd user: drh tags: trunk)
01:23
Do not allow UPSERT of a view. (check-in: ebf897e8 user: drh tags: trunk)
2019-12-05
21:46
Fix to the rowvalue logic that avoids disabling rowvalue inequality contraints on a virtual table when the virtual table sets the omit flag. The logic has been incorrect since row-values were added. However, this does not come up often as very few virtual tables implement inequality constraints using the omit flag. Ticket [f096d191b6641daa] (check-in: b7810062 user: drh tags: trunk)
18:29
Documentation update: Clarify that the sqlite3_index_info.aConstraintUsage.omit flag is a hint only and that the code generator is not obligated to follow the hint. (check-in: 7d3e3f6e user: drh tags: trunk)
17:31
Additional debugging information printed with the ".wheretrace 0x100" option. No changes to normally delivered code. (check-in: fc72ec52 user: drh tags: trunk)
14:42
Make sure the rowid of an RTREE virtual table has integer affinity. Ticket [9fe487ba3c064b4e] (check-in: 7ae8c0d5 user: drh tags: trunk)
14:31
Fix a problem in ALTER TABLE that could occur if an index, view or trigger in the schema features an expression of the form ((SELECT ...) IN ()) where the SELECT statement uses a CTE. (check-in: 7e5ad8e0 user: dan tags: trunk)
13:34
Be strict about type enforcement on rowid look-ups in the RTREE extension. Ticket [30e2c183b6b356e4] (check-in: d43e0efb user: drh tags: trunk)
00:44
Enhance the RTREE extension so that it give correct query results even if the query uses non-numeric constraints. Ticket [a55ab6d97d01ecbc] (check-in: f898d04c user: drh tags: trunk)
2019-12-04
19:45
Window functions are never constant. (check-in: 35f0b5a8 user: drh tags: trunk)
15:08
Ensure that an ALWAYS() in the rename logic really is always true, even for faulty inputs. (check-in: 54410f0e user: drh tags: trunk)
14:26
Fix an assert() failure that could occur in ALTER TABLE code when the schema contains a view that uses a CTE. (check-in: 75b04a4b user: dan tags: trunk)
03:46
Fix a buffer overread that could occur in fts3 with corrupt %_stat records. (check-in: e01fdbf9 user: dan tags: trunk)
03:31
Fix an incorrect NEVER() macro. (check-in: 96b6a76d user: drh tags: trunk)
01:42
Fix a double-free that could occur when a component of a compound SELECT with an ORDER BY clause uses named window definitions. (check-in: 92893b79 user: dan tags: trunk)
2019-12-03
03:34
Avoid a crash that could occur when a database containing a table with a temp trigger that has the same name as a temp table is detached. (check-in: c4cb9708 user: dan tags: trunk)
03:31
Avoid a harmless zero offset of a null pointer in FTS3, so as to not provoke unnecessary warnings from run-time checkers. (check-in: 85d95abe user: drh tags: trunk)
02:51
Avoid computing a zero offset of a null pointer, which though this is technically harmless, is upsetting to pedantic run-time checkers. (check-in: 3ce804e9 user: drh tags: trunk)
2019-11-30
19:29
Do not allow a term in the WHERE clause of the query to qualify a partial index on the right table of a LEFT JOIN. Ticket [7f39060a24b47353] (check-in: 4066a34d user: drh tags: trunk)
2019-11-29
13:01
Add comments in the parse.sql file to help demonstrate how rules are encoded. (check-in: 2c4f7148 user: drh tags: trunk)
12:51
Fix the parse.sql output file so that it is readable into a database where foreign keys are enforced. (check-in: 3a82c554 user: drh tags: trunk)
2019-11-27
20:40
More details on the comment justifying the aleged data race in the WAL-mode checkpoint logic. (check-in: 0fab65c7 user: drh tags: trunk)
12:03
Fix obsolete comment. No changes to code. (Leaf check-in: 0ff59edb user: drh tags: reuse-shm)
2019-11-26
14:24
Fix various documentation typos suggested by Mark Benningfield. No changes to code. (check-in: 08f09dc4 user: drh tags: trunk)
11:10
Fix to check-in [5d9a369301a65f32] so that it compiles without SQLITE_DEBUG. (check-in: fefe2d04 user: drh tags: trunk)
02:22
Add the new -S option to the lemon parser generator to cause it to output SQL that describes the input grammar. (check-in: 4dbd398d user: drh tags: trunk)
02:03
Fix an assert() in fts3 that could fail due to corrupt database records. (check-in: 5d9a3693 user: dan tags: trunk)
2019-11-25
23:55
Experimental file-controls for controlling the use of the -shm file. (check-in: 12b8fa23 user: drh tags: reuse-shm)
04:15
Modify journal3.test so that it can handle Tcl command "file attr <file> -perm" returning octal values in either "00755" or "0o755" format. (check-in: b0b65562 user: dan tags: trunk)
00:07
Minor enhancements to the TclKit download tool. (check-in: 75e31b1d user: mistachkin tags: trunk)
2019-11-23
16:34
Abort the window function tree rewrite early following an OOM. (check-in: d66f95a5 user: drh tags: trunk)
15:10
Avoid evaluating PARTITION BY or ORDER BY expressions multiple times for window function queries that use multiple window functions with the same window-definition. (check-in: 57070c68 user: dan tags: trunk)
08:51
Enhance the path arguments in JSON functions to access "#-N" array indexes. (check-in: ffeec62c user: drh tags: trunk)
08:36
Fix a memory leak in fts5 error handling code. (check-in: de6637e1 user: dan tags: trunk)
2019-11-22
17:37
Extend the json-path mechanism with array indexes of the form "#" or "#-n" for some positive number "n", to reference the end of an array. (Closed-Leaf check-in: 35ed68a6 user: drh tags: json-path-enhancement)
11:49
Fix a harmless compiler warning. (check-in: 34343c4b user: drh tags: trunk)
11:47
Fix an indentation error and improve the placement of an assert() based on a tweet from Yuri Kotov. (check-in: e6314e38 user: drh tags: trunk)
11:38
Add more test cases from Yongheng Chen and Rui Zhong. (check-in: f24e6ca4 user: drh tags: trunk)
10:14
Fix a crash that could occur if a sub-select that uses both DISTINCT and window functions also used an ORDER BY that is the same as its select list. (check-in: bcdd66c1 user: dan tags: trunk)
00:42
Revise the SQLITE_OPEN_NOFOLLOW so that it actually uses O_NOFOLLOW in the open() system call. This backs out the SQLITE_ACCESS_SYMLINK value but adds the new SQLITE_OK_SYMLINK return code from the xFullPathname method of sqlite3_vfs when that routine resolves symbolic links. O_NOFOLLOW is always included in open() system calls for journal files. (check-in: 6a64fb6a user: drh tags: trunk)
2019-11-21
20:24
Add all fuzz-test cases received from Yongheng Chen and Rui Zhong. Also fix a minor problem in gencol1.test cases. (check-in: ac080432 user: drh tags: trunk)
20:10
Fix an out-of-bounds array reference in the generated column logic. Problem discovered by valgrind. (check-in: a0ab42f7 user: drh tags: trunk)
19:37
Whenever a generated column is used, assume that all columns are used. (check-in: 6601da58 user: drh tags: trunk)
18:28
Fix a problem that comes up when using generated columns that evaluate to a constant in an index and then making use of that index in a join. (check-in: 8b12e95f user: drh tags: trunk)
17:14
Fix a recently introduced memory leak in the test code in test_vfs.c. (check-in: 2d53a30c user: dan tags: trunk)
14:20
Prevent direct and indirect recursive content= options in fts3/4 and fts5. (check-in: 2eb99732 user: dan tags: trunk)
2019-11-20
16:10
Fix a use-after-free problem in the test suite. No changes to production code. (check-in: 0d1055a5 user: dan tags: trunk)
13:31
Further improve detection of corrupt records in fts3. Also fix an error with check-in [dfcf081d842629a0] (check-in: a0f6d526 user: dan tags: trunk)
12:07
Changes to extensions and test logic so that the build works with gcc and with -std=iso9899:1999 (check-in: 2575a68c user: drh tags: trunk)
2019-11-19
21:22
Enhancements to DBSTAT: (1) Make name=? queries efficient. (2) Add the ability to aggregate results across each individual btree using the aggregate=TRUE constraint in the WHERE clause. (check-in: a48f6e17 user: drh tags: trunk)
18:48
Get the aggregate=TRUE feature working on the DBSTAT virtual table. (Closed-Leaf check-in: 16fef3db user: drh tags: dbstat-enhancements)
14:01
Begin an enhancement effort for the built-in DBSTAT virtual table. (check-in: 9b5722f0 user: drh tags: dbstat-enhancements)
00:13
Make the result of sqlite3_normalized_sql() survive its statement being reprepared. (check-in: 4330f079 user: mistachkin tags: trunk)
2019-11-18
23:48
Add support for the SQLITE_ACCESS_SYMLINK flag in the Win32 VFS. (check-in: 175c1500 user: mistachkin tags: trunk)
22:34
Ensure all file names passed to the VFS layer are double-zero terminated. (check-in: 251230cf user: mistachkin tags: trunk)
18:43
In the SQLITE_OPEN_NOFOLLOW processing, distinguish between an I/O error on the xAccess() call and an actual symlink encounter. (check-in: 2e98b42f user: drh tags: trunk)
17:46
Add support for SQLITE_OPEN_NOFOLLOW. (check-in: cb79c828 user: drh tags: trunk)
14:04
Improvements to detection of corruption in the %_stat shadow table of FTS4. (check-in: 6b67eba5 user: drh tags: trunk)
12:04
Further improvements to shadow table corruption detection in FTS3. (check-in: e35d8c76 user: drh tags: trunk)
11:14
Detect and prevent infinite recursion in fts3SelectLeaf() due to a malformed FTS3 btree. (check-in: dfcf081d user: drh tags: trunk)
10:37
Improved detection of corruption in the %_stat table of FTS4. Chromium ticket 1025467. (check-in: 10f8a3b7 user: drh tags: trunk)
2019-11-17
11:47
Fix an assert that can fail if the schema is corrupt. (check-in: ed57c48e user: drh tags: trunk)
02:41
Better detection of corruption in the %_stat and %_docsize shadow tables of FTS3. (check-in: 1e449687 user: drh tags: trunk)
00:08
Remove a reachable NEVER() in FTS3. (check-in: 8bd75bf6 user: drh tags: trunk)
2019-11-16
23:47
More improvements to shadow table corruption detection in FTS3. (check-in: 51525f9c user: drh tags: trunk)
21:40
Improved detection of corrupt shadow tables in FTS3. Enable the debugging special-inserts for FTS3 for both SQLITE_DEBUG and SQLITE_TEST. (check-in: 04b2873b user: drh tags: trunk)
18:36
Do not allow shadow tables to be dropped in defensive mode. (check-in: 0a988ce3 user: drh tags: apple-osx)
18:30
Modify three test cases so that they work even with unusual versions of the library printf(). (check-in: c2528907 user: drh tags: apple-osx)
16:54
More restrictions on changes to shadow tables when in defensive mode. (check-in: bae76a5c user: drh tags: trunk)
14:15
Do not allow CREATE TABLE or CREATE VIEW of an object with a name that looks like a shadow table name. (Closed-Leaf check-in: 6aef58b6 user: drh tags: defensive-improvements)
13:51
Break out the test for writable shadow tables into a separate subroutine. (check-in: 8ad34d36 user: drh tags: defensive-improvements)
12:04
Do not allow shadow tables to be dropped in defensive mode. (check-in: 70390bbc user: drh tags: trunk)
11:33
Fix a potential NULL pointer dereference on a RENAME TABLE that references a VIEW with a logic error in a window function in the ORDER BY clause. (check-in: 0adb273f user: drh tags: trunk)
2019-11-15
21:16
Modify three test cases so that they work even with unusual versions of the library printf(). (check-in: 8f4a3750 user: drh tags: trunk)
02:52
Merge the version 3.30.1 changes into the apple-osx branch. (check-in: 2c8af352 user: drh tags: apple-osx)
00:52
Fix table-valued functions so that they will work as the right table in a LEFT JOIN. Ticket [2ae0c599b735d59e] (check-in: 2c35d3f6 user: drh tags: trunk)
2019-11-14
23:08
Backport support for the sqlite3_hard_heap_limit64() interface and the hard_heap_limit pragma to the 3.30 branch. (check-in: ba27012d user: drh tags: branch-3.30)
18:07
Add support for the sqlite3_hard_heap_limit64() interface and the hard_heap_limit pragma. (check-in: 6399c47e user: drh tags: trunk)
17:46
Fix a bug in the hard_heap_limit pragma so that it returns the new value of the hard_heap_limit, not the soft_heap_limit. Change SQLITE_MAX_MEMORY so that it works by setting the default hard_heap_limit value. (Closed-Leaf check-in: 33fd0c3a user: drh tags: hard-heap-limit)
15:21
Merge recent enhancements from trunk. (check-in: b8a631fd user: drh tags: hard-heap-limit)
15:10
Minor documentation enhancements. No changes to code. (check-in: 6153f3aa user: drh tags: hard-heap-limit)
13:57
New test cases added to fuzzdata8.db. (check-in: 5baffcda user: drh tags: trunk)
13:24
Ensure that the same subquery does not go through the window-function rewrite more than once, even when that subquery is part of a virtual table constraint that lacks the omit flag. (check-in: d0bc7db6 user: drh tags: trunk)
2019-11-13
18:50
Add header guard to the expert extension. (check-in: 7e315185 user: mistachkin tags: trunk)
16:50
Fix the sqlite3TreeView() output to consistently use a colon and not a comma after the table number in the AST dumps. (check-in: fa2416f6 user: drh tags: trunk)
2019-11-12
16:21
For for the previous check-in: Always enable the nUri variable, even when debugging is turned off. (check-in: f84a1539 user: drh tags: trunk)
14:43
Ensure that the main filename and the journal filenames in the pager object are all correctly double-zero terminated. (check-in: df51ae19 user: drh tags: trunk)
03:45
Remove a harmless unused variable. (check-in: 28091a48 user: drh tags: trunk)
2019-11-11
15:13
Remove an asm() block from build tool mksourceid.c, as it causes build failures on some systems and performance is not important at build-time. (check-in: 8e100e6c user: dan tags: trunk)
2019-11-10
11:09
Proper surrogate pair decoding added to JSON functions. See the mailing list bug report and https://bugs.python.org/issue38749. More test cases needed here, but it seems to work so far. (check-in: 51027f08 user: drh tags: trunk)
10:08
Remove an incorrect ALWAYS() macro. (check-in: f7a74f89 user: drh tags: trunk)
2019-11-09
15:31
Change the COLFLAG_NOTAVAIL bitmask so that it fits in the single-byte Walker.eCode field. (check-in: 53847f5c user: drh tags: trunk)
14:44
New dbsqlfuzz test cases added. (check-in: 18c3a17d user: drh tags: trunk)
14:38
Make sure the WITH stack in the Parse object is disabled following an error. (check-in: de6e6d68 user: drh tags: trunk)
2019-11-08
20:13
When a virtual table reports orderByConsumed, that tells us nothing about whether or not the SQLITE_DISTINCTBY constraint is met. Fix for ticket [7e59041f9c4e5102]. Test cases in TH3. (check-in: b59f94e4 user: drh tags: trunk)
2019-11-07
19:59
Experimental branch to provide SQLITE_LIMIT_HEAP_K to limit the amount of allocated memory used by each database connection, individually. (Leaf check-in: 4ab9dbb9 user: drh tags: limit_heap_k)
14:51
Fix the xferCompatibleIndex() function so that it recognizes that a PRIMARY KEY index for a WITHOUT ROWID table is different from a UNIQUE constraint index on the primary key. Ticket [302027baf1374498] (check-in: 34f64f11 user: drh tags: trunk)
02:32
Restore generated column loop detection logic that was incorrectly removed from the previous check-in [9e07b48934e9a972]. This fixes ticket [299b50ba812d8e54] (check-in: 104a2beb user: drh tags: trunk)
2019-11-06
22:19
Change the way generated columns are computed so that no column is computed inside branch code that might not be taken. Ticket [4fc08501f4e56692] (check-in: 9e07b489 user: drh tags: trunk)
19:25
Minor simplification to the changes from check-in [36c11ad51f]. (check-in: 7bc8205d user: mistachkin tags: trunk)
17:31
Fix the OP_DeferredSeek index-to-table column map in P4 so that it works with generated columns. Ticket [ce22a07731530118] (check-in: 36c11ad5 user: drh tags: trunk)
14:49
Fix the handling of NOT NULL constraint violations for generated columns in a REPLACE statement. Ticket [2399f5986134f79c] (check-in: 77b1c90a user: drh tags: trunk)
2019-11-04
12:49
Changes an unreachable testcase() into an assert(). (check-in: 5710845b user: drh tags: trunk)
02:05
Fix a false-postive in the sqlite3ExprImpliesNonNullRow() decision routine, that resulted in an incorrect LEFT JOIN strength reduction when the WHERE clause contained a row-value comparison. Ticket [02aa2bd02f97d0f2] (check-in: ea20068e user: drh tags: trunk)
2019-11-03
00:07
The optimization of check-in [9b2879629c34fc0a] is incorrectly reasoned. The WHERE clause of the partial index might not be true if the table of the partial index is the right table of a left join. So disable the optimization in that case. Ticket [623eff57e76d45f6] (check-in: 3be19e11 user: drh tags: trunk)
2019-11-02
17:59
Fix a problem in VIEW creation that was introduced by the generated columns feature. (check-in: 9c795c4d user: drh tags: trunk)
13:45
"STORED" is not actually a keyword. The parser looks for STORED as an ordinary identifier. (check-in: 167cd574 user: drh tags: trunk)
13:32
In sqlite3GenerateIndexKey(), do not attempt to reuse column values from the previous index if the current index is a partial index as the partial index test may have changed those values. Ticket [a9efb42811fa41ee] (check-in: 17e9f658 user: drh tags: trunk)
00:00
Restore the on-line ".help" for the ".explain" command in the CLI. (check-in: 28b8f103 user: drh tags: trunk)
2019-11-01
18:52
Fix a harmless compiler warning. (check-in: f0ebea35 user: drh tags: trunk)
17:31
The SET DEFAULT and SET NULL conflict resolution actions for foreign key constraints should cause an error when they appear on a generated column. (check-in: b47513d2 user: drh tags: trunk)
16:37
Fix a potential use-after-free bug that follows an OOM error in code added two days ago by check-in [84e02d773d60cffe]. Problem discovered by OSSFuzz. (check-in: 0a2eb949 user: drh tags: trunk)
16:08
Add another missing column number translation to the foreign key logic. (check-in: 32df5edc user: drh tags: trunk)
15:19
Omit the optimization that reduces the column-count on rowid-table cursors when the table has generated columns, because we do not know what columns the generator expressions might try to access. (check-in: e6c96ed9 user: drh tags: trunk)
13:37
Fix an fts3 assert() that could fail when operating on a database containing corrupt records. (check-in: 7c52f547 user: dan tags: trunk)
12:14
Add missing column translations to foreign key logic. Ticket [c28a01da72f8957c] (check-in: bc6a43e7 user: drh tags: trunk)
10:49
Fix a potential array bounds overflow in the mkkeywordhash.c code generator. Also add marks to omit keywords specific to generated columns when building with -DSQLITE_OMIT_GENERATED_COLUMNS. (check-in: cc6a4081 user: drh tags: trunk)
02:30
Slightly faster keyword hash table. (check-in: f12e743e user: drh tags: trunk)
2019-10-31
20:54
Correctly generate pre-UPDATE content for virtual columns that are used by foreign key constraints. Ticket [b9befa4b83a660cc] (check-in: 40d3282e user: drh tags: trunk)
17:13
Add a few simple TCL test cases for generated columns. (Full test coverage of the generated column logic is provided separately by TH3.) (check-in: acedb5c7 user: drh tags: trunk)
13:16
Ignore differences in Expr.op2 in sqlite3ExprCompare() in cases where it does not matter. Ticket [1d2a8efc6c3a595a]. (check-in: 32982067 user: drh tags: trunk)
12:30
Enhance the TreeView logic to show information about Expr.op2 for FUNCTION and COLUMN nodes. (check-in: aceeaf9e user: drh tags: trunk)
2019-10-30
18:50
Always disallow the use of non-deterministic functions in CHECK constraints, even date/time functions that use the 'now' or similar keywords. Provide improved error messages when this requirement is not met. Ticket [830277d9db6c3ba1] (check-in: 2978b65e user: drh tags: trunk)
16:29
Simplify the bytecode generation for SQL function calls such that the OP_Function or OP_PureFunc opcodes are coded directly, rather than using the intermediate OP_Function0 or OP_PureFunc0 - opcodes that are now removed. (check-in: 84e02d77 user: drh tags: trunk)
13:00
New tokens ALWAYS, GENERATED, and STORED used by generated columns should all be fallback tokens. (check-in: 13fe6978 user: drh tags: trunk)
2019-10-29
16:18
Remove the legacy_file_format PRAGMA. In its place, provide the SQLITE_DBCONFIG_LEGACY_FILE_FORMAT option to sqlite3_db_config(). Fix for ticket [6484e6ce678fffab] (check-in: 4d424f30 user: drh tags: trunk)
03:39
Tighten the generated column requirement such that every table must have at least one non-generated column. Ticket [166347c6fc994155]. (check-in: 4fba090e user: drh tags: trunk)
03:30
Add a missing translation from table column numbers to storage table numbers while processing constraints on an UPDATE statement. Ticket [9621dd78a024d07a] (check-in: 361ea81a user: drh tags: trunk)
01:26
Disallow tables that have only virtual columns. (check-in: 59197321 user: drh tags: trunk)
2019-10-28
13:54
Fix a problem in fts3 causing it to report corruption if a doclist contains consectutive rowid entries that differ by more than 2^63. (check-in: 0b0a3048 user: dan tags: trunk)
13:07
Remove a NEVER() comparison from sqlite3ExprCompare(). (check-in: f4285297 user: drh tags: trunk)
04:20
ALWAYS macro added for coverage. (check-in: a1e1ba91 user: drh tags: trunk)
2019-10-27
22:22
Improved detection of attempts to use a generated column as part of the primary key. Ticket [91e86951016a6802] (check-in: 6d1bbba9 user: drh tags: trunk)
2019-10-26
23:51
Remove code from the constraint checker that generates virtual column values with the incorrect time. Turns out the the regular code for all other columns works correctly and so the incorrect special-case code is not actually needed. Fix for ticket [3ea175512444b0d1]. (check-in: 5b4c0f2d user: drh tags: trunk)
18:56
Remove redundant code resulting from a merge error on the previous check-in. (check-in: 713fe86b user: drh tags: trunk)
18:47
Add support for generated columns. (check-in: b855acf1 user: drh tags: trunk)
17:08
Performance optimization on sqlite3GenerateConstraintChecks() - bypass the loop that checks each column for NOT NULL constraints if it is known in advance that the table has no NOT NULL constraints. (check-in: e3c3f4d7 user: drh tags: trunk)
16:38
Clarify some comments and add assert() and testcase() macros to the replace-trigger recheck logic for ticket [c1e19e12046d23fe] (check-in: 8c0042bd user: drh tags: trunk)
16:02
Fix a problem in the legacy ".explain on" formatting when it is used on a query with more than 8 output columns. (check-in: 070b4982 user: drh tags: trunk)
15:40
Minor changes to help ensure the pointer returned by sqlite3VdbeGetOp() is not used after it becomes invalid. (check-in: 346bdd49 user: drh tags: trunk)
12:27
Overnight, OSSFuzz helpfully pointed out a potential use-after-free bug in yesterdays changes, involving continued use of a pointer after the memory pointed to had been realloc()-ed. Thanks Google. (check-in: c422afb5 user: drh tags: trunk)
01:43
Add missing VdbeCoverage() macro. Fix an off-by-one error in partial index handling. New test cases. Ticket [c1e19e12046d23fe] (check-in: 41cc8e3d user: drh tags: trunk)
00:04
If replace triggers are run during uniqueness checking, then rerun all uniqueness checks a second time using the ABORT algorithm. Fix for ticket [c1e19e12046d23fe] (check-in: fbac0c65 user: drh tags: trunk)
2019-10-25
14:46
Performance optimization in sqlite3BtreeCursor(). (check-in: ea068b09 user: drh tags: trunk)
2019-10-24
23:43
Merge fixes from trunk. (Closed-Leaf check-in: 4ec57d88 user: drh tags: generated-columns)
21:02
The previous fix was incomplete. It is also necessary to disable the Expr.y.pTab field when making the translation. (check-in: b99d5701 user: drh tags: generated-columns)
20:35
In fts5, fix a case of overreading a buffer by 1 byte when counting characters in malformed utf-8. Fix for [dd1f67bf]. (check-in: 8d964e1c user: dan tags: trunk)
20:29
Fix handling of covering indexes that use virtual columns. (check-in: e0f7e321 user: drh tags: generated-columns)
19:35
Correction to check-in [bec5b6d4d083556d] so that it detects *all* triggers that might perturb the insertion cursor. Ticket [50c09fc2cf0d91ce]. (check-in: 521f1d36 user: drh tags: trunk)
01:04
Do not allow ALTER TABLE ADD COLUMN for a STORED column. (check-in: 42fc08bc user: drh tags: generated-columns)
2019-10-23
21:00
Add an experimental set of UUID processing functions as the uuid.c extension in ext/misc/uuid.c. (check-in: 1a6e0093 user: drh tags: trunk)
18:14
Add uuid_string and uuid_blob functions (Leaf check-in: 97ba442b user: numist tags: uuid-funcs)
18:09
When a vector comparison appears in the WHERE clause and the constraint side has a COLLATE clause on the first term of the vector, be sure to honor that COLLATE clause. Ticket [135c9da7513e5a97]. (check-in: 978b2d20 user: drh tags: trunk)
18:01
Create new branch named "uuid-funcs" (check-in: 815dc043 user: numist tags: uuid-funcs)
15:47
Minor adjustments for clarity and test coverage. (check-in: 30065716 user: drh tags: generated-columns)
03:53
Fix incorrect arguments to testcase() macros. (check-in: 812467fb user: drh tags: generated-columns)
00:31
Fix the foreign key logic to be compatible with generated columns. (check-in: 3de57145 user: drh tags: generated-columns)
2019-10-22
21:01
Take the declared column time into account when computing the values for generated columns, and apply appropriate affinity. (check-in: 9e04ba22 user: drh tags: generated-columns)
20:16
Merge the row-value fix from trunk. (check-in: 1fbd7438 user: drh tags: generated-columns)
19:51
Disqualify row-value comparisons for use by an index if the right-hand side has an affinity that does not match the index. Fix for ticket [6ef984af8972c2eb] (check-in: 5c118617 user: drh tags: trunk)
15:45
Do not allow generated columns in the PRIMARY KEY. (check-in: 1a54743a user: drh tags: generated-columns)
13:59
In UPDATE processing, include generated columns in the set of columns being updated if and only if their generator expressions reference some other column that is being updated. (check-in: d38176e9 user: drh tags: generated-columns)
13:01
New testcase() macros. Fix a problem with INSERT when the IPK is to the right of generated columns. (check-in: 412799fc user: drh tags: generated-columns)
12:02
Merge changes on trunk into the generated-columns branch. (check-in: ba123b8c user: drh tags: generated-columns)
11:29
Previous check-in to fix [b47e3627ecaadbde] was incomplete. This check-in completes the fix and adds a test cases. (check-in: c7da1c01 user: drh tags: trunk)
01:00
Move the sqlite3LocateCollSeq(), sqlite3FindCollSeq(), and sqlite3GetCollSeq() routines so that they are all beside one another in the callback.c source file. No logic changes. (check-in: 9ff80a9b user: drh tags: trunk)
00:03
When flipping ("commuting") a comparison operator, set the new EP_Commuted bit rather than adding extra EP_Collate bits, to single later processing that the order of precedence for COLLATE operators is inverted. Fix for ticket [b47e3627ecaadbde] (check-in: 90f7c477 user: drh tags: trunk)
2019-10-21
23:41
Add a VdbeCoverage() macro that was omitted from check-in [eea1e7aa57e74c43]. (check-in: cd2317d0 user: drh tags: trunk)
16:15
Try to fix a harmless compiler warning reported by ICC. (check-in: 7f41b44c user: drh tags: trunk)
01:04
Changes to the INSERT logic to make it simpler and faster and so that it works with generated columns and BEFORE triggers. (check-in: bc368cb0 user: drh tags: generated-columns)
2019-10-20
08:26
Fix a resource leak in fts5 that could occur if an auxiliary function is called from within a query that does not use the full-text index. (check-in: b528bdcd user: dan tags: trunk)
2019-10-19
18:47
Work toward getting generated columns to work with triggers. Still more work to do in this area. (check-in: 932a3727 user: drh tags: generated-columns)
15:01
Add testcase macros. (check-in: fb9c9bb2 user: drh tags: generated-columns)
13:29
Refactor names of column index transformation functions, for clarity. Get generated columns working with ALTER TABLE RENAME COLUMN. (check-in: 27ab41c9 user: drh tags: generated-columns)
2019-10-18
22:54
Use an allocation count and freelist instead of a membership bitfield in the mini lookaside allocator (Leaf check-in: 9496b4d3 user: numist tags: 2-size-lookaside)
18:33
Fixes for WITHOUT ROWID tables with VIRTUAL columns and an INTEGER PRIMARY KEY. (check-in: 86074da0 user: drh tags: generated-columns)
17:47
Merge trunk enhancements into the generated-columns branch. (check-in: 85bc4524 user: drh tags: generated-columns)
17:42
Get generated columns working for WITHOUT ROWID tables. (check-in: 9f409649 user: drh tags: generated-columns)
15:58
Enhance the ".imposter" command in the CLI so that the first argument can be an existing WITHOUT ROWID table instead of an index. The resulting imposter is the same table, but with columns in storage order and with all constraints removed. (check-in: 9dc0d345 user: drh tags: trunk)
12:52
Claw back some performance from the sqlite3ExprGetColumnOfTable() routine. (check-in: e8426acb user: drh tags: generated-columns)
12:14
Fix sqlite3ColumnOfIndex() to account for virtual columns. (check-in: 44727112 user: drh tags: generated-columns)
10:05
Get indexes working on virtual columns. (check-in: 450c4876 user: drh tags: generated-columns)
02:19
STORED columns can now reference other STORED columns, in any order, as long as there are not loops. (check-in: 0d236698 user: drh tags: generated-columns)
2019-10-17
18:35
In the Table object, change the nVCol field to nNVCol - the number of non-virtual columns, as that is the quantity that we need most. (check-in: 4ad66af0 user: drh tags: generated-columns)
18:07
Bug fix with INSERT using an explicit column list on a table with a non-final STORED column. (check-in: 61b4459a user: drh tags: generated-columns)
17:54
Some (but not all) INSERT and UPDATE statements now work for STORED columns. (check-in: fe7517bf user: drh tags: generated-columns)
16:16
Fix the xfer optimization for generated columns, so that VACUUM works again. (check-in: 8f67b89b user: drh tags: generated-columns)
15:59
Basic UPDATE functionality working for VIRTUAL columns. (check-in: c21959d4 user: drh tags: generated-columns)
15:41
Avoid an infinite loop in fts3/4 incremental-merge in the case where the lowest level in the database contains segments but no data (because there is a delete-marker for each valid entry). Fix for [bf1aab89]. (check-in: 35beaee0 user: dan tags: trunk)
14:21
Bug fixes so that "make test" once against runs with no errors. (check-in: 7bfe0f67 user: drh tags: generated-columns)
13:15
Fix the table_info and table_xinfo pragmas so that they work with virtual columns. Table_info omits virtual columns. Table_xinfo gives them a "hidden" flag of 2, and 3 for STORED columns. (check-in: 069351b8 user: drh tags: generated-columns)
2019-10-16
22:01
INSERT with named columns for a table with generated columns. (check-in: 64db39f9 user: drh tags: generated-columns)
20:05
ALTER TABLE is able to add a VIRTUAL column. (check-in: 120c6b78 user: drh tags: generated-columns)
19:31
Simple INSERT and SELECT operations working with VIRTUAL columns. (check-in: 7f9f90b1 user: drh tags: generated-columns)
17:46
Enhancements to SQL query normalization for UPDATE statements. (check-in: bba975c7 user: mistachkin tags: trunk)
14:56
If an AFTER DELETE trigger fires when a conflict row is deleted by REPLACE conflict resolution, make sure the conflict really has been resolved and that the trigger did not recreate the row before continuing. Ticket [a8a4847a2d96f5de] (check-in: eea1e7aa user: drh tags: trunk)
12:18
Initial experimental code for generated column support. Non-functional. (check-in: 11d472c1 user: drh tags: generated-columns)
2019-10-15
19:01
Formatting change on a multi-line conditional, for improved clarity. No logic changes. (check-in: 7248e347 user: drh tags: trunk)
2019-10-14
20:32
Futher improvements to the IN operator for row-values on virtual tables. (check-in: bc751fb6 user: drh tags: trunk)
15:24
New test cases in test/fuzzdata8.db. (check-in: 344d9cb0 user: drh tags: trunk)
15:15
Fix a problem with row-value IN(...) operators and virtual tables. (check-in: aa57d7ab user: dan tags: trunk)
2019-10-12
23:38
When Select-Trace is enabled (in debugging builds only) do not show the result of Window function tree rewrites if there are no window functions. (check-in: d1acf72a user: drh tags: trunk)
2019-10-11
18:55
Update the zipfile extension to use deflateBound(), instead of compressBound(), to learn the maximum possible size of a deflate()d buffer. (check-in: f5ee3042 user: dan tags: trunk)
17:14
Futher improvements to LEFT JOIN strength reduction. (check-in: 8a39167b user: drh tags: trunk)
16:01
Improvements to the LEFT JOIN strength reduction optimization. (check-in: 548082df user: drh tags: trunk)
15:33
Ensure fts3/4 prefix indexes are flushed to disk before an 'optimize' command. Fix for [745f1abc]. (check-in: 4ed905b1 user: dan tags: trunk)
14:27
Fix the fts3/4 integrity-check command so that it works with "ORDER=DESC" tables. Fix for [8a6fa2bb]. (check-in: 5863546d user: dan tags: trunk)
14:25
Increase the version number to 3.31.0 for the next release cycle. (check-in: ffd4c306 user: drh tags: trunk)
14:21
Faster response to sqlite3_interrupt() in the OP_IntegrityCk and OP_Count opcodes. (check-in: bf875dc5 user: drh tags: trunk)
11:21
Merge the 3.30.1 changes into reuse-schema. (Leaf check-in: eff7cd7f user: drh tags: reuse-schema-3.30)
2019-10-10
23:58
Update the autoconf makefile for MSVC. (check-in: 9455643e user: mistachkin tags: trunk)
23:58
Fix harmless compiler warning seen with MSVC. (check-in: 73a82114 user: mistachkin tags: trunk)
20:19
Version 3.30.1 (check-in: 18db032d user: drh tags: release, version-3.30.1, branch-3.30)
17:09
Prevent SQLite from assuming that if ((? IS NOT NULL) IS NOT NULL) is true, ? may not be NULL. Fix for [c31034044bb72c89]. (check-in: 7833feec user: dan tags: trunk)
16:41
Fix a problem in the fts3 integrity-check routine causing it to report as corrupt tables that contain values with embedded 0x00 bytes. Ticket [278ac142625e3dcd] (check-in: 629e20c9 user: dan tags: trunk)
16:21
Avoid assuming that an expression that contains the sub-expression (? IS FALSE) or (? IS TRUE) may only be true if ? is non-null. Fix for [a976c487]. (check-in: c6cc2390 user: drh tags: branch-3.30)
16:10
Fix a problem with running ALTER TABLE ADD COLUMN statements within a transaction that writes to one or more virtual tables. Fix for [8fe768e9]. (check-in: a4974a0f user: drh tags: branch-3.30)
15:57
Fix the OP_SeekRowid opcode so that it works correctly with a Real argument without damaging the value in the register that is the argument. Ticket [b2d4edaffdc156cc]. Test cases in TH3. (check-in: b02630fe user: drh tags: branch-3.30)
15:48
Be sure to rewrite column references inside FILTER clauses and window frame definitions when flattening queries. Fix for [1079ad19]. (check-in: df2060f3 user: drh tags: branch-3.30)
15:42
Version number to 3.30.1. (check-in: 12e28cc7 user: drh tags: branch-3.30)
15:17
Be sure to rewrite column references inside FILTER clauses and window frame definitions when flattening queries. Fix for [1079ad19]. (check-in: ccba7202 user: dan tags: trunk)
2019-10-09
21:14
Avoid assuming that an expression that contains the sub-expression (? IS FALSE) or (? IS TRUE) may only be true if ? is non-null. Fix for [a976c487]. (check-in: eb7ed90b user: dan tags: trunk)
18:36
Do not allow users to effectively disable fts5 crisismerge operations by setting the crisismerge threshold to higher than the maximum allowable segment b-trees on a single level. Fix for [d392017c]. (check-in: 86e49720 user: dan tags: trunk)
17:38
Merge recent fixes and enhancements from trunk. (check-in: 553258c2 user: drh tags: 2-size-lookaside)
17:06
An alternative, experimental lookaside memory allocator that uses two different slot sizes. (check-in: 5ba8cee8 user: sperry tags: 2-size-lookaside)
15:37
An improved fix for the dbsqlfuzz-discovered ALWAYS() failure following OOM in sqlite3ExprCollSeq(). This time with a test case (engineered by Dan). (check-in: 907f7965 user: drh tags: trunk)
15:26
Disallow fts5 page sizes greater than 65536 bytes - as there are 16-bit offsets used in the page header. Fix for [81a7f7b9]. (check-in: 75775c5a user: dan tags: trunk)
15:08
Remove the "fastfuzztest" makefile target. Use only "fuzztest". (check-in: e17571c7 user: drh tags: trunk)
15:03
New test cases added to test/fuzzdata8.db. (check-in: b68d21e9 user: drh tags: trunk)
15:00
Change sqlite3SelectDup() to always return NULL if an OOM has occurred. (check-in: 01ba4641 user: drh tags: trunk)
13:52
Use the "fuzztest" target in place of "fastfuzztest". (Closed-Leaf check-in: 7129e468 user: drh tags: makefile-cleanup)
13:12
Remove the obsolete "fastfuzztest" target from the makefiles. (check-in: 3d44f1ee user: drh tags: makefile-cleanup)
01:19
Save CPU cycles in sqlite3Prepare() by, among other things, shifting the EXPLAIN column label logic over to sqlite3VdbeMakeReady(). (check-in: 1ca5ef84 user: drh tags: trunk)
2019-10-08
19:45
Store 64-bit offset values in osinst log files. (Leaf check-in: 74d975c6 user: dan tags: osinst)
13:34
Fix problems with using the fts5 'rebuild' command inside a transaction that contains other updates of the same table. Fix for [e258f008]. (check-in: 238e0835 user: dan tags: trunk)
2019-10-07
20:36
Disallow page-sizes smaller than 32 bytes in fts5. Also ensure the fts5 integrity-check works even when "PRAGMA reverse_unordered_selects" is true. Fix for [265e935b26]. (check-in: 8ab0aebd user: dan tags: trunk)
20:33
Omit a pointless memory allocation in vdbeSorterSort(). (check-in: 5d76dbc5 user: drh tags: trunk)
18:43
Fix a problem with running ALTER TABLE ADD COLUMN statements within a transaction that writes to one or more virtual tables. Fix for [8fe768e9]. (check-in: 31e85fbb user: dan tags: trunk)
13:46
Add a test case for the assert() fix in the previous commit. (check-in: 32fba11a user: dan tags: trunk)
13:26
Fix a faulty assert() statement in the sqlite3VdbeMemExpandBlob() routine. (check-in: 69a26ead user: drh tags: trunk)
10:29
Avoid attempting to read 0 bytes from a file in the osinst vtab code. (check-in: 1fb76c3e user: dan tags: osinst)
01:05
Fix the OP_SeekRowid opcode so that it works correctly with a Real argument without damaging the value in the register that is the argument. Ticket [b2d4edaffdc156cc]. Test cases in TH3. (check-in: 3cde82c8 user: drh tags: trunk)
2019-10-05
19:53
Omit the check for conflicting shared-cache locks in sqlite3Prepare() if the database connection uses no shared cache. We might be able to go back and remove this code completely, due to the newer Schema.iGeneration logic, but that will take more analysis. This check-in gives the speed benefit but not the reduction in code size. (check-in: 0b73a092 user: drh tags: trunk)
19:37
Fix a problem in Makefile.msc on this branch. (check-in: ed3499a1 user: dan tags: osinst)
19:24
Optimization to sqlite3VtabUnlockList() for the common case when there is no work to do. (check-in: fc8d4508 user: drh tags: trunk)
19:17
Add a timestamp to each osinst log entry, to facilitate merging multiple log files. (check-in: c9519c0c user: dan tags: osinst)
18:33
Call sqlite3Prepare() directly, rather than going through sqlite3_prepare(), when processing the sqlite_master.sql column for a schema. (check-in: cc49380e user: drh tags: trunk)
17:29
Have sqlite3.c automatically turn on osinst logging for all connections. (check-in: eea231f8 user: dan tags: osinst)
15:28
Reorder two comparisons for a small performance gain in OP_Transaction. (check-in: d7667f65 user: drh tags: trunk)
14:39
Performance optimization to the lookaside-memory disabling mechanism. (check-in: 17ce1c49 user: drh tags: trunk)
2019-10-04
16:24
Bring the begin-concurrent-pnu-wal2 branch up-to-date with 3.30.0. (check-in: dd09f7ce user: drh tags: begin-concurrent-pnu-wal2)
16:15
Bring the wal2 branch up to date with version 3.30.0 (check-in: 16e1dced user: drh tags: wal2)
16:08
Bring the begin-concurrent-pnu branch up-to-date with version 3.30.0. (check-in: a4d26bcf user: drh tags: begin-concurrent-pnu)
15:52
Bring the begin-concurrent branch up-to-date with the 3.30.0 release. (check-in: abd1b4df user: drh tags: begin-concurrent)
15:41
Bring the apple-osx branch up-to-date with the 3.30.0 release. (check-in: 76b26aca user: drh tags: apple-osx)
15:31
Bring the reuse-schema branch up-to-date with version 3.30.0. (check-in: 6e09afec user: drh tags: reuse-schema)
15:03
Version 3.30.0 (check-in: c20a3533 user: drh tags: trunk, release, version-3.30.0)
2019-10-03
16:02
Avoid running a couple of tests in affinity2.test as part of the valgrind permutations, as the way floating point computations are simulated by valgrind causes them to fail. (check-in: 7f9a4b60 user: dan tags: trunk)
14:51
Increase the precision of floating point value display in VDBE debugging output. No changes to normally deployed code. (check-in: a561a656 user: drh tags: trunk)
14:36
Fix some test script issues that come up with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 3934d2d0 user: dan tags: trunk)
13:44
Fix issues with command line invocation of wapptest.tcl. (check-in: 9e0d5d26 user: dan tags: trunk)
2019-10-02
19:44
Update error detection logic in releasetest.tcl to account for new output formats in USAN. (check-in: 3f36b988 user: drh tags: trunk)
19:43
Update corruptM.test to account for the fact that the database schema may be loaded from within the "sqlite3" command for some test permutations. (check-in: cb9470fc user: dan tags: trunk)
19:33
Fix a long-standing problem in fts4 incrmental merge. (check-in: 67da31e2 user: dan tags: trunk)
00:25
Disable sqlite3_drop_module() tests when virtual tables are omitted from the build. (check-in: 9f4035f9 user: drh tags: trunk)
2019-10-01
21:31
Remove references to test scripts analyzeA.test and analyzeB.test from permutations.test, since those test modules no longer exist. (check-in: 23948796 user: drh tags: trunk)
2019-09-30
19:13
The nodeReaderInit() function in FTS3 may not assume that the node is non-empty. (check-in: 361eb2f6 user: drh tags: trunk)
16:57
Merge in the 3.30.0 beta 1 changes. (check-in: 06796124 user: drh tags: reuse-schema)
16:49
Merge in the 3.30.0 beta 1 enhancements. (check-in: ebf88726 user: drh tags: begin-concurrent-pnu-wal2)
16:44
Merge 3.30.0 beta 1 changes from trunk. (check-in: 918bd97d user: drh tags: wal2)
16:43
Merge version 3.30.0 beta 1 changes from trunk. (check-in: ac4b6442 user: drh tags: begin-concurrent-pnu)
16:14
Merge the 3.30.0 beta 1 changes from trunk. (check-in: a003818f user: drh tags: begin-concurrent)
16:13
Merge the 3.30.0 beta 1 changes from trunk. (check-in: 9ce4c791 user: drh tags: apple-osx)
2019-09-28
18:28
Add missing comment to constant definitions. (check-in: 661a3789 user: drh tags: trunk)
16:14
Improvements to a comment. No code changes. (check-in: 1a3671c7 user: drh tags: trunk)
11:19
In FTS3/4, the poslist end marker must be larger than any other possible poslist value, even on a corrupt poslist. (check-in: 752679ae user: drh tags: trunk)
2019-09-27
17:36
Update requirement marks due to changes in documentation wording. (check-in: 326cdc16 user: drh tags: trunk)
16:33
Allow compile-time options -DHAVE_GETHOSTUUID=0 and -DHAVE_GETHOSTUUID=1. (check-in: 3bcb9cc1 user: drh tags: trunk)
15:15
Alternative implementation of the previous check-in which is testable. (check-in: 102ef644 user: drh tags: trunk)
15:01
Fix sqlite3ExprCompare() so that it ignores differences in the Expr.iTable field for IN operators, as otherwise it can lead to false negatives, which is usually harmless, but can cause problems for an assert() in the window function logic. (check-in: 6a204b19 user: drh tags: trunk)
2019-09-26
20:57
More minor test file fixes. (check-in: 352878fe user: dan tags: trunk)
20:05
Allow DROP TABLE to work on tables name "sqlite_parameters" just as it does with tables named "sqlite_stat%". Fix for the ".parameter clear" command in the shell. (check-in: e768179b user: drh tags: trunk)
19:53
Minor fix for test file indexexpr1.test. (check-in: 0ceab26f user: dan tags: trunk)
16:57
New dbsqlfuzz cases added to test/fuzzdata8.db. (check-in: 49073b70 user: drh tags: trunk)
16:08
Test for an OOM condition in resolveAlias(). (check-in: 322eca7f user: drh tags: trunk)
15:53
Fix a window-functions problem that could occur if an ORDER BY clause contains an alias for a window-function that is not a top-level expression. (check-in: 1cc6cf64 user: dan tags: trunk)
2019-09-25
18:44
Add a missing VdbeCoverage() macro. (check-in: 36d35dbd user: drh tags: trunk)
17:47
Remove an unused variable. (check-in: a1988445 user: drh tags: trunk)
16:41
Further simplifications to window-function code. (check-in: 5fe15c1d user: dan tags: trunk)
11:49
In the previous check-in, the variable should be openMode, not openFlags. (check-in: 77b0db22 user: drh tags: trunk)
10:36
In the unix VFS layer, do not attempt to chown() the journal to be the same as the database if running in 8+3 filename mode. Also, update the comments on the chown() attempt to be more precise. (check-in: ab853724 user: drh tags: trunk)
02:07
Simplifications to the window-function code. (check-in: 489a1eb3 user: drh tags: trunk)
2019-09-24
20:20
Bug fixes for window frames of the form (... RANGE BETWEEN b PRECEDING AND a PRECEDING) or (... RANGE a FOLLOWING AND b FOLLOWING) where (a > b). (check-in: 040e196a user: dan tags: trunk)
2019-09-23
12:38
Omit the sqlite3IntTokens array constant for a code simplification. (check-in: f907395e user: drh tags: trunk)
11:55
When a scalar subquery has a pre-existing "LIMIT X" then change it to "LIMIT X<>0" rather than just "LIMIT 1" so that if X is 0 the limit will still be zero. Ticket [99cd4807dc03f178]. Test cases in TH3. (check-in: 82e5dcf5 user: drh tags: trunk)
2019-09-21
18:49
Fix a harmless unused variable warning in the test logic. (check-in: d7673a44 user: drh tags: trunk)
17:31
Fix harmless compiler warnings. (check-in: 8ea1dc72 user: drh tags: trunk)
15:44
Allow SQLite to omit redundant ORDER BY sorts in the case where a SELECT statement has GROUP BY and ORDER BY clauses that use the same expressions, even when the ORDER BY expressions are marked "DESC". (check-in: 20f7951b user: dan tags: trunk)
13:34
Add --multithread, --serialized, and --singlethread options to the speed-check.sh test script. (check-in: c17078af user: drh tags: trunk)
2019-09-20
21:12
Simplify the fix in the previous commit. (check-in: 5ef64b0f user: dan tags: trunk)
20:52
Fix a problem with queries containing a min() or max() function for which the FILTER clause excludes all rows. (check-in: b1d7e104 user: dan tags: trunk)
2019-09-19
13:51
Fix an assert() in fts3 that could fail when accessing a corrupt database. (check-in: 601ce953 user: dan tags: trunk)
2019-09-18
20:34
Always clear the temporary register cache after coding a subroutine. (check-in: b6f2a7f9 user: drh tags: trunk)
17:22
Add extra tests for the handling of corrupt records in fts3. (check-in: 40e29a47 user: dan tags: trunk)
12:49
Fix another potential "jump depends on uninitialized value" warning. (check-in: 633b214e user: drh tags: trunk)
11:46
Fix a "jump depends on unititialized value" valgrind error in fts5 triggered by corrupt database records. (check-in: 6b6751cd user: dan tags: trunk)
11:16
Fix an OOB read in the INSTR() function introduced yesterday by check-in [3fb40f518086c1e8] and detected by OSSFuzz. The test case is in TH3. (check-in: d49047c1 user: drh tags: trunk)
2019-09-17
21:28
Do not change the OP_String8 opcode into OP_String until *after* any necessary encoding conversions are accomplished. Otherwise, a rerun of the prepared statement after an OOM can result in errors. Test case in TH3. (check-in: 8efd6259 user: drh tags: trunk)
13:30
Test cases for ticket [587791f92620090e] (check-in: ca0e3a83 user: drh tags: trunk)
03:16
Fix the instr() SQL function so that it makes a copy of its argument before changing the datatype, since the datatype affects processing. Also fix the sqlite3_value_text() routine so that it always works even for values obtained form sqlite3_value_dup(). Ticket [587791f92620090e] (check-in: 3fb40f51 user: drh tags: trunk)
2019-09-16
20:16
Improved type information display when tracing VDBE execution. (check-in: ee83d8e3 user: drh tags: trunk)
18:19
Do not attempt the LIKE optimization for non-text columns and a pattern prefix of "-". Ticket [0f0428096f17252a] (check-in: 6fe0367f user: drh tags: trunk)
15:15
Add recent interesting cases from dbsqlfuzz. (check-in: f06ef3d7 user: drh tags: trunk)
14:42
Documentation updates for the SQLITE_DIRECTONLY flag. (check-in: 5beb6dc9 user: drh tags: trunk)
12:35
Merge all recent trunk enhancements into the reuse-schema branch. (check-in: 27eb2236 user: drh tags: reuse-schema)
12:29
Bring the begin-concurrent-pnu-wal2 branch up to date with all the latest enhancements on trunk. (check-in: 15593bf3 user: drh tags: begin-concurrent-pnu-wal2)
12:23
Merge recent trunk enhancements into the wal2 branch. (check-in: da8bc974 user: drh tags: wal2)
12:17
Merge recent trunk enhancements into the begin-concurrent-pnu branch. (check-in: 54930b7e user: drh tags: begin-concurrent-pnu)
12:08
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 93b9ef3f user: drh tags: begin-concurrent)
12:02
Merge the latest changes from trunk into the apple-osx branch. (check-in: a95191de user: drh tags: apple-osx)
05:34
Fix a problem with processing CTEs that use a WINDOW clause. (check-in: ca564d4b user: dan tags: trunk)
2019-09-14
16:44
Add the --no-rowids option to the ".recover" command. (check-in: 01d71b94 user: dan tags: trunk)
16:21
Extra comments on fields of the Window object. (check-in: 3dbed162 user: drh tags: trunk)
00:21
Fix the windows inverse function on the JSON aggregates. (check-in: f464d847 user: drh tags: trunk)
2019-09-13
20:42
Fix a problem with using json1 window functions with an EXCLUDE clause. (check-in: 4a197881 user: dan tags: trunk)
18:59
Fix the windowB test module so that it works even if SQLite is built without JSON support. (check-in: 807975c7 user: drh tags: trunk)
18:27
Add the SQLITE_SUBTYPE flag, which may be passed to sqlite3_create_window_function() to indicate that the window function uses sqlite3_value_subtype() to check the sub-type of its arguments. (check-in: ba2ebc3a user: dan tags: trunk)
17:36
Change the meaning of the SQLITE_SUBTYPE flag so that it indicates that the function may use sqlite3_value_subtype() on its arguments. (Closed-Leaf check-in: 7f424ec9 user: dan tags: window-functions-subtype-fix)
17:30
Fix a typo in the carray extension header comment - the comment that serves as the documentation to this extension. (check-in: 658a42d3 user: drh tags: trunk)
17:05
Change the meaning of the SQLITE_SUBTYPE flag so that it indicates that the user-defined function cares about the subtypes of its arguments. (Closed-Leaf check-in: af1bc20f user: dan tags: window-functions-subtype-fix2)
16:19
Merge latest trunk changes with this branch. (check-in: 14ef7543 user: dan tags: window-functions-subtype-fix)
13:23
Ensure that the idxStr for FTS5 is always zero-terminated. Fix for check-in [9d418a7a491761ee] (check-in: 090cd07d user: drh tags: trunk)
12:24
Fix harmless compiler warnings. (check-in: a8927d14 user: drh tags: trunk)
2019-09-12
19:38
Allow fts5 to filter on multiple MATCH clauses in a single scan. (check-in: 9d418a7a user: dan tags: trunk)
2019-09-11
15:25
Fix typo for one instance of line number handling in the Lemon tool. (check-in: 980be173 user: mistachkin tags: trunk)
2019-09-10
17:51
Enhance treeview to show SOFT-COLLATE for TK_COLLATE operators that omit the EP_Collate flag. (check-in: a9780462 user: drh tags: trunk)
15:33
Ensure the columns of views and sub-queries maintain their implicit collation sequences when the "push-down" optimization is applied. Fix for [18458b1a]. (check-in: 36997c4a user: dan tags: trunk)
2019-09-09
20:17
Ensure the columns of views and sub-selects in the FROM clause of a select are always assigned implicit collation sequences, just as table columns are. Fix for [a7debbe0]. (check-in: b9ec7220 user: dan tags: trunk)
19:49
Ensure the columns of views and sub-selects in the FROM clause of a select are always assigned implicit collation sequences, just as table columns are. Possible fix for [a7debbe0]. (Closed-Leaf check-in: 1863b7bf user: dan tags: tkt-a7debbe0.)
2019-09-07
18:20
Add the SQLITE_SUBTYPE flag, which can be passed to sqlite3_create_function() and similar to indicate to the core that a user function is likely to use sqlite3_result_subtype(). (check-in: 6aa438ce user: dan tags: window-functions-subtype-fix)
2019-09-04
06:56
Fix handling of NULL, text and blob values in window queries that use "RANGE BETWEEN A FOLLOWING AND B FOLLOWING", or "B PRECEDING AND A PRECEDING", where A>B. (check-in: cb3e2be6 user: dan tags: trunk)
2019-09-03
16:23
Updates to the default settings in Makefile.linux-gcc. (check-in: 3044cf69 user: drh tags: trunk)
14:27
When we play games with COLLATE in order to commute an operator in the WHERE clause processing, be sure not to use the commuted operator to qualify a partial index, as insufficient COLLATE information is preserved to verify that the expression will correctly qualify the index. Ticket [767a8cbc6d20bd68] (check-in: 5351e920 user: drh tags: trunk)
2019-09-02
22:13
Fix a bug introduced earlier today by check-in [88833a9c2849c959]. Ticket [29f635e0af71234b] (check-in: 6e7b4527 user: drh tags: trunk)
14:46
Fix a potential crash in fts5 caused by using an auxiliary function on a "special" query like '*id' or '*reads'. (check-in: 9490683a user: dan tags: trunk)
02:21
When applying the IN_INDEX_NOOP optimization and the LHS has REAL affinity, also apply REAL affinity to each element of the RHS. Ticket [2841e99d104c6436]. (check-in: 88833a9c user: drh tags: trunk)
01:25
Fix an obsolete comment that defines the meaning of one of the parameters to the sqlite3FindInIndex() subroutine. No changes to code. (check-in: 0c946f08 user: drh tags: trunk)
00:58
When computing an expression value for an index-on-expression or a CHECK constraint and the expressions uses a REAL table column, but the value of that column is an integer (in other words, when it is using the store-real-as-integer optimization) be sure to promote the value to real before evaluating the expression. Ticket [57af00b6642ecd68]. (check-in: 0658c16e user: drh tags: trunk)
2019-09-01
23:36
Remove an obsolete paragraph from the OP_Column documentation. No code changes. (check-in: f6d8956c user: drh tags: trunk)
2019-08-31
20:29
Fix a harmless compiler warning. (check-in: 63c67a54 user: drh tags: trunk)
20:26
Mark new VDBE branches never taken. (check-in: 83c2adff user: drh tags: trunk)
20:13
Improvements to the algorithm that determines which SELECT in a sequence of nested SELECT statements that an aggregate function belongs to. This resolves an issue identified by dbsqlfuzz. (check-in: d7680074 user: drh tags: trunk)
17:14
If a DELETE trigger fired by an UPDATE OR REPLACE statement deletes the row being updated, do not attempt to proceed with the original UPDATE operation. Fix for [d6a0fbc1]. (check-in: 4145b3e0 user: dan tags: trunk)
01:33
Remove some affinity tests that became unreachable due to the prior change. (check-in: e2db1123 user: drh tags: trunk)
2019-08-30
23:56
When the affinity of a table column is INT or REAL, make the affinity of corresponding index columns NUMERIC. This increases the precision of index lookups for large numbers so that it matches the precision of ordinary comparison operators. Ticket [40812aea1fde9594] (check-in: e0d909c7 user: drh tags: trunk)
23:15
Make sure OP_RealAffinity has been applied to all columns of type REAL in the excluded.* pseudo-table of an UPSERT. Ticket [5a3dba8104421320] (check-in: 67381dad user: drh tags: trunk)
21:52
Improvements to VDBE tracing. No changes to code in normal deliverables. (check-in: 54553bf1 user: drh tags: trunk)
19:45
Add test case to window8.test. Also fix an error in a comment in window.c. (check-in: 2925bfa5 user: dan tags: trunk)
18:02
Back out the change at [47cd634c98b502d4] which was incorrect. Add a test case so that we don't accidently back out that change again. (check-in: 596ac2a4 user: drh tags: trunk)
17:28
Add further comments to window.c. (check-in: 90046456 user: dan tags: trunk)
16:46
New test cases for window functions with RANGE BETWEEN and DESC NULLS FIRST. (check-in: f7002f86 user: drh tags: trunk)
16:14
Fix a bug in RANGE window functions that use "ORDER BY <expr> DESC NULLS FIRST" as the window-frame ORDER BY clause. (check-in: 39b4cad4 user: dan tags: trunk)
16:00
The expression "(X IS FALSE) IN (FALSE)" does not imply that X is NOT NULL. Ticket [f8f472cbc77ba9c9] (check-in: dd661348 user: drh tags: trunk)
15:11
The expression "(X IS FALSE) BETWEEN FALSE AND TRUE" does not implie that X is not NULL. Ticket [fba33c8b1df6a915] (check-in: 057fb8b1 user: drh tags: trunk)
13:07
The expression "(x IS FALSE) IS FALSE" does not imply that X is not NULL. Ticket [a6408d42b9f44462] (check-in: 45ff2b1f user: drh tags: trunk)
2019-08-29
23:24
Remove a faulty testcase() macro. (check-in: 80124ae5 user: drh tags: trunk)
21:16
Improve vdbe branch coverage of NULLS LAST code. (check-in: e8e9f77d user: dan tags: trunk)
19:34
Fix other problems similar to ticket [c0390363]. (check-in: 96ff2ba9 user: dan tags: trunk)
16:48
Add a missing VdbeCoverage() macro. (check-in: 33da6092 user: drh tags: trunk)
16:17
Remove an unreachable branch in the NULLS LAST logic of RANGE window functions. (check-in: 47cd634c user: drh tags: trunk)
15:50
Fix another case where SQLite assumes that if "~(? AND FALSE)" is true, "?" must be non-null. (check-in: 616f5663 user: dan tags: trunk)
15:06
Avoid assuming that for "~ (? AND FALSE)" to be true, "?" must not be NULL, just as we do for "NOT (? AND FALSE)". Fix for ticket [c0390363]. (check-in: 84ae41fd user: dan tags: trunk)
14:25
Fix a potential buffer overrun in fts5 caused by corrupted database records. (check-in: c465d0eb user: dan tags: trunk)
00:27
Improve Lemon so that it enlarges some of its tables slightly in order to avoid having to index range checks on table lookups for a performance increase. (check-in: 4be6a23a user: drh tags: trunk)
2019-08-28
11:49
Fix an unreachable branch in sqlite3ParserFallback() (Closed-Leaf check-in: e059178b user: drh tags: lemon-optimization)
11:31
Further improvements to parser speed by enlarging lookup tables to eliminate the need to do range checking on the index prior to lookup. (check-in: 47d3e091 user: drh tags: lemon-optimization)
02:09
Increase the size of the yy_lookahead table so that it is never necessary to down bounds checking on the index. (check-in: bafd8723 user: drh tags: lemon-optimization)
2019-08-27
19:59
Add support for "ORDER BY ... NULLS FIRST" and "ORDER BY ... NULLS LAST". Use this to fix ticket [f8a7060e]. (check-in: 94085fb3 user: dan tags: trunk)
17:59
The ALWAYS() added by the previous check-in was incorrect. Take it back out. (check-in: 336235db user: drh tags: trunk)
17:28
Add ALWAYS() to an always true conditional that results from the previous check-in. Add a test case for ticket [dbaf8a6820be1ece] to supplement those already checked into TH3. (check-in: aff20980 user: drh tags: trunk)
17:01
Omit the "x IN (y)" to "x==y" optimization of check-in [e68b427afbc82e20] (and ticket [e39d032577df6942]) as it causes difficult affinity problems as demonstrated by ticket [dbaf8a6820be1ece] and the original assertion fault is no longer a factor due to countless other changes of the previous 5 years. (check-in: 7f5168a7 user: drh tags: trunk)
10:05
If a TEMP TRIGGER references an auxiliary schema, and that auxiliary schema is detached, move the trigger to reference the TEMP schema before completing the detach, so that the trigger does not hold a dangling schema pointer. Ticket [ac8dd4a32ba4322f] (check-in: 069c2f4c user: drh tags: trunk)
2019-08-26
20:41
Merge in recent fixes from trunk. (Closed-Leaf check-in: ad816d01 user: drh tags: nulls-last)
14:57
Tweak the shell tool ".recover" command so that it can recover rows that consist of a rowid and no fields. (check-in: 279ac7fd user: dan tags: trunk)
14:18
Improved detection of number of column mismatch for vector assignment in UPDATE statements. Ticket [78acc9d40f0786e8] (check-in: bd4bda73 user: drh tags: trunk)
13:45
Fix typo in a comment. No code changes. (check-in: d0cc06d8 user: drh tags: trunk)
12:50
Enforce 80-character line discipline in the CLI. Minor improvements to the CLI built-in help. (check-in: 9690013a user: drh tags: trunk)
2019-08-24
21:02
Minor performance improvement for balance_nonroot(). (check-in: d7434cae user: dan tags: trunk)
17:11
Fix a potential buffer overrun in fts5 caused by corrupt database records. (check-in: 156d6128 user: dan tags: trunk)
2019-08-23
23:05
Fix the built-in edit() SQL function in the CLI so that it works with zero-length blobs. (check-in: e3249012 user: drh tags: trunk)
21:11
Attempt to parse the NULLS LAST clause more efficiently. A few cycles were saved, but at the expense of more code. And there is a bug was introduced somewhere. Not worth continuing down this line. (Closed-Leaf check-in: 12d2cf88 user: drh tags: dead-end)
20:33
Move some things in parse.y so that TK_COLUMN and TK_AGG_COLUMN are assigned the same values as they are on trunk for a very small speedup. (check-in: d26fdfa3 user: dan tags: nulls-last)
17:09
Revise the VDBE comments for NULL-scan so that they also work make sense when reading a NULLS FIRST plan. (check-in: bfe79378 user: drh tags: nulls-last)
17:00
Additional simplifications of the WHERE loop code generator logic for NULLS LAST. (check-in: 1383680d user: drh tags: nulls-last)
16:12
Simplification of the WHERE loop code generator for NULLS LAST saves a few CPU cycles and about a hundred bytes of code space. (check-in: e3ed2f49 user: drh tags: nulls-last)
13:32
Invert the meaning of the regBignull flag so that it is 1 when doing the normal scan and 1 when scanning nulls. This enables the re-do jump at the bottom of the loop to be coded with a single OP_IfNotZero opcode, rather than a sequence of OP_If, OP_Integer, OP_Goto. (check-in: bf875e1a user: drh tags: nulls-last)
13:08
Extra VDBE comments in the NULLS LAST logic provide landmarks to help understand the EXPLAIN output. (check-in: 649b08ea user: drh tags: nulls-last)
2019-08-22
21:13
Add additional VDBE coverage macros. (check-in: d3531f5b user: drh tags: nulls-last)
19:35
Merge fixes from trunk. Also fix a reference to the KeyInfo.aSortOrder field, which should now be KeyInfo.aSortFlags (check-in: 63e625c8 user: drh tags: nulls-last)
16:38
Fix the likely(), unlikely(), and likelihood() functions so that they have no affinity, just like any other function. Ticket [7e07a3dbf5a8cd26] (check-in: 44578865 user: drh tags: trunk)
11:11
Fix a false-positive in sqlite3ExprNeedsNoAffinityChange(). Ticket [ac184eb571d5e6e0] (check-in: e62eddbb user: drh tags: trunk)
00:53
Fix the OP_SeekGE, OP_SeekGT, OP_SeekLE, and OP_SeekLT opcodes so that they preserve the datatype of the value in the register used as the key. Ticket [d9f584e936c7a8d0] (check-in: 81b9f0f5 user: drh tags: trunk)
2019-08-21
19:58
Add missing VdbeCoverage() macros to new code. (check-in: b1cbcdc6 user: dan tags: nulls-last)
17:46
Disable broken test case in expert1.test. (check-in: 73e30c2e user: dan tags: nulls-last)
15:41
Update this branch with latest trunk changes. (check-in: 6153bcf4 user: dan tags: nulls-last)
14:54
Avoid assuming that "column IS ?", where column is declared UNIQUE, matches only a single row (as "?" might be NULL). Fix for [b8689402]. (check-in: d02490a2 user: dan tags: trunk)
11:31
Fix a broken assert() in the fts3 snippet code that was failing for queries containging more than 64 phrases. (check-in: 4c01e017 user: dan tags: trunk)
2019-08-20
20:09
Further tests for the special null-handling on this branch. (check-in: 0dbbb51f user: dan tags: nulls-last)
19:11
Fix a problem with fts5 "ORDER BY rank" queries when the fts5 table name requires quoting. (check-in: 00e9a8f2 user: dan tags: trunk)
17:51
Add tests for sort-by-index cases that use IN() and non-default NULL handling. (check-in: 09d660ec user: dan tags: nulls-last)
17:14
Bring the hard-heap-limit branch up-to-date with trunk. (check-in: 9b14eb77 user: drh tags: hard-heap-limit)
15:47
Do not pass ORDER BY clauses with non-standard NULL handling to virtual table implementations. (check-in: a9a82ee8 user: dan tags: nulls-last)
14:43
Fix a segfault that could occur following an OOM while processing a SELECT statement for which one or more of the expressions in the window frame declaration are themselves sub-selects that use window functions. (check-in: 75aec4fc user: dan tags: trunk)
13:49
Add the new sqlite3_drop_modules() interface to the loadable extension mechanism. (check-in: 658bd516 user: drh tags: trunk)
11:43
Retain the affinity of an expression in a WHERE clause when it is transformed to a reference to an index column on the same expression. Fix for [f043b113]. (check-in: 511da081 user: dan tags: trunk)
02:19
Fix a typo and a harmless compiler warning. (check-in: ec4c63e0 user: mistachkin tags: trunk)
2019-08-19
20:44
Add the sqlite3_drop_modules() interface. (check-in: e2c6fed8 user: drh tags: trunk)
20:35
Omit the "_except" term from the name of the new interface. (Closed-Leaf check-in: e5ba47c2 user: drh tags: sqlite3_drop_modules_except)
19:59
Fix problems with window frames that use ORDER BY ... NULLS LAST etc. (check-in: 75d665a4 user: dan tags: nulls-last)
17:26
Prevent NULLS FIRST/LAST from being used in CREATE INDEX and other statements. (check-in: bb9767a2 user: dan tags: nulls-last)
2019-08-17
19:58
Add some extra tests for the lsm virtual table module. (check-in: 4cb009b0 user: dan tags: trunk)
19:55
Fix to the query planner for the LSM1 extension. (check-in: 7496e872 user: drh tags: trunk)
19:45
The experimental sqlite3_drop_modules_except() interface. (check-in: 0851db4d user: drh tags: sqlite3_drop_modules_except)
19:31
Fix the new ability to unregister virtual table modules so that it works for the automatic PRAGMA virtual tables. (check-in: 5d6f4dfe user: drh tags: trunk)
19:13
When populating an ephemeral b-tree for the RHS of an IN(...) clause, avoid applying an affinity to a value that may be used later on for some other purpose. Fix for [c7a117190]. (check-in: 43e8b143 user: dan tags: trunk)
18:16
Add tests to ensure that this branch really does fix ticket [f8a7060ece]. (check-in: f8920664 user: dan tags: nulls-last)
17:55
Fix problem with DESC indexes on this branch. (check-in: b49df1fe user: dan tags: nulls-last)
17:07
Ensure the functions that appear to be constant are not factored out of expression that originate on the right-hand side of a LEFT JOIN. Ticket [6710d2f7a13a2997] (check-in: 500c9152 user: drh tags: trunk)
15:47
Merge trunk changes into this branch. (check-in: db1e6080 user: dan tags: nulls-last)
15:27
Activatate introspection pragmas by default. The new option SQLITE_OMIT_INTROSPECTION_PRAGMAS must be provided to keep them out. (check-in: 9c4bca64 user: drh tags: trunk)
00:53
The SQLITE_DIRECTONLY flag, when added to sqlite3_create_function() prevents the function from being used inside a trigger or view. (check-in: de767376 user: drh tags: trunk)
2019-08-16
22:58
Add the ability to unregister a virtual table module by invoking sqlite3_create_module() with a NULL sqlite3_module pointer. (check-in: 31e34fa3 user: drh tags: trunk)
21:07
Add support for using indexes for some ORDER BY clauses that use non-default NULL handling. Still some problems on this branch. (check-in: 81069d71 user: dan tags: nulls-last)
2019-08-15
23:11
Fix harmless compiler warnings in the TCL interface. (check-in: f17e7229 user: drh tags: trunk)
21:27
Add the SQLITE_DBCONFIG_ENABLE_VIEW option, together with a "db config" command in the TCL interface that can access that option as well as all the other sqlite3_db_config() boolean options. (check-in: 61b4bccd user: drh tags: trunk)
20:04
Provide the SQLITE_DIRECTONLY flag for app-defined functions that prohibits the use of those functions within triggers or views. (Closed-Leaf check-in: fc745845 user: drh tags: directonly)
14:35
Ensure that the optional "sz=N" parameter that can be manually added to the end of an sqlite_stat1 entry does not have an N value that is too small. Ticket [e4598ecbdd18bd82] (check-in: 98357d8c user: drh tags: trunk)
13:53
Ensure that SQLite does not attempt to process incompatible window functions in a single scan. Fix for [256741a1]. (check-in: 4f5b2d93 user: dan tags: trunk)
13:46
Avoid downgrading SQLITE_CORRUPT errors detected by the schema parser into SQLITE_NOMEM or SQLITE_ERROR errors. (check-in: b2e79f8f user: drh tags: trunk)
13:17
Ensure that the cell overwrite optimization does not overwrite the header of the b-tree page. (check-in: 4cc5694c user: drh tags: trunk)
00:04
Early detection out-of-bounds page numbers on the direct-overflow-read optimization gives consistent error messages regardless of whether or not the optimization is enabled. (check-in: b517a52f user: drh tags: trunk)
2019-08-14
15:17
Always check for reads past the end of the file on the in-memory journal driver. This used to be an assert(). (check-in: 4d41ca7d user: drh tags: trunk)
2019-08-13
20:34
Add some static to the 'regexp' extension. (check-in: a21d1dde user: mistachkin tags: trunk)
17:56
Update test cases so that they work with ICU enabled. (check-in: 408144a1 user: dan tags: trunk)
17:27
Update some corruption test cases to take [724f4df9c] into account. (check-in: 927cd7b4 user: dan tags: trunk)
15:22
Merge latest trunk changes with this branch. (check-in: 5b4689d8 user: dan tags: reuse-schema)
15:11
Fix a problem with RBU function sqlite3rbu_bp_progress() when used during an RBU vacuum. (check-in: 8c44b02f user: dan tags: trunk)
2019-08-12
18:26
Make sure the btree cursor overflow cache is cleared when overwriting a cell in sqlite3BtreeInsert(). Ticket [3cf9bb227e9a5d32] (check-in: 7dae7b96 user: drh tags: trunk)
16:36
Experimental implementation of NULLS FIRST/LAST. This branch still has problems - the most significant of which is that ORDER BY clauses with a non-default NULLS FIRST/LAST qualifier can never use an index. (check-in: 07babb0f user: dan tags: nulls-last)
16:25
For the ".testctrl prng_seed" command in the CLI, if the argument is "random" then select a random integer seed and print the seed value on stdout. (check-in: 636ca447 user: drh tags: trunk)
15:37
Fix the build for compilation using separate files rather than the amalgamation. (Leaf check-in: 1e0f4869 user: drh tags: sha3)
15:19
Make the sha3 extension part of the amalgamation, enabled using SQLITE_ENABLE_SHA3. (check-in: a48a7b78 user: drh tags: sha3)
14:17
Add a TESTCTRL that disables the verification of type, name, and tbl_name in the sqlite_master table. (check-in: 48d9b48a user: drh tags: trunk)
00:08
Validate the type, name, and tbl_name fields of the sqlite_master table when loading the schema, unless writable_schema is engaged. (check-in: 724f4df9 user: drh tags: trunk)
2019-08-10
15:06
Fix the sqliteExprImpliesExpr() routine so that it recognizes that "(NULL IS FALSE) IS FALSE" doe not imply "NULL NOT NULL". Ticket [9080b6227fabb466] (check-in: da01ba4f user: drh tags: trunk)
14:35
Add extra test cases related to the previous commit. (check-in: 3c690b2b user: dan tags: trunk)
14:16
Remove two incorrect assert() statements from the logic used to derive column names and types from subqueries. (check-in: 712e4771 user: drh tags: trunk)
2019-08-09
20:26
Allow the RHS of a row-value IN operator to use a compound query with an ORDER BY clause. (check-in: eaf15d9b user: drh tags: trunk)
14:54
In shared-schema mode, handle the case where a connection has created a virtual-table object, but is later assigned a different shared-schema object for which the virtual-table schema has not yet been initialized. (check-in: e30c7414 user: dan tags: reuse-schema)
01:59
Modify signature of sqlite3VdbeChangeOpcode() to accept int instead of u32. (check-in: 68b7f2ac user: mistachkin tags: trunk)
01:11
Fix more compiler warnings. (check-in: 1b85442b user: drh tags: trunk)
2019-08-08
19:40
Fix harmless compiler warnings. (check-in: 1eef4dde user: drh tags: trunk)
19:19
Remove support for SQLITE_ENABLE_STAT3. The sqlite_stat3 table is now ignored, if it exists. Run ANALYZE using STAT4 to get the equivalent functionality, which presumably everybody has been doing for a long time now. (check-in: f1cd234c user: drh tags: trunk)
18:49
Fix a case of the Expr.affinity to Expr.affExpr refactor that was missed in the [a29f2a7d07beff64] check-in. (check-in: 83450d10 user: drh tags: trunk)
16:23
More legacy STAT3 code removed. (Closed-Leaf check-in: 845d2f17 user: drh tags: omit-stat3)
15:47
Fix spurious "no such table: x1" errors in shared-schema mode that could occur when a query that is a join across two or more databases needs to call the xConnect() methods of a virtual table. (check-in: edf45cd7 user: dan tags: reuse-schema)
15:24
Remove support for STAT3. The sqlite_stat3 tables are ignored, if they exist. STAT4 continues to work as it always has, and as it is a superset of STAT3 is the recommended replacement. (check-in: 1e17ea2f user: drh tags: omit-stat3)
11:44
Fix a bug causing "no such table" and other similar sqlite3_prepare*() errors to return SQLITE_SCHEMA instead of SQLITE_ERROR in shared-schema mode when there is an attached database for which the schema has never been loaded. (check-in: 111e2c73 user: dan tags: reuse-schema)
01:39
Remove a NEVER() that is reachable from a corrupt database. (check-in: 30e6ee27 user: drh tags: trunk)
2019-08-07
19:57
Remove use of the affinity() function from view.test, as it is only available in SQLITE_DEBUG builds. (check-in: 7f2246a1 user: dan tags: trunk)
18:34
Add "set TMP=%CD%" to the start of each msvc script output by releasetest_data.tcl. Otherwise, since binaries compiled with SQLITE_TEST all choose the same sequence of pseudo-random numbers, collisions between temp file names cause errors when running multiple tests in parallel. (check-in: f5d0436d user: dan tags: trunk)
17:45
Eliminate some more cases of redundant sorting in window-function queries. (check-in: 8158d2ac user: dan tags: trunk)
13:25
Do not make SQLITE_READ authorizer calls for tables without names, as all such tables will be internal-use-only tables for subqueries and whatnot. (check-in: 193c87fc user: drh tags: trunk)
2019-08-06
21:16
Ensure that when the col in an operator like "val IN(col)" is a column of a view, its affinity is not used to coerce val. Fix for [0a5e2c1d]. (check-in: 17b3d221 user: dan tags: trunk)
20:55
Improved reuse of file descriptors for which close() is delayed to prevent clearing of posix advisory locks. (check-in: 509c1ba2 user: drh tags: trunk)
20:26
Enhance the ".recover" output in the shell to use double-quotes around table and column identifiers. (check-in: 846d2d2d user: drh tags: trunk)
18:40
Add "PRAGMA foreign_keys=OFF;" to the start of the script output by ".recover", just as is done for ".dump". (check-in: bfc29e62 user: dan tags: trunk)
15:32
Ensure that columns of views and sub-queries that are expressions with no affinity are comparied without any type conversions, as required in the documentation. Tickets [61c853857f40da49] and [d52a29a9e6bc55c5]. (check-in: 9c8c1092 user: drh tags: trunk)
15:18
Performance optimization to the new affinity handling logic. (Closed-Leaf check-in: c9724e76 user: drh tags: pending)
15:02
Add a multi-threaded test to threadtest3.c for the feature on this branch. (check-in: 62557fab user: dan tags: reuse-schema)
14:37
Use 0x40 (ASCII '@') instead of 0x00 to mean "no affinity" so that columns with no affinity can appear in a zero-terminated string. Use the new SQLITE_AFF_NONE macro for this new magic number. (check-in: e8234f69 user: drh tags: pending)
11:45
Add an assert() to the code on this branch. (check-in: fdd44bbb user: dan tags: reuse-schema)
2019-08-05
20:53
Ensure that columns of views and sub-queries that are expressions with no affinity are not assigned BLOB affinity. This matches the documentation. Fix for [61c853857f40da49]. (On a branch because there are still subtle issues.) (check-in: e15a0977 user: dan tags: pending)
20:45
Add test cases to this branch. (Closed-Leaf check-in: f37317d8 user: dan tags: tkt-61c853-A)
19:44
Fix the patch on this branch so that it works with sub-queries, as well as views. (check-in: 7480db30 user: dan tags: tkt-61c853-A)
19:34
The second option for [61c853857f40da49]: In this mode, columns of VIEWs and subqueries that are formed by expressions have affinity BLOB rather than affinity none, as has usually been the case for a while. But this mode fixes a couple of corner cases involving query flattening and the push-down optimization where that rule was violated. (Closed-Leaf check-in: 470ac8d5 user: drh tags: tkt-61c853-B)
19:32
One of two options on how to address ticket [61c853857f40da49]. In this mode, we back out the documentation change of [07b7749da88d54e5] and change the core to work as it has been documented to work since 2017, rather than how it has actually worked since 2009. (check-in: 09cd0c0c user: drh tags: tkt-61c853-A)
18:01
Refactor field Expr.affinity into Expr.affExpr to avoid confusion with other fields and variables named "affinity" and display affExpr it in sqlite3TreeViewExpr() output. (check-in: a29f2a7d user: drh tags: trunk)
16:22
Improved detection of corruption on the freeblock list of a btree page. (check-in: 4b00799b user: drh tags: trunk)
13:19
Fix a problem with renaming a table when a view or trigger within the schema uses a FILTER with an aggregate function that is not currently registered with the database. (check-in: 2ac0e42f user: dan tags: trunk)
12:55
Prevent an fts5 table from being its own content table, or part of a view that is the content table. (check-in: b6d52c93 user: dan tags: trunk)
2019-08-03
19:06
Strengthen an assert() in the WHERE clause code generator for the min/max optimization. (check-in: 1bd4b97d user: drh tags: trunk)
16:37
Fix a problem with queries of the form "SELECT min(<expr>) ... WHERE <expr>=?" where there is an index on <expr>. Fix for [71e183ca]. (check-in: d465c3ee user: dan tags: trunk)
16:17
In the ".wheretrace 0x100" debugging mode, show the structure of the main parameters to sqlite3WhereBegin() calls. (check-in: fd598e47 user: drh tags: trunk)
01:40
Add the SQLITE_TESTCTRL_PRNG_SEED which can control the PRNG seed either directly or through the schema cookie of a supplied database connection. (check-in: 2660e929 user: drh tags: trunk)
01:39
Give the SQLITE_TESTCTRL_PRNG_SEED two arguments. The second argument if not NULL is a pointer to a database connection which seeds the connection from its schema cookie. In this way, fuzzers can control the PRNG seed. (Closed-Leaf check-in: 49aa3448 user: drh tags: prng-seed-test-control)
2019-08-02
21:03
Fixes to the PRNG_SEED pragma idea. (check-in: c7109840 user: drh tags: prng-seed-test-control)
20:45
Add the SQLITE_TESTCTRL_PRNG_SEED test control. (check-in: 3ac57231 user: drh tags: prng-seed-test-control)
19:40
If a query like "SELECT min(a), b FROM t1" visits no rows where "a" is not null, extract a value for "b" from one of the rows where "a" is null. Fix for ticket [41866dc37]. (check-in: faaaae49 user: dan tags: trunk)
18:43
If a query like "SELECT min(a), b FROM t1" visits no rows where "a" is not null, extract a value for "b" from one of the rows where "a" is null. Possible fix for ticket [41866dc37]. (Closed-Leaf check-in: a7277ed0 user: dan tags: tkt-41866dc37)
2019-08-01
22:48
The sqlite3_set_authorizer() interface should only expire prepared statements when it is setting a new authorizer, not when clearing the authorizer. And statements that are running when sqlite3_set_authorizer() is invoked should be allowed to continue running to completion. (check-in: 961e2f08 user: drh tags: trunk)
15:18
Add new release tests for windows to releasetest_data.tcl. (check-in: 1b330ec2 user: dan tags: trunk)
10:58
Fix a problem in ALTER TABLE triggered by views or triggers that include the construction "ORDER BY true" or "ORDER BY false". (check-in: 8168021f user: dan tags: trunk)
2019-07-31
21:08
Update "releasetest_data.tcl" so that it is a standalone script that generates sh or batch scripts to run each tcl test run at release time. Update wapptest.tcl to use it. (check-in: 559c2dd6 user: dan tags: trunk)
15:16
New test cases in test/fuzzdata8.db. (check-in: 6e92d71c user: drh tags: trunk)
12:13
Do not allow the json_set() function to overwrite the same element more than once. (check-in: f237f60e user: drh tags: trunk)
2019-07-30
21:00
Fix the build for when -DSQLITE_SMALL_STACK is used. (check-in: b9eda224 user: drh tags: trunk)
14:22
Improved fix for ticket [ced41c7c7d6b4d36] that keeps skip-scan enabled, but avoids identifying a skip-scan as order-distinct (because it is not) and thus forces a separate b-tree to implement the DISTINCT clause of a query. This undoes check-in [a871d69c6de65038] and substitutes a new fix. (check-in: 89bf0399 user: drh tags: trunk)
01:17
Disable the skip-scan optimization for DISTINCT queries. Fix for ticket [ced41c7c7d6b4d36] (check-in: a871d69c user: drh tags: trunk)
2019-07-29
17:18
Convert an assert() in R-Tree into a database corruption detection case. (check-in: 48b518eb user: drh tags: trunk)
16:53
Fix a crash in fts3 caused by corrupt database records. (check-in: 11f7f94f user: dan tags: trunk)
15:32
When using an index for both DISTINCT and ORDER BY, do not confuse the number of columns required for distinctness with the number required to get the correct sort order. Fix for [6749cb3c]. (check-in: 6ac0f822 user: dan tags: trunk)
14:42
When using an index for both DISTINCT and ORDER BY, do not confuse the number of columns required for distinctness with the number required to get the correct sort order. Fix for [6749cb3c]. (Closed-Leaf check-in: b4716931 user: dan tags: tkt-6749cb3c)
06:06
Fix the OP_Affinity operator so that when applying REAL affinity, it only sets MEM_IntReal if the integer value will fit in 6 bytes or less. Fix for ticket [ba2f4585cf495231] (check-in: 2b221bb1 user: drh tags: trunk)
05:23
Fix a minor typo in a comment. (check-in: cea8a892 user: drh tags: trunk)
02:52
Sync up warning related compiler options in the Makefiles for MSVC. (check-in: e77d48d1 user: mistachkin tags: trunk)
02:49
Fix harmless compiler warning seen with MSVC for x64. (check-in: 857b2ba6 user: mistachkin tags: trunk)
2019-07-26
20:54
Merge latest changes from trunk into this branch. (check-in: 7f1e4e4b user: dan tags: reuse-schema)
20:33
Update RBU so that it supports indexes on expressions. (check-in: 6bfa44da user: dan tags: trunk)
16:16
Fix RBU handling of partial indexes with comments embedded in their CREATE INDEX statements. (check-in: e1ccf211 user: dan tags: trunk)
2019-07-25
19:29
Fix a potential buffer overread in fts5 triggered by a corrupt database record. (check-in: 16472112 user: dan tags: trunk)
2019-07-24
23:15
Fix faulty asserts in the code generator. Ticket [c52b09c7f38903b1] (check-in: 01cdc590 user: drh tags: trunk)
20:10
Improve the ".recover" command so that it handles intkey pages linked into non-intkey b-trees, and vice-versa, better. (check-in: 9c458acb user: dan tags: trunk)
19:20
Improve the ".recover" command's handling of corrupt database schemas. (check-in: becaaa4d user: dan tags: trunk)
08:15
Improve the ".recover" command in the shell tool so that it is not confused by auto-vacuum databases. And so that it can recover tables for which one or more of the column names are SQL keywords. (check-in: 87d76047 user: dan tags: trunk)
2019-07-23
13:26
Avoid redefining types u32 and u16 when fossildelta.c is compiled as part of the amalgamation. (check-in: d8e88248 user: dan tags: trunk)
2019-07-22
23:30
Do not use the insert-overwrite optimization if the cell might overwrite the page header. (Leaf check-in: 9991626b user: drh tags: branch-3.29)
23:24
Do not use the insert-overwrite optimization if the cell might overwrite the page header. (check-in: f60a8306 user: drh tags: trunk)
19:01
Consolidate the removal of Window objects from the Select.pWin list into a single subroutine. (check-in: e46b2afc user: drh tags: trunk)
17:28
Fix a bug in the linked-list handling code added by commit [fd7316cd]. (check-in: 05080344 user: dan tags: trunk)
16:57
New test cases added to test/fuzzdata8.db (check-in: 25fec62a user: drh tags: trunk)
16:33
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: fd7316cd user: dan tags: trunk)
16:20
Remove Window objects from the corresponding Select.pWin list when they are deleted. (Closed-Leaf check-in: d23f3316 user: dan tags: winfunc-in-orderby)
11:38
Fix a problem with renaming tables when the schema contains an invocation of a currently unregistered aggregate with a FILTER clause. (check-in: bd37ce3f user: dan tags: trunk)
2019-07-20
21:12
Make sure any window definitions in an ORDER BY clause are removed from the SELECT statement if the ORDER BY clause gets optimized out. (check-in: 23b11967 user: drh tags: winfunc-in-orderby)
18:00
Early detection of a corrupt R-Tree in the R-Tree search algorithm. (check-in: 2bf5a4c1 user: drh tags: trunk)
17:43
Performance optimizations in the rtreeStepToLeaf() routine of RTree. (check-in: 4e34e361 user: drh tags: trunk)
2019-07-19
15:03
New test cases added to test/fuzzdata8.db. (check-in: 39be3c61 user: drh tags: trunk)
15:00
Refinement to check-in [348e7f193a963390] that avoids unreachable branches. (check-in: bbfb2908 user: drh tags: trunk)
14:32
Fix a problem with renaming a table when the schema contains an invocation of a window function that is not currently registered. (check-in: ff290feb user: dan tags: trunk)
11:20
Fix a problem with renaming tables when the schema contains WINDOW definitions with (illegal) non-numeric expressions as part of a PRECEDING or FOLLOWING clause. (check-in: 348e7f19 user: dan tags: trunk)
10:31
Fix a faulty assert() in walker.c that could fail when processing an ALTER TABLE statement on a schema containing invalid table references that are part of a WINDOW definition. (check-in: ee076c28 user: dan tags: trunk)
01:25
Fix a new problem in the BETWEEN operator when applied to a window function. The problem was introduced yesterday by check-in [7ef7b23cbb1b9ace]. This cherry-pick also needed to remove an assert from sqliteExprDelete(). (check-in: ce6bf395 user: drh tags: branch-3.29)
01:11
Fix a new problem in the BETWEEN operator when applied to a window function. The problem was introduced yesterday by check-in [7ef7b23cbb1b9ace]. (check-in: 47e23064 user: drh tags: trunk)
2019-07-18
20:55
Fix a problem where self-joins on views that are aggregate queries may return the wrong result. Cherrypick of [74ef97bf51dd531a]. (check-in: 2f0a564f user: mistachkin tags: branch-3.28)
19:50
Add a ctime.c entry for SQLITE_ENABLE_SHARED_SCHEMA. (check-in: 892ac945 user: drh tags: reuse-schema)
13:33
Modify the bits used for special flags on this branch to account for the fact that some of them are now used for other purposes. (check-in: 5a8d0f50 user: dan tags: reuse-schema)
2019-07-17
19:57
Always use the stdlib.h intptr_t type for pointer-integer conversions, when it is available. (check-in: c0d93244 user: drh tags: trunk)
18:19
When processing a BETWEEN or CASE expression, avoid transforming a node of the original expression into a TK_REGISTER node. Instead, take a copy and use it instead. Fix for [1be72aab9]. (check-in: bc6b0d73 user: drh tags: branch-3.29)
18:11
Fix problems with duplicate fields in the PRIMARY KEYs of WITHOUT ROWID tables. (check-in: bda25883 user: drh tags: branch-3.29)
16:18
Fix an incorrect assert() in balance_nonroot(). (check-in: 59c9e73f user: drh tags: trunk)
15:05
Improvement to the hexdb interpreter built into the CLI and into the TCL test harness: Round the "size" up to the next multiple of the "pagesize". (check-in: 9ec92939 user: drh tags: trunk)
14:34
When processing a BETWEEN or CASE expression, avoid transforming a node of the original expression into a TK_REGISTER node. Instead, take a copy and use it instead. Fix for [1be72aab9]. (check-in: 7ef7b23c user: dan tags: trunk)
12:49
Fix the WITHOUT ROWID table logic so that it generates a correct KeyInfo object for tables that have a PRIMARY KEY containing the same column used more than once with different collating sequences. Enhance the index_xinfo pragma to assist in testing the above. Fix for ticket [fd3aec0c7e3e2998]. (check-in: 84a51a75 user: drh tags: trunk)
12:42
New test cases for PRAGMA index_xinfo on a WITHOUT ROWID table. And new testcases using index_xinfo to verify that WITHOUT ROWID tables are constructed correctly. (Closed-Leaf check-in: 340378c1 user: drh tags: wor-pk-dups)
11:01
Enhance the "PRAGMA index_info()" and "PRAGMA index_xinfo()" statements so that they allow a WITHOUT ROWID table as their argument, and in that case show the structure of the underlying index used to implement the WITHOUT ROWID table. (check-in: 62274ff6 user: drh tags: wor-pk-dups)
09:18
Fix problems with duplicate fields in the PRIMARY KEYs of WITHOUT ROWID tables. (check-in: bd9a47a3 user: dan tags: wor-pk-dups)
07:23
Add casts to shell.c.in to avoid warnings on systems where size_t is 32 bits. (check-in: fe014288 user: dan tags: trunk)
2019-07-16
19:44
Add new assert() statements in an attempt to help static analyzers avoid false-positives. (check-in: 9e664585 user: drh tags: trunk)
18:27
Add assert()s in os_win.c in an effort to silence false-positives from static analyzers. (check-in: 22a7c15b user: drh tags: trunk)
05:11
Call ioctl() with the correct signature on both Android and stock Linux. (check-in: 24225349 user: dan tags: trunk)
2019-07-15
13:58
Fix a problem that could cause a crash if a blob handle were closed after the associated database handle was closed using sqlite3_close_v2(). (check-in: 52f463d2 user: dan tags: trunk)
07:58
Call ioctl() with the correct signature on both Android and stock Linux. (Closed-Leaf check-in: 68e12e06 user: dan tags: ioctl-signature)
2019-07-14
00:15
Mark an unreachable branch using ALWAYS(). (check-in: 0fff105a user: drh tags: trunk)
2019-07-13
18:27
Fix a memory leak that could follow an OOM in the new FILTER code. (check-in: 85fd70fe user: dan tags: trunk)
17:54
Fix a typo in test file window1.test. (check-in: 8c80e81d user: dan tags: trunk)
17:45
Fix error handling for the case where a window function is passed the wrong number of arguments. (check-in: 871796bb user: dan tags: trunk)
17:21
Fix a double-quoted string literal used in the ".schema" command of the CLI. (check-in: fcd937d9 user: drh tags: trunk)
16:39
Add support for attaching a FILTER clause to an aggregate function. (check-in: ee293e5a user: dan tags: trunk)
16:22
Rework the FILTER clause implementation to share more code with window functions. (Leaf check-in: 5dac8c38 user: dan tags: filter-clause)
16:15
Remove unreachable "break" statements to silence harmless compiler warnings from ICC. (check-in: 0d7287e1 user: drh tags: trunk)
09:56
Merge latest trunk changes into this branch. (check-in: 86ab963c user: dan tags: filter-clause)
09:55
Trivial performance improvement for balance(). (check-in: c7920f55 user: dan tags: filter-clause)
2019-07-12
15:15
Minor performance improvement in vdbeRecordCompareString(). (check-in: 777fec84 user: dan tags: filter-clause)
2019-07-11
19:50
Improved comments and extra testcase() macros on the serial-type computation logic in the OP_MakeRecord opcode. (check-in: 18bfb217 user: drh tags: trunk)
19:27
Increase the version number to 3.30.0 for the next release cycle. (check-in: 2578e3c6 user: drh tags: trunk)
19:22
Move the sqlite3VdbeSerialType() routine in-line in the OP_MakeRecord opcode. Optimizing compilers were doing this already. By doing it manually, we can omit some redundant tests and make the whole thing run a million cycles faster and use about 80 bytes less code space. (check-in: d837ab0d user: drh tags: trunk)
18:43
Change the parser on this branch to more closely match trunk. This saves a few more cycles. (check-in: be01b801 user: dan tags: filter-clause)
2019-07-10
20:16
Minor performance improvement in sqlite3ExprDeleteNN(). (check-in: bcc8b38a user: dan tags: filter-clause)
18:45
Merge the version 3.29.0 release enhancements into the reuse-schema branch. (check-in: 9819ead0 user: drh tags: reuse-schema)
18:40
Merge the 3.29.0 updates into the begin-concurrent-pnu-wal2 branch. (check-in: 627b428f user: drh tags: begin-concurrent-pnu-wal2)
18:30
Merge the 3.29.0 release into the wal2 branch. (check-in: 8baa4022 user: drh tags: wal2)
18:21
Merge the 3.29.0 changes into the begin-concurrent-pnu branch. (check-in: c89949cc user: drh tags: begin-concurrent-pnu)
18:11
Merge the 3.29.0 release into the begin-concurrent branch. (check-in: 983733ae user: drh tags: begin-concurrent)
17:58
Merge the 3.29.0 release into the apple-osx branch. (check-in: 87aa1d70 user: drh tags: apple-osx)
17:32
Version 3.29.0 (check-in: fc82b73e user: drh tags: trunk, release, version-3.29.0)
2019-07-09
23:35
Add the "LL" suffix on a pair of larger integer literals, for compatibility with older C compilers. (check-in: 6f328c35 user: drh tags: trunk)
17:36
Update rtree.c so that SQLITE_DEBUG is required to turn on assert() statements, even if it is compiled separately from the amalgamation. (check-in: b6e17f01 user: dan tags: trunk)
12:03
Fix a test script problem in windowfault.test. (check-in: 47010bf1 user: dan tags: trunk)
2019-07-08
21:32
Merge recent trunk enhancements into the reuse-schema branch. (check-in: fae92fee user: drh tags: reuse-schema)
21:25
Merge enhancments from wal2, which also merges trunk enhancements. (check-in: 08dcb459 user: drh tags: begin-concurrent-pnu-wal2)
21:19
Merge all enhancements from trunk into the wal2 branch. (check-in: dcbcbc2a user: drh tags: wal2)
21:12
Merge enhancements from trunk into the begin-concurrent-pnu branch. (check-in: 05aa93af user: drh tags: begin-concurrent-pnu)
21:06
Merge recent trunk enhancements into the begin-concurrent branch. (check-in: 7fff0803 user: drh tags: begin-concurrent)
20:59
Merge recent enhancements from trunk into apple-osx. (check-in: de88ed86 user: drh tags: apple-osx)
18:35
Fix dbfuzz2 so that it will compile on systems that do not support getrlimit(). (check-in: 36295dce user: drh tags: trunk)
13:45
Fix an assert() that [28196d89] caused to fail. (check-in: 8fb0c6d5 user: dan tags: trunk)
12:44
Comment improvements. No changes to code. (Leaf check-in: b0629132 user: drh tags: tkt9b78184b-alt)
12:01
Ensure collation sequences and affinities work in window function queries. Fix for [9ece23d2]. (check-in: 28196d89 user: dan tags: trunk)
2019-07-05
19:10
Another very small performance improvement. (check-in: 7a1e30a1 user: dan tags: filter-clause)
17:38
Minor tweak to patch on this branch to reclaim some cycles. (check-in: 81eed055 user: dan tags: filter-clause)
15:16
Fix a valgrind problem in fts3corrupt4.test. (check-in: cb3dec42 user: dan tags: trunk)
2019-07-04
19:19
As it requires wal mode support, do not run test file chunksize.test as part of the "journaltest" permutation. (check-in: acd2df36 user: dan tags: trunk)
16:30
Fix a typo in the wapptest.tcl script. (check-in: 971b4422 user: dan tags: trunk)
16:06
Have wapptest.tcl run at least one threadtest with an SQLITE_ENABLE_MEMORY_MANAGEMENT build. (check-in: d6131caf user: dan tags: trunk)
16:05
Fix a race condition that could occur in SQLITE_ENABLE_MEMORY_MANAGEMENT builds when two threads simultaneously open the first two database connections in the process. (check-in: 5ea3f6fc user: dan tags: trunk)
2019-07-03
18:31
Add tests for the FILTER clause. And a bugfix. (check-in: 28aa1702 user: dan tags: filter-clause)
2019-07-02
20:10
Have ALTER TABLE detect and error out for the case where renaming a column changes a the interpretation of a double-quoted identifier in the database schema from an SQL literal to a column reference. (check-in: 5dbb0734 user: dan tags: tkt9b78184b-alt)
12:23
Restore the legacy behavior of enabling double-quoted string literals in all contexts. But also provide a new compile-time option (SQLITE_DQS) to change the default to something more restrictive. (check-in: 97a94446 user: drh tags: trunk)
11:56
Experimental implementation of FILTER clause for aggregate functions. (check-in: 1f1ae2d6 user: dan tags: filter-clause)
2019-06-28
07:08
Use the OP_Sequence opcode for generating unique rowid values for an autoindex on a co-routine implementation of a subquery. (check-in: eab42975 user: drh tags: trunk)
2019-06-26
21:04
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: 5fd20e09 user: dan tags: trunk)
2019-06-21
14:05
Fix a typo in an option name for the .dbconfig command in shell.c.in: s/wriable_schema/writable_schema/ (check-in: 1c58522e user: dan tags: trunk)
2019-06-17
14:50
Fix a problem with handling with handling quoted path elements in extension functions json_set() and json_insert() reported on the mailing list. (check-in: 45bfcb88 user: dan tags: trunk)
14:13
New sqlite3_db_config() options: SQLITE_DBCONFIG_LEGACY_ALTER_TABLE, SQLITE_DBCONFIG_DQS_DML, and SQLITE_DBCONFIG_DQS_DDL. (check-in: a61db8ff user: drh tags: trunk)
13:56
Improved interface to double-quoted string literal enabling/disabling. (Closed-Leaf check-in: 923cfd53 user: drh tags: new-dbconfig-options)
2019-06-16
14:56
Avoid transforming TK_COLLATE or TK_UNLIKELY Expr nodes to TK_REFERENCE. Instead, transform the uppermost Expr node in the expression tree that is not of this type. Fix for [e1e07ef2]. (check-in: 54110870 user: drh tags: trunk)
08:58
Avoid transforming TK_COLLATE or TK_UNLIKELY Expr nodes to TK_REFERENCE. Instead, transform the uppermost Expr node in the expression tree that is not of this type. Fix for [e1e07ef2]. (Closed-Leaf check-in: ba7870e2 user: dan tags: tkt-e1e07ef2)
2019-06-15
15:32
Fix minor problems in the test code in test_demovfs.c. (check-in: ca4ddfef user: dan tags: trunk)
15:27
Add extra test case for one of the problems fixed by the previous commit. (check-in: 0bbceebb user: dan tags: trunk)
15:21
Ensure that sqlite3RenameExprUnmap() does an unmap of the result set alias names in subqueries when ALTER TABLE fails because of a syntax error in a trigger. (check-in: d3b6f166 user: drh tags: trunk)
2019-06-14
21:25
Add SQLITE_DBCONFIG options LEGACY_ALTER_TABLE, NO_DQS_SCHEMA, and NO_DQS. (check-in: 1fad2092 user: drh tags: new-dbconfig-options)
17:37
Deprecate the SQLITE_ALLOW_COVERING_INDEX_SCAN compile-time option when it is turned off. This probably will impact no-one. If it does, they will get an error message instructing them to contact developers, so that we can get feedback that somebody is actually using this feature. Start-time disabling of covering index scan is not affected. (check-in: 23e49f99 user: drh tags: trunk)
13:24
Fix the implementation of the built-in RTRIM collating sequence so that it works for control characters at the end of the string. Ticket [f1580ba1b574e9e9] (check-in: 86fa0087 user: drh tags: trunk)
12:28
Refactor the LIKE optimization decision logic so that it uses sqlite3AtoF() on both boundary keys to determine if the optimization can be used when the LHS is something that might not have TEXT affinity. Ticket [ce8717f0885af975]. See also [c94369cae9b561b1], [b043a54c3de54b28], [fd76310a5e843e07], and [158290c0abafde67]. (check-in: b4a9e09e user: drh tags: trunk)
2019-06-13
16:14
Add a new requirement mark on the ctime.c code. (check-in: c4b40568 user: drh tags: trunk)
14:07
Do not use the %lld printf conversion in the platform printf() as some legacy platforms do not support it. (check-in: f8696b60 user: drh tags: trunk)
13:52
Fix a minor error in a test script, and harmless compiler warnings in the CLI code. (check-in: eaa34626 user: drh tags: trunk)
2019-06-12
22:46
Adjust requirements marks and add new requirements tests. (check-in: ebb81dad user: drh tags: trunk)
20:51
As a special case, casting '-0.0' into numeric should yield 0. Fix for ticket [674385aeba91c774]. (check-in: 491f0f9b user: drh tags: trunk)
20:11
Enhancements to the printf() logic in order to render a negative zero with a minus sign. (Leaf check-in: 6ba4be66 user: drh tags: negative-zero)
13:49
Handle expressions like "expr IS TRUE COLLATE xyz" in the same way as "expr IS TRUE". Fix for [4d01eda8115b10d1]. (check-in: 5c6146b5 user: dan tags: trunk)
2019-06-11
21:02
The affinity of the unlikely() function and its cousins should be "none". Ticket [0c620df60bffd9ef] (check-in: 614ecb0a user: drh tags: trunk)
18:07
Make sure the affinity of the RHS of an IN operator does not affect the outcome even if the RHS expression contains a COLLATE clause. Ticket [57353f8243c637c0] (check-in: 0f748fe5 user: drh tags: trunk)
16:43
Mark an unreachable branch with an ALWAYS macro. (check-in: d4755aca user: drh tags: trunk)
16:07
New test case in fuzzdata8.db. (check-in: e96641f0 user: drh tags: trunk)
16:06
Off-by-one error in the CAST to NUMERIC logic. (check-in: 25b89630 user: drh tags: trunk)
12:03
Have the ALTER TABLE code handle the case where an entire expression that includes a sub-select is excluded from a view, trigger or index. (check-in: f2c8179f user: dan tags: trunk)
10:43
Add the new sqlite3ExprUnmapAndDelete() function and use it in place of separate calls to sqlite3RenameExprUnmap() and sqlite3ExprDelete(). (check-in: 36ea13e0 user: drh tags: trunk)
02:43
The ALTER TABLE command should not attempt to rename objects that are contained within an expression tree that has been optimized out because it is the other branch of an "AND false" expression. Ticket [533010b8cacebe82] (check-in: 04bd5cb7 user: drh tags: trunk)
01:56
Fix repeated test numbers in the altertab2.test file. (check-in: e82f235e user: drh tags: trunk)
01:30
Remove a comment made obsolete by check-in [71643deb6bbad4b4]. No changes to code. (check-in: 211c8002 user: drh tags: trunk)
2019-06-10
23:45
A string consisting of a single '.' is not a floating point literal with extra text at the end. Fix for ticket [412bba9b22c677da] (check-in: 57050162 user: drh tags: trunk)
19:17
Have ALTER TABLE commands ignore the lhs of "expr IN ()" and "expr NOT IN ()" expressions, just as other queries do. Fix for [533010b8ca]. (check-in: 71643deb user: dan tags: trunk)
19:07
Improvements to the documentation for the xAccess method of the VFS. Ticket [5e0423b058fa5adf] (check-in: 7078d77e user: drh tags: trunk)
18:33
Make sure a CAST to "NUMERIC" results in an integer if the value can be losslessly expressed as an integer, as the documentation requires. Ticket [dd6bffbfb6e61db9]. (check-in: c0c90961 user: drh tags: trunk)
15:34
Handle renaming a column or table when the schema contains a (meaningless) index on the constant expression ('text' IN ()) or ('text' NOT IN()). Fix for [fd76310a]. (check-in: 567b1309 user: dan tags: trunk)
13:46
Do not attempt the LIKE optimization on a column with numeric affinity if the rhs of the operator begins with whitespace. Fix for ticket [fd76310a5e]. (check-in: 94b58ab0 user: dan tags: trunk)
2019-06-07
22:51
Remove code in the round() SQL function that became unreachable due to the optimization of check-in [e95138f5f4febde5] (check-in: b141bae3 user: drh tags: trunk)
22:26
When casting string values into numeric and the string has a prefix that looks like a number but total string is not a well-formed number, then take extra care that the result is either integer or real depending on what the prefix looks like. Fix for tickets [e8bedb2a184001] and [4c2d7639f076aa]. (check-in: 67a68af5 user: drh tags: trunk)
18:56
Also upgrade script config.sub to the latest version. This should have been part of the previous commit. (check-in: efbf31b8 user: dan tags: trunk)
18:53
Upgrade the config.guess script to the latest version. (check-in: be843813 user: dan tags: trunk)
2019-06-05
14:29
CLI enhancements: Add the ".filectrl" command. Make the ".testctrl" command visible to ".help". (check-in: 7b3a99fc user: drh tags: trunk)
13:14
Add a test case for the unix SQLITE_FCNTL_CHUNK_SIZE file-control. (check-in: 3a477fd0 user: dan tags: trunk)
2019-06-04
18:21
In the CLI, add a small delay (0.1 seconds) after launching the output command for ".once" before deleting the temporary file. (check-in: 4979f138 user: drh tags: trunk)
15:47
New dbsqlfuzz test cases add to test/fuzzdata8.db. (check-in: 873aa46d user: drh tags: trunk)
13:11
Fix a segfault in fts3 that could occur when processing corrupt fts records. (check-in: dff24c6c user: dan tags: trunk)
2019-06-03
15:10
Fix harmless compiler warning in lemon. (check-in: 3a052429 user: mistachkin tags: branch-3.28)
15:09
Fix harmless compiler warning in lemon. (check-in: 2da0eea0 user: mistachkin tags: trunk)
14:02
Updates to the shared_schema.md notes document. (check-in: 51af2ade user: drh tags: reuse-schema)
13:53
Fix the count-of-view optimization so that it is (correctly) disabled for a query that includes a WHERE clause or a GROUP BY clause. Cherrypick of [05897ca48a40c6771]. (check-in: 583e5a0a user: mistachkin tags: branch-3.28)
13:46
In the CLI, add ".help" text for the .shared-schema command. (check-in: 3ba6f790 user: drh tags: reuse-schema)
2019-05-30
13:47
Optimization to the round() SQL function for large input values without a fractional part. (check-in: e95138f5 user: drh tags: trunk)
00:46
Smaller and faster sqlite3IsNaN() implementation makes deserialization of floating point values much faster. (check-in: ea748ede user: drh tags: trunk)
2019-05-29
21:18
Much faster implementation of applyNumericAffinity() by avoiding some unnecessary calls to sqlite3Atoi64(). (check-in: c1d8a3f6 user: drh tags: trunk)
18:33
Add an assert() as an additional test for fix in check-in [523b42371122d9e1b3]. (check-in: f9e85e6c user: drh tags: trunk)
17:22
Fix the query flattener optimization so that it preserve the "SF_Compound" bit when flattening a compound subquery into a non-compound outer query. Failure to preserve that bit could allow subsequent flattenings which are not valid. Fix for ticket [c41afac34f15781fe09cd]. (check-in: 523b4237 user: drh tags: trunk)
2019-05-28
14:42
Fix an assert() in fts3 that could fail when processing corrupt records. Also some minor sanitizer warnings. (check-in: c736c40a user: dan tags: trunk)
2019-05-27
11:21
Fix an error message on the blobread() extension function so that it says "read" instead of "write". (check-in: 7cbb9a5f user: drh tags: trunk)
11:09
Fix a memory leak in the delta_parse() table-valued function of the fossildelta.c extension. (check-in: c86ca3f0 user: drh tags: trunk)
00:29
Improved rounding even on systems with an 8-byte "long double" type. (check-in: 15202aee user: drh tags: trunk)
2019-05-25
18:17
Performance enhancement in sqlite3AtoF(). About 8% faster. (check-in: 81721aa5 user: drh tags: trunk)
17:41
Use "long double" literals to initialize an array of "long double" objects. (check-in: 2e2ebad3 user: drh tags: trunk)
13:14
Add new cases to speedtest1 for measuring performance of binary to/from decimal conversions of floating point values. (check-in: b84e7057 user: drh tags: trunk)
00:17
Disable the new rounding tests on systems without long double support. (check-in: ed250b4e user: drh tags: trunk)
2019-05-24
22:58
Improvements to rounding behavior in the round() and printf() functions. (check-in: 641b2d21 user: drh tags: trunk)
13:15
The ".shared-schema" command in the CLI requires the sqlite_dbpage table, so disable it if the build does not include that extension. (check-in: 0913ff4d user: drh tags: reuse-schema)
13:04
Merge recent enhancements from trunk. (check-in: ff9f3e09 user: drh tags: reuse-schema)
11:55
Fix an fts5 segfault that could occur after parsing a corrupt structure record. (check-in: 600daa9c user: dan tags: trunk)
2019-05-23
16:40
Add test cases for the fix in the previous commit. (check-in: c1057b2a user: dan tags: trunk)
16:38
Improvements to the view-self-join optimization so that it works on all VIEWs, not just on Common Table Expressions. (check-in: d2fe370c user: drh tags: trunk)
2019-05-22
23:12
New test case for check-in [74ef97bf51dd531a] that takes the fix in the previous check-in into account. (check-in: cb1d0652 user: drh tags: trunk)
22:49
Renumber the Select.selId values in the copies of SELECT statements that implement VIEWs when the VIEW is expanded, so that when the same VIEW is used twice in the same join, each expansion as a distinct selId. This fixes ticket [ce823231949d3abf42453c8]. (check-in: 3cacc4b9 user: drh tags: trunk)
14:35
New dbsqlfuzz find added to test/fuzzdata8.db. (check-in: 42af7c81 user: drh tags: trunk)
14:22
Fix a buffer overread that could in fts3 when dealing with corrupt records. (check-in: 1660d773 user: dan tags: trunk)
2019-05-21
17:04
Combine the implementations of the key and hexkey pragmas into a single case. Have both pragmas return "ok" if they are implemented. (check-in: b3692c40 user: drh tags: trunk)
16:32
Fix a problem in [b5ca442a] causing an assert() to fail in REINDEX commands. (check-in: a3e77c77 user: dan tags: trunk)
14:42
Use a statement journal for all CREATE INDEX statements in case an indexed exprsesion throws an exception when it is evaluated. Fix for [b5ca442a]. (check-in: b8071d10 user: dan tags: trunk)
2019-05-20
19:46
Fix a segfault that could occur in sqlite3session_diff() if NULL were passed as the pzErrMsg argument. (check-in: aee73fd2 user: dan tags: trunk)
18:43
Improvements to the automatic compile-time selection of byte-order, as suggested on the mailing list by Seb Kemper. (check-in: b7aad929 user: drh tags: trunk)
18:35
A minor variation on check-in [1685610ef8e0dc] which (hopefully) makes the logic a little easier to follow. Also disallows the use of the double-quoted string hack in the query expression used for VACUUM INTO, which is not strictly required, but moves us toward the goal of disallowing the double-quoted string hack everywhere. (check-in: 3e1b55f3 user: drh tags: trunk)
17:14
Disallow string constants enclosed in double-quotes within new CREATE TABLE and CREATE INDEX statements. It is still possible to enclose column names in double-quotes, and existing database schemas that use double-quotes for strings can still be loaded. This addresses ticket [9b78184b]. (check-in: 1685610e user: dan tags: trunk)
10:36
Update the sqlite3ExprCompare() routine so that it does not think "? IS NOT TRUE" is the same as "? IS TRUE". Fix for [d3e7f2ba5b3]. (check-in: 99eba69b user: dan tags: trunk)
2019-05-18
21:22
Fix an assert() failure that could occur in a join query if the RHS of an IN() operator is a list containing correlated expressions. This problem was introduced by checkin [e130319317e7611938] which was part of the fix for ticket [787fa716be3a7f650c] - so this commit is part of that ticket's fix too. (check-in: 778b1224 user: dan tags: trunk)
19:49
Avoid including the comment in the output of "PRAGMA table_info" in situations where there is a comment following a DEFAULT value within a CREATE TABLE statement. (check-in: d91095ba user: dan tags: trunk)
2019-05-17
20:37
Disable PRAGMA journal_mode=OFF when SQLITE_DBCONFIG_DEFENSIVE is turned on. Ticket [f4ec250930342e0c]. (check-in: a0f5eb5c user: drh tags: trunk)
15:59
Always store a REAL value in a column with REAL affinity if the integer equivalent would require 8 bytes of storage. Fix for [3c27b97e3]. (check-in: 14c00b10 user: dan tags: trunk)
2019-05-16
20:40
Add test cases to test/fuzzdata7.db for (harmless) dbfuzz2 finds. (check-in: 1eb2a628 user: drh tags: trunk)
20:36
Initialize the 18-byte overrun area on the buffer used to reconstruct overflow btree cells during a btree search, to avoid a harmless jump-depends-on-uninit-values warning. (check-in: 4b05caeb user: drh tags: trunk)
20:13
Fix an assert() in the OP_Delete opcode that could fail with a corrupt database. (check-in: 915388ab user: dan tags: trunk)
16:44
Add new test file fts5corrupt4.test. (check-in: 5dfc4fe9 user: dan tags: trunk)
11:47
Fix a harmless use-of-initialized-value fault in the assert() logic added by check-in [d612fb7873cf59d] (check-in: 3dac9072 user: drh tags: trunk)
03:47
Fix harmless compiler warning in the session extension. (check-in: dff823ca user: mistachkin tags: trunk)
01:22
Make sure the OP_Concat opcode always correctly zero-terminates a UTF16 string, even if the input strings are ill-formed. This is a followup to check-in [3a16ddf91f0c9c516a7] that fixes a case the previous check-in missed. Also add assert()s to prove correct zero termination. (check-in: d612fb78 user: drh tags: trunk)
2019-05-15
18:42
Fix the count-of-view optimization so that it is (correctly) disabled for a query that includes a WHERE clause or a GROUP BY clause. (check-in: 05897ca4 user: drh tags: trunk)
10:16
Simplify the "Verifying Code Authenticity" section of the README.md file. No code changes. (check-in: adebffc1 user: drh tags: trunk)
2019-05-14
22:25
Merge all the latest trunk enhancements into the reuse-schema branch. (check-in: 018f3199 user: drh tags: reuse-schema)
22:07
Merge the latest trunk and wal2 enhancements. (check-in: 3deaa6e2 user: drh tags: begin-concurrent-pnu-wal2)
22:02
Merge the latest trunk enhancements into the wal2 branch. (check-in: 23ec34e4 user: drh tags: wal2)
21:51
Merge the latest trunk enhancements into begin-concurrent-pnu. (check-in: e70878b3 user: drh tags: begin-concurrent-pnu)
21:51
Merge the latest trunk enhancements into begin-concurrent. (check-in: 5d3a6e18 user: drh tags: begin-concurrent)
20:25
Fix a problem with the fix for [9cf6c9bb51] (commit [658b84d7]) that could cause a cursor to be left in an invalid state following a (rowid < text-value) search. (check-in: bc7d2c16 user: dan tags: trunk)
19:39
Merge recent enhancements from trunk into apple-osx. (check-in: 40362d51 user: drh tags: apple-osx)
19:20
New test cases in test/fuzzdata8.db. (check-in: 228e1087 user: drh tags: trunk)
18:33
Fix a problem with corrupt db handling in the fts5_vocab module. (check-in: 456ced57 user: dan tags: trunk)
11:33
Fix an assert() and potential buffer overrun in fts5 that could occur if the database was corrupt. (check-in: 8be8bd0d user: dan tags: trunk)
00:43
Disable index seek optimizations on REINDEX when the order of primary keys in the index differs from the main table. Fix for ticket [bba7b69f9849b5bf11b4]. (check-in: f7aadfab user: drh tags: trunk)
2019-05-13
11:52
Fix an assert() failure in fts5 that could occur when processing a corrupt database. (check-in: f158c048 user: dan tags: trunk)
2019-05-11
19:36
A new implementation for the sqlite3ExprImpliesExpr() theorem prover that does a better job of answering TRUE to "(NOT A) OR B" when B is a NOT NULL expression. (check-in: b3413197 user: drh tags: trunk)
16:14
When considering partial indexes, do not assume that a "CASE x ..." expression implies "x IS NOT NULL". (check-in: 1b243032 user: dan tags: trunk)
13:04
Do not assume that "x IS NOT ?" implies "x NOT NULL" when considering partial indexes. Fix for ticket [8025674847]. (check-in: 0ba6d709 user: dan tags: trunk)
2019-05-10
20:44
Add tests for the RBU module. (check-in: a194e536 user: dan tags: trunk)
17:54
Fix harmless compiler warnings. (check-in: 956ca2a4 user: drh tags: trunk)
17:50
Fix harmless compiler warnings in the CLI. (check-in: 2846bc04 user: drh tags: trunk)
16:16
Fix some harmless compiler warnings. (Closed-Leaf check-in: ca068d82 user: mistachkin tags: warnings)
14:34
Ensure that the BtShared.nPage value is reset correctly on a SAVEPOINT ROLLBACK. (check-in: e6d5fee8 user: drh tags: trunk)
14:26
Treat integer values in window definition ORDER BY clauses as constants, not as references to another expression. (check-in: 7e4809ea user: dan tags: trunk)
14:03
Improved comments and extra assert() statements on the OP_Savepoint opcode, just to make the code a little easier to read and reason about. (check-in: e80b2d9f user: drh tags: trunk)
12:14
Fix the previous check-in [db9acef14d492121] so that the amalgamation build works for systems for which lack HAVE_ISNAN. (check-in: 3cc55e09 user: drh tags: trunk)
12:06
Fix the round() SQL function so that it handles infinities correctly. (check-in: db9acef1 user: drh tags: trunk)
2019-05-09
18:37
Fix another small buffer overread in sqlite_dbdata triggered by a corrupt database page. (check-in: 1dfc95b8 user: dan tags: trunk)
18:33
Fix a problem in the ".recover" command allowing a circular loop of b-tree pages in a database file to cause an infinite loop. (check-in: 8d2a062e user: dan tags: trunk)
18:13
Make the ".schema" command in the CLI resistant to corrupt database files. (check-in: f22c7e22 user: drh tags: trunk)
17:54
Fix a crash in the sqlite_dbdata module that could occur if a pointer within an overflow chain in a corrupt database pointed past the end of the db. (check-in: 3eae4e30 user: dan tags: trunk)
17:10
Disable the optimization where a REAL value with no fractional part is stored as an INTEGER when the integer uses as much space as the real value it proposes to stand in for (8 bytes). This avoids corner cases of comparing integers against real values that are beyond the resolution of an IEEE 754 double. Fix for ticket [6c1d3febc00b22d457c78c2] (check-in: 9b091527 user: drh tags: trunk)
16:57
Avoid long delays that can occur when ".recover"ing data from a database with a corrupt freelist. (check-in: 20f06bf2 user: dan tags: trunk)
16:22
Improved debugging output from the OP_MakeRecord opcode. (check-in: ac790729 user: drh tags: trunk)
15:51
Fix another corruption related buffer overread in the sqlite_dbdata module. (check-in: 5cd728fb user: dan tags: trunk)
15:07
Fix further buffer overreads triggered by passing corrupt records to the sqlite_dbdata module. (check-in: dbc6a9f7 user: dan tags: trunk)
14:15
Have ".recover" handle cases where the sqlite_master table contains malformed SQL statements. (check-in: e736da9c user: dan tags: trunk)
11:45
Fix a problem with running the ".recover" command on a database that is zero pages in size. (check-in: 47fa6534 user: dan tags: trunk)
11:34
Avoid reading outside a record buffer when extracting an SQL value in the sqlite_dbdata virtual table code. (check-in: d99bb0c1 user: dan tags: trunk)
11:21
Merge accidental fork in trunk. (check-in: ec937303 user: dan tags: trunk)
11:19
Fix a problem in the new code introduced by [658b84d7] causing corruption and other errors to be ignored. (check-in: 7ccf2e7d user: dan tags: trunk)
11:18
Improved error handling for the ".open --hexdb" command of the CLI. (check-in: 4fa831d5 user: drh tags: trunk)
2019-05-08
23:55
Ensure that the sqlite3BtreeLast() interface initializes the *pRes return to zero if the cursor is already sitting on the last entry of the table. Manuel Rigger found the obscure test case for which this makes a difference. (check-in: ebe4845c user: drh tags: trunk)
23:53
This is part of the previous check-in that didn't get committed for some reason - probably because I failed to press the "Save" button on the text editor. (check-in: 51d32173 user: drh tags: trunk)
21:14
Add another test case to cover a previously uncovered branch in the RBU module. (check-in: 30392985 user: dan tags: trunk)
19:55
Fix another pattern for which the LIKE optimization does not work for a non-TEXT affinity. Case found by Manuel Rigger. (check-in: 74020110 user: drh tags: trunk)
19:32
Simplification to the logic underlying PRAGMA case_sensitive_like. (check-in: ef0015fd user: drh tags: trunk)
19:06
Avoid an excess register allocation in UPDATE, when possible. This improves speed (slightly) and reduces the code footprint. (check-in: 8658574e user: drh tags: trunk)
18:49
Add tests to improve code coverage of the RBU module. (check-in: ecb56b75 user: dan tags: trunk)
17:27
Provide the SQLITE_OMIT_CASE_SENSITIVE_LIKE_PRAGMA compile-time option to omit the case_sensitive_like pragma. This change, in combination with documentation changes, is the current solution to ticket [a340eef47b0cad5]. (check-in: eabe7f2d user: drh tags: trunk)
11:52
Fix VDBE opcodes OP_SeekLT and OP_SeekLE so that they work on intkey tables with non-numeric text values. Fix for [9cf6c9bb]. (check-in: 658b84d7 user: dan tags: trunk)
11:42
Fix VDBE opcodes OP_SeekLT and OP_SeekLE so that they work on intkey tables with non-numeric text values. (Closed-Leaf check-in: a870c196 user: dan tags: tkt-9cf6c9bb)
04:33
Remove an ALWAYS() that was previously added by check-in [a0819086] but which turns out can sometimes be false. (check-in: ad8fc5d8 user: drh tags: trunk)
03:34
Remove a NEVER() that was added in the previous check-in [a0819086a521f] because it is in fact reachable. (check-in: 74eba255 user: drh tags: trunk)
00:17
Earlier detections of errors in the byte-offset-to-cell-content integer at offset 5 in the header of a btree page. (check-in: a0819086 user: drh tags: trunk)
2019-05-07
20:06
Generate all records for INSERT or UPDATE prior to running foreign key constraint checks, since the FK checks might modify the datatype of registers used to generate the records. Fix for ticket [e63cbcfd3378afe6980d6]. (check-in: 3c75605b user: drh tags: trunk)
19:44
Do not commit an "OR FAIL" statement that causes foriegn key constraint violations. (check-in: 659c551d user: dan tags: trunk)
19:21
Add test cases for the fix on this branch. (Closed-Leaf check-in: 2e31abe0 user: dan tags: tkt-e63cbcfd)
19:13
On an INSERT or UPDATE, generate the new table record prior to running foreign key checks, in case the foreign key checks changes datatypes on the registers holding column values. Proposed fix for ticket [e63cbcfd3378afe6980d626]. (check-in: 3f1c8051 user: drh tags: tkt-e63cbcfd)
17:47
Strive to prevent harmless compiler warnings in GCC 4.8.5. (check-in: 8b6691f6 user: drh tags: trunk)
16:37
Optimize the restarting of an RBU vacuum. (check-in: 82062351 user: dan tags: trunk)
16:28
Remove some redundant code from sqlite3rbu.c. Add test cases for RBU vacuum. (Closed-Leaf check-in: 7b051698 user: dan tags: rbu-opt)
2019-05-06
20:40
Optimize further cases of restarting an RBU vacuum. (check-in: 6b3261bf user: dan tags: rbu-opt)
16:15
Fix a problem with renaming an INTEGER PRIMARY KEY column of a WITHOUT ROWID table using ALTER TABLE. (check-in: 91f701d3 user: dan tags: trunk)
2019-05-04
20:04
Optimize some cases of restarting an RBU vacuum. (check-in: cdc09867 user: dan tags: rbu-opt)
17:32
Fix the NOT NULL logic in the theorem prover that determines when a partial index can be used. Ticket [5c6955204c392ae763a95]. (check-in: c2e439bc user: drh tags: trunk)
03:56
Fix harmless compiler warning seen with MSVC. (check-in: 5862b83e user: mistachkin tags: trunk)
01:41
In the sqlite3_value or Mem object, make the MEM_IntReal type completely independent from MEM_Int and MEM_Real. This helps avoid problems when inserting non-float values into a "REAL" column. (check-in: 5a8a23ee user: drh tags: trunk)
01:29
New testcase macros to ensure that MEM_IntReal is fully tested. (Closed-Leaf check-in: 8b8ef445 user: drh tags: int-real)
2019-05-03
21:17
Add the SQLITE_TESTCTRL_RESULT_INTREAL test-control and use it to create the intreal() SQL function in testfixture. Write a few simple tests to prove this all works. TH3 will hold most of the INTREAL tests, probably. (check-in: c9838731 user: drh tags: int-real)
19:34
Ensure that UTF16 strings are properly zero-terminated before returning them in an sqlite3_value_text16() request, even if the string is invalid UTF16 because it was formed from an arbitrary and/or odd-length BLOB. (check-in: 3a16ddf9 user: drh tags: trunk)
18:50
Fix a memory-leak/segfault caused by using OP_OpenDup and OP_OpenEphemeral on the same VM cursor. (check-in: a9b90aa1 user: dan tags: trunk)
17:19
Fix a problem where self-joins on views that are aggregate queries may return the wrong result. (check-in: 74ef97bf user: dan tags: trunk)
17:08
Improved comments on the elements of the array constant used to implement the sqlite3_value_type() interface. (check-in: f73a7de7 user: drh tags: int-real)
02:41
Fix the ".open --hexdb" command in the CLI so that it works even with terminal input. (check-in: 9b5d9434 user: drh tags: trunk)
2019-05-02
21:36
Make MEM_IntReal a completely independent type, meaning a floating point value stored as an integer. This fixes a problem with arithmetic within arguments to string functions on indexes of expressions. But it is a big change and needs lots of new testcase() macros for MC/DC and so it is initially put on this branch. (check-in: dba836e3 user: drh tags: int-real)
17:45
Ensure that the typeof() function always returns SQLITE_FLOAT for floating point values even when the value is stored as an integer to save space. (check-in: 48889530 user: drh tags: trunk)
17:06
Add options to wapptest.tcl similar to those supported by releasetest.tcl. Also add the -noui switch, for running without wapp altogether. (check-in: 005a1694 user: dan tags: trunk)
15:56
Earlier detection of a database corruption case in balance_nonroot(), to prevent a possible use of an uninitialized variable. (check-in: c509d8a8 user: drh tags: trunk)
14:15
Merge enhancements from trunk (check-in: 3a4751a9 user: drh tags: hard-heap-limit)
01:41
The "LIKE Optimization" (which converts a LIKE into a BETWEEN operator that is able to use an index) does not work and cannot be used if the collating sequence of the column is not TEXT and if the pattern starts with a "+" sign. This is another case of ticket [c94369cae9b561b1f996d005]. The new test case was discovered by Manuel Rigger. (check-in: b043a54c user: drh tags: trunk)
00:52
Fix an issue (discovered by OSSFuzz) in the enhanced OP_Concat operator from check-in [713caa382cf7dd] earlier today. (check-in: 3e897702 user: drh tags: trunk)
2019-05-01
19:01
Add a test case for ticket [ae0f637bddc5290b44669e066a]. (check-in: ece48169 user: drh tags: trunk)
18:59
When values have real affinity and are converted into strings for CHECK constraints or index expressions, do the conversions into a real-number format even if the values are stored as integers for efficiency. This appears to fix ticket [ae0f637bddc5290b446]. (check-in: 5997d075 user: drh tags: trunk)
17:36
Fix an incompatibility with -DSQLITE_OMIT_LOAD_EXTENSION=1 in dbdata.test. (check-in: a77cd85b user: dan tags: trunk)
17:32
Fix a case in wapptest.tcl where a failed test might report 0 errors. (check-in: 2be1ed70 user: dan tags: trunk)
15:32
Avoid unwelcomed side effects on the input operands in the OP_Concat operator. Fix for ticket [3be1295b264be2fac49b681] (check-in: 713caa38 user: drh tags: trunk)
15:25
Update wapptest.tcl so that it deletes extra files if the "Keep files:" checkbox is clear. Set it by default. (check-in: 09623cc4 user: dan tags: trunk)
14:41
In "PRAGMA vdbe_trace" output, show the results of OP_Affinity opcodes. (check-in: 56604bb6 user: drh tags: trunk)
08:48
Fix an incompatibility with auto-vacuum mode in new test script recover.test. (check-in: 36dd5b08 user: dan tags: trunk)
2019-04-30
20:43
Update wapptest.tcl to use a simpler slave script. And to leave scripts wapptest_configure.sh and wapptest_make.sh in each test directory. (check-in: 07e527d7 user: dan tags: trunk)
15:36
Fix a problem allowing a Table object to be deleted from within a call to the xDestroy method of the associated virtual table, causing a use-after-free error. (check-in: 1dbbb010 user: dan tags: trunk)
14:26
Fix an error message in the Lemon parser generator. (check-in: b6d7d42b user: drh tags: trunk)
11:54
Small performance increase and size reduction in the implementation of the LIKE and GLOB operators. (check-in: f97626f9 user: drh tags: trunk)
01:08
Slightly smaller and faster implementation of the OP_MakeRecord opcode. (check-in: 3bdce7ef user: drh tags: trunk)
2019-04-29
16:44
Changes to oserror.test so that it works even on systems that allow an unusually large number of file descriptors. (check-in: a27b0b88 user: drh tags: trunk)
13:48
Do not de-duplicate columns index columns associated with a WITHOUT ROWID table if the columns have different collating sequences. This is the fix for ticket [3182d3879020ef3b2]. There is one test case added, but most of the tests are done in TH3. (check-in: 1b1dd4d4 user: drh tags: trunk)
13:30
Improved header comment and precondition checking for the new isDupColumn() function. (Closed-Leaf check-in: 740d5ff6 user: drh tags: tkt-3182d38790)
11:41
Fix a buffer overwrite in shell.c.in (part of the new .recover code). (check-in: 92facbc7 user: dan tags: trunk)
11:27
Fix a stack overflow that could occur when renaming a table that has a trigger containing a window function invocation that itself contains a specific syntax error. (check-in: c621fc66 user: dan tags: trunk)
2019-04-28
19:27
Take collating sequence into account when removing redundant columns from indexes on WITHOUT ROWID tables. This is the first proof-of-concept fix for ticket [3182d3879020ef3]. More testing needed. (check-in: b34fa5bf user: drh tags: tkt-3182d38790)
2019-04-27
20:39
Add the shardvtab virtual table that uses the new cost estimation functions. (Leaf check-in: 9404300a user: drh tags: cost-est)
20:30
Add the ".recover" command to the shell tool. For recovering as much data as possible from corrupt databases. (check-in: 50fe4845 user: dan tags: trunk)
20:16
Fix a minor typo in a comment. No changes to code. (check-in: 95209072 user: drh tags: trunk)
20:15
Fix building the shell with SQLITE_OMIT_VIRTUAL_TABLE. And without SQLITE_ENABLE_DBPAGE_VTAB. (Closed-Leaf check-in: 425d708c user: dan tags: dbdata)
19:36
Add comments and fix formatting issues in new code in shell.c.in. (check-in: b91d819b user: dan tags: dbdata)
18:47
Add the "--lost-and-found" option to the ".recover" command. For setting the name of the orphaned rows table. (check-in: 67bb88e2 user: dan tags: dbdata)
15:35
Fix a problem in the .recover command with recovering WITHOUT ROWID tables where the PK columns are not the leftmost in the CREATE TABLE statement. (check-in: 91df4b8e user: dan tags: dbdata)
2019-04-26
21:11
Have .recover store all orphaned rows in a single table, with extra columns to indicate the orphaned page and sub-tree they were discovered within. (check-in: 7221f6e3 user: dan tags: dbdata)
17:20
An experimental interface for retrieving the estimated cost and estimated number of output rows for a query. (check-in: 1b25fa10 user: drh tags: cost-est)
17:08
Omit tests of the LIKE optimization in like3.test when SQLITE_ENABLE_ICU is defined. (check-in: af53c41a user: dan tags: trunk)
15:40
Fix another problem with database freelist handling in the ".recover" command. (check-in: bee2652a user: dan tags: dbdata)
15:14
Fix a locking-page related problem with the ".recover" command. (check-in: afdae104 user: dan tags: dbdata)
2019-04-25
20:06
Merge latest trunk changes into this branch. (check-in: 1da302d8 user: dan tags: dbdata)
19:23
Unless the "--freelist-corrupt" option is specified, do not have the .recover command attempt to recover data from pages that are on the database free-list. (check-in: 8d2f52bb user: dan tags: dbdata)
18:15
Add the sqlite3_hard_heap_limit64() interface and the corresponding "PRAGMA hard_heap_limit=N" command. (check-in: b0ccef61 user: drh tags: hard-heap-limit)
16:20
Fix a bug preventing .recover from working on databases where the final page of the db is corrupt. (check-in: 959bbd11 user: dan tags: dbdata)
2019-04-24
20:48
Improve the performance of the .recover command. (check-in: a5076831 user: dan tags: dbdata)
17:04
New test cases in test/fuzzdata8.db. (check-in: 7be6222c user: drh tags: trunk)
16:13
Fix another instance in fts3 where a corrupt record can cause a buffer overflow. (check-in: e1724f1d user: dan tags: trunk)
15:57
Fix a problem in fts5 where a corrupt position list could lead to a buffer overwrite. (check-in: 516ca894 user: dan tags: trunk)
15:13
Fix an error in fts3_write.c allowing a corrupt database to cause a crash. (check-in: 6e4a5f22 user: dan tags: trunk)
04:53
Correction to the #if in the previous check-in. (check-in: 30dc05ac user: mistachkin tags: trunk)
00:37
Fix for 8-byte alignment asserts that can trigger in some circumstances with 32-bit MSVC. (check-in: 4c02832e user: mistachkin tags: trunk)
2019-04-23
22:00
Make no atttempt to generate VDBE code for VACUUM after a syntax error. (check-in: 93084247 user: drh tags: trunk)
20:48
Have ".recover" handle "\r" and "\n" in the same way as ".dump". (check-in: f95f0f02 user: dan tags: dbdata)
18:03
Fixes for the ".recover" shell command. (check-in: 8dcc1d89 user: dan tags: dbdata)
15:30
Changes to the --hexdb decoder option in the shell (and also in the TCL test code) so that it works on systems where sscanf() does not recognize "%hhx" as wanting to delivery results into a character-size variable. (check-in: 4258e42d user: drh tags: trunk)
15:21
Minor simplification of NULL value handling for STAT4. Cherrypick of [69bad9257f8db6a2] from trunk. (check-in: 442c177d user: mistachkin tags: branch-3.28)
15:08
Minor simplification of NULL value handling for STAT4. (check-in: 69bad925 user: mistachkin tags: trunk)
12:31
New test cases in fuzzdata8.db. (check-in: 0fe3c3fd user: drh tags: trunk)
12:30
Improvement on the previous check-in. Parse.rc is less reliable than Parse.nErr for detecting SQLITE_TOOBIG errors. (check-in: 8d478cfb user: drh tags: trunk)
2019-04-22
20:52
Enhance the ".recover" command. Fix a problem with overflow pages in dbdata.c. (check-in: f193ca58 user: dan tags: dbdata)
20:05
Early detection of SQLITE_TOOBIG when processing nested queries. (check-in: 5d85d80e user: drh tags: trunk)
11:47
Fix an assert() that may be false for corrupt databases. (check-in: b2ce5ed1 user: dan tags: trunk)
2019-04-20
20:57
Add the ".recovery" command to the shell tool. For recovering the maximum amount data from corrupt databases. Still needs work. (check-in: 7461d2e1 user: dan tags: dbdata)
2019-04-19
23:05
Mark a single branch as no longer reachable. (check-in: 4f35b3b7 user: drh tags: trunk)
22:01
Increase the version number to 3.29 for the next development cycle. (check-in: 6cf16703 user: drh tags: trunk)
18:10
Mark two branches as unreachable. Oops - one of those branches was reachable via fuzzcheck tests. (Closed-Leaf check-in: 9b888fcc user: drh tags: mistake)
17:26
Improved optimization of the AND and OR operators. (check-in: 0fbd154e user: drh tags: trunk)
16:34
Fix a problem with renaming a table that starts with "sqlite". Fix for ticket [f00d7b65]. (check-in: a2ead8aa user: dan tags: trunk)
16:21
Use macros to determine if an expression is always true or always false. (check-in: 6de980a0 user: drh tags: trunk)
13:38
Streamline the processing of the AND operator. Slightly smaller and faster. (check-in: 7713996a user: drh tags: trunk)
2019-04-18
21:14
Add the sqlite_dbptr virtual table to the dbdata extension. For querying the links between b-tree pages. (check-in: 3213a15f user: dan tags: dbdata)
19:21
Minor simplification of NULL value handling for STAT4. (Closed-Leaf check-in: 5718a9d5 user: mistachkin tags: nullStat4)
17:37
Undo change to 'analyze9.test' because the extra output can be useful for debugging. (Leaf check-in: f3081e59 user: mistachkin tags: msvc)
2019-04-17
23:56
Fix a couple minor test issues. (check-in: 1f1866d1 user: mistachkin tags: msvc)
23:32
Work around lack of a C99 feature in MSVC. (check-in: f6ebe1c2 user: mistachkin tags: msvc)
21:17
Add the experimental dbdata extension. (check-in: a3ab5883 user: dan tags: dbdata)
21:12
Small performance and size optimization in sqlite3WalFindFrame(). (check-in: 03f2e788 user: drh tags: trunk)
13:58
Fix a typo in the CLI help output for the ".dump" command. (check-in: 57638248 user: drh tags: trunk)
13:23
In the "pgidx" report from "showdb", also show the number of rows on each database btree page. (check-in: 2bda9dc4 user: drh tags: trunk)
12:29
In the "pgidx" command of the showdb utility, try to identify orphaned pages and show when pages have been zeroed out. (check-in: eed701ef user: drh tags: trunk)
12:07
Small performance improvement on the variable-length integer decoder: sqlite3GetVarint(). (check-in: 5df2bf62 user: drh tags: trunk)
11:34
Faster and smaller implementation of sqlite3StrICmp(). (check-in: 7ac500fb user: drh tags: trunk)
2019-04-16
19:49
Version 3.28.0 (check-in: 884b4b7e user: drh tags: trunk, release, version-3.28.0)
11:21
Avoid a sanitizer error (pointer arithmatic overflow) in vdbesort.c. (check-in: af61a2fc user: dan tags: trunk)
10:51
Avoid a sanitizer error in test1.c. Have releasetest.tcl/wapptest.tcl create a file called "makecommand.sh" that can be used to rerun a test from the command line. (check-in: 4de4480f user: dan tags: trunk)
2019-04-15
19:17
Fix a bug in test module test_fs.c causing a segfault on OpenBSD. (check-in: ee886600 user: dan tags: trunk)
15:41
Fix a problem with the user-auth extension and deserializing in-memory databases. (check-in: 09fa0b3c user: dan tags: trunk)
15:35
Merge recent changes from trunk into reuse-schema (check-in: 5c6c9e7f user: drh tags: reuse-schema)
15:28
Merge all recent enhancements. (check-in: 1cd536ec user: drh tags: begin-concurrent-pnu-wal2)
15:17
Merge the latest trunk enhancements. (check-in: 8950f119 user: drh tags: wal2)
15:07
Merge the latest enhancements from trunk. (check-in: 6caaaf21 user: drh tags: begin-concurrent-pnu)
14:59
Merge the latest enhancements from trunk. (check-in: 7c328e88 user: drh tags: begin-concurrent)
14:49
Bring in the latest enhancements from trunk. (check-in: 378230ae user: drh tags: apple-osx)
13:59
Fix a test script problem in fts5corrupt3.test. (check-in: 734192d8 user: dan tags: trunk)
13:51
Update tool/symbols.sh to ignore symbols from sessions and rebaser and to not try to compile with ICU which is not available on all platforms. (check-in: 0bab4ece user: drh tags: trunk)
2019-04-14
00:40
Remove a stray tab from the source code. (check-in: 0ada58e9 user: drh tags: trunk)
00:34
Fix an obsolete comment and other minor issues from code inspection. (check-in: cd084427 user: drh tags: trunk)
2019-04-13
16:50
Fix a harmless compiler warning in test logic. (check-in: c3932e66 user: drh tags: trunk)
16:43
Fix the fts3varint.test script so that it works even on versions of TCL for which Tcl_GetWideIntFromObj() does not work. (check-in: 53f787ad user: drh tags: trunk)
16:35
Fix a test script problem in fts5corrupt3.test. (check-in: 858f6227 user: dan tags: trunk)
15:07
Partially revert the test file changes in [4371a0c46e]. It is no longer required following [93ae382e97c23c90]. (check-in: 593a7e6e user: dan tags: trunk)
14:17
Fix additional compiler warnings introduced by the previous check-in and found by MSVC. (check-in: 6fc0deff user: drh tags: trunk)
14:07
Fixes for harmless compiler warnings. (check-in: c28c973a user: drh tags: trunk)
04:38
Use the 64-bit memory allocator interfaces in extensions, whenever possible. (check-in: 07ee06fd user: drh tags: trunk)
04:01
Enforce the SQLITE_LIMIT_COLUMN limit on virtual tables. (check-in: 0b6ae032 user: drh tags: trunk)
2019-04-12
20:33
Add the socketvfs test extension. (Leaf check-in: f5b3ce94 user: dan tags: socketvfs)
16:25
Test case changes so that they work with both Tcl8.6 and Tcl8.7. (check-in: 7b771405 user: drh tags: trunk)
13:40
Tweaks to wapptest.tcl: Ensure that the "Debug" checkbox is disabled unless the app is in "config" state, and have Debug variants run "test" instead of "fulltest". (check-in: dd248c18 user: dan tags: trunk)
12:10
Fix minor problems in tcl test scripts. (check-in: 56b66418 user: dan tags: trunk)
2019-04-11
19:07
Add the test/wapptest.tcl script, an alternative to releasetest.tcl that uses wapp to provide the user-interface. (check-in: edd87cd6 user: dan tags: trunk)
19:04
Merge trunk changes into this branch. (Closed-Leaf check-in: d805fc0c user: dan tags: wapptest)
19:03
Further tweaks to wapptest.tcl. Add the ability to run the extra (n)debug tests that releasetest.tcl runs. (check-in: ec9c4f6d user: dan tags: wapptest)
17:06
Remove the vfslog.c extension from the testfixture target in main.mk, as that extension has no TCL bindings and is inaccessible. (check-in: d71f8bbc user: drh tags: trunk)
16:54
Fix RBU so that it does not write rows that should be excluded into partial indexes (corrupting the database). (check-in: 31eb27f4 user: dan tags: trunk)
06:50
Fix the checksymbols target in Makefile.in. (check-in: 1956eb34 user: dan tags: wapptest)
2019-04-10
19:45
Have wapptest.tcl display the name, OS and architecture of the host. (check-in: c47e53b4 user: dan tags: wapptest)
18:56
Various fixes for the wapptest.tcl script. (check-in: cbf42365 user: dan tags: wapptest)
18:29
Update the list of OMIT options in the omittest.tcl script. (check-in: f294cfc1 user: drh tags: trunk)
13:24
Further refinement of the sqlite3VdbeMEmExpandBlob() fix of check-in [df58774e994bd] to prevent a reference to an unused variable - problem discovered by Valgrind. (check-in: 09435b57 user: drh tags: trunk)
12:02
Change the name of some internal testing interfaces to avoid a name conflict in AIX. (check-in: c1cae7e7 user: drh tags: trunk)
00:58
Do not place arbitrary restrictions on the length of the failure message for a uniqueness constraint. (check-in: 037da798 user: drh tags: trunk)
2019-04-09
21:37
New test case for SQLITE_TOOBIG errors. (check-in: 4c77fbbe user: drh tags: trunk)
21:32
Improved reporting of SQLITE_TOOBIG errors while parsing. (check-in: ea2d4b65 user: drh tags: trunk)
20:50
Fix a problem caused by a small SQLITE_LIMIT_LENGTH value and a CREATE TABLE with a very large name. (Closed-Leaf check-in: 9b5d4088 user: dan tags: toobig-fix)
19:53
Add test/wapptest.tcl, a wapp alternative to releasetest.tcl. (check-in: a4af0c2f user: dan tags: wapptest)
01:26
Use an unsigned integer to count free pages in btree.c:freePage2(). (check-in: 88204085 user: drh tags: trunk)
2019-04-07
18:21
Make the testcase() macro added in the previous check-in reachable for testing. (check-in: 80704a16 user: drh tags: trunk)
18:04
Fix a faulty assert() in the sqlite3VdbeMemExpandBlob() routine. (check-in: df58774e user: drh tags: trunk)
2019-04-06
15:38
Fix two assert() statements in fts5 that are only true if the database is not corrupt. (check-in: edb095a9 user: dan tags: trunk)
2019-04-05
21:17
Remove some stale references to the addopcodes.tcl script from documentation. (check-in: c0381b0b user: drh tags: trunk)
20:56
Eliminate the tool/addopcodes.tcl script. The purpose of that script was to keep the number of parser codes below 256 in order to save parser table space. But we have long since blown through that ceiling so the addopcodes.tcl script was just needless complexity. There is no longer any reason to keep it around. (check-in: d2728192 user: drh tags: trunk)
20:47
Add further tests so that veryquick.test covers all vdbe branches. (check-in: cbc67de5 user: dan tags: trunk)
17:22
Improved comment on the sqlite3FaultSim() function. No changes to code. (check-in: 08b29672 user: drh tags: trunk)
16:52
In the test_vfs.c VFS, if a Tcl xWrite script returns "SQLITE_OMIT", silently omit the write() call. (check-in: 8b5a621e user: dan tags: trunk)
16:38
Add the ability to override the new corruption detection logic of the previous checkin, in order to exercise downstream corruption detection during testing. (check-in: e859d318 user: drh tags: trunk)
15:44
In the xfer-optimization, do early detection of when the source and destination index share the same btree, to avoid a long delay prior to reporting the database corruption. (check-in: af1e5873 user: drh tags: trunk)
2019-04-04
22:05
Add the vtab enable/disable options to the sqlite3_db_config TCL command in the testfixture. (Leaf check-in: c7052428 user: drh tags: disable-vtab)
21:40
Merge all the latest changes and enhancements from trunk. (check-in: 521d5186 user: drh tags: apple-osx)
20:55
Add further test cases to improve VDBE branch coverage. (check-in: 51a95e52 user: dan tags: trunk)
20:21
Provide a DBCONFIG to enable or disable virtual tables that match a LIKE pattern. (check-in: b40a4edc user: drh tags: disable-vtab)
19:21
Fix a typo in the documentation for sqlite3_value_frombind(). Also add a new hyperlink to that same documentation. No code changes. (check-in: bf3cd936 user: drh tags: trunk)
18:20
Minor fixes to requirements marks. (check-in: 02ebc60b user: drh tags: trunk)
17:58
Add test cases to improve coverage of VDBE branches. Still some to go. (check-in: 4cef609d user: dan tags: trunk)
17:39
Correctly initialize the loadable extension thunk. (check-in: 4fca46de user: drh tags: trunk)
15:25
Simplification of the recent VACUUM changes that make the code more like what it was before the change. Also, make the VACUUM command a no-inline procedure to work around a performance regression. (check-in: 9cac5ac1 user: drh tags: trunk)
14:36
Fix an incorrect comment on a test case for rowid renumbering in VACUUM. (check-in: 0d293fb4 user: drh tags: trunk)
14:00
Only preserve rowid values for VACUUM INTO. Keep the legacy behavior of renumbering rowids for ordinary VACUUM. (check-in: 13a0ea64 user: drh tags: trunk)
2019-04-03
17:48
Add a defense-in-depth NEVER() test to the WAL cleanup code. (check-in: 8d3af201 user: drh tags: trunk)
16:27
Fix a couple of problems with "RANGE BETWEEN <expr> PRECEDING AND <expr> PRECEDING" frames. (check-in: 39225cc7 user: dan tags: trunk)
2019-04-02
18:12
Small optimizations to the grammar for window functions save about 120 bytes of space in the parser tables. (check-in: bce01d95 user: drh tags: trunk)
17:45
Use a separate bit on db->dbOptFlags to disable the xInverse optimization on window functions, rather than reusing the query-flattener disable bit. (check-in: bc0fb1c3 user: drh tags: trunk)
17:45
Including the phrase EXCLUDE NO OTHERS in the frame-spec of a window function (which is the default setting for EXCLUDE) silently disables the xInverse optimization. This is a feature, but we will keep it undocumented for now in case we later decide it is a bad idea. (check-in: 10aedce3 user: drh tags: trunk)
13:10
Put the list of keywords in mkkeywordhash.c into alphabetical order. (check-in: ac98b23b user: drh tags: trunk)
01:00
Merge fixes from trunk. (check-in: 20372906 user: drh tags: apple-osx)
00:56
Make sure the MEM_FromBind bit inthe Mem.flags field is not included in the MEM_TypeMask. This critical changes was omitted from the previous two check-ins by mistake, and so those check-ins are not fully functional. (check-in: f7ba2daf user: drh tags: trunk)
00:48
Add new APIs to the extension loading mechanism. (check-in: 6f122faf user: drh tags: trunk)
00:34
Merge enhancements from trunk. (check-in: 0b35aebb user: drh tags: apple-osx)
00:28
Add the sqlite3_value_frombind() interface. Use that interface to improve fts3_tokenizer(). (check-in: b3f2c320 user: drh tags: trunk)
2019-04-01
20:57
Performance improvement on the OP_Variable opcode. (Closed-Leaf check-in: 1dc7993b user: drh tags: value_frombind)
19:42
Improvements to the sqlite3ExprImpliesNonNullRow() theorem prover. (check-in: 3fde6276 user: drh tags: trunk)
18:43
Add a test case to cover a missed VDBE branch generated by window.c. (check-in: b36813d6 user: dan tags: trunk)
17:24
If the library is built with SQLITE_VDBE_COVERAGE defined, have the Tcl tests generate a vdbe coverage report in file testdir/vdbe_coverage.txt. (check-in: f0ed7146 user: dan tags: trunk)
16:23
Frame range comparisons can never be NULL because the values will have been checked for NULL prior to the test. (check-in: fa37cf9a user: drh tags: trunk)
15:55
Mark rowid-comparison opcodes as never-null for VDBE coverage tracking purposes. (check-in: a69bb4f2 user: drh tags: trunk)
14:30
Improved VDBE branch coverage in the run-time frame-spec error detection logic of window functions. (check-in: f56d305a user: drh tags: trunk)
14:01
Improved comments on the VDBE branch coverage testing logic. Fix the VDBE branch coverage measurement on the OP_MustBeInt opcode. (check-in: 8681750e user: drh tags: trunk)
13:06
Fix a defect in the VDBE branch coverage testing logic. (check-in: 1fcf3307 user: drh tags: trunk)
03:07
Fix harmless compiler warnings seen with MSVC. (check-in: 6cf8b18e user: mistachkin tags: trunk)
2019-03-31
21:09
Early detection of too many columns in an index avoid a possible 16-bit signed integer overflow. (check-in: 8af0caeb user: drh tags: trunk)
18:17
Add some missing VdbeCoverage() macros. (check-in: d03b6113 user: drh tags: trunk)
2019-03-30
20:43
Improvements to VdbeCoverage macros. (check-in: 10ee9e33 user: drh tags: trunk)
20:37
Fix issues with the previous check-in and add more VDBE branch coverage testing macros. (Closed-Leaf check-in: b5f72f10 user: drh tags: oops)
20:10
Enhanced VdbeCoverage() macros in the new windows function code. Later: This check-in causes an assertion fault. (check-in: f24066f8 user: drh tags: oops)
19:17
Add a call to sqlite3FaultSim(410) inside of btreeRestoreCursorPosition() to simplify testing of error scenarios. (check-in: bb643bac user: drh tags: trunk)
18:39
The defragmentPage() routine detects corruption in the first-free-slot fields at offset 1 in the header and throws an error, rather than asserting. (check-in: fb125bd3 user: drh tags: trunk)
17:30
Add the blobio.c extension module implementing readblob() and writeblob(). Experimental. (check-in: e3fde56d user: drh tags: trunk)
17:07
Add an extra IO-error test to windowfault.test. (check-in: 5b8c44cd user: dan tags: trunk)
2019-03-29
17:26
Change the fts3_tokenizer() function to always return the pointer as a BLOB as long as the first argument is a bound parameter, regardless of the SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER setting. (check-in: 27160df7 user: drh tags: value_frombind)
15:21
Remove the unused P5 flag from the OP_Rewind opcode. (check-in: c2edbf3b user: drh tags: trunk)
13:17
Fix a fairly obscure problem causing the planner to sometimes choose sub-optimal plans for a query with a single virtual table in the FROM clause, and at least one IN(...) constraint in the WHERE clause. (check-in: f5752517 user: dan tags: trunk)
11:48
Fix typos in the comments of the sessions extension, one of which affects the generated documentation. No code changes. (check-in: 040d5d51 user: drh tags: trunk)
11:39
The two-argument version of fts3_tokenizer() works regardless of the value of SQLITE_DBCONFIG_ENABLE_FT3_TOKENIZER as long as the second argument is a bind parameter. (check-in: ab76e3a9 user: drh tags: value_frombind)
11:13
Initial implementation of the sqlite3_value_frombind() interface. (check-in: 98da62df user: drh tags: value_frombind)
01:15
Recover a some of the performance lost by window function alias fix two check-ins back. (check-in: 965cbcea user: drh tags: trunk)
2019-03-28
20:50
Add new test cases to test/fuzzdata8.db (check-in: f908cd40 user: drh tags: trunk)
16:15
Prevent aliases of window functions expressions from being used as arguments to aggregate or other window functions. (check-in: 1e16d3e8 user: dan tags: trunk)
13:53
Show the pointer address for Window objects in the TreeView display. (check-in: 1ae70ad2 user: drh tags: trunk)
13:35
More improvements to TreeView output for Window objects: (1) Show when the frame-spec is implied rather than explicit. (2) Move the FILTER clause out from within the OVER clause, making it a sibling of the OVER clause, to match syntax. (check-in: d6a07433 user: drh tags: trunk)
13:03
Improved TreeView display of Window objects. Change the Window.eType field to Window.eFrmType to avoid confusion with other "eType" values. (check-in: ec2f207d user: drh tags: trunk)
04:03
If the string formatter in sqlite3NestedParse() fails due to an over-length string, make sure this error is recorded by the parser so that it knows to fail. (check-in: 85e53ff1 user: drh tags: trunk)
01:00
Improvements to the README.md file. No code changes. (check-in: bbdbaf84 user: drh tags: trunk)
2019-03-27
14:59
Support building the Tcl bindings DLL using MSVC. (check-in: b2011c13 user: mistachkin tags: trunk)
14:58
Fix harmless compiler warnings seen with MSVC. (check-in: 5be64ea8 user: mistachkin tags: trunk)
2019-03-26
19:14
Remove a "puts" statement accidentally left in a test script. (check-in: 9f591ac0 user: dan tags: reuse-schema)
18:40
Add a few extra tests for SQLITE_STATUS_SCHEMA_USED with shared-schema databases. (check-in: e399fede user: dan tags: reuse-schema)
16:47
Fix a problem with window frames that use "BETWEEN <start> AND 0 PRECEDING". (check-in: 7927b6b0 user: dan tags: trunk)
16:21
Fix harmless compiler warnings. (check-in: a063f7c4 user: drh tags: trunk)
14:04
Use the mutex-free PRNG in this branch, since anybody using this branch is probably interested in high concurrency. (check-in: e88fc6d0 user: drh tags: begin-concurrent)
13:28
Bring this branch into closer alignment with begin-concurrent. (check-in: 6433d366 user: drh tags: begin-concurrent-pnu)
13:08
Add support for new window functions related features - GROUPS frames, RANGE frames with logical start and end points, the EXCLUDE clause and window chaining. (check-in: c6da3911 user: dan tags: trunk)
12:37
Merge recent enhancements from trunk. (check-in: dc3c0b8b user: drh tags: apple-osx)
12:29
Bring this branch up to date with all the latest enhancements. (check-in: 2e964aaf user: drh tags: begin-concurrent-pnu-wal2)
12:22
Merge enhancements from trunk. (check-in: a0e2e902 user: drh tags: wal2)
12:16
Merge the latest trunk changes. (check-in: 51e3e835 user: drh tags: begin-concurrent-pnu)
12:07
Merge recent enhancements from trunk. (check-in: 774d0d52 user: drh tags: begin-concurrent)
11:57
Merge recent trunk enhancements. (check-in: db4e2cc3 user: drh tags: reuse-schema)
2019-03-25
22:05
Fix an obsolete comment in the CLI. No code changes. (check-in: fade103c user: drh tags: trunk)
21:56
In the CLI, code the "sqlite_parameters" name directly rather than using a macro, for clarity of presentation for users who are reading the code for the purpose of seeing how the CLI implements parameter binding. (check-in: e775ef00 user: drh tags: trunk)
21:55
Remove a test from the index build logic which is no longer needed and is in fact unreachable. (check-in: 9b20ee10 user: drh tags: trunk)
21:35
Change the name of the parameter table in the CLI to "sqlite_parameters". Doing so involves adding SQLITE_DBCONFIG_WRITABLE_SCHEMA and allowing the creation of tables whose names begin with "sqlite_" and that are indexed while writable_schema is on. (check-in: 24ef3844 user: drh tags: trunk)
19:50
Earlier detection of corruption while added to the freelist. (check-in: 8c80b004 user: drh tags: trunk)
18:44
Fix a faulty assert() statement in balance_nonroot() - the assert() should use get2byteNotZero() instead of get2byte() for the corner case where the number cells is zero on a 65536-byte page. (check-in: bcbe7d96 user: drh tags: trunk)
15:09
Improvements to the help text in the CLI. (check-in: 919fec91 user: drh tags: trunk)
15:06
Fix the writefile() SQL function implemented by ext/misc/fileio.c such that any directories created have standard umask permissions, not permissions of the file that is to be written. (check-in: f11c8959 user: drh tags: trunk)
14:24
For the ".archive --update" command in the CLI, only update files if their mtime or mode has changed. To force an update, use the new --insert instead. (check-in: 191a023a user: drh tags: trunk)
2019-03-23
00:38
Support Tcl libraries with a suffix. (Closed-Leaf check-in: 8d015399 user: mistachkin tags: msvcTcl)
2019-03-22
22:34
Further enhancements and fixes. (check-in: c9f1972e user: mistachkin tags: msvcTcl)
16:52
Attempt to detect when the MSVC linker requires the /MACHINE argument. (check-in: 3e355846 user: mistachkin tags: msvcTcl)
13:53
We learn that readdir_r() is deprecated in favor of plain old readdir(), which is now suppose to be threadsafe using thread-local storage. So remove the use of readdir_r() from the test code. (SQLite itself never calls readdir() or readdir_r()). (check-in: 7a0a26ed user: drh tags: trunk)
11:38
Add the --limit N option to dbfuzz2. Set the default callback limit to 250K. (check-in: b99f8512 user: drh tags: trunk)
01:26
Sync up the autoconf makefile for MSVC. (check-in: ecbae90a user: mistachkin tags: msvcTcl)
01:25
Support building the Tcl bindings DLL using MSVC. (check-in: 908c4c89 user: mistachkin tags: msvcTcl)
2019-03-21
21:18
Add an extra test for database corruption to defragmentPage(). (check-in: 80e951fc user: dan tags: trunk)
17:22
Merge latest trunk changes with this branch. (check-in: 3196f5f4 user: dan tags: reuse-schema)
17:13
Disable the feature on this branch in non-SQLITE_ENABLE_SHARED_SCHEMA builds. (check-in: b8e53608 user: dan tags: reuse-schema)
2019-03-20
20:27
Experimental change to apply affinity before running CHECK constraints on an INSERT. Note that in the CHECK constraints, REAL affinity really is REAL affinity, and not numeric affinity. This causes failures in some tests that are assuming affinity is applied after CHECK constraints. (Leaf check-in: 9ef69d18 user: drh tags: apply-affinity-first)
20:02
Use the IsReuseSchema() macro more consistently. Also, rename it to IsSharedSchema(). (check-in: c1be211c user: dan tags: reuse-schema)
19:17
Fix an error message. (check-in: a70fdaa3 user: dan tags: reuse-schema)
18:22
In the CLI, give better error messages if something goes wrong with the ".dbinfo" command. (check-in: 3649a77b user: drh tags: trunk)
16:58
Fix a potential dangling pointer deference in an ALTER TABLE run on a schema that contains constructs of the form "PRIMARY KEY(column COLLATE collation)". (check-in: b9e2393c user: dan tags: trunk)
16:03
Merge latest trunk changes into this branch. (check-in: 4cd20ca6 user: dan tags: reuse-schema)
12:08
Fix harmless compiler warnings from MSVC. (check-in: f0f02d46 user: drh tags: trunk)
05:45
Fix various harmless compiler warnings seen with MSVC. (Closed-Leaf check-in: 1c0fe5b5 user: mistachkin tags: noWarnings)