SQLite

Timeline
Login

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

16538 check-ins using file test/insert2.test version 4d14b8f1

2024-03-28
10:58
Document that the order of an update hook call is unspecied vis-a-vis the final result of the operation which triggers that hook. Doc changes only. (Leaf check-in: 3d4b1f07 user: stephan tags: trunk)
2024-03-27
20:34
Update comments in fts5.h. (check-in: 862945d5 user: dan tags: trunk)
2024-03-26
18:07
Add extra tests to vtabL.test. (check-in: fe209099 user: dan tags: trunk)
11:14
Avoid expanding integer values in columns with real affinity to the full 8-byte representation when editing records as part of a DROP COLUMN command. (check-in: a49296de user: dan tags: trunk)
10:48
Merge all recent trunk enhancements into the reuse-schema branch. (Leaf check-in: e469b022 user: drh tags: reuse-schema)
10:45
Merge all recent trunk enhancements into the bedrock branch. (Leaf check-in: 33d3453f user: drh tags: bedrock)
10:42
Merge all recent trunk enhancements into the wal2 branch. (Leaf check-in: c2139d82 user: drh tags: wal2)
10:42
Merge all recent trunk enhancements into the begin-concurrent branch. (Leaf check-in: 9b854e54 user: drh tags: begin-concurrent)
2024-03-25
20:35
The RAISE() operator is not a constant expression and cannot participate in the VALUE-as-coroutine optimization. dbsqlfuzz 74cf7c9904360322a6c917e4934b127543d1cd51 (check-in: 6a06dc73 user: drh tags: trunk)
20:00
Add further tests for sqlite3_declare_vtab(). (check-in: f3c4433f user: dan tags: trunk)
19:31
Simplifications to the sqlite3_declare_vtab() implementation. Changes some conditionals into assert() statements, for coverage. (check-in: ff7b898a user: drh tags: trunk)
18:30
Fix a theoretical OOB memory access in sqlite3_stmt_scanstatus_v2(). (check-in: 87be9580 user: dan tags: trunk)
18:24
Revert the previous change. Instead, do a pre-check of the CREATE TABLE statement that is the second argument to sqlite3_declare_vtab() and if the first two keywords are not "CREATE" and "TABLE", then raise an SQLITE_MISUSE error. (check-in: 6a2ff835 user: drh tags: trunk)
17:43
Remove an ALWAYS() from a condition that can be true. (check-in: 715fcf03 user: drh tags: trunk)
14:44
Fix an inaccuracy in automatic indexes that was exposed by the fix at [80c4223098c1827f]. (check-in: fdc9406f user: drh tags: trunk)
13:18
Fix the pragma4.test script so that it works with SQLITE_OMIT_VIRTUALTABLE. (check-in: f8fe6fb6 user: drh tags: trunk)
12:28
Fix recent test case changes so that they also work on Windows. (check-in: 38578b5a user: drh tags: trunk)
11:34
Use the SQLITE_CONSTRAINT return value from xBestIndex to prohibit bad query plans in the pragma virtual table. (check-in: b1259d44 user: drh tags: trunk)
10:55
Improvements to the vtablog.c extension: Eliminate memory leaks. More diagnostic output for xBestIndex. (check-in: 92e9a71b user: drh tags: trunk)
10:28
Flag sqlite3_trace() and sqlite3_profile() as deprecated so that the doc generator for funclist.html sees them as such, and add 'Deprecated' to their page's title for consistency with other deprecated APIs. Comment changes only. Addresses forum post 0901025836. (check-in: 87c54f93 user: stephan tags: trunk)
00:38
Improvements to the vtablog.c extension, for better logging of virtual table interactions. (check-in: e253bb36 user: drh tags: trunk)
2024-03-24
21:18
Fix the xBestIndex method of the pragma virtual table so that it correctly gives a higher cost to plans where the schema hidden parameter is unconstrained. (Leaf check-in: ec791413 user: drh tags: branch-3.45)
21:15
Fix the xBestIndex method of the pragma virtual table so that it correctly gives a higher cost to plans where the schema hidden parameter is unconstrained. (Leaf check-in: d68fb8b5 user: drh tags: branch-3.44)
21:10
Fix the xBestIndex method of the pragma virtual table so that it correctly gives a higher cost to plans where the schema hidden parameter is unconstrained. Fix for the problem reported by forum post 85b6a8b6705fb77a. (check-in: bc516ff5 user: drh tags: trunk)
20:26
Improved "wheretrace" debugging output for calls to xBestIndex. No changes to release code. (check-in: 33966bb0 user: drh tags: trunk)
19:08
Fix the SQLITE_ALLOW_ROWID_IN_VIEW bug-compatibility option so that it works again. Add the SQLITE_CONFIG_ROWID_IN_VIEW sqlite3_config() value to optionally disable the bug-compatibility mode at start-time. Enable testing of SQLITE_ALLOW_ROWID_IN_VIEW. (check-in: 7a3d0027 user: drh tags: branch-3.45)
16:42
Do not automatically assume that ROWID is NOT NULL when compiled with SQLITE_ALLOW_ROWID_IN_VIEW. dbsqlfuzz 31b38eeb63a4e1562de665078f52b7b47a7543cf (check-in: b5d2dce1 user: drh tags: branch-3.44)
16:33
Do not automatically assume that ROWID is NOT NULL when compiled with SQLITE_ALLOW_ROWID_IN_VIEW. dbsqlfuzz 31b38eeb63a4e1562de665078f52b7b47a7543cf (check-in: 80c42230 user: drh tags: trunk)
2024-03-23
15:17
Fix an adverse interaction between CREATE TABLE AS and the new VALUES-as-coroutine optimization. dbsqlfuzz c2c5e7e08b7e489d270a26d895077a03f678c33b (check-in: 84b6fdea user: drh tags: trunk)
2024-03-22
10:32
Fix incorrect boundary assert()s on the new OP_IfSizeBetween opcode. (check-in: 8eda4797 user: drh tags: trunk)
2024-03-21
22:18
Test case for the assert() problem fixed by [9ba3cff9d48fe8fc]. (check-in: 865f0de7 user: drh tags: trunk)
22:12
Fix a assert() that is incorrect, though harmless. Also add a test case. (check-in: 90537ce0 user: drh tags: branch-3.45)
22:08
Fix a assert() that is incorrect, though harmless. Also add a test case. (check-in: 57b0c984 user: drh tags: branch-3.44)
15:52
Add comments (only, no code) to the JS sqlite3_config() bindings reminding us why SQLITE_CONFIG_ROWID_IN_VIEW is specifically not included. JNI does not need this treatment because it explicitly supports only a very small subset of config options. (check-in: 4fea3962 user: stephan tags: trunk)
11:46
Enhancements to testrunner.tcl: (1) Add the "--config CONFIGS" option, to that only configuration named on the comma-separated list CONFIGS are run. (2) Add the "--omit CONFIGS" to omit configuration on the CONFIGS list (3) Add the Android configuration to "release" (check-in: 4ccb3729 user: drh tags: trunk)
11:37
Have os_unix.c reuse cached file-descriptors in the case when a read-write fd is requested on a read-only file and a read-only fd returned. (check-in: a678e854 user: dan tags: trunk)
10:35
Fix all test cases so that they work with SQLITE_ALLOW_ROWID_IN_VIEW. (check-in: 66c69e2f user: drh tags: trunk)
2024-03-20
16:56
Change EXPLAIN QUERY PLAN output to say "USE TEMP B-TREE FOR LAST TERM OF ORDER BY", or "LAST N TERMS OF ORDER BY", instead of "RIGHT PART OF ORDER BY". (check-in: 7e13a2c7 user: dan tags: trunk)
16:29
Fix test cases for rtree and fts5. No changes to code. (check-in: 633dca90 user: drh tags: branch-3.44)
16:27
Change EXPLAIN QUERY PLAN output to say "USE TEMP B-TREE FOR LAST TERM OF ORDER BY", or "LAST N TERMS OF ORDER BY", instead of "RIGHT PART OF ORDER BY". (Closed-Leaf check-in: cd547c50 user: dan tags: eqp-orderby)
16:04
Have rtree avoid keeping a blob handle open following an error. (check-in: 1303716a user: drh tags: branch-3.44)
15:26
Following a ROLLBACK that reverts changes to an RTREE, any pending queries against that same RTREE abort with code SQLITE_ABORT_ROLLBACK. dbsqlfuzz de7d17b72d0e842352c998dd86a47b7d0f707be9. (check-in: b26e5a50 user: drh tags: branch-3.44)
12:19
Back port various minor patches (check-in: a1a5c427 user: drh tags: branch-3.44)
11:36
Automatically disable the DISTINCT optimization during query planning if the ORDER BY clause exceeds 63 terms. dbsqlfuzz afd1d61fc27d14938a0d78a50970fa1e9fbfee58. (check-in: e8d5caef user: drh tags: branch-3.44)
11:30
Ignore COLLATE operators when determining whether the result of a subexpression should be shallow-copied or deep-copied. (check-in: dd58d117 user: drh tags: branch-3.44)
11:25
Fix a harmless compiler warning in the randomjson.c extension. (check-in: a4c93512 user: drh tags: branch-3.44)
11:24
If a term of an ORDER BY or GROUP BY contains an aggregate function or column, then it is not an alias that needs to be resolved, so don't try to. This fixes a harmless assertion found by dbsqlfuzz. (check-in: e7ba2af5 user: drh tags: branch-3.44)
11:04
Fix the SQLITE_ALLOW_ROWID_IN_VIEW bug-compatibility option so that it works again. Add the SQLITE_CONFIG_ROWID_IN_VIEW sqlite3_config() value to optionally disable the bug-compatibility mode at start-time. Enable testing of SQLITE_ALLOW_ROWID_IN_VIEW. (check-in: acc08353 user: drh tags: branch-3.44)
10:45
Fix the SQLITE_ALLOW_ROWID_IN_VIEW bug-compatibility option so that it works again. Add the SQLITE_CONFIG_ROWID_IN_VIEW sqlite3_config() value to optionally disable the bug-compatibility mode at start-time. Enable testing of SQLITE_ALLOW_ROWID_IN_VIEW. (check-in: b6802565 user: drh tags: trunk)
10:40
Fix a typo in a comment. (Closed-Leaf check-in: 54680d0f user: drh tags: rowid-in-view)
09:45
Fix typos in the SQLITE_CONFIG_ROWID_IN_VIEW documentation. (check-in: 1ad1ca49 user: drh tags: rowid-in-view)
2024-03-19
23:01
Change the SQLITE_CONFIG_NO_ROWID_IN_VIEW configuration option to be just SQLITE_CONFIG_ROWID_IN_VIEW (without the "_NO_" in the middle) and give it the ability to turn the option on and off. Otherwise, it is difficult to test. (check-in: 5d412edc user: drh tags: rowid-in-view)
19:56
Return the error "ambiguous column name: rowid", instead of "no such column: rowid", when a "rowid" reference is ambiguous. (check-in: 0615bdae user: drh tags: rowid-in-view)
19:48
Add the --no-rowid-in-view option to the --help output of the CLI. (check-in: 134da9c3 user: drh tags: rowid-in-view)
19:42
Make sure the new u1.nRow value is copied when making a copy of a SrcItem object. This fixes a problem in [ac6f095e13e43d66] from yesterady. (check-in: 262f8f9d user: drh tags: trunk)
16:51
Update test scripts to account for [8fcea4cd]. (check-in: 0c543c51 user: dan tags: rowid-in-view)
16:34
In the name resolver when SQLITE_ALLOW_ROWID_IN_INDEX is enabled, if there are multiple views that might resolve to the "rowid" but only one real table, then use that one real table and ignore the views. (check-in: 8fcea4cd user: drh tags: rowid-in-view)
15:27
Update tests to work with SQLITE_ALLOW_ROWID_IN_VIEW. (check-in: 495b8c7b user: dan tags: rowid-in-view)
14:55
Return the error "ambiguous column name: rowid", instead of "no such column: rowid", when a "rowid" reference is ambiguous. (Closed-Leaf check-in: 021f34fc user: dan tags: ambiguous-rowid-error)
14:38
Fix the fuzzinvariants.c test module so that it does not generate invariants that depend on rowid when SQLITE_ALLOW_ROWID_IN_VIEW is used, since rowid values can be unreliable in that context. (check-in: 0d711aaa user: drh tags: rowid-in-view)
14:21
Improvements to the first check-in on this branch, causing less collateral damage. (check-in: 7bc88289 user: drh tags: rowid-in-view)
13:55
On second thought, change SQLITE_TESTCTRL_ROWID_IN_VIEW into a start-time option SQLITE_CONFIG_NO_ROWID_IN_VIEW. (check-in: b8e045c9 user: drh tags: rowid-in-view)
13:31
When compiled with SQLITE_ALLOW_ROWID_IN_VIEW, rowid-in-view is on by default but can now be turned off using SQLITE_TESTCTRL_ROWID_IN_VIEW. Without the compile-time option, rowid-in-view is always off. (check-in: 8a6196ab user: drh tags: rowid-in-view)
10:58
Fix a problem involving infinities int the Kahan-Babushka-Neumaier summation algorithm. (check-in: 8af58781 user: drh tags: branch-3.45)
10:46
Fix a problem involving infinities int the Kahan-Babushka-Neumaier summation algorithm. (check-in: 0984e5cd user: drh tags: branch-3.44)
10:41
Adjustments to the test cases for the previous check-in to make them cross-platform Linux/Mac/Windows. Test changes only. No change to core code. (check-in: 0dddadbd user: drh tags: trunk)
10:16
Fix another problem from [c63e26e705f5e967] involving infinities and the Kahan-Babushka-Neumaier summation algorithm. Problem reported by forum post 23b8688ef4. (check-in: 45d272ef user: drh tags: trunk)
02:30
First steps toward getting -DSQLITE_ALLOW_ROWID_IN_VIEW to work again. That compile-time option is untested, undocumented, and unsupported. But it was mentioned in the release notes for version 3.36.0, so I think that means we need to support it forever. (check-in: 7c46ff64 user: drh tags: rowid-in-view)
2024-03-18
21:08
Fix asan problems in sqlite3rbu.c. Enable RBU for sanitizer release tests. (check-in: ad2ae771 user: dan tags: trunk)
20:52
Avoid spurious SQLITE_IOERR_DATA errors when reading partial pages from a cksumvfs database using a SQLITE_DIRECT_OVERFLOW_READ build. (check-in: 0f485dbe user: dan tags: trunk)
18:56
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: c2d4adab user: drh tags: reuse-schema)
18:55
Merge the latest trunk enhancements into the bedrock branch. (check-in: 10ab5e85 user: drh tags: bedrock)
18:51
Merge the latest trunk enhancements into the wal2 branch. (check-in: c0af1242 user: drh tags: wal2)
18:47
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 50b43b02 user: drh tags: begin-concurrent)
18:03
Remove unnecessary blank lines from build commands in the default Makefile.in. (check-in: 76fb3a90 user: drh tags: trunk)
18:00
Add the "VALUES-as-coroutine" optimization. Large VALUES clauses on an INSERT, for example, prepare and run in about half the time and with half the memory. This check-in also includes enhancements to the internal sqlite3ExprIsConstant() routine to recognize pure SQL functions as constant if they have constant arguments. (check-in: a120c923 user: drh tags: trunk)
17:13
Fix harmless compiler (scan-build) warnings. (Closed-Leaf check-in: c86f9f2a user: drh tags: exp-values-clause2)
16:30
Allow the VALUES-as-coroutine optimization to be applied to later rows of a VALUES clause even if earlier rows do not qualify. (check-in: 9a47ea7f user: drh tags: exp-values-clause2)
15:10
Change a test case to use a window function rather than random() to disable the VALUES clause optimization. (check-in: c589149a user: drh tags: exp-values-clause2)
13:31
Add assert() statements to validate access to the SrcItem.u1.nRow union member. (check-in: 21f616d9 user: drh tags: exp-values-clause2)
13:10
Fix the patch at [10ee6fcba08ab128] so that it works on reduced-size Expr nodes. (check-in: 260bd764 user: drh tags: exp-values-clause2)
12:49
Improvements to EXPLAIN QUERY PLAN output for multi-row VALUES claues. (check-in: ac6f095e user: drh tags: exp-values-clause2)
11:12
Ensure the database schema has been loaded and the database encoding gleaned before beginning to code a multi-row VALUES clause. (check-in: 2ff476eb user: dan tags: exp-values-clause2)
10:54
Fix a problem caused by a non-aggregate function with an OVER clause in a multi-row VALUES clause. (check-in: 10ee6fcb user: dan tags: exp-values-clause2)
2024-03-17
16:01
Omit the "noop(X)" test SQL function. Accomplish the same thing using the idiom: "coalesce(X,random())". (check-in: 0eb2fbb8 user: drh tags: exp-values-clause2)
00:13
Add an ALWAYS on an unreachable branch. (check-in: 0dce6211 user: drh tags: exp-values-clause2)
2024-03-16
21:12
Recognize when an SQL function is constant and can occur inside an optimized VALUES clause. (check-in: c0e5ceb8 user: drh tags: exp-values-clause2)
21:04
Fix a assert() that is incorrect, though harmless. (Closed-Leaf check-in: 9ba3cff9 user: drh tags: enhanced-expr-is-const)
20:15
Further expand the scope of usage for the enhacement to expr-is-constant. (check-in: d7eadcf7 user: drh tags: enhanced-expr-is-const)
19:48
Assert that the eCode is always non-zero upon entry into exprNodeIsConstant(). (check-in: f71b28f6 user: drh tags: enhanced-expr-is-const)
19:36
Activate the enhanced constant-expression for the [constant propagation optimization](/info/f4229707ac08d66c). (check-in: 92afea38 user: drh tags: enhanced-expr-is-const)
17:04
Extend the scope expr-is-constant for function to cover the IN-to-EQ optimization. (check-in: dae66924 user: drh tags: enhanced-expr-is-const)
14:27
Fix exprNodeIsConstantFunction() so that it returns WRC_Continue, not WRC_Abort, if the function really is constant. (check-in: d85dd4de user: dan tags: enhanced-expr-is-const)
13:18
Enhance the sqlite3ExprIsConstant() function so that it recognizes constant functions. So far the enhancement only applies to the multi-row VALUES clause, but it could possibly be applied in many other places. (check-in: c9e0488c user: drh tags: enhanced-expr-is-const)
2024-03-15
17:57
New options for testrunner.tcl: --stop-on-error and --stop-on-coredump. (check-in: 82035b9c user: drh tags: trunk)
17:04
Fix (totally harmless) memory leaks in Lemon to avoid warnings during ASAN builds. (check-in: ce009205 user: drh tags: trunk)
13:16
Tweaks to the func4.test test module (which tests the rarely used totype.c extension) so that it works on i586 compiled using gcc-13 with -O0. Details at forum post 0a7553b0f734c033. (check-in: d0fbe779 user: drh tags: trunk)
12:59
Attempt to use the Dekker high-precision floating point algorithm in the ext/misc/totype.c extension. This check-in should have been derived from trunk, not the exp-values-clause2 branch. But that's ok, because both trunk and the branch are the same in all aspects that relate to this check-in and this check-in is just parking the proposed enhancement for future consideration - it is not a serious proposal at this point. (Leaf check-in: dd41db3b user: drh tags: totype-dekker)
2024-03-14
20:39
Fix testcase to account for new behaviors with this branch. (check-in: 823e5793 user: drh tags: exp-values-clause2)
19:31
Fix a problem with ALTER TABLE and correlated multi-row VALUES clauses. (check-in: d543c829 user: dan tags: exp-values-clause2)
19:01
Fix a problem handling "INSERT INTO ... SELECT ... UNION VALUES(...), (...)" and similar statements. (check-in: e8a2a819 user: dan tags: exp-values-clause2)
17:04
Avoid some OP_SCopy instructions in "INSERT INTO .. VALUES" statements that insert more than one row in cases where the VALUES clause contains a value for all columns of the table. (check-in: 988f0ea7 user: dan tags: exp-values-clause2)
13:18
JS: remove an unused function argument and some debug-related comments. No functional changes. (check-in: f1570943 user: stephan tags: trunk)
11:45
Add further tests for VALUES clauses in various contexts. (check-in: 973d197d user: dan tags: exp-values-clause2)
2024-03-13
20:04
Change the way parse.y handles multi-row VALUES clauses to save a few cycles. (check-in: 88d5bc91 user: dan tags: exp-values-clause2)
18:41
Remove unreachable code from this branch. (check-in: 657c7b4f user: dan tags: exp-values-clause2)
18:00
Merge the latest trunk enhancements into the bedrock branch. (check-in: 5c8e80f4 user: drh tags: bedrock)
17:55
Merge the latest trunk enhancements into the wal2 branch. (check-in: 2b12da72 user: drh tags: wal2)
17:51
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: 238fa84a user: drh tags: begin-concurrent)
17:33
Fix some OOM handling problems on this branch. (check-in: 2085c7f1 user: dan tags: exp-values-clause2)
16:49
Do not automatically activate SQLITE_ENABLE_SHARED_SCHEMA in the Makefile. Instead, enhance the mdevtest and sdevtest targets of testrunner.tcl to set that option sometimes and sometimes not. (check-in: 693b8f93 user: drh tags: reuse-schema)
16:35
Merge the testrunner.tcl enhancement from trunk. (check-in: da471515 user: drh tags: reuse-schema)
16:32
Minor change to the "mdevtest" and "sdevtest" in testrunner.tcl, to make it easier to add configurations in branches. (check-in: 9349d94e user: drh tags: trunk)
15:59
Merge the latest trunk enhancements into the reuse-schema branch. Fix the reuse-schema build of the CLI so that it works again. (check-in: 70ef3784 user: drh tags: reuse-schema)
15:47
Merge trunk into this branch. (check-in: 38635651 user: dan tags: exp-values-clause2)
15:44
Ensure that if a multi-row VALUES cannot be coded while being parsed, the SF_MultiValue flag is correctly set. (check-in: 94791824 user: dan tags: exp-values-clause2)
15:34
Avoid creating a co-routine incrementally for a VALUES clause that has affinities other than NONE. (check-in: 4229b12b user: dan tags: exp-values-clause2)
13:43
If the NJOB environment variable is a positive integer, it causes testrunner.tcl to run that many jobs. (check-in: 924281b9 user: drh tags: trunk)
13:27
Document the testrunner.tcl --explain option in doc/testrunner.md. (check-in: 5a7b5fc9 user: drh tags: trunk)
13:09
Add the --explain option to testrunner.tcl. (check-in: f0c9eb03 user: drh tags: trunk)
11:46
Improve one of the error messages from testrunner.tcl. (check-in: 233155c1 user: drh tags: trunk)
11:29
Minor tweaks to the testrunner documentation. (check-in: 3128b98d user: drh tags: trunk)
10:55
Improvements to the "help" message generated by testrunner.tcl. Add the special "list" permutation that does nothing but list all allowed values for the PERMUTATION argument to testrunner.tcl. (check-in: 1f5bfc6a user: drh tags: trunk)
10:54
Add pointer to documentation to testrunner.tcl help message. (check-in: eff85510 user: dan tags: trunk)
10:47
Have testrunner.tcl set SQLITE_TMPDIR on windows as well. (check-in: 64f4dad1 user: dan tags: trunk)
00:37
On testrunner.tcl: (1) Add the "help" command. (2) Add the "script" command to the help message. (3) Improve the error message generated by "script" when an incorrect CONFIG option is provided. (check-in: 1b7f0be4 user: drh tags: trunk)
2024-03-12
20:10
Correctly initialize the SrcItem.iCursor field to -1 when creating a co-routine from a multi-values VALUES clause. (check-in: c32953ff user: dan tags: exp-values-clause2)
18:33
Have testrunner.tcl have each test store its temp files in its working directory. To avoid unlikely, but possible, collisions. (check-in: 18842d0d user: dan tags: trunk)
18:04
Have testrunner.tcl have each test store its temp files in its working directory. To avoid unlikely, but possible, collisions. (Closed-Leaf check-in: 775a10d1 user: dan tags: testrunner-tmpdir-fix)
12:12
Merge all version-3.45.2 patches into the reuse-schema-3.45 subbranch. (Leaf check-in: 20d9618d user: drh tags: reuse-schema-3.45)
12:00
Merge all 3.45.2 pages into the bedrock-3.45 subbranch. (Leaf check-in: 33b9cf7c user: drh tags: bedrock-3.45)
11:55
Merge all 3.45.2 patches into the wal2-3.45 subbranch. (Leaf check-in: 64d740c5 user: drh tags: wal2-3.45)
11:51
Merge all version 3.45.2 patches into the begin-concurrent-3.45 subbranch. (Leaf check-in: f0723258 user: drh tags: begin-concurrent-3.45)
11:06
Version 3.45.2 (check-in: d8cd6d49 user: drh tags: release, branch-3.45, version-3.45.2)
10:47
First attempt at version 3.45.2, but failed to set the version number correctly in the source tree. (Closed-Leaf check-in: 78bed2b0 user: drh tags: mistake)
2024-03-11
23:28
Merge the latest branch-3.45 patches into the reuse-schema-3.45 subbranch. (check-in: e22e0e1e user: drh tags: reuse-schema-3.45)
23:26
Merge the latest branch-3.45 changes into the bedrock-3.45 subbranch. (check-in: 516b7e13 user: drh tags: bedrock-3.45)
23:23
Merge the branch-3.45 patches into the wal2 branch. (check-in: f8cee91f user: drh tags: wal2-3.45)
23:18
Merge the latest branch-3.45 changes into the begin-concurrent branch. (check-in: 98ea2ca2 user: drh tags: begin-concurrent-3.45)
20:34
Fix another testrunner.tcl problem on windows. (check-in: 7805844b user: dan tags: trunk)
19:43
Fix a missing brace problem in testrunner.tcl introduced by the previous commit. (check-in: 1f5e334d user: dan tags: trunk)
19:33
Update mdevtest and sdevtest to do shell builds in parallel. And only if one or more of the tcl scripts run requires it. (check-in: 6eae4547 user: dan tags: trunk)
18:21
Run shell*.test modules with "make mdevtest". (check-in: 76c47106 user: drh tags: trunk)
17:27
Attempt to reduce the memory used by VALUES clauses in as many statements as possible, not just INSERT. This branch still has problems. (check-in: 17d1f7cf user: dan tags: exp-values-clause2)
11:26
Fix the ".import" command in the CLI so that it works correctly with tables that contain computed columns. (check-in: b26f2444 user: drh tags: branch-3.45)
11:24
Fix the ".import" command in the CLI so that it works correctly with tables that contain computed columns. forum post ca014d7358. (check-in: 95a9c88b user: drh tags: trunk)
09:39
Add more docs for the OPFS delete-before-open feature. (check-in: cb8d9c26 user: stephan tags: trunk)
09:34
Add delete-before-open=1 URI flag to the 'opfs' VFS to tell it to xDelete the db file before opening it, primarily to enable users to work around a corrupt db without having to reach into OPFS-specific APIs to remove the db file. (check-in: e87cf0d7 user: stephan tags: trunk)
09:32
Add delete-before-open=1 URI flag to the 'opfs' VFS to tell it to xDelete the db file before opening it, primarily to enable users to work around a corrupt db without having to reach into OPFS-specific APIs to remove the db file. (Closed-Leaf check-in: e83f9788 user: stephan tags: opfs-delete-before-open)
2024-03-09
18:41
Fix the .expert command in the shell so that it does not leak memory if not followed by SQL and so that it works with reverse_unordered_selects. (check-in: 7ead022e user: drh tags: trunk)
13:31
Fuzzcheck is run automatically by testrunner.tcl, so there is no need to include fuzzcheck as a separate dependency for the releasetest target in the MSVC makefile. (check-in: 76629b2b user: drh tags: trunk)
13:17
Reenable the use of SQLITE_OMIT_VIRTUALTABLE by fixing a misplaced #endif caused by the merge at [c080560c2d0d753c]. (check-in: 71120ea8 user: drh tags: branch-3.45)
13:10
Fix the rtreeJ.test module to align it with [cd017c28d516399e]. (check-in: 111b3d82 user: drh tags: branch-3.45)
12:30
Handle an OOM case in fts5 code to query tokendata=1 tables. (check-in: ebf59fa3 user: drh tags: branch-3.45)
00:38
The NOT NULL strength reduction optimization should be applied to the WHERE clause only. (check-in: be266c71 user: drh tags: branch-3.45)
2024-03-08
21:37
The NOT NULL strength reduction optimization from [de9c86c9e4cdb34f] should be applied to the WHERE clause only. Otherwise, the operand of the IS NULL or IS NOT NULL operator might be a reference to a bare column of an aggregate table, and we can't tell if it is NULL or not based only on its NOT NULL attribute. Forum post 440f2a2f17. (check-in: 51704fea user: drh tags: trunk)
19:03
One of the assert()s added by the previous check-in was not quite correct. This commit fixes it. (check-in: d4013583 user: drh tags: trunk)
15:39
Add new assert() statements, which if they had existed three years ago, would have detected the code generator problem fixed by the previous check-in. (check-in: 166d1e5d user: drh tags: trunk)
14:16
Silently ignore redundant ON CONFLICT clauses in an UPSERT. (check-in: e546d8c6 user: drh tags: branch-3.44)
14:11
Silently ignore redundant ON CONFLICT clauses in an UPSERT. (check-in: 46245855 user: drh tags: branch-3.45)
14:01
Silently ignore redundant ON CONFLICT clauses in an UPSERT. Only the first ON CONFLICT for each index is active. Do not issue an error, since that might break legacy queries. But ignore the redundant ON CONFLICT clauses to prevent problems such as described in forum post 919c6579c8. (check-in: d0ea6b6b user: drh tags: trunk)
13:49
Omit some extra tests for the intck extension in OMIT_VIRTUAL_TABLE or OMIT_PRAGMA builds. (check-in: 29d9eb7d user: dan tags: trunk)
11:13
Fix pragma6.test so that it works with ENABLE_OVERSIZE_CELL_CHECK builds. (check-in: a02551de user: dan tags: trunk)
11:08
Do not run tests for the intck extension in OMIT_VIRTUAL_TABLE or OMIT_PRAGMA builds. (check-in: de8130c0 user: dan tags: trunk)
03:24
Must use sqlite3IntFloatCompare() for accurate comparisons between very large integer and floating point values in RTREE. Otherwise the comparison does not work on all platforms. Further fix to [027e5336acc26f57]. (check-in: 820f106a user: drh tags: trunk)
2024-03-07
19:29
Introducing JS worker1 promiser v2, which initializes via Promise (instead of a callback function) and can be loaded as an ESM module. (check-in: 2fbaf2f5 user: stephan tags: trunk)
18:53
Resolve duplicate loading of promiser v2 demo code (a side effect of having done precisely what it was told to do). Consolidate demo-worker1-promiser(-esm).html/(m)js variants into central copies processed with c-pp. (Closed-Leaf check-in: 9347d9b9 user: stephan tags: wasm-promiser1-v2)
18:47
Improved error handling. (Leaf check-in: cf2d1ad0 user: drh tags: exp-values-clause)
17:56
wasm promiser.v2 is essentially working but the demo code is double-loading the module for as-yet-undetermined reasons. (check-in: aa877ce0 user: stephan tags: wasm-promiser1-v2)
17:11
Simplify the parser changes on this branch. (check-in: 89a6c7b5 user: dan tags: exp-values-clause)
16:25
Merge all the latest trunk enhancements into the exp-values-clause branch. (check-in: c4923f26 user: drh tags: exp-values-clause)
16:04
Initial work at getting sqlite3Worker1Promiser.v2() to return a Promise instead of using an onready() callback, and also creating an ESM build for promiser1 per user request. It seems to work but requires more testing. (check-in: 0e272123 user: stephan tags: wasm-promiser1-v2)
15:58
Fix harmless compiler warnings in test code for the intck extension. (check-in: 7fbdc1a8 user: drh tags: trunk)
15:44
Add further tests for the code on this branch. (check-in: 5d8065e8 user: dan tags: exp-values-clause)
12:34
Do not allow the query planner to be tricked into thinking that an index on a constant expression might be useful for something. Problem reported on forum post ecdfc02339. This is a follow-up to the fixes at [44200596aa943963] and [2d2b91cc0f6fed8c]. (check-in: 720ce06d user: drh tags: trunk)
2024-03-06
21:53
Fix a memory leak in new memdb1.test test cases that were added by [e638d5e408ea2e18]. No changes to SQLite itself. (check-in: f0a49dc8 user: drh tags: branch-3.45)
21:22
Fix harmless compiler warning seen with MSVC. (check-in: 5aa809bc user: mistachkin tags: branch-3.45)
21:08
Fix harmless compiler warnings seen with MSVC. (check-in: c0f61524 user: mistachkin tags: branch-3.45)
21:06
Fix a minor test file locking issue on Windows. (check-in: a4475280 user: mistachkin tags: branch-3.45)
21:00
Work around obscure floating point issue seen with older versions of MSVC. (check-in: 6055715f user: mistachkin tags: branch-3.45)
20:59
Fix two -Werror=lto-type-mismatch warnings reported in forum post ef62b57bd5. (check-in: d4e423f3 user: mistachkin tags: branch-3.45)
20:58
The quote() SQL function should convert +Inf into 9.0e+999 and -Inf into -9.0e+999. See forum post 6675b25108. (check-in: 07a9ef88 user: mistachkin tags: branch-3.45)
20:58
Make sure key comprisons are done correctly if the index key contains NaN values that have not been shifted into NULLs. That can only happen due to database corruption, but we need to deal with it nevertheless. (check-in: 7ed922d9 user: mistachkin tags: branch-3.45)
20:56
When inserting a 3-byte cell into a btree, ensure that the extra padding byte is 0x00. This is not necessary for security, as far as I can tell, but it seems like a reasonable precaution. (check-in: f3e84187 user: mistachkin tags: branch-3.45)
20:55
Rig sqlite3_serialize() so that it will initialize a previously uninitialized database prior to serializing it, so that it does not have a zero-byte size and does not return NULL (except for OOM). Forum thread 498777780e16880a. (check-in: 22a33f13 user: mistachkin tags: branch-3.45)
20:54
When doing a text-affinity comparison between two values where one or both have both a text and a numeric type, make sure the numeric type does not confuse the answer. This is a deeper fix to the problem observed by forum post 3776b48e71. The problem bisects to [25f2246be404f38b] on 2014-08-24, prior to version 3.8.7. (check-in: 6d385ccd user: mistachkin tags: branch-3.45)
20:52
Ensure that the replace() SQL function always returns a TEXT value even when its first argument is numeric and its second argument is an empty string. Fix for the issue reported by forum post 3776b48e71. (check-in: a7c98c8f user: mistachkin tags: branch-3.45)
20:49
Add the json_pretty() SQL function. (check-in: ceb51c1c user: drh tags: trunk)
20:38
Add test cases for json_pretty(). (Closed-Leaf check-in: 6448b907 user: drh tags: json-pretty)
20:34
Avoid making too many calls to sqlite3Select/sqlite3WhereBegin() when processing large VALUES clauses. (check-in: 356158c1 user: dan tags: exp-values-clause)
20:24
Work around obscure floating point issue seen with older versions of MSVC. (check-in: 42d39f91 user: mistachkin tags: trunk)
14:55
Handle VALUES clauses having different number of values in different rows. Also the case where SQLITE_LIMIT_COMPOUND_SELECT is set to 0. (check-in: f5074b29 user: dan tags: exp-values-clause)
14:42
Add a couple of json_pretty() examples to /fiddle. (check-in: d5e1687b user: stephan tags: json-pretty)
14:30
Add the json_pretty(J) function for pretty-printing of JSON. An optional 2nd argument is text used for indentation, with a default value being four spaces. (check-in: 39552bd3 user: drh tags: json-pretty)
12:28
Correction to the previous check-in. (check-in: 483fa296 user: drh tags: trunk)
11:35
Fix handling of "id=?" corner cases in rtree when the value on the RHS is a real value. Problem reported by forum post 1bb055be17. (check-in: 027e5336 user: dan tags: trunk)
08:45
Wasm build tweaks to attempt to get the node.js-for-node.js build to use Emscripten's nodefs filesystem driver for persistent storage. This is completely untested - validating it requires a nodeist. (Leaf check-in: 0bcbde7c user: stephan tags: wasm-nodefs)
2024-03-05
20:33
Add comments for the new code on this branch. (check-in: 551caba9 user: dan tags: exp-values-clause)
18:41
Remove code that added a P4 parameter to the OP_Variable opcode. This is no longer required. (check-in: dd5977c9 user: dan tags: trunk)
18:03
Merge trunk changes into this branch. (check-in: a003fffa user: dan tags: exp-values-clause)
17:48
Fix a problem with large values clauses and named variables. (check-in: 4784a92e user: dan tags: exp-values-clause)
17:39
Reformulate [34439fe3aeea7cbb] slightly to resolve a false-positive OOM reported in forum post 2eadfe94e3. (check-in: 320ccb5d user: stephan tags: branch-3.45)
17:33
Reformulate [34439fe3aeea7cbb] slightly to resolve a false-positive OOM reported in forum post 2eadfe94e3. (check-in: 82906467 user: stephan tags: trunk)
17:23
Simplify changes on this branch by avoiding any special handling until SQLITE_LIMIT_COMPOUND_SELECT rows are reached. (check-in: 9cbceaac user: dan tags: exp-values-clause)
16:59
The value returned by the json_each.json field needs to survive longer than the json_each virtual table itself, in the event that the value is used in an aggregate expression. dbsqlfuzz 5120bd0b3bb0b73eebbcb79ac37c6b0663fccad6 (check-in: 040946b3 user: drh tags: branch-3.45)
16:47
The value returned by the json_each.json field needs to survive longer than the json_each virtual table itself, in the event that the value is used in an aggregate expression. dbsqlfuzz 5120bd0b3bb0b73eebbcb79ac37c6b0663fccad6 (check-in: 952ed71b user: drh tags: trunk)
12:48
/fiddle: reorder/replace example entries to make them more coherent when tried in order and clear the example selection list when the input area is cleared, both based on forum feedback. (check-in: b4ce270b user: stephan tags: trunk)
08:48
/fiddle 'Mandlebrot' typo fix reported in the forum. (check-in: ceefe6ba user: stephan tags: trunk)
07:55
Update fiddle.make to account for Makefile changes in [178b7d46f9]. (check-in: 7a5d8105 user: stephan tags: trunk)
06:31
/fiddle: before resetting a db, roll back any transactions (resolves problem reported in forum post 0b41a25d65) and remove an obsolete/broken reference to a long-gone API which could cause initialization to fail prematurely. (check-in: ee164ca7 user: stephan tags: trunk)
2024-03-04
18:50
Fix some problems with "VALUES(...) UNION ..." and similar on this branch. (check-in: 5d679771 user: dan tags: exp-values-clause)
18:22
Fix a compiler warning in date.c. Update makefiles to include all necessary dependencies for building shell.c. (check-in: 178b7d46 user: drh tags: trunk)
18:02
The ability to DROP multiple tables (or views or indexes or triggers) at once, as implemented by this branch, appears to work. However, this branch adds over 1000 bytes to the code footprint. And the changes is significant, adding risk. The benefit of being able to drop multiple tables in a single statement is not seen to be enough to overcome those downsides, and so there are no immediate plans to merge this branch. (Leaf check-in: 1a49788a user: drh tags: multi-drop)
16:44
Change test results in corruptC.test to account for the added detail in the output of "PRAGMA integrity_check" from [b736519d3d2e93c7]. (check-in: 0d19eeaa user: drh tags: trunk)
16:18
Fix harmless compiler warnings in the increment integrity_check extension. (check-in: 596668e6 user: drh tags: trunk)
13:58
Adjust date/time functions so that they do a better job of keeping track of whether the current time is UTC or localtime, and no-op the 'utc' and 'localtime' modifiers accordingly. See forum post e7a939e074. Also add the datedebug() function, available only under -DSQLITE_DEBUG, for improved visibility of the DateTime object during debugging and testing. (check-in: dc569683 user: drh tags: trunk)
11:12
Fix assert() statements in date/time computations: The month and day numbers can be zero if an error has been seen. (check-in: fc773f6c user: drh tags: trunk)
09:56
Document why the wasm build does not use Emscripten's -sSTRICT=1 flag and account for a behaviour change in emsdk 3.1.55 regarding the HEAPxyz symbols. (check-in: f6e88720 user: stephan tags: trunk)
09:23
When warning about multiple invocations of JS's sqlite3ApiBootstrap(), use the warning logger installed by the first invocation, rather than console.warn. (check-in: d162af2d user: stephan tags: trunk)
06:54
After wasm bootstrapping has read the optional global-scope config objects, delete those objects because any further changes would not have any useful effect. Expand the docs regarding the sqlite3ApiBootstrap() config object and explain the necessary evil of a separate global-scope object for that configuration. (check-in: e6b14f73 user: stephan tags: trunk)
2024-03-03
20:15
Back out the previous change. Replace it with new date modifiers "ceiling" and "floor". (check-in: f0831cce user: drh tags: trunk)
2024-03-02
21:02
New date/time modifiers "mnth" and "yr" work like "month" and "year" but resolve day-of-month overflow by truncating rather than rolling over into the next month. Forum thread 232d1abb5d (check-in: 5d392c16 user: drh tags: trunk)
20:50
Change the magic time-interval names that do truncate-to-same-month to be "mnth" and "yr" - "month" and "year" without the vowels. (Closed-Leaf check-in: 296b46c5 user: drh tags: month-truncate)
20:39
Attempt to use less memory when handling a large VALUES clause attached to an INSERT statement. This branch is buggy. (check-in: 6d4f1ae2 user: dan tags: exp-values-clause)
13:38
Proof-of-concept for new time-interval operator "pg-month" and "pg-year" that use the truncate-to-month algorithm for month overflow instead of the wrap-to-next-month algorithm that is used by SQLite by default. (check-in: b606c096 user: drh tags: month-truncate)
12:17
Remove an unused line of code. (check-in: 26272590 user: drh tags: multi-drop)
11:02
Simplifications to multi-DROP logic. (check-in: e70d6be7 user: drh tags: multi-drop)
00:29
Improved rebustness against OOM and corruption. (check-in: 3992f450 user: drh tags: multi-drop)
2024-03-01
22:42
When doing DROP TABLE or DROP INDEX, use a heap to ensure that the various btrees are dropped in the right order for autovacuum. (check-in: e5bf9556 user: drh tags: multi-drop)
19:08
RTREE uses multi-DROP to erase shadow tables. (check-in: cf8a58d6 user: drh tags: multi-drop)
18:05
Omit unreachable branches in the parser. (check-in: 90de1f73 user: drh tags: multi-drop)
15:56
Fix harmless compiler warning. (check-in: 33d3bb84 user: drh tags: multi-drop)
14:47
Improved handling of foreign-key constraints on a multi-drop of tables. (check-in: 144e332f user: drh tags: multi-drop)
12:21
When doing a multi-drop, delete btrees beginning with the largest root page first and working toward smaller root pages, to avoid problems with root page renumbering due to autovacuum. (check-in: 37d4c5e2 user: drh tags: multi-drop)
2024-02-29
19:40
Attempt to fix multi-object DROP. Working better, but still not perfect. (check-in: 02f9fc73 user: drh tags: multi-drop)
13:44
Add the ability to DROP one or more objects of the same class in a single statement by listing the objects as multiple arguments to the DROP command. (check-in: 2266086c user: drh tags: multi-drop)
10:55
Fix two -Werror=lto-type-mismatch warnings reported in forum post ef62b57bd5. (check-in: 803481f2 user: stephan tags: trunk)
03:45
Fix two -Werror=lto-type-mismatch warnings reported in forum post ef62b57bd5. (Closed-Leaf check-in: 29f94610 user: stephan tags: lto-type-mismatch)
2024-02-28
19:44
Put NEVER() on a branch in STAT4 that appears to be unreachable. (Closed-Leaf check-in: 0ca35e92 user: drh tags: mistake)
15:32
Add in a VdbeCoverage() macro needed by STAT4 that should have been part of check-in [63ef234e88857a65]. (check-in: d51c699a user: drh tags: trunk)
01:12
Always convert 32-bit integer literals into EP_IntValue notation, even if they contain "_" separators. (check-in: 2dfc427f user: drh tags: trunk)
2024-02-27
20:19
Fix an eputf() macro without its argument in the CLI. (check-in: c2f5e257 user: drh tags: trunk)
19:57
Add an assert() to help scan-build recognize that a variable is initialized. (check-in: 10d26f1e user: drh tags: trunk)
16:36
Adjust a VdbeCoverage() macro in PRAGMA integrity_check to account for the fact that arguments to the OP_Eq opcode used are never NULL. (check-in: 759ccea3 user: drh tags: trunk)
16:25
Adjust a VdbeCoverage() macro in PRAGMA integrity_check to account for the fact that arguments to the OP_Eq opcode used are never NULL. (Closed-Leaf check-in: 8c788fc4 user: drh tags: wrong-branch)
15:56
Fix typo in the help text of the CLI - a typo that prevented the display of help for the ".imposter" command. Turns out the comma is deliberate. The ".imposter" command is deliberately undocumented to avoid confusing non-devs. (Closed-Leaf check-in: 0d9a2596 user: drh tags: mistake)
15:33
Remove unreachable branches from the PRAGMA integrity_check enhancement of [b736519d3d2e93c7]. (check-in: 6d02fb23 user: drh tags: trunk)
14:31
Ensure memory cells are properly freed before they are overwritten by OP_IntegrityCk. (check-in: e50acaf9 user: dan tags: trunk)
11:03
Have "PRAGMA quick_check" compare the number of entries in tables and indexes. (check-in: b736519d user: dan tags: trunk)
11:02
Extend sqlite3.c makefile rule to support EXTRA_SRC=list-of-c-files to append to the generated sqlite3.c, as discussed in/around forum post ccda88cf6f1754c5. (check-in: 61676f1e user: stephan tags: trunk)
10:52
Allow "_" characters to appear between any two digits in an integer, real or hexadecimal SQL literal. (check-in: 0e6700f4 user: dan tags: trunk)
00:58
Bring the extra-src branch up to date with the trunk. (Closed-Leaf check-in: 12ff5c5c user: stephan tags: extra-src)
2024-02-26
22:28
The quote() SQL function should convert +Inf into 9.0e+999 and -Inf into -9.0e+999. See forum post 6675b25108. (check-in: 85dd79a6 user: drh tags: trunk)
15:27
When inserting a 3-byte cell into a btree, ensure that the extra padding byte is 0x00. This is not necessary for security, as far as I can tell, but it seems like a reasonable precaution. (check-in: 5766f127 user: drh tags: trunk)
12:16
Add the intck extension. For performing incremental integrity-check on a database. (check-in: 141d8bb0 user: dan tags: trunk)
11:51
Fix header comments on test scripts. (Closed-Leaf check-in: 9fe9670c user: drh tags: incr-integrity-check)
11:43
Remove a local variable from sqlite3IntFloatCompare() that was being optimized out anyhow, in order to get back to 100% MC/DC. (check-in: 52b13d6a user: drh tags: trunk)
10:56
Merge latest trunk changes into this branch. (check-in: b6371ff9 user: dan tags: incr-integrity-check)
2024-02-25
21:30
Make sure key comprisons are done correctly if the index key contains NaN values that have not been shifted into NULLs. That can only happen due to database corruption, but we need to deal with it nevertheless. (check-in: 7e4c743f user: drh tags: trunk)
2024-02-24
19:58
Add two GIFs that contain the feather logo. (check-in: 5f21e6a8 user: drh tags: trunk)
16:26
Add further tests for the intck module. (check-in: c253e276 user: dan tags: incr-integrity-check)
2024-02-23
20:51
Add tests for the new code on this branch. (check-in: 351d46b2 user: dan tags: incr-integrity-check)
18:21
Add the ".intck ?STEPS_PER_UNLOCK?" command to the shell tool. (check-in: cfd05183 user: dan tags: incr-integrity-check)
18:02
Typo fixes reported in the forum. No code changes. (check-in: 67d8bae0 user: stephan tags: trunk)
17:10
Fix detection of surplus index entries when all indexed fields are NULL. (check-in: 5f310fb7 user: dan tags: incr-integrity-check)
15:13
Fix problems with resuming integrity-check operations on indexes with mixed ASC and DESC columns, and on indexes that contain NULL values. (check-in: 0f68b35a user: dan tags: incr-integrity-check)
2024-02-22
18:15
Fix harmless compiler warning seen with MSVC. (check-in: e5db0899 user: mistachkin tags: trunk)
00:50
Fix debugging code so that it compiles on MSVC. (check-in: ce5df19d user: drh tags: trunk)
2024-02-21
20:58
Fix various issues in sqlite3intck.c. (check-in: 8a7bfa74 user: dan tags: incr-integrity-check)
20:21
Fix typo in comment. Fossil forum post cc20266bf2. (check-in: 7e3c46ee user: drh tags: trunk)
19:31
Simplify the way the restart key is saved internally by the intck extension. (check-in: 0e39962b user: dan tags: incr-integrity-check)
19:17
Add documentation to ext/intck/sqlite3intck.h. (check-in: 4cc19bd7 user: dan tags: incr-integrity-check)
16:15
Ensure intck tests are run by testrunner.tcl. (check-in: 11d6816c user: dan tags: incr-integrity-check)
16:12
Merge trunk changes into this branch. (check-in: 63e8846a user: dan tags: incr-integrity-check)
2024-02-20
20:18
Have the intck extension better handle corruption at the b-tree layer. (check-in: ecd775d1 user: dan tags: incr-integrity-check)
18:17
Use fewer cycles to generate the "next key" value used by sqlite3_intck_suspend() function in the intck extension. (check-in: 95f01426 user: dan tags: incr-integrity-check)
16:04
Consider using "=" and IS operators with even low-quality indexes in cases where they are selected explicitly using an INDEXED BY clause. (check-in: 43cbbea8 user: dan tags: incr-integrity-check)
15:38
Fixes to comments associated with the recent PRAGMA optimize enhancements. No changes to code. (check-in: 27a2113d user: drh tags: trunk)
13:11
Remove an unreachable branch from printf(). Change it into an assert(). (check-in: 4c9886b6 user: drh tags: trunk)
13:10
Remove an unused variable from the merge in the previous check-in. (check-in: 5c26bf37 user: drh tags: trunk)
12:48
Enhancements to PRAGMA optimize and ANALYZE. Add the 0x10000 flag to PRAGMA optimize. ANALYZE now records zero-size partial indexes in the sqlite_stat1 table. PRAGMA optimize looks for both growth and shrinkage in table sizes, and uses tighter bounds (10x rather than 25x) to trigger a re-analyze. PRAGMA optimize automatically uses are reasonable analysis_limit to prevent excessive runtimes. (check-in: 63ef234e user: drh tags: trunk)
12:14
Another simplification of the PRAGMA optimize logic for improved coverage. (Closed-Leaf check-in: 6c5a0c85 user: drh tags: better-pragma-optimize)
2024-02-19
23:58
Minor fixes. (check-in: ed5afebc user: drh tags: better-pragma-optimize)
20:47
Fix a minor hiccup in the computation of the number of btrees to be scanned. (check-in: 91302d9b user: drh tags: better-pragma-optimize)
20:15
Use more efficient SQL to verify that indexes contain entries that match their tables. (check-in: c01e008c user: dan tags: incr-integrity-check)
20:12
If there is no mention of a table in sqlite_stat1, use OP_Rewind to see if the table is empty prior to invoking ANALYZE. (check-in: 0cc93b19 user: drh tags: better-pragma-optimize)
19:56
In PRAGMA optimize, scale back the analysis_limit when many different tables and indexes must be scanned. (check-in: 63661535 user: drh tags: better-pragma-optimize)
18:55
Merge trunk fixes into the better-pragma-optimize branch. (check-in: 2cf78a5b user: drh tags: better-pragma-optimize)
18:03
Add implementation of sqlite3_intck_suspend(). (check-in: c36ada86 user: dan tags: incr-integrity-check)
16:22
If a table has one or more rows and it has a partial index has zero rows, still make an entry in the sqlite_stat1 table for the partial index, so that we know that "PRAGMA optimize" does not need to redo the whole table. (check-in: e147b189 user: drh tags: better-pragma-optimize)
13:50
Simplifications to PRAGMA optimize to make it easier to use. It always tries to ANALYZE unanalyzed indexes. The 0x10000 flag just makes it check for size changes in all tables. (check-in: 44ed7f4c user: drh tags: better-pragma-optimize)
13:06
Change the 0x20000 bit (use analysis limit) to 0x10, meaning that this feature is on by default. The default analysis limit is changed to 2000 which is almost always sufficient for accurate analysis results. (check-in: 4abd47b5 user: drh tags: better-pragma-optimize)
12:20
Extend the strerror_r() result type discrepancy check in os_unix.c to include the Android NDK, as reported in forum post 3f13857fa4062301. The NDK's strerror_r() signature is version-dependent, whereas this change assumes int return (POSIX semantic) across all versions. (check-in: f18b2524 user: stephan tags: trunk)
2024-02-18
01:12
Hold a transaction during PRAGMA optimize, for performance. (check-in: d13b79ea user: drh tags: better-pragma-optimize)
2024-02-17
20:55
Add start of extension for incremental integrity-checks to ext/intck/. (check-in: 444e3c92 user: dan tags: incr-integrity-check)
16:39
Add new MASK bits to PRAGMA optimize: 0x70000. (check-in: dd449706 user: drh tags: better-pragma-optimize)
03:36
Fix rounding in zero-precision %f and %g printf conversions. (check-in: 1ebea57f user: drh tags: branch-3.45)
03:32
Fix rounding in zero-precision %f and %g printf conversions. Forum post 393708f4a8. This bug was introduced by check-in [32befb224b254639] and first appeared in version 3.43.0. (check-in: 7fca1bc4 user: drh tags: trunk)
01:12
The PRAGMA optimize command invokes ANALYZE if a table shrinks by 25 times in addition to if it grows by 25 times. (check-in: 40532ffb user: drh tags: better-pragma-optimize)
2024-02-16
21:34
Fix the subtype on the value column from json_each/json_tree for cases when the value is an array or object. (check-in: b278ae39 user: drh tags: branch-3.45)
21:30
Fix the subtype on the value column from json_each/json_tree for cases when the value is an array or object. Fix for the bug reported by forum post ecb94cd210. (check-in: 1c33c5db user: drh tags: trunk)
18:34
Retweak last check-in to retain compile-time checking of xprintf() arguments. (check-in: 67017491 user: larrybr tags: trunk)
16:04
Work around a __VA_ARGS__ complaint in fiddle builds. (check-in: 7d750248 user: stephan tags: trunk)
12:57
Rename the TF_StatsUsed flag to TF_MaybeReanalyze, to more accurately reflect its usage. No logic changes. (check-in: b4790da5 user: drh tags: trunk)
11:41
Handle an OOM case in fts5 code to query tokendata=1 tables. (check-in: 01222d96 user: dan tags: trunk)
11:05
Fix a problem with the sqlite3_log() message identifying the table or index that a conflicting page belongs to. (check-in: 11a4178f user: dan tags: bedrock)
11:03
Fix a problem with the sqlite3_log() message identifying the table or index that a conflicting page belongs to. (check-in: d6c629f1 user: dan tags: begin-concurrent)
2024-02-13
18:44
Fix a bug in PRAGMA integrity_check introduced by enhancement (8a) in release 3.42.0. (check-in: 60dccb23 user: drh tags: branch-3.45)
18:41
Fix a bug in PRAGMA integrity_check introduced by enhancement (8a) in release 3.42.0 and first reported by forum post ee4f6fa5ab. (check-in: 460353df user: drh tags: trunk)
17:11
Changes to vtabCallConstructor() to avoid a harmless static analyzer warning and to help prove that the UAF reported by forum post cafbe582e8 is a false-positive. (check-in: 4892440b user: drh tags: trunk)
2024-02-12
19:12
Replace the assert() that was removed by [f023cb541b5dd72c] because [1cd5d4623f44af25] made it true again. (check-in: 189a49f1 user: drh tags: trunk)
17:01
Have rtree avoid keeping a blob handle open following an error. (check-in: 26978f34 user: drh tags: branch-3.45)
16:12
Have rtree avoid keeping a blob handle open following an error. (check-in: 1cd5d462 user: dan tags: trunk)
14:44
Add a new sqlite3FaultSim() to btree for better fault analysis. (check-in: 2c675bd3 user: drh tags: trunk)
13:51
Add a new sqlite3FaultSim() call in the btree logic, for testing. (Closed-Leaf check-in: e0558f79 user: drh tags: new-btree-faultsim)
13:28
Add support for the ".testctrl fault_install" dot-command in the CLI when launched with the --unsafe-testing option. (check-in: 5ba7fee1 user: drh tags: trunk)
2024-02-11
23:25
Cherrypick multiple fixes for trifling faults from trunk, so that all 834 dbsqlfuzz run clean with ASAN on branch-3.45. dbsqlfuzz. (check-in: c080560c user: drh tags: branch-3.45)
22:56
In the RTREE extension, allow the xBeginTransaction() entry point to be invoked multiple times without intervening calls to xEndTransaction(). (check-in: f023cb54 user: drh tags: trunk)
20:53
If a term of an ORDER BY or GROUP BY contains an aggregate function or column, then it is not an alias that needs to be resolved, so don't try to. This fixes a harmless assertion found by dbsqlfuzz. This yet another problem that orginated at check-in [6e6b3729e0549de0]. (check-in: d4ec2a5d user: drh tags: trunk)
18:53
Improved AggInfo tracing in debug builds. No changes to deliverable code. (check-in: bb31f9c4 user: drh tags: trunk)
2024-02-10
03:12
Further clarify sqlite3_exec() callback parameter lifetime. (check-in: 044ce823 user: larrybr tags: branch-3.45)
03:11
Further clarify sqlite3_exec() callback parameter lifetime. (check-in: 993a1a84 user: larrybr tags: trunk)
2024-02-08
01:23
Mention limited lifetime of string arrays passed to sqlite3_exec() callback. (check-in: d14a9d81 user: larrybr tags: branch-3.45)
01:19
Mention limited lifetime of string arrays passed to sqlite3_exec() callback. (check-in: 717f67f3 user: larrybr tags: trunk)
2024-02-07
20:45
Fix an #endif (added in the wrong place by [8f4b1ceafe4a271b]) so that the build works with SQLITE_OMIT_VIRTUAL_TABLE. (check-in: 7070924e user: drh tags: trunk)
19:52
Bring test cases into alignment with the latest enhancements. (check-in: cd017c28 user: drh tags: trunk)
19:17
Turns out the branch is reachable, so back out the NEVER(). (check-in: 0af36a32 user: drh tags: trunk)
19:09
Checked into the wrong branch. (Closed-Leaf check-in: 81bd7aee user: drh tags: mistake)
14:16
Detect and respond to an OOM on the jsonStringTerminate() call of jsonReturnStringAsBlob() routine. (check-in: 77431aca user: drh tags: branch-3.45)
14:05
Detect and respond to an OOM on the jsonStringTerminate() call of jsonReturnStringAsBlob() routine. (check-in: 881f814c user: drh tags: trunk)
2024-02-06
18:33
Slight change to OOM handling in JSON to catch a corner case found by dbsqlfuzz. (check-in: 6a2b3266 user: drh tags: trunk)
13:36
Return SQLITE_ABORT if the underlying shadow tables change in the middle of an rtree query in such a way as to invalidate an rtree internal priority queue entry. This replaces the SQLITE_ABORT_ROLLBACK mechanism added in [97cffff331b]. (check-in: 061af0d7 user: drh tags: branch-3.45)
08:59
Correct docs about the first OFPS VFS's importDb() method being synchronous (it's not, whereas the second VFS's importDb() is). (check-in: ae7505fa user: stephan tags: trunk)
08:25
Make explicit that using the importDb() methods of the OPFS VFSes has undefined results if the being-imported db is currently open. Doc changes only. (check-in: f28b9924 user: stephan tags: trunk)
2024-02-05
17:54
Return SQLITE_ABORT if the underlying shadow tables change in the middle of an rtree query in such a way as to invalidate an rtree internal priority queue entry. This replaces the SQLITE_ABORT_ROLLBACK mechanism added in [af5c4251]. (check-in: 32f85a5c user: dan tags: trunk)
17:35
Return SQLITE_ABORT if the underlying shadow tables change in the middle of an rtree query in such a way as to invalidate an rtree internal priority queue entry. (Closed-Leaf check-in: 478280ef user: dan tags: rtree-fix)
03:56
Extend [d294a23ed6d] to apply to all wasm speedtest1 builds. (check-in: 26f848e5 user: stephan tags: trunk)
03:37
wasm: pass the promiser function to the promiser onready() callback to simplify access to it in certain usage patterns. (check-in: f8a8b9ee user: stephan tags: trunk)
02:36
wasm: squelch a new (and, in our case, invalid) warning from emcc 3.1.52. (check-in: d294a23e user: stephan tags: trunk)
2024-02-04
04:18
Fix a minor test file locking issue on Windows. (check-in: 6cd70b71 user: mistachkin tags: trunk)
04:01
Fix harmless compiler warnings seen with MSVC. (check-in: e52c8742 user: mistachkin tags: trunk)
2024-02-03
19:41
Following a ROLLBACK that reverts changes to an RTREE, any pending queries against that same RTREE abort with code SQLITE_ABORT_ROLLBACK. (check-in: 97cffff3 user: drh tags: branch-3.45)
19:19
Following a ROLLBACK that reverts changes to an RTREE, any pending queries against that same RTREE abort with code SQLITE_ABORT_ROLLBACK. dbsqlfuzz de7d17b72d0e842352c998dd86a47b7d0f707be9. (check-in: af5c4251 user: drh tags: trunk)
2024-02-02
18:42
More extensive use of SQLITE_CORRUPT_PGNO. (check-in: 3838332c user: drh tags: trunk)
16:51
Have "PRAGMA quick_check" compare the number of entries in tables and indexes. (Closed-Leaf check-in: cc294c04 user: dan tags: quick-check-counts)
11:37
Fix typo in vdbe.c comment. No changes to code. (check-in: 62010ba4 user: dan tags: trunk)
2024-02-01
15:42
Ensure the fts5 xIntegrity method correctly returns error codes unrelated to corruption or missing SQL elements. (check-in: d18d9a05 user: dan tags: trunk)
15:21
Ensure the fts3 xIntegrity method correctly returns error codes unrelated to corruption or missing SQL elements. (check-in: 1bdb8cba user: dan tags: trunk)
14:57
In PRAGMA integrity_check, defer running xIntegrity on virtual tables until after all ordinary tables have been checked. (check-in: 8f4b1cea user: drh tags: trunk)
14:17
Add tracing logic to the shared-cache locks in btree.c. The tracing is off by default. Enable by changing a single "#if 0" into "#if 1" and recompiling. Debugging code only - no changes to release builds. (check-in: f2b943f9 user: drh tags: trunk)
11:38
Add the test_oom_breakpoint() routine on debug builds, to serve as a convenient breakpoint to intercept OOM conditions. (check-in: e45df7dc user: drh tags: trunk)
2024-01-31
20:11
Replace an conditional assignment that was made obsolete by [d4c193f0b49f4950] with an assert(). The conditional was added by [d6fd512f50513ab7] as a fix for tickets [c36cdb4afd504dc1], [4051a7f931d9ba24], and [d6fd512f50513ab7] which means now [d4c193f0b49f4950] is the correct fix for those tickets. that check-in (check-in: 44b5524d user: drh tags: trunk)
15:29
Allow control characters in JSON5 string literals. Forum thread 05182119f69c3a92. (check-in: 380f09c1 user: drh tags: trunk)
15:20
Add NEVER() and ALWAYS() macros for the JSON5-control-character change. Also fix an incorrect comparison used to determine if a buffer needed to be resized. (Closed-Leaf check-in: e3c0c0e6 user: drh tags: json5-ctrl-char)
14:44
Fix failure to detect unterminated string literals in json_valid() in the previous check-in. (check-in: 5d725644 user: drh tags: json5-ctrl-char)
13:46
Allow control characters in JSON5 string literals. (check-in: 34709c7c user: drh tags: json5-ctrl-char)
12:15
Fix a memory allocation bug in the (debug-use-only) json_parse() SQL function. (check-in: 32ce7dac user: drh tags: trunk)
2024-01-30
17:02
Merge the 3.45.1 patches into the reuse-schema branch. (check-in: f98a99fc user: drh tags: reuse-schema-3.45)
16:56
Merge the 3.45.1 patch release changes into the bedrock branch. (check-in: 5955853a user: drh tags: bedrock-3.45)
16:53
Merge the changes from the 3.45.1 patch release into the wal2 branch. (check-in: 5e980265 user: drh tags: wal2-3.45)
16:50
Merge the 3.45.1 patch release into the begin-concurrent branch. (check-in: d1f20a47 user: drh tags: begin-concurrent-3.45)
16:01
Version 3.45.1 (check-in: e876e51a user: drh tags: release, branch-3.45, version-3.45.1)
2024-01-29
21:29
Detect malformed nested JSONB earlier and stop rendering to avoid long delays. (check-in: ab40e282 user: drh tags: branch-3.45)
21:09
Detect malformed nested JSONB earlier and stop rendering to avoid long delays. (check-in: 72f3e1d0 user: drh tags: trunk)
20:36
When generated text JSON from JSONB, do not continue descending into nested structures after an error is seen. This avoids long loops and wait times. (check-in: 97666ec0 user: drh tags: trunk)
19:30
Consider an index for queries like "SELECT count(DISTINCT col) FROM ...", even if the index records are not smaller than the table records. (check-in: ad068688 user: dan tags: trunk)
16:49
Avoid a potential buffer overread when handling corrupt json blobs. (check-in: ac402cc5 user: drh tags: branch-3.45)
15:30
Avoid a potential buffer overread when handling corrupt json blobs. (check-in: 738473dc user: dan tags: trunk)
12:58
When rendering JSONB back into text JSON, report an error if a zero-length integer or floating-point node is encountered. Otherwise, if the node occurs at the very end of the JSONB, the rendering logic might read one byte past the end of the initialized part of the BLOB byte array. OSSFuzz 66284. (check-in: 3ab08ac7 user: drh tags: branch-3.45)
12:50
When rendering JSONB back into text JSON, report an error if a zero-length integer or floating-point node is encountered. Otherwise, if the node occurs at the very end of the JSONB, the rendering logic might read one byte past the end of the initialized part of the BLOB byte array. OSSFuzz 66284. (check-in: b0eb279e user: drh tags: trunk)
2024-01-28
20:42
Use __ppc__ instead of __POWERPC__ to identify 32-bit PowerPC processors. Forum post 34794846ce. (check-in: c974d931 user: drh tags: trunk)
17:44
Automatically disable the DISTINCT optimization during query planning if the ORDER BY clause exceeds 63 terms. (check-in: 6edbdcc0 user: drh tags: branch-3.45)
17:39
Automatically disable the DISTINCT optimization during query planning if the ORDER BY clause exceeds 63 terms. dbsqlfuzz afd1d61fc27d14938a0d78a50970fa1e9fbfee58. (check-in: d4c193f0 user: drh tags: trunk)
00:35
Apply the same fix found in [99057383acc8f920] to descending scans. (check-in: 593d6a1c user: drh tags: branch-3.45)
00:31
Apply the same fix found in [99057383acc8f920] to descending scans. dbsqlfuzz afd1d61fc27d14938a0d78a50970fa1e9fbfee5. (check-in: e1d463c2 user: drh tags: trunk)
2024-01-27
20:17
Improvements to parser stack overflow testing. Forum post 99e181b5bf. (check-in: 556c43a9 user: drh tags: trunk)
12:47
Performance enhancements to the parser template. (check-in: 2db8b30a user: drh tags: trunk)
12:25
Use an alternative memory allocator for parser stack space that includes a call to sqlite3FaultSim() to facilitate testing. (check-in: 7c36d560 user: drh tags: trunk)
11:35
Allocate new parser stack space from the heap if needed, eliminating the possibility of a "parser stack overflow" error as long as heap memory is available. (check-in: d87a2054 user: drh tags: trunk)
02:21
Optimizations to ParseFinalize() to make up for the extra cleanup associated with the allocated parser stack. This branch now runs faster than trunk and is less than 300 bytes larger. (Closed-Leaf check-in: f7290db6 user: drh tags: growable-parser-stack)
01:35
Omit the "parser stack overflow" error message, since it no longer occurs. Replace it with an ordinary "out of memory". (check-in: 33f17ec2 user: drh tags: growable-parser-stack)
2024-01-26
20:57
Bug fixes in the function that expands the parser stack. (check-in: e91179fe user: drh tags: growable-parser-stack)
20:34
Experimental changes that prevent parser stack overflows by growing the parser stack with heap memory when it reaches its limit. (check-in: 3fd06290 user: drh tags: growable-parser-stack)
2024-01-24
21:08
Add NEVER() to a branch that is no longer reachable. (check-in: 9411337a user: drh tags: trunk)
19:54
Update ext/wasm/SQLTester for recent internal-API reorgs. (check-in: 996cfdf9 user: stephan tags: trunk)
2024-01-23
21:10
Slight adjustment to test results for Windows in mmap1.test due to the previous check-in. (check-in: a8043eae user: drh tags: branch-3.45)
21:10
Slight adjustment to test results for Windows in mmap1.test due to the previous check-in. (check-in: 5cf9ea9b user: drh tags: trunk)
16:21
In os_unix.c and os_win.c, do not allow xFetch() to return a pointer to a page buffer that is right at the end of the mapped region - if the database is corrupted in a specific way such a page buffer might be overread by several bytes. (check-in: 198a1daa user: drh tags: branch-3.44)
16:17
In os_unix.c and os_win.c, do not allow xFetch() to return a pointer to a page buffer that is right at the end of the mapped region - if the database is corrupted in a specific way such a page buffer might be overread by several bytes. (check-in: d131cab6 user: drh tags: branch-3.45)
16:09
In os_unix.c and os_win.c, do not allow xFetch() to return a pointer to a page buffer that is right at the end of the mapped region - if the database is corrupted in a specific way such a page buffer might be overread by several bytes. (check-in: 2684feac user: dan tags: trunk)
15:04
Fix harmless "unused parameter" compiler warning in the new fts3IntegrityMethod implementation. (check-in: 9d459f6b user: drh tags: branch-3.45)
14:45
Improved error message when a double-quoted identifier name cannot be resolved - ask the user if they intended to use a string literal. (check-in: efc5c3c5 user: drh tags: trunk)
13:58
Bump the version number to 3.45.1 (check-in: 54d34edb user: drh tags: branch-3.45)
13:53
When a JSON input is a blob, but it looks like valid JSON when cast to text, then accept it as valid JSON. This replicates a long-standing bug in the behavior of JSON routines, and thus avoids breaking legacy apps. (check-in: 4c2c1b97 user: drh tags: branch-3.45)
13:51
When a JSON input is a blob, but it looks like valid JSON when cast to text, then accept it as valid JSON. This replicates a long-standing bug in the behavior of JSON routines, and thus avoids breaking legacy apps. Forum thread 012136abd5292b8d. (check-in: e5dc81d5 user: drh tags: trunk)
13:28
Fix typo in the tag-20240123-a in a comment. (Closed-Leaf check-in: 1f09541e user: drh tags: blob-as-json)
13:21
If a BLOB looks like JSON when cast to text, then treat it as if it really were JSON. This replicates a long-standing bug in the JSON processing routines, and thereby avoids breaking legacy. (check-in: d79a3769 user: drh tags: blob-as-json)
12:51
Change the shell's --help flag to exit with code 0 instead of 1, per /forum and /chat discussions. (check-in: df563a18 user: stephan tags: trunk)
11:20
Add extra checks for the validity of a numeric literal to sqlite3DequoteNumber(). (Closed-Leaf check-in: d57407ef user: dan tags: digit-separators)
10:47
Ensure that the xIntegrity methods of fts3 and fts5 work on read-only databases. (check-in: e79b9736 user: dan tags: branch-3.45)
2024-01-22
20:49
Simplification of the error reporting logic. (Closed-Leaf check-in: 59eb9d29 user: drh tags: improved-dqs-error-msg, blob-as-json)
19:42
Fix a problem in the previous commit with hex literals that start with "0X" instead of "0x". (check-in: c063c89b user: dan tags: digit-separators)
19:38
Allow underscores to occur in hex literals. (check-in: 81a56229 user: dan tags: digit-separators)
19:00
Add extra tests for the code on this branch. (check-in: b15bbb20 user: dan tags: digit-separators)
17:18
Do not allow digit separators that are not surrounded on both sides by digits. (check-in: 5bbc378a user: drh tags: digit-separators)
15:26
Improved error message when a double-quoted string is used and it seems likely that the user wanted a single-quoted string literal. (check-in: 0a834bd8 user: drh tags: improved-dqs-error-msg, blob-as-json)
14:16
The -DSQLITE_JSON_BLOB_INPUT_BUG_COMPATIBLE compile-time option causes blob inputs to JSON functions that are not JSONB to be processed as if they where text, immulating historical bugging behavior which some applications have come to rely upon. See forum thread 012136abd5292b8d for discussion. (check-in: 65572223 user: drh tags: blob-as-json)
14:01
Fix test script literal.test so that it works with SQLITE_OMIT_ALTER_TABLE builds. (check-in: 4dc00f57 user: dan tags: trunk)
12:56
Fix userauth so that it works together with SQLITE_OMIT_SHARED_CACHE. (Forum post 0bfc5888a384d430). However, also change to code to issue a deprecation warning whenever SQLITE_USER_AUTHENTICATION is used. (check-in: 249048b0 user: drh tags: trunk)
12:30
Add a notice to the user-authentication documentation to say that the extension is deprecated and may disappear in the future. (check-in: fe6fc7b9 user: drh tags: trunk)
11:12
Fix test script literal.test so that it works with SQLITE_OMIT_ALTER_TABLE builds. (check-in: b57327be user: dan tags: digit-separators)
01:11
Make CLI .dump immune to pragma reverse_unordered_selects, as reported in Forum thread c42be01880e961eb. (check-in: 488caed2 user: larrybr tags: trunk)
2024-01-21
21:20
Fix a harmless typo in a comment. (check-in: 382a8f94 user: drh tags: trunk)
2024-01-20
18:45
Merge trunk changes into this branch. (check-in: 03ade4a8 user: dan tags: digit-separators)
18:41
Ensure that values generated by DEFAULT clauses that specify real numbers that can be expressed as 64-bit integers (e.g. -1234.0) are not silently converted to integers. (check-in: 298d6977 user: dan tags: trunk)
18:26
Simplifications to the strftime() logic. (check-in: aaa5a044 user: drh tags: trunk)
18:21
Fix a memory leak in new memdb1.test test cases that were added by [e638d5e408ea2e18]. No changes to SQLite itself. (check-in: bb2b7a65 user: drh tags: trunk)
16:46
Add test cases for the new code on this branch. (check-in: 49f29a7b user: dan tags: digit-separators)
16:38
Make sure that %V and %G are testing for every since day in between 1970-01-01 and 2023-01-19. (check-in: 39c475f5 user: drh tags: trunk)
16:29
Rig sqlite3_serialize() so that it will initialize a previously uninitialized database prior to serializing it, so that it does not have a zero-byte size and does not return NULL (except for OOM). Forum thread 498777780e16880a. (check-in: e638d5e4 user: drh tags: trunk)
16:18
Allow "_" characters to appear following any digit in an integer or real SQL literal. (check-in: 401650aa user: dan tags: digit-separators)
15:13
When doing a text-affinity comparison between two values where one or both have both a text and a numeric type, make sure the numeric type does not confuse the answer. This is a deeper fix to the problem observed by forum pose 3776b48e71. The problem bisects to [25f2246be404f38b] on 2014-08-24, prior to version 3.8.7. (check-in: 709841f8 user: drh tags: trunk)
13:18
Ensure that the replace() SQL function always returns a TEXT value even when its first argument is numeric and its second argument is an empty string. Fix for the issue reported by forum post 3776b48e71. (check-in: 01868ebc user: drh tags: trunk)
12:19
When backing out a character in a constructed string in JSON, first make sure the string has not been reset by on OOM. (check-in: 950bf9fe user: drh tags: branch-3.45)
12:13
When backing out a character in a constructed string in JSON, first make sure the string has not been reset by on OOM. dbsqlfuzz 2fffbea91a5376526ea118d4fe4188c8dd35e317. (check-in: 666690eb user: drh tags: trunk)
12:00
Fix the version number in the TEA configure script. This should have been changed by [1481baf3d55effcc] three check-ins ago. It is unclear how testing missed this. (check-in: eaf2cf73 user: drh tags: trunk)
00:31
Implement a new algorithm for computing ISO week values in strftime() based on the idea (from Nuno Cruces) of shifting the date being tested to the Thursday of the same week. (check-in: b06ab46a user: drh tags: trunk)
2024-01-19
16:51
Allow large hexadecimal literals to be used as DEFAULT values. (check-in: 8cccc1f2 user: dan tags: trunk)
2024-01-18
16:52
Increase the version number to 3.46.0 to begin the next development cycle. (check-in: 1481baf3 user: drh tags: trunk)
16:50
Add support in the strftime() SQL function for conversion letters %G, %g, %U, and %V. (check-in: e1155d6a user: drh tags: trunk)
2024-01-16
16:14
Fix harmless "unused parameter" compiler warning in the new fts3IntegrityMethod implementation. (check-in: bb1fe53a user: drh tags: trunk)
16:05
Ensure that the xIntegrity methods of fts3 and fts5 work on read-only databases. (check-in: b855886c user: dan tags: trunk)
15:04
Clutter the code with "fall-through" comments in order to suppress nuisance compiler warnings. No logic changes. (check-in: 05d2cf5e user: drh tags: trunk)
14:54
Remove the LLONG_MAX preprocessor macro from the series.c extension as it is apparently only C99 and later. Forum post 4af649419b. (check-in: f106bc0d user: drh tags: trunk)
14:28
wasm build: reformulate an awk invocation to account for awks which do not support the -e flag. Problem reported on the forum via a docker-hosted build. (check-in: 90dd5115 user: stephan tags: branch-3.45)
14:24
Various build- and code-reorg cleanups for ext/wasm. No functional changes. (check-in: 835bd4a1 user: stephan tags: trunk)
2024-01-15
17:01
Version 3.45.0 (check-in: 1066602b user: drh tags: trunk, release, version-3.45.0)
2024-01-13
20:38
Merge latest trunk changes into this branch. (check-in: bb9a7157 user: dan tags: reuse-schema)
20:36
Merge latest wal2 changes into this branch. (check-in: c39f6585 user: dan tags: bedrock)
20:21
Merge latest trunk changes into this branch. (check-in: 68c2b8d0 user: dan tags: wal2)
19:57
Merge latest trunk changes into this branch. (check-in: 95bf4bc2 user: dan tags: begin-concurrent)
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)
11:44
Have the shell tool automatically enable SQLITE_CONFIG_DQS_DDL when executing a ".dump" script against an empty db. (check-in: f47a5f4e user: dan tags: trunk)
2024-01-11
16:10
wasm build: reformulate an awk invocation to account for awks which do not support the -e flag. Problem reported on the forum via a docker-hosted build. (Closed-Leaf check-in: 58366579 user: stephan tags: wasm-post-3.45)
14:21
Internal JS doc cleanups. (check-in: c8284170 user: stephan tags: wasm-post-3.45)
14:13
Fix a comment in sessions. No functional changes. Forum post 8c20dc935b. (check-in: b0eb6d36 user: drh tags: trunk)
14:03
In fts5, flush the contents of the in-memory hash table whenever the secure-delete option is toggled. This prevents spurious corruption reports under some circumstances. (check-in: ccf55231 user: dan tags: trunk)
12:56
Remove some dead JS code. Minor doc cleanups. (check-in: bf23cf20 user: stephan tags: wasm-post-3.45)
12:31
Split the JS vfs/vtab helper code into discreet units as a step towards a build which optionally elides those pieces. This is an internal restructuring change and does not affect the API. (check-in: ede945fd user: stephan tags: wasm-post-3.45)
2024-01-10
20:13
Fix a few compiler gripes. (Leaf check-in: 2e74a938 user: larrybr tags: win-dupe-crt-fio)
05:52
For CLI shell and other utilities, optionally avoid C runtime file I/O on Windows in favor of WIN32 calls, while nominally preserving FILE* API interfaces. (a WIP, awaiting build and testing) (check-in: 6be68be1 user: larrybr tags: win-dupe-crt-fio)
2024-01-09
23:15
Put an SQLITE_ENABLE_SETLK_TIMEOUT branch inside the appropriate ifdef with an assert on the else since the condition is always false if SETLK_TIMEOUT is not available. (check-in: d81e7a03 user: drh tags: trunk)
12:28
Improved resolution of unqualified names in the REINDEX command. Forum thread 74cd0ceabd. (check-in: 97709ce2 user: drh tags: trunk)
2024-01-08
19:55
Automatically turn off DEFENSIVE mode in the shell tool when executing scripts generated by the ".dump" command against an empty database. Add a warning to the top of generated ".dump" scripts that populate virtual tables. (check-in: cd016f26 user: dan tags: trunk)
18:53
Fix date on new file shell9.test. (Closed-Leaf check-in: c82da712 user: dan tags: shell-dump-fix)
18:46
Automatically turn off DEFENSIVE mode in the shell tool when executing scripts generated by the ".dump" command against an empty database. Add a warning to the top of generated ".dump" scripts that populate virtual tables. (check-in: 6e9e96b7 user: dan tags: shell-dump-fix)
15:23
Minor change to os_unix.c to facilitate 100% MC/DC testing. (check-in: 0dfa7b4d user: drh tags: trunk)
13:38
Ensure that SQLITE_PROTOCOL is not returned too early when a SQLITE_ENABLE_SETLK_TIMEOUT build fails to open a transaction on a wal mode database in cases where blocking locks are not being used. (check-in: a8e9af13 user: dan tags: trunk)
07:52
Make explicit which JS APIs are for internal use only by moving the JS-bound internal-use-only functions out of client-visible reach and renaming the WASM-exported ones from sqlite3_wasm... to sqlite3__wasm... (with two underscores). These have always been documented as internal-use-only, so this is not a breaking change except for clients which have ignored the docs. (check-in: 0eddc20f user: stephan tags: wasm-post-3.45)
2024-01-07
20:27
Remove an ALWAYS() from RTREE. Dbsqlfuzz found a way to make it false. (check-in: 40f0a29e user: drh tags: trunk)
00:45
Updates to RTREE to facility testing. (check-in: 7a5b42ff user: drh tags: trunk)
2024-01-06
19:16
Ensure that SQLITE_PROTOCOL is not returned too early when a SQLITE_ENABLE_SETLK_TIMEOUT build fails to open a transaction on a wal mode database in cases where blocking locks are not being used. (Closed-Leaf check-in: b934a336 user: dan tags: enable-setlk-fix)
15:22
Update JSON performance testing procedures for clarity and to describe how to do performance testing of JSONB. (check-in: b115b4f7 user: drh tags: trunk)
13:58
Update extension ext/misc/totext.c to avoid both ubsan warnings and dubious real->integer conversions. (check-in: 54143600 user: dan tags: trunk)
2024-01-05
15:53
Update extension ext/misc/totext.c to avoid both ubsan warnings and dubious real->integer conversions. (Closed-Leaf check-in: c626aa10 user: dan tags: totype-fix)
2024-01-04
17:33
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: e07f2451 user: drh tags: reuse-schema)
17:13
Avoid errors with SQLITE_OMIT_VIRTUALTABLE builds in json106.test and unionall.test. (check-in: 8940e2a1 user: drh tags: trunk)
16:28
Merge the latest trunk enhancements into the bedrock branch. (check-in: 707f79c7 user: drh tags: bedrock)
16:16
Merge the latest trunk enhancements into the wal2 branch. (check-in: 8fb42df8 user: drh tags: wal2)
16:15
Testing code left in by accident. (Closed-Leaf check-in: 90e8a233 user: dan tags: mistake)
15:49
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: c407d3bb user: drh tags: begin-concurrent)
13:01
Restructure some code to fix what appears to be a false-positive UBSAN warning. (check-in: fe952c12 user: drh tags: trunk)
2024-01-03
20:40
Fix a #ifdef in sqlite3_test_control() that was preventing builds with SQLITE_OMIT_WSD. (check-in: d546a9c9 user: drh tags: trunk)
16:41
Convert the JSON functions to use lookaside memory allocation whenever feasible, to avoid hitting the global memory allocator mutex. (check-in: a79a2449 user: drh tags: trunk)
15:49
Change a constant from decimal to hex to avoid a compiler warning on Mac. (check-in: e3acb8a4 user: drh tags: trunk)
14:13
Enhance sqlite3_analyzer.exe so that it uses the ext/consio extension. (check-in: 769de0b9 user: drh tags: trunk)
12:26
Update the sqldiff.exe utility program so that it uses the sqlite3_str string interface, and so that it does console output using the ext/consio extension. (check-in: 4443b7e5 user: drh tags: trunk)
2024-01-02
22:49
Back out [b517a52fa36df0a0] which is no longer reachable due to early error detection enhancements in [166e82dd20efbfd3]. (check-in: 704943e9 user: drh tags: trunk)
21:37
Adjust the sqlite3PagerDirectReadOk() routine (part of the SQLITE_DIRECT_OVERFLOW_READ optimization) to use less code and to be more easily testable. (check-in: eed670ea user: drh tags: trunk)
21:08
Fix a problem in fts5 caused by a COMMIT involving fts5 data that immediately follows a ROLLBACK TO that does not. (check-in: 55c61f6a user: dan tags: trunk)
20:34
Increase the default "max_page_count" to its theoretical maximum of 4294967294. (check-in: ffb35f17 user: drh tags: trunk)
09:20
Elaborate on the various build flavors used by ext/wasm/. Doc changes only. (check-in: d489232a user: stephan tags: trunk)
09:03
Update and clean up the in-makefile docs for ext/wasm. (check-in: 7a7b295e user: stephan tags: trunk)
2024-01-01
23:28
Back out [99d11e6d0ae6] (enabling of STAT4 in WASM/JNI), per /chat discussion. (check-in: cd7929ee user: stephan tags: trunk)
19:20
New logic to avoid using indexes that ANALYZE has identified as of little practical use. Also a performance optimization in ANALYZE. (check-in: bcac9375 user: drh tags: trunk)
17:58
Remove some unnecessary computations from ANALYZE so that ANALYZE runs with fewer CPU cycles. These changes were spotted while working on the nearby enhanced-stat1 branch. So even if enhanced-stat1 is abandoned, that effort put into it will not have been in vain. (Closed-Leaf check-in: 5527e8c4 user: drh tags: avoid-low-quality-indexes)
17:48
Extra steps taken to avoid using low-quality indexes in a query plan. This branch accomplishes the same end as the nearby enhanced-stat1 branch, but with much less change and hence less risk. (check-in: c030e646 user: drh tags: avoid-low-quality-indexes)
15:49
Improved defenses against deliberately corrupted sqlite_stat1 tables. (Closed-Leaf check-in: ee34db31 user: drh tags: enhanced-stat1)
15:35
Fix a harmless compiler warning. (check-in: b5aa1aea user: drh tags: enhanced-stat1)
14:13
Omit the uneven=N argument in sqlite_stat1 and replace it with var=N1,N2,... so that the variation in each column is reported separately. Omit the "slow" argument from sqlite_stat1, computing that flag internally. PRAGMA stats is enhanced with a new column "est" that shows the aiRowLogEst array for each index after it has been modified by "var=..." and also the "slow" flag. (check-in: 4a8fc173 user: drh tags: enhanced-stat1)
06:58
JNI: move the ByteBuffer-using APIs from public to package visibility for the time being because they have UB-inducing possibilities which need to be worked out. Update test code to account for a change in custom FTS5 columntext() impls. (check-in: dc501275 user: stephan tags: trunk)
05:58
WASM: various build cleanups and add initial infrastructure for a build which elides the oo1 API and its dependents (worker1 and promiser). Sidebar: an attempt was made to move generation of the build rules to an external script, but the mixed-mode make/script was even less legible than the $(eval) indirection going on in the makefile. (check-in: 563d3131 user: stephan tags: trunk)
2023-12-31
20:04
Better comments. Slight tuning of parameters. (check-in: 1cc32ecc user: drh tags: enhanced-stat1)
12:38
Ensure that all elements of aiRowLogEst[] have been initialized even if the stat entry is truncated. (check-in: c216921b user: drh tags: enhanced-stat1)
04:01
Use SQLITE_ENABLE_STAT4 in both the WASM and JNI builds. (check-in: 99d11e6d user: stephan tags: trunk)
2023-12-30
22:00
In sqlite_stat1, revert the number of rows to the average, not adjusted for the maximum. Instead add "uneven=NNN" where NNN is a multiplier to apply to the average to get the maximum. "uneven" is only reported if NNN is 10 or more. Also add the "slow" argument is the maximum number of rows reported by a full equality match is so large that a table scan seems likely to be faster. (check-in: 41773fa7 user: drh tags: enhanced-stat1)
15:07
Omit the "noquery" argument in sqlite_stat1. Instead, add the "uneven" argument for indexes that have an uneven distribution of values. Modify the query planner to avoid doing equality look-ups on uneven indexes. (check-in: 0ec4b880 user: drh tags: enhanced-stat1)
2023-12-29
21:07
Revise the "noquery" decision algorithm again. The index now must select more than 150 rows on average, and the number of rows select must be enough that it seems faster to do a full scan of the associated table. (check-in: f516ef80 user: drh tags: enhanced-stat1)
20:31
Fix an issue in the "noquery" decision in the previous check-in. Also add comments explaining the algorithm. (check-in: 6aaa65ad user: drh tags: enhanced-stat1)
20:08
Add the "noquery" argument as an option for the stat column of sqlite_stat1. If set, then the index will not be used to optimize a query. Enhance ANALYZE to set that argument on very low selectivity indexes. (check-in: e514d3fa user: drh tags: enhanced-stat1)
19:03
Attempt to improve the ANALYZE command so that it does a better job of detecting lopsided indexes and makes appropriate changes to the sqlite_stat1 table. (check-in: 4b70b946 user: drh tags: enhanced-stat1)
04:29
Minor doc touchup in the JS bits. (check-in: 8d2120c3 user: stephan tags: trunk)
2023-12-28
21:02
Enable SQLITE_DIRECT_OVERFLOW_READ unless it is specifically disabled using the -DSQLITE_DIRECT_OVERFLOW_READ=0 compile-time option. (check-in: 630604a4 user: drh tags: trunk)
20:54
Update fts5origintext4.test to work with SQLITE_DIRECT_OVERFLOW_READ. (check-in: 15ed002a user: dan tags: trunk)
19:18
Performance improvement by unwinding a loop in jsonAppendString(). (check-in: 190ab3c0 user: drh tags: trunk)
16:25
Fix harmless compiler warnings in FTS5. (check-in: 3cd5ef44 user: drh tags: trunk)
16:21
Enhance the (undocumented, debug-only) json_parse() SQL function so that it returns the text rendering of the JSONB parse of the input, rather than printing the rendering on stdout. (check-in: 056de8d5 user: drh tags: trunk)
14:07
Merge the latest trunk changes into the reuse-schema branch. (check-in: 3d1b0403 user: drh tags: reuse-schema)
14:01
Merge the latest trunk changes into the bedrock branch. (check-in: 5a17b972 user: drh tags: bedrock)
13:44
Merge the latest trunk enhancements into the wal2 branch. (check-in: 1f592dd3 user: drh tags: wal2)
13:40
Merge recent trunk enhancements into the begin-concurrrent branch. (check-in: b3a2adfd user: drh tags: begin-concurrent)
2023-12-27
16:24
Fix a problem in the shell tool (not library) causing an out-of-bounds write if an ".open" command failed, then the user pressed ctrl-c to interrupt a query running on the substitute in-memory database. (check-in: 026618b9 user: dan tags: trunk)
2023-12-26
15:52
Ensure that the xColumnText(), xQueryPhrase() and xPhraseFirstColumn() APIs all return SQLITE_RANGE if they are passed a bad column or phrase number. (check-in: 1a8a9b1c user: dan tags: trunk)
13:20
Improved handling of malformed unicode within JSON strings. (check-in: e252bdf5 user: drh tags: trunk)
2023-12-24
12:02
Remove an ALWAYS() added in [c50e6c2ace49d092] because it is sometimes false. dbsqlfuzz c393a4f783d42efd9552772110aff7e5d937f15e. (check-in: b9daf37e user: drh tags: trunk)
11:43
Fix harmless compiler warnings associated with [5db30bcc338aac1c] (check-in: e55d1c23 user: drh tags: trunk)
11:31
Avoid signed integer overflow during integrity_check of FTS5. (check-in: 5937df3b user: drh tags: trunk)
2023-12-23
19:03
Improvements to the query planner to address the inefficiency described by forum post 2568d1f6e6. (check-in: 72fcc12c user: drh tags: trunk)
11:31
Add debugging output routines sqlite3ShowWhereLoop(X) and sqlite3ShowWhereLoopList(X) that can be invoked from a debugger to show a summary of the content of a single WhereLoop object or a list of WhereLoop objects. No change in release builds. (check-in: 5db30bcc user: drh tags: trunk)
2023-12-22
21:22
Change parameters on a debugging function to include "const". (check-in: 94c3e111 user: drh tags: trunk)
16:03
Add the -fno-sanitize-recover=undefined to the sanitizer builds used for sdevtest and release testing. To ensure that any test that provokes undefined behaviour fails. (check-in: 89563311 user: dan tags: trunk)
15:42
Update #ifdef checks in pager.c and util.c to account for [0462a2612d1fc1d0] to resolve the build problem reported in forum post 9819032aac. (check-in: 7374c234 user: stephan tags: branch-3.44)
15:41
Update #ifdef checks in pager.c and util.c to account for [0462a2612d1fc1d0] to resolve the build problem reported in forum post 9819032aac. (check-in: 0f22d809 user: stephan tags: trunk)
14:47
Fix a usan complaint about signed integer overflow. (check-in: e65907e0 user: dan tags: trunk)
12:57
Add a new comment to debugging output routine sqlite3WhereLoopPrint() to remind us of what the various fields of the debug output mean. No changes to code. (check-in: da5f34fd user: drh tags: trunk)
2023-12-21
18:08
Add internal core-developer-only documentation of the JSONB format. (check-in: 4d304788 user: drh tags: trunk)
2023-12-20
19:33
Fix SQLITE_ENABLE_SETLK_TIMEOUT assert() statements in os_unix.c to avoid reading past the end of the unixShmNode.aMutex[] array. (check-in: 029a05cd user: dan tags: trunk)
11:34
Avoid harmless integer overflow in pager status statistics gathering. Response to forum post 7f4cdf23f9. (check-in: 206d8c65 user: drh tags: trunk)
2023-12-19
21:39
In JSON - minor code cleanup and refactoring with a small size reduction and performance increase. (check-in: 215fabda user: drh tags: trunk)
15:51
Remove redundant conditional from sqlite3ExprCanBeNull(). (check-in: 257f96a2 user: drh tags: trunk)
15:10
On second thought, we don't really need sqlite_dbdata accessible to the CLI. (check-in: 36fe6a61 user: drh tags: trunk)
15:06
Fix harmless compiler warning in the randomjson.c extension. (check-in: debe7060 user: drh tags: trunk)
14:54
More precise computation of the size of data structures in the query planner. Response to Forum post 7d8685d49d. (check-in: 0c8d88e4 user: drh tags: trunk)
14:53
Add ALWAYS() and NEVER() on branches made unreachable by recent changes. (check-in: c50e6c2a user: drh tags: trunk)
13:45
Ignore COLLATE operators when determining whether the result of a subexpression should be shallow-copied or deep-copied. (check-in: 34ae36a4 user: drh tags: trunk)
13:00
Test case for the previous check-in. (check-in: df5a07e1 user: drh tags: trunk)
13:00
When unable to resolve an identifier, change the Expr node into TK_NULL rather than TK_COLUMN, to prevent any downstream misuse of the non-existent column. (check-in: 8f770d14 user: drh tags: branch-3.44)
12:49
When unable to resolve an identifier, change the Expr node into TK_NULL rather than TK_COLUMN, to prevent any downstream misuse of the non-existent column. dbsqlfuzz 71869261db80a95e4733afa10ff5724bf3c78592. (check-in: d2e6117e user: drh tags: trunk)
12:23
Always make the sqlite_dbdata virtual table available in the CLI. (check-in: e5fd3b32 user: drh tags: trunk)
11:57
Extra ALWAYS() macros to verify state in the sqlite3ExprCanBeNull() routine. (check-in: be19b84c user: drh tags: trunk)
00:07
Remove a stray comment in the JSON code. (check-in: 6618bdf0 user: drh tags: trunk)
2023-12-18
19:18
New JSON invariant test cases. (check-in: a6a1367b user: drh tags: trunk)
18:50
Add NEVER() to an unfalsifiable branch. (check-in: 9a0c67db user: drh tags: trunk)
18:31
Fix JSON to JSONB translation so that it deals correctly with Infinity and NaN. (check-in: 178cb84f user: drh tags: trunk)
15:53
Ensure that the insert/delete size delta on JSONB objects in the JSON cache are always set to zero. (check-in: 4b458166 user: drh tags: trunk)
14:24
Add randomjson.c to testfixture. Use it for a new set of invariant tests against JSON functions. (check-in: f1c04060 user: drh tags: trunk)
14:16
Ensure that all object labels for individual objects generated by randomjson.c are unique. (check-in: 29c46aca user: drh tags: trunk)
13:51
Bug fix in the randomjson.c extension. (check-in: 1f3a33df user: drh tags: trunk)
12:18
Enhancements to ext/misc/randomjson.c. (check-in: a4e6d1f8 user: drh tags: trunk)
2023-12-17
20:41
Enhancements to the "randomjson.c" extension. Automatically load that extension into fuzzcheck. (check-in: 70620405 user: drh tags: trunk)
2023-12-16
15:48
Enable SQLITE_STRICT_SUBTYPE for default builds of the shell, fuzzcheck, and testfixture. (check-in: 5a0c517e user: drh tags: trunk)
10:50
New test case based on Chromium bug report 1511689. (check-in: 2c7ef4b4 user: drh tags: trunk)
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)
20:13
In the count-of-view optimization, deferring freeing obsolete parts of the parse tree, on the off-chance that some other part of the code might be holding a pointer to those parts. (check-in: da442578 user: drh tags: trunk)
19:26
Avoid expiring prepared statements in the middle of an integrity-check. (check-in: 88beb484 user: dan tags: trunk)
16:28
Add mention of --buildonly and --dryrun to the testrunner.tcl usage screen. (check-in: 23b92d91 user: drh tags: trunk)
15:22
Fix a new JSON test case so that it works even if SQLITE_OMIT_VIRTUALTABLE is defined. (check-in: b995aae5 user: drh tags: trunk)
15:17
Do not run test script fts5origintest4.test with either "memsubsys1" or "mmap" permutations. (check-in: 05a63d96 user: dan tags: trunk)
14:33
Avoid running the "no_mutex_try" tests with SQLITE_ENABLE_SETLK_TIMEOUT builds as part of the release test. (check-in: 6b4e1344 user: dan tags: trunk)
13:38
Correct --enable-sab flag in ext/wasm/GNUmakefile to fix a silent alhttpd args-parsing error. (check-in: 7b9b757d user: stephan tags: trunk)
2023-12-14
22:01
Use SQLITE_STRICT_SUBTYPE=1 by default for the JNI and WASM builds unless they're explicitly built with SQLITE_STRICT_SUBTYPE=0. (check-in: 99021135 user: stephan tags: trunk)
16:34
Add assert()s to FTS5 to fix static analyzer warnings. (check-in: 27d4a89a user: drh tags: trunk)
15:38
Fix harmless compiler warnings in JSON and FTS5. (check-in: 90135efc user: drh tags: trunk)
15:31
Improve the error message returned by an fts5 'rebuild' command on an external content table if there is a problem with the content table or view. (check-in: 0fbf4b8a user: dan tags: trunk)
15:11
Enhance aggregate order-by so that it transmits subtype information through the sorter. Fix for the deficiency reported by forum post 87347ad2fb5a8f76. (check-in: d302a389 user: drh tags: trunk)
13:58
Pass subtype information through the aggregate ORDER BY sorter for aggregate functions that use subtype information. (Closed-Leaf check-in: 3536f403 user: drh tags: agg-orderby-subtype)
2023-12-13
20:37
In CLI, fix .read inability to open 2GB+ files on WIN32. (check-in: 56c80a62 user: larrybr tags: trunk)
16:50
Avoid invoking sqlite3ExprColUsage() on an unresolve column reference. (check-in: 6e0e2ee7 user: drh tags: branch-3.44)
16:45
Avoid invoking sqlite3ExprColUsage() on an unresolve column reference. dbsqlfuzz fc34aa62df4de103705d11b807074687ffafbda5. (check-in: ac9314c0 user: drh tags: trunk)
15:27
Bug fix in the JSONB validator. dbsqlfuzz ac6fa521a08609a642198e7decf64180e750b3c4 (check-in: 3e940a6a user: drh tags: trunk)
14:31
Improvements to UTF8 handling, and especially the handling of invalid UTF8, in the JSON routines. (check-in: 1b229c11 user: drh tags: trunk)
2023-12-12
18:38
Fix the JSON object label comparison object so that it works correctly even if the label ends with escaped whitespace. (check-in: 4d5353ca user: drh tags: trunk)
17:55
Worker1 Promiser API: when multiple db connections are active then use the requested connection instead of always the first-opened connection. Bug reported in forum post 894c330e7f23b177. (check-in: 3874e5a3 user: stephan tags: branch-3.44)
17:52
Worker1 Promiser API: when multiple db connections are active then use the requested connection instead of always the first-opened connection. Bug reported in forum post 894c330e7f23b177. (check-in: 194276e1 user: stephan tags: trunk)
17:31
The json_valid(*,8) function does a much better check of the validity of the JSONB input. The json_error_position() function returns an approximate byte offset to the point of the first detected error in the JSONB. (check-in: 840efb33 user: drh tags: trunk)
17:13
Add NEVER to two unreachable branches in JSON. (Closed-Leaf check-in: c96ebb08 user: drh tags: jsonb-valid)
14:33
Improvements to JSONB validation - catch more cases where the input does not conform to spec. (check-in: be1864ea user: drh tags: jsonb-valid)
02:31
Validity checking of text nodes in JSONB. (check-in: fa516068 user: drh tags: jsonb-valid)
2023-12-11
21:00
The json_error_position() function now reports an approximate byte offset to the problem in a JSONB if there is a problem. (check-in: 80d5d94d user: drh tags: jsonb-valid)
20:44
json_error_position() now uses jsonValidityCheck() to find the approximate position of an error in a JSONB blob. (check-in: c3d60cf7 user: drh tags: jsonb-valid)
20:19
json_valid(*,8) allows minus-signs on hexadecimal literals. (check-in: c0d7f452 user: drh tags: jsonb-valid)
19:21
Activate JSON_SELFCHECK within fuzzcheck. (check-in: 4d14e733 user: drh tags: jsonb-valid)
19:00
Rename the new test-control to SQLITE_TESTCTRL_JSON_SELFCHECK. Make it so that the current value of the setting can be interrogated. (check-in: 7aff1d9a user: drh tags: jsonb-valid)
17:03
Add SQLITE_TESTCTRL_VALIDATE_JSONB, which if enabled under SQLITE_DEBUG causes cross-checking of generate JSONB. (check-in: b410a4db user: drh tags: jsonb-valid)
14:01
Work toward enhanced functionality for json_valid() with deep checking of the JSONB (second argument has bit 0x08). (check-in: c370d573 user: drh tags: jsonb-valid)
13:48
Different fix for the fts5 COMMIT-following-OOM problem first fixed by [fba3129d]. This one does not cause problems if an fts5 table is renamed and then dropped within the same transaction. (check-in: 67da596d user: dan tags: branch-3.44)
02:39
Fix a potential use of uninitialized value in json_valid() with 2nd argument of 8. (check-in: fa102036 user: drh tags: trunk)
2023-12-08
16:56
Fix a harmless UBSAN warning. (check-in: 1503cba6 user: drh tags: trunk)
14:54
Fix a potential problem RCStr access on a JsonString object that is not really and RCStr. Fuzzer/UBSAN find. (check-in: d2f2174c user: drh tags: trunk)
12:58
Fix a harmless compiler warning about "confusing indentation". (check-in: 34f9e9a8 user: drh tags: trunk)
12:04
Avoid dropping an error code in new fts5 tokendata=1 code. (check-in: a66596e3 user: dan tags: trunk)
2023-12-07
21:09
Ensure an fts5vocab table never uses a special tokendata=1 merge cursor. (check-in: 1e26510e user: dan tags: trunk)
20:46
Avoid an assert() failure when querying an fts5vocab table that accesses a tokendata=1 fts5 table with corrupt %_data records. (check-in: 386ba9e2 user: dan tags: trunk)
19:08
Fix a null-pointer dereference in fts5 tokendata=1 code. (check-in: d69fa8f0 user: dan tags: trunk)
18:41
Fix a problem with handling OOM and other errors in fts5 when querying tokendata=1 tables. (check-in: bc911ab5 user: dan tags: trunk)
14:41
Different fix for the fts5 COMMIT-following-OOM problem first fixed by [fba3129d]. This one does not cause problems if an fts5 table is renamed and then dropped within the same transaction. (check-in: d8c6b246 user: dan tags: trunk)
14:09
Rework the jsonEachPathLength() routine in json_tree() so that it is less susceptible to problems due to goofy object labels. (check-in: 858b76a0 user: drh tags: trunk)
13:14
Add ALWAYS() on branches added in [ec0ae4030968c782] that are always true. (check-in: 451cef86 user: drh tags: trunk)
12:55
Improved detection of corrupt JSONB in the jsonReturnFromBlob() function. (check-in: b014736c user: drh tags: trunk)
2023-12-06
22:22
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: 5c36819c user: drh tags: reuse-schema)
21:18
Merge the latest trunk changes into the bedrock branch. (check-in: c2e53000 user: drh tags: bedrock)
21:11
Merge the latest trunk enhancements into the wal2 branch. (check-in: 457724e7 user: drh tags: wal2)
21:05
Merge the latest trunk enhancements into the begin-concurrent branch. (check-in: b1c58f48 user: drh tags: begin-concurrent)
18:34
Fix compiler warning about shadowed variable in fts5_index.c. (check-in: ee70e4c1 user: dan tags: trunk)
18:25
Work around LLVM's newfound hatred of function pointer casts. Forum post 1a7d257346636292. (check-in: ec0ae403 user: drh tags: trunk)
18:10
Update documentation comments in fts5.h. (check-in: 38c50e22 user: dan tags: trunk)
17:50
Do correct comparisons between object labels in JSON even when the two labels contain different JSON escapes. (check-in: bda2e30c user: drh tags: trunk)
17:39
Correctly handle 8-byte sizes in the JSONB format. Forum post 283daf08e91183fc. (check-in: 73d390f3 user: drh tags: trunk)
16:57
Fix the routine that determines the json_tree.path value for the first row so that it correctly takes into account escape sequences in the path argument. (Closed-Leaf check-in: b9243ee8 user: drh tags: json-label-compare)
16:27
In CLI, move -interactive flag handling back to arg-loop pass 2. (check-in: 63cb05a8 user: larrybr tags: trunk)
15:50
Test cases for object label matching with escape sequences. (check-in: c6f2aa38 user: drh tags: json-label-compare)
15:35
The rule for the RHS of the ->> and -> operators when the RHS does not begin with $ is that it must be (1) all digits, or (2) all alphanumerics, or (3) contained within [..] or else it will become a quoted label. (check-in: 0e059a54 user: drh tags: json-label-compare)
14:50
Increased rigor in comparisons between object labels in JSON. (check-in: 2bc86d14 user: drh tags: json-label-compare)
14:36
Add the tokendata=1 option and related APIs to fts5. (check-in: a76a636b user: dan tags: trunk)
14:30
Merge trunk changes into this branch. (Closed-Leaf check-in: 8f46eace user: dan tags: fts5-token-data)
12:30
README.md typo fix reported in the forum and update all links from http: to https:. (check-in: 5c48acdb user: stephan tags: trunk)
2023-12-05
19:45
Rework the JSON functions so that they use the JSONB format internally. The original JsonNode parse tree design is removed. All JSON functions that accept text JSON also accept JSONB. New functions generate JSONB. (check-in: 7f0c79b9 user: drh tags: trunk)
19:24
Use extra assert() statement to silence harmless static analyzer warnings. (Closed-Leaf check-in: 174c2b2e user: drh tags: jsonb)
18:36
Further tests for the new code on this branch. (check-in: 59d008b6 user: dan tags: fts5-token-data)
18:28
Miscellaneous comment cleanup and typo fixes. (check-in: 59446dc0 user: drh tags: jsonb)
12:52
Use strspn() to accelerate whitespace bypass in the JSON parser. (check-in: 843197df user: drh tags: jsonb)
12:22
Small performance gain by unwinding the string literal delimiter search loop in the JSON parser by one more level. (check-in: 4c587fea user: drh tags: jsonb)
12:20
Clean up the JSONB performance test script. (check-in: 90530107 user: drh tags: jsonb)
01:44
Use an assert() to fix a harmless static analyzer warning. (check-in: a249ca65 user: drh tags: jsonb)
00:17
Fix OOM and corrupt JSONB handling in json_patch(). (check-in: 1910feb0 user: drh tags: jsonb)
2023-12-04
23:12
Rename the internal routine jsonMergePatchBlob() to just jsonMergePatch(). (check-in: ebf667b6 user: drh tags: jsonb)
19:48
Add further tests for xInstToken(). (check-in: 8582707f user: dan tags: fts5-token-data)
19:32
Fixes to error handling in json_array_length(). (check-in: aa85df2d user: drh tags: jsonb)
19:14
Do not make the input JSONB editable in json_remove() if there are no PATH argument. (check-in: 66594544 user: drh tags: jsonb)
18:53
Fix errors in rendering JSON5 escape sequences embedded in JSONB. (check-in: f1a51ae3 user: drh tags: jsonb)
18:45
Fixes for xInstToken() with tokendata=0 tables. And with prefix queries. (check-in: 78fbb715 user: dan tags: fts5-token-data)
17:58
Fix memory leak in new code on this branch. (check-in: ebc160b9 user: dan tags: fts5-token-data)
17:45
Fix a problem with the xInstCount() API and "ORDER BY rank" queries. (check-in: 317a5056 user: dan tags: fts5-token-data)
17:40
Continuing simplifications and code cleanup. (check-in: ddf92b50 user: drh tags: jsonb)
17:05
Fix bug in xInstToken() causing the wrong token to be returned. (check-in: da78d07e user: dan tags: fts5-token-data)
16:01
Remove reachable ALWAYS and NEVER macros. (check-in: f601de3e user: drh tags: jsonb)
15:22
Two new NEVER macros. (check-in: 52632c92 user: drh tags: jsonb)
15:08
Add tests for using tokendata=1 and contentless_delete=1 together. (check-in: a2506b8c user: dan tags: fts5-token-data)
13:12
Repair issues and inefficiencies found during testing. (check-in: ae973cb1 user: drh tags: jsonb)
01:14
Better pre-scan size estimations for objects in the JSON parser resulting in fewer reallocations and memmove operations. (check-in: 526b27f9 user: drh tags: jsonb)
00:31
Back off on the use of strlen() for situations where sqlite3_value_bytes() will work as well, for performance. (check-in: 79fb54fb user: drh tags: jsonb)
2023-12-03
23:38
Remove dead code. Improved reporting of errors in JSON inputs. (check-in: 2eaa738e user: drh tags: jsonb)
23:30
Avoid problems when the path argument to json_tree() contains embedded U+0000 characters. (check-in: 9f055091 user: drh tags: jsonb)
20:11
Ensure that OOM conditions in the generation of the "bad JSON path" error message result in an SQLITE_NOMEM error. (check-in: aa0e02b5 user: drh tags: jsonb)
19:59
Enable incorrect JSONB to be rendered into text without hitting an assertion for a bad whitespace escape in a string. (check-in: 4d6a9a21 user: drh tags: jsonb)
19:32
Partial hand-merge of shell.c.in (not buildable) (Leaf check-in: 62e90c9b user: larrybr tags: cli_extension_wip)
11:54
Do not let bad hexadecimal digits in malformed JSONB cause an assertion fault. (check-in: 8dec1ba1 user: drh tags: jsonb)
00:51
Minor code changes for consistency and to simplify testing. (check-in: df272bd8 user: drh tags: jsonb)
2023-12-02
21:39
Implement strict JSONB checking in the json_valid() function. (check-in: 0f26d388 user: drh tags: jsonb)
20:37
Fix harmless compiler warnings reported by MSVC. (check-in: 419652c0 user: drh tags: jsonb)
20:35
Fix various compiler warnings and other problems with the new code on this branch. (check-in: 3a623cfa user: dan tags: fts5-token-data)
20:25
Code and comment cleanup. Everything should work the same. (check-in: c640754d user: drh tags: jsonb)
18:17
Fix harmless compiler warnings. Refactor some identifier names for clearer presentation. (check-in: 7e394150 user: drh tags: jsonb)
18:14
When tokendata=1 queries require multiple segment-cursors, allow those cursors to share a single array of in-memory tombstone pages. (check-in: e0175d07 user: dan tags: fts5-token-data)
18:04
Take extra care to ensure that JSONB values that are in cache are actually owned by the JSON subsystem, and that ownership of such values is not handed back to the bytecode engine. (check-in: 13045340 user: drh tags: jsonb)
17:32
Ensure that tokendata=1 queries avoid loading large doclists for queries like "common AND uncommon", just as tokendata=0 queries do. (check-in: 7bda09ab user: dan tags: fts5-token-data)
16:11
Protect a memcpy() against OOM conditions. (check-in: 26144d1c user: drh tags: jsonb)
15:59
Do not allow a JsonParse object to be considered "editable" after an OOM. (check-in: c6bacf57 user: drh tags: jsonb)
15:06
Fix potential unsigned integer underflow in jsonAppendString(). (check-in: d2fba2cb user: drh tags: jsonb)
14:55
Minor fix to the header comment on jsonXlateTextToBlob(). (check-in: c3677ba4 user: drh tags: jsonb)
14:16
Performance optimization in jsonAppendString(). (check-in: fdf00e96 user: drh tags: jsonb)
13:36
Simplification and optimization of the JSON parser. (check-in: f5ec9485 user: drh tags: jsonb)
12:23
Remove a NEVER that can be true if a virtual table column is declared to have a DEFAULT. See forum post 3d4de8917627d058. (check-in: 8abc2cca user: drh tags: trunk)
01:38
Unroll a loop in the parser for a performance increase. (check-in: a6dc29e4 user: drh tags: jsonb)
01:06
Fix harmless compiler warnings and enhance performance the parser. (check-in: 285633da user: drh tags: jsonb)
2023-12-01
22:01
Performance optimization in the JSON parser. (check-in: 68d191f4 user: drh tags: jsonb)
20:37
Remove old code for tokendata=1 queries. (check-in: b0a489e8 user: dan tags: fts5-token-data)
20:10
Merge latest trunk with this branch. (check-in: 82589674 user: dan tags: fts5-token-data)
20:09
Different approach to querying a tokendata=1 table. Saves cpu and memory. (check-in: c523f408 user: dan tags: fts5-token-data)
18:49
JSON cache is now more effective. (check-in: 443a3f3a user: drh tags: jsonb)
18:46
Fix up the JSON cache to work better. (Closed-Leaf check-in: 1fdbc395 user: drh tags: jsonb-cache)
13:28
Cache is working better, but does not preserve the hasJson5 flag. (check-in: a12add7a user: drh tags: jsonb-cache)
12:57
First attempt to get the JSON text-to-binary cache working. All test cases pass, but the cache seems not to help much. (check-in: 25ed295f user: drh tags: jsonb)
2023-11-30
23:36
Remove all trace of JsonNode from the JSON implementation. The JSONB format is used as the internal binary encoding for searching and editing. (check-in: 11ebb5f7 user: drh tags: jsonb)
20:57
Convert json_valid() over to using only JSONB as its internal format. (check-in: 7b5756fa user: drh tags: jsonb)
20:34
Add a basic batch-mode SQL runner for the SAH Pool VFS, for use in comparing it against WebSQL. Bring the WebSQL batch runner up to date, noting that it cannot run without addition of an "origin trial" activation key from Google because that's now the only way to enable WebSQL in Chrome (that part is not checked in because that key is private). Minor code-adjacent cleanups. (check-in: 883990e7 user: stephan tags: trunk)
19:29
Convert json_type() to use JSONB internally. (check-in: 83074835 user: drh tags: jsonb)
19:11
Convert json_insert(), json_replace(), and json_set() over to using only JSONB internally. (check-in: 4e2083e8 user: drh tags: jsonb)
19:06
Enhance json_set() and json_insert() so that they create missing substructure. (Closed-Leaf check-in: cc7a641a user: drh tags: jsonb-insert)
16:17
Simplification of the new JSON insert/set test cases. (check-in: 04c0d564 user: drh tags: jsonb-insert)
16:16
New JSON test cases showing insert or set with missing substructure. (check-in: 6802b645 user: drh tags: trunk)
12:04
New test cases for insert/set/replace with paths that indicate substructure that does not yet exist. (check-in: 146c717c user: drh tags: jsonb-insert)
10:00
Update some OPFS-related help text in WASM tests. Minor cleanups in speedtest1-worker.js. (check-in: 263f6d3a user: stephan tags: trunk)
00:52
Convert json_insert(), json_replace(), json_set() to use JSONB internally. Mostly working, but some corner cases are still not quite right. (check-in: 99c8f6bd user: drh tags: jsonb-insert)
2023-11-29
20:06
Convert the json_error_position() routine to use only JSONB internally. (check-in: e7a8ba35 user: drh tags: jsonb)
17:36
The json_patch() function now operates exclusively on JSONB. This patch also includes improvements to JSONB debug printing routines. (check-in: fee19d00 user: drh tags: jsonb)
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:22
Fix signed integer overflow in fts5. (check-in: 60e46c7e user: dan tags: fts5-token-data)
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)
13:47
In the recovery extension, if a payload size is unreasonably large, it is probably corrupt, so truncate it. (check-in: 988c3179 user: drh tags: trunk)
12:18
Merge all the latest trunk enhancements into the jsonb branch. (check-in: 1a59fcab user: drh tags: jsonb)
02:53
Increase the patch level to 3.44.3. (check-in: bb4d35e2 user: drh tags: branch-3.44)
02:50
Reference count the Table passed into the OP_VCheck opcode. (check-in: 79e6496b user: drh tags: branch-3.44)
02:45
The assertion change at check-in [7946c79567b0ccd3] is insufficient to fix the problem of a Table object being deleted out from under the OP_VCheck opcode. We need to reference count the Table, which is accomplished here. (check-in: cad269d5 user: drh tags: trunk)
01:38
Convert the json_array_length() function to use JSONB instead of JsonNodes. (check-in: 5ab79073 user: drh tags: jsonb)
2023-11-28
23:26
Fix all known problems with JSONB json_extract(). (check-in: d5f48c57 user: drh tags: jsonb)
23:18
Do not set the J subtype when the output is JSONB. (Closed-Leaf check-in: 4f106b64 user: drh tags: jsonb-extract)
20:33
Preserve flexibility in the format of the RHS of -> and ->> operators found in legacy. (check-in: 6231ec43 user: drh tags: jsonb-extract)
20:25
Attempt to get json_extract() working with pure JSONB only, and without the use of JsonNode. Mostly working, but there are some differences from legacy in corner cases. (check-in: 8c324af1 user: drh tags: jsonb-extract)
19:43
Merge latest trunk updates into this branch. (check-in: 554fc13f user: dan tags: fts5-token-data)
18:16
The json_remove() function now uses only JSONB, never JsonNodes, internally. (check-in: b69786e7 user: drh tags: jsonb)
17:47
Update this branch with latest changes from trunk. (check-in: bead0d8f user: dan tags: begin-concurrent)
17:32
Update this branch with latest changes from trunk. (check-in: 7f1b61a3 user: dan tags: wal2)
17:12
In SQLITE_ENABLE_SETLK_TIMEOUT builds, use blocking locks in place of sleep() calls when opening a read-transaction. (check-in: 4c055b7a user: dan tags: trunk)
15:29
Handle an SQLITE_BUSY_TIMEOUT error if one occurs while attempting a shared lock on a read-lock slot. (Closed-Leaf check-in: 5fbf3906 user: dan tags: blocking-dms-lock)
13:38
Activate the ability of json_patch() to work on JSONB. (check-in: 11aba347 user: drh tags: jsonb)
13:35
All legacy tests are passing. (Closed-Leaf check-in: 2c436806 user: drh tags: jsonb-patch)
12:28
The json_patch() code for JSONB compiles and works sometimes, but there are still issues. Incremental check-in. (check-in: e0099464 user: drh tags: jsonb-patch)
00:27
More aggressive use of jsonBlobEdit(). Improvements to the MergePatch implementation sketch. (check-in: fbca9570 user: drh tags: jsonb)
2023-11-27
23:46
Add untested (#ifdefed-out) code for the MergePatch algorithm against JSONB. Add (and test) the jsonBlobEdit() routine that is needed by the new MergePatch. (check-in: 4d353387 user: drh tags: jsonb)
20:37
Have SQLITE_ENABLE_SETLK_TIMEOUT builds block when locking a read-lock slot. (check-in: f797baf4 user: dan tags: blocking-dms-lock)
19:22
In SQLITE_ENABLE_SETLK_TIMEOUT builds, use blocking locks in place of sleep() when opening a read-transaction. (check-in: a51ef399 user: dan tags: blocking-dms-lock)
17:13
Enhance the (SQLITE_DEBUG-only) json_parse() routine so that it shows a decoding of JSONB when given a BLOB argument. (check-in: af267868 user: drh tags: jsonb)
15:57
Give the json_valid() function an optional second argument that determines what is meant by "valid". (check-in: a4e19ad4 user: drh tags: jsonb)
15:08
Pickup stray oput?() calls that should have gone to stdout. Simplify console line reading, sacrificing speed (which does not matter then) for code size. (Leaf check-in: 8e20645c user: larrybr tags: console-io-lib)
12:36
Convert the json_tree() and json_each() virtual tables over to use JSONB has their internal representation. (check-in: ec18caa3 user: drh tags: jsonb)
12:30
All tests passing. (Closed-Leaf check-in: b5a5660c user: drh tags: jsonb-tree)
2023-11-26
00:56
Fix corner-case error conditions. (check-in: ec23d34a user: drh tags: jsonb-tree)
00:48
Same results as the legacy JsonNode implementation on a small set of test cases. (check-in: c3da4b07 user: drh tags: jsonb-tree)
2023-11-25
23:00
Remove unused elements from the json_tree() cursor. (check-in: 914a5011 user: drh tags: jsonb-tree)
20:59
Remove the vestigal JsonNode logic from json_tree() and json_each(). (check-in: 66c2ab9e user: drh tags: jsonb-tree)
19:28
Almost working. Path is still not exactly right when Root is defined on json_tree(). (check-in: 92258246 user: drh tags: jsonb-tree)
18:11
Generate the fullkey and path columns of json_tree(). (check-in: ffaa468a user: drh tags: jsonb-tree)
13:40
Handle the path argument to json_tree() and json_each(). (check-in: fded8884 user: drh tags: jsonb-tree)
2023-11-24
21:57
Continuing work on json_tree() against a JSONB. (check-in: 3df891cb user: drh tags: jsonb-tree)
20:14
Add the --buildonly and --dryrun options to testrunner.tcl. (check-in: a0c87ae9 user: dan tags: trunk)
18:44
Incremental progress toward getting json_each() and json_tree() to work directly off of a JSONB blob. (check-in: f8cab41b user: drh tags: jsonb-tree)
18:33
Allow a pattern to filter test scripts to be appended to testrunner.tcl "mdevtest", "sdevtest" and "release" commands. e.g. "tclsh test/testrunner.tcl sdevtest fts5%". (check-in: f8ea0b58 user: dan tags: trunk)
16:17
Get all CLI print calls which went to stdout in 3.44.0 to do so again. (check-in: d65d9579 user: larrybr tags: console-io-lib)
15:58
Get all CLI print calls which went to stdout in 3.44.0 to continue going to stdout. (check-in: e9951ede user: larrybr tags: trunk)
14:25
Fix jsonParseReset() to properly clear the JsonParse.aBlob element. (check-in: ab2644aa user: drh tags: jsonb)
14:03
Omit precompiled binaries from the source tree. (check-in: 7dbc2f49 user: drh tags: jsonb)
14:02
Omit precompiled binaries from the source tree. (check-in: 3a8a75bf user: drh tags: console-io-lib)
14:01
Omit the precompiled binary from the source tree. (check-in: 4ff103d2 user: drh tags: trunk)
13:41
Merge the latest trunk enhancements and fixes into the jsonb branch. (check-in: a838ebcb user: drh tags: jsonb)
13:30
CLI .output/.once to not redirect ".timer on" results. (check-in: 626c4353 user: larrybr tags: console-io-lib)
13:26
CLI .output/.once to not redirect ".timer on" results. (check-in: ce766ed5 user: larrybr tags: trunk)
12:48
Merge 3.44.2 changes into the reuse-schema-3.44 sub-branch. (Leaf check-in: 2b9d5ff7 user: drh tags: reuse-schema-3.44)
12:42
Merge 3.44.2 changes into the bedrock-3.44 sub-branch. (Leaf check-in: 1d9dfad0 user: drh tags: bedrock-3.44)
12:38
Merge 3.44.2 changes into the wal2-3.44 sub-branch. (Leaf check-in: 0118e8c9 user: drh tags: wal2-3.44)
12:33
Merge 3.44.2 changes into the begin-concurrent-3.44 sub-branch. (Leaf check-in: 6d97426f user: drh tags: begin-concurrent-3.44)
11:41
Version 3.44.2 (check-in: ebead0e7 user: drh tags: release, branch-3.44, version-3.44.2)
2023-11-23
12:12
Another assertion fault fix, similar to [a9443dbfbe25e588]. (check-in: f796da62 user: drh tags: branch-3.44)
11:59
Fix a incomplete assert() statement in sqlite3SubqueryColumnTypes(). (Closed-Leaf check-in: 844e05ed user: drh tags: mistake)
11:45
Fix harmless compiler warnings in debugging code. (check-in: db40272c user: drh tags: branch-3.44)
11:29
Fix an fts5 problem that could occur when mixing regular and secure delete operations on a single table. (check-in: 25fb5a54 user: drh tags: branch-3.44)
11:21
Increase the version number to 3.44.2. (check-in: 73d3cb79 user: drh tags: branch-3.44)
11:18
Fix an fts5 problem that could occur when mixing regular and secure delete operations on a single table. (check-in: 8eb3f400 user: dan tags: trunk)
07:10
Fix output redirect bug reported in the forum. (check-in: 60bdd5c3 user: larrybr tags: console-io-lib)
07:08
Fix output redirect bug reported in the forum. (check-in: ce542fee user: larrybr tags: trunk)
07:06
Fix output redirect bug reported in the forum. (check-in: 2ab256bc user: larrybr tags: branch-3.44)
2023-11-22
22:59
Minor doc fix in src/betreeInt.h, prompted by an email report. No code changes. (check-in: 30d49aae user: stephan tags: trunk)
21:24
For CLI build with unused function warnings on, #ifdef out a console I/O function, fPutbUtf8(). (check-in: da36f90d user: larrybr tags: trunk)
21:15
Add documentation for new fts5 auxiliary function APIs. (check-in: 9be8969e user: dan tags: fts5-token-data)
20:02
Defer building xInstToken() hash-table until it is to be used. (check-in: 9b005085 user: dan tags: fts5-token-data)
19:02
Fix tokendata=1 and xInstToken() APIs for detail=none and detail=column tables. (check-in: 37b271c1 user: dan tags: fts5-token-data)
17:13
Correct the URL for loading sqlite3-worker1-bundler-friendly.mjs from sqlite3-worker1-promiser-bundler-friendly.js, so that the promiser can be used in bundler-using environments. Problem reported via email. (check-in: b1128838 user: stephan tags: branch-3.44)
17:11
Correct the URL for loading sqlite3-worker1-bundler-friendly.mjs from sqlite3-worker1-promiser-bundler-friendly.js, so that the promiser can be used in bundler-using environments. Problem reported via email. (check-in: 753a7521 user: stephan tags: trunk)
16:32
Merge the 3.44.1 patches into a new sub-branch of reuse-schema. (check-in: 24fc47af user: drh tags: reuse-schema-3.44)
16:15
Merge the version 3.44.1 patch into a new sub-branch of bedrock. (check-in: 84f42157 user: drh tags: bedrock-3.44)
15:34
Merge the 3.44.1 patches into a sub-branch of wal2. (check-in: 2672572c user: drh tags: wal2-3.44)
15:29
Merge the 3.44.1 patches into a new sub-branch of begin-concurrent. (check-in: 7a1a114b user: drh tags: begin-concurrent-3.44)
14:18
Version 3.44.1 (check-in: d295f48e user: drh tags: release, branch-3.44, version-3.44.1)
2023-11-21
22:36
Inserts invalid JSONB should return "malformed JSON", not a json path error. (check-in: 306ee66f user: drh tags: jsonb)
20:13
Direct editing of JSONB using json_insert() and json_set(). (check-in: fffb7a95 user: drh tags: jsonb)
19:05
Correct blob-to-text rendering in some corner cases. (check-in: 7822e0e5 user: drh tags: jsonb)
18:46
Pickup minor stylistic changes related to console I/O and, for Windows builds, get fact of UTF-16 translation into the sign-on banner. (a straight cherry-pick) (check-in: d7a59e79 user: larrybr tags: branch-3.44)
18:37
Pickup minor changes related to console I/O. (check-in: 24774e77 user: larrybr tags: console-io-lib)
18:26
Merge console I/O changes for Windows CLI. (check-in: 935a8a8e user: larrybr tags: trunk)
18:23
Fix the translation of JSON5 numeric values from BLOB into text. (check-in: 40c4fb44 user: drh tags: jsonb)
17:54
Merge all recent trunk fixes and enhancements into the jsonb branch. (check-in: 6d78d50e user: drh tags: jsonb)
17:51
Make edits directly to the JSONB BLOB when the input to json_replace() is a JSONB. (check-in: d69c6ace user: drh tags: jsonb)
15:55
Sync w/trunk as pre-merge-to-trunk sanity check. (check-in: 448d6a11 user: larrybr tags: console-io-lib)
12:02
Fix the trace3-4.4 test to be more rebust against timing quirks. (check-in: 8936daa0 user: drh tags: trunk)
2023-11-20
15:58
Back out an incorrect change to the sqlite3ExprCompareSkip() function from long ago. (check-in: 89658abb user: drh tags: branch-3.44)
15:54
Back out an incorrect change to the sqlite3ExprCompareSkip() function that was added way back on 2019-08-22 for [44578865fa7baf97|check-in 44578865fa7ba] and which was only today discovered to be incorrect by forum post 45ec3d9788. (check-in: f5b3eb0f user: drh tags: trunk)
13:59
Arrange to not compile unused console I/O function. (check-in: 184a0cd2 user: larrybr tags: branch-3.44)
13:12
Convert an assert in OP_VCheck into a branch that aborts the opcode, as this can happen on some very obscure conditions, as discovered by dbsqlfuzz. (check-in: 0d5f6871 user: drh tags: branch-3.44)
13:06
Convert an assert in OP_VCheck into a branch that aborts the opcode, as this can happen on some very obscure conditions, as discovered by dbsqlfuzz. Test case in TH3. (check-in: 7946c795 user: drh tags: trunk)
12:00
Cherry pick additional assert() fixes from trunk into the branch-3.44 branch. (check-in: 6d8a8b70 user: drh tags: branch-3.44)
11:50
Fix an assert() in fts5 that could be true following an OOM or IO error in contentless-delete mode. (check-in: 80a0bd7a user: drh tags: branch-3.44)
11:40
Fix an assert() in fts5 that could be true following an OOM or IO error in contentless-delete mode. (check-in: 3fe89238 user: dan tags: trunk)
00:21
Cherrypick shell1.test fix. (check-in: 91c888ed user: larrybr tags: trunk)
00:20
Cherrypick shell1.test fix. (check-in: 39e30c5f user: larrybr tags: console-io-lib)
2023-11-19
17:33
Fix test 5.0 in shell1.test for Windows. (A double-quote wrapped single-quote needs no further treatment to be recognized as a single single-quote.) (check-in: aaa73400 user: larrybr tags: branch-3.44)
2023-11-18
22:10
Merge changes to do Windows console I/O with UTF-16. (check-in: f782054e user: larrybr tags: branch-3.44)
20:24
Correct conditional compilation issue seen with MSVC in the Win32 mutex subsystem. (check-in: 6c069c5d user: drh tags: branch-3.44)
18:36
Correct conditional compilation issue seen with MSVC in the Win32 mutex subsystem. (check-in: 6f8f4bfe user: mistachkin tags: trunk)
17:20
When ENABLE_SETLK is defined, avoid ever blocking on the lock mutex in os_unix.c when requesting an exclusive lock. (check-in: eb36d475 user: dan tags: trunk)
12:06
Adjust an assert() in fts5WritePoslistData() so that it only applies if there have been no prior errors. dbsqlfuzz 25dca9b2568f67dc78a0e32ff280133fe71994bd. (check-in: 257cdbab user: drh tags: trunk)
11:23
Another assertion fault fix, similar to [a9443dbfbe25e588]. dbsqlfuzz 2d9af4e94aca188e0092900eec711401c5d51687. (check-in: 3afaeac5 user: drh tags: trunk)
2023-11-17
19:01
When SQLITE_ENABLE_SETLK_TIMEOUT is defined, use a separate mutex in os_unix.c for each shm locking slot. (check-in: 64691df9 user: dan tags: trunk)
17:55
Add the new "run-fuzzcheck" target on the autoconf unix makefile. Requires that FUZZDB be set to the name of the fuzz-data database file. (check-in: 8fa3915d user: drh tags: trunk)
17:25
Add an assert() to prove the sqlite3_prepare() always either returns SQLITE_OK or else leaves *ppStmt set to NULL. See forum post 70bb8576c6c084c2. (check-in: feadd402 user: drh tags: trunk)
17:10
When SQLITE_ENABLE_SETLK_TIMEOUT is defined, use a separate mutex in os_unix.c for each shm locking slot. (Closed-Leaf check-in: 4098df96 user: dan tags: unix-setlk-timeout-mutexes)
17:03
Merge the latest trunk enhancements and fixes into the jsonb branch. (check-in: 162f0509 user: drh tags: jsonb)
12:22
Fix harmless compiler warnings in debugging code. (check-in: ce6a7562 user: drh tags: trunk)
11:58
Fix an incorrect assert() associated with ALTER TABLE where an unknown aggregate function contains an ORDER BY clause. dbsqlfuzz e0900262dadd5c78c2226ad6a435c7f0255be2cd. (check-in: a9443dbf user: drh tags: trunk)
2023-11-16
21:11
When querying a tokendata=1 fts5 table, do not use a prefix cursor for the case where the term has only one variant. (check-in: d711c96b user: dan tags: fts5-token-data)
20:50
Cherrypick changes to simplify and make more rational how console I/O package features are selected. (Leaf check-in: b20c9f17 user: larrybr tags: consio-3.44)
18:31
Simplify and make more rational how console I/O package features are selected. (Motivated by Fiddle and other command-line utilities to soon use the package.) No substantive code-execution changes. (check-in: 1cde0587 user: larrybr tags: console-io-lib)
2023-11-15
20:32
Both json_remove() jsonb_remove() work on pure JSONB as long as the input is JSONB. (check-in: 68d55173 user: drh tags: jsonb)
19:21
Some simple test cases for JSONB direct remove. (check-in: 8cb4d2cb user: drh tags: jsonb)
19:19
Changes 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: 79e24ec3 user: dan tags: trunk)
18:55
jsonb_remove() now works without having to use a JsonNode parse, assuming that the input is JSONB. (check-in: 5207679e user: drh tags: jsonb)
18:47
The jsonb_remove() routine now appears to be working. (Closed-Leaf check-in: e76d4813 user: drh tags: jsonb-remove)
16:54
Get Fiddle build to succeed. (It runs, too, but not from changes here.) (check-in: 957ebaa2 user: larrybr tags: consio-3.44)
16:10
Work toward getting jsonb_remove() to work directly on JSONB blobs. (check-in: a79ff8e5 user: drh tags: jsonb-remove)
15:20
Changes to console I/O for Fiddle build, to always defer to C library (as before.) A WIP, pending testing with Fiddle build. (check-in: 45b8061e user: larrybr tags: consio-3.44)
14:09
Improvements to the description of sqlite3_errmsg() and sqlite3_errstr(). (check-in: fe5cc416 user: drh tags: trunk)
13:23
Merge all the latest enhancements and fixes from trunk into the jsonb branch. (check-in: ba91408f user: drh tags: jsonb)
11:45
Add implementation of xInstToken() API. (check-in: a34b26fe user: dan tags: fts5-token-data)
11:31
Fix an exception misuse in test-opfs-vfs.js. (check-in: 9264955e user: stephan tags: trunk)
08:59
JNI: add more wrapper1 Sqlite.Blob tests. (check-in: d63f6e1f user: stephan tags: trunk)
08:29
JNI: clear out the sqlite3_context native pointer after calling UDF callbacks which do not have an argv (as was already done for those which have an argv). Add related tests and code commentary. (check-in: 138f4054 user: stephan tags: trunk)
06:28
JNI doc updates. (check-in: 1b1f36a2 user: stephan tags: trunk)
06:10
JNI: add the @Experimental annotation and mark all java.nio.ByteBuffer-related methods with it. (check-in: 0f4b2231 user: stephan tags: trunk)
05:08
JNI test code cleanups. (check-in: 09142ac1 user: stephan tags: trunk)
04:55
JNI: add CONFIG_LOG and CONFIG_SQLLOG support to wrapper1. Code-adjacent cleanups. (check-in: 83c49b9e user: stephan tags: trunk)
03:02
JNI: apply an internal level of API indirection to avoid having to work with massively-mangled names for the various sqlite3_config() overloads. (check-in: 24f20663 user: stephan tags: trunk)
2023-11-14
16:53
Add NEVER() to a branch made unreachable by [6f9eed826f5b3d1c]. (check-in: 26dcaa34 user: drh tags: trunk)
14:59
JNI: reimplement Tester2.execSql() using the high-level API. (check-in: 3a69679e user: stephan tags: trunk)
14:50
Fix another obscure problem with nested aggregates. dbsqlfuzz 04408efc51. This might be a better fix than the one at [4a587c3492faa994]. (check-in: 6f9eed82 user: dan tags: trunk)
14:38
JNI: add Sqlite.Stmt.step(boolean) overload which returns the result code of sqlite3_step() unless passed true, in which case it throws for any result other than ROW or DONE. The intent is to simplify handling of LOCKED and BUSY errors. (check-in: f4f1cc20 user: stephan tags: trunk)
13:51
Extra PRAGMA vdbe_addoptrace output showing when OP_Column gets translated into OP_Copy due to using a coroutine instead of a cursor. (check-in: eba180e7 user: drh tags: trunk)
05:33
JNI: use ByteBuffer.limit() instead of ByteBuffer.capacity() when figuring out where the logical end of a ByteBuffer is, for reasons explained at length in new code comments. This is unfortunately slower but is the correct way to do it. (check-in: 51539419 user: stephan tags: trunk)
04:59
JNI: add sqlite3_blob_read_nio_buffer() and iron out the blob/ByteBuffer interface somewhat. (check-in: 7df317b4 user: stephan tags: trunk)
03:31
Cherry-pick some assert()s to cover misuse of *Put*() from 500+ shell.c callers. (check-in: c1a53c28 user: larrybr tags: consio-3.44)
03:24
Add a few asserts into *Put*() functions to catch calls that might cause an address fault. (check-in: 2341f9b6 user: larrybr tags: console-io-lib)
02:43
JNI: change sqlite3_prepare_multi()'s exception-handling semantics to be more C-like and, to support that, add the package-private sqlite3_jni_db_error() method to set the db error state from package-level Java code. (check-in: 46656b35 user: stephan tags: trunk)
01:33
JNI: add sqlite3_blob_write() overload which accepts a java.nio.ByteBuffer. Cleanups in adjacent code. (check-in: ca32af85 user: stephan tags: trunk)
2023-11-13
23:11
JNI: add sqlite3_column_nio_buffer() and sqlite3_value_nio_buffer() using an only-slightly roundabout approach to creating properly-sized ByteBuffer objects. (check-in: efbc82b2 user: stephan tags: trunk)
18:35
JNI: add sqlite3_result_nio_buffer() and tests. Discover that we cannot create sensible sqlite3_column_nio_buffer() or sqlite3_value_nio_buffer() counterparts because of ByteBuffer interface limitations. (check-in: 44b4df01 user: stephan tags: trunk)
17:45
Manual merge of branch-3.44 with 3 sources affected/created by console-io-lib changes. (check-in: 18ebcf11 user: larrybr tags: consio-3.44)
17:26
Mistaken creation by a Fossil expert-to-be-maybe. (Leaf check-in: 2e3e98a4 user: larrybr tags: mistake)
15:59
Cure many warnings from gcc, clang and CL.exe. (check-in: 29ea2a3a user: larrybr tags: console-io-lib)
14:58
JNI: add sqlite3_bind_nio_buffer() and initial tests for binding ByteBuffer objects as blobs on JVMs which have JNI support for nio buffers. (check-in: b10ce1ef user: stephan tags: trunk)
14:29
Add new fts5 API xQueryToken(). (check-in: 82856639 user: dan tags: fts5-token-data)
13:01
Fix var-intro after executable code departure from old C. (check-in: 08996f4f user: larrybr tags: console-io-lib)
12:53
Slight cleanup of length-limited strpbrk() replacement, and eliminate strpbrk() call. (check-in: 97e2c962 user: larrybr tags: console-io-lib)
12:05
Remove an incorrect ALWAYS() and NEVER(). (check-in: 94f62093 user: drh tags: branch-3.44)
05:24
Enhance console_io to permit emits limited in various ways, such as valid UTF-8, upto control chars, or with counted limits, all getting away from 0-termination as the sole limit. In CLI, use this capability to avoid certain emit-chars-singly procedures that were breaking up UTF-8 characters. This fixes broken json mode output (on Windows) and (maybe) C-literal-like emits. (check-in: 906c5c40 user: larrybr tags: console-io-lib)
2023-11-12
19:57
Add sqlite3_x86.exe unversioned binary. (check-in: a731cddd user: larrybr tags: console-io-lib)
03:58
Use setOutputStream() to designate implicit output for oput{z,f}() emit functions, and use them extensively. (check-in: 7850fb98 user: larrybr tags: console-io-lib)
00:43
Write BOM without fwrite(), using sputz() so that if it goes to the console, it is translated "properly". (check-in: 06ef96a8 user: larrybr tags: console-io-lib)
2023-11-11
22:53
Remove SHELL_LEGACY_CONSOLE_IO PP symbol and code it made active. (It is in the repo if ever needed/wanted, but it is just inferior or dead code now.) (check-in: 27c5bf65 user: larrybr tags: console-io-lib)
20:46
Complete shell transition to using {f,o,e}put{f,z}() emit functions. (check-in: 923c6b8b user: larrybr tags: console-io-lib)
14:50
JNI wrapper1: when checking for an out-of-bounds statement column index, perform the is-statement-finalized check before the range check so that the former exception trumps the latter. (check-in: 0832f9a8 user: stephan tags: trunk)
14:43
Do not cache a statement's column count in the JNI wrapper1 API because an ALTER TABLE via another statement may invalidate it, as reported in forum post 6d80efd58d4591c7. (check-in: a6ab88e9 user: stephan tags: trunk)
13:09
Fix malf with redirected input due to bad assumption that stdin is a console in the fgets() replacement. (check-in: 79d1f2c1 user: larrybr tags: console-io-lib)
06:20
Pervasive changes to console_io.{c,h} in support of simplifying ubiquitous emit ops in shell, and to get better control of console streams that might be opened only via .read or .output commands. Changes to shell to use {s,o,e}put{f,z}(...) calls for initial testing, but this check-in has few such conversions so that most will be in a separate check-in. Many renames to better follow recent coding convention. This code seems to be working, but has not been tested on difficult platforms or with multiple console hosts yet. So it is a WIP. (check-in: 14762a00 user: larrybr tags: console-io-lib)
2023-11-10
21:03
Fix another problem with mixed join types and the RIGHT JOIN strength-reduction optimization. (check-in: 8f01f8b2 user: drh tags: branch-3.44)
20:55
Fix another problem with mixed join types and the RIGHT JOIN strength-reduction optimization. Forum post befdab472d. (check-in: f1eae192 user: dan tags: trunk)
20:46
Additional debugging information on the tree-dump of the BETWEEN operator. (check-in: aca31e49 user: drh tags: trunk)
20:35
Remove an incorrect ALWAYS() that was inserted yesterday [1e039b6eb59c0001]. (check-in: 12885e29 user: drh tags: trunk)
18:59
Merge recent trunk enhancements and fixes into the jsonb branch. (check-in: 091a5f05 user: drh tags: jsonb)
17:49
Ensure 8-byte alignment of data structues in sqlite3_database_file_object(). This should have appeared on trunk originally and then be cherry-picked onto the branch. Oh well.... (check-in: ac39800b user: drh tags: trunk)
16:29
Remove a NEVER() from whereAddIndexedExpr() that is reachable if there is an unknown indexed function in the schema. (check-in: a976b720 user: drh tags: trunk)
15:20
Fix an obscure problem with the join-strength-reduction optimization that could occur when mixing LEFT and RIGHT joins in the same query. (check-in: dcf1c137 user: drh tags: branch-3.44)
15:03
Fix an obscure problem with the join-strength-reduction optimization that could occur when mixing LEFT and RIGHT joins in the same query. Forum post 7f74ce0bee and separately post d64f0abe723ac98e. The problem was introduced by check-in [d747afda5683ca5f]. (check-in: 530d10e9 user: dan tags: trunk)
15:01
Expose the missing SQLITE_SUBTYPE to wasm. (check-in: 7bebfe20 user: stephan tags: branch-3.44)
15:00
Expose the missing SQLITE_SUBTYPE to wasm. (check-in: ac9534b2 user: stephan tags: trunk)
15:00
Expose the missing SQLITE_SUBTYPE to JNI. (check-in: 0f92f4c9 user: stephan tags: trunk)
14:15
Expose SQLITE_RESULT_SUBTYPE to JNI. (check-in: 3bf75875 user: stephan tags: trunk)
13:13
Fix a potential UAF caused by JSON parser cache spill. (Leaf check-in: ce3fc4fc user: drh tags: bedrock-3.43)
2023-11-09
18:41
Ensure 8-byte alignment of data structues in sqlite3_database_file_object(). (check-in: 3cfcaafa user: drh tags: branch-3.44)
17:55
Expose SQLITE_RESULT_SUBTYPE to wasm. (check-in: fc039886 user: stephan tags: branch-3.44)
17:53
Expose SQLITE_RESULT_SUBTYPE to wasm. (check-in: 6d2fe984 user: stephan tags: trunk)
17:42
Add the SQLITE_RESULT_SUBTYPE flag for application-defined functions. Add the -DSQLITE_STRICT_SUBTYPE=1 compile-time option that raises an error if any function invokes sqlite3_result_subtype() without the SQLITE_RESULT_SUBTYPE flag. SQLITE_RESULT_SUBTYPE prevents an indexed value of that function from being used to replace an equivalent expression, since the indexed expression does not carry the subtype. (check-in: 65a9cfc4 user: drh tags: branch-3.44)
17:36
Add the SQLITE_RESULT_SUBTYPE flag for application-defined functions. Add the -DSQLITE_STRICT_SUBTYPE=1 compile-time option that raises an error if any function invokes sqlite3_result_subtype() without the SQLITE_RESULT_SUBTYPE flag. SQLITE_RESULT_SUBTYPE prevents an indexed value of that function from being used to replace an equivalent expression, since the indexed expression does not carry the subtype. Fix for the problem described at forum post 68d284c86b082c3e. (check-in: ba789a78 user: drh tags: trunk)
17:28
Fix compilation issue seen with MSVC. (check-in: 0dfe790d user: mistachkin tags: trunk)
17:26
Put an ALWAYS on an true branch. (Closed-Leaf check-in: 1e039b6e user: drh tags: func-rw-subtype)
16:52
Futher documentation refinements. (check-in: 311c2eba user: drh tags: func-rw-subtype)
15:01
Fixes: (1) In the ->> function, instead of setting a subtype and clearing it, do not set it in the first place, as doing the set would trigger an error under SQLITE_STRICT_SUBTYPE. (2) Allow the SQLITE_STRICT_SUBTYPE through the property filter on sqlite3_create_function(). (check-in: 6195468b user: drh tags: func-rw-subtype)
13:00
A .class file build dependencies fix in the JNI build. (check-in: 8cc32915 user: stephan tags: trunk)
12:58
Add the SQLITE_STRICT_SUBTYPE compile-time option. This change reveals that the current SQLITE_RESULT_SUBTYPE design does not work unless we tag the ->> operator with SQLITE_RESULT_SUBTYPE. But that will disable an important optimization. (check-in: e98a9a65 user: drh tags: func-rw-subtype)
12:48
Add some notes about the JNI pointer-passing approach and convert a couple of potential NullPointerExceptions into appropriate C result codes. Clarify that invocation of undefined behaviour from the Java API does not (due to the addition of defensive code) mean the same thing as it does in C (e.g. no NULL pointer dereferences). (check-in: 19c4778f user: stephan tags: trunk)
12:17
Do not replace expressions that return subtypes with values taken from an index. (check-in: a35d13db user: drh tags: func-rw-subtype)
12:08
Omit the new SQLITE_VALUE_SUBTYPE name. Stay with legacy SQLTIE_SUBTYPE. Add extra documentation to sqlite3_value_subtype() and sqlite3_result_subtype() indicating that the SQLITE_SUBTYPE and SQLITE_RESULT_SUBTYPE properties are required on functions that use those interfaces. (check-in: 563ad3be user: drh tags: func-rw-subtype)
12:01
Two more JNI build fixes for Windows/MinGW, reported in forum post 4f949edc312d2a75. (check-in: a3f9c390 user: stephan tags: trunk)
01:56
JSON5 bug fix: Escape double-quotes that occur inside of single-quoted strings. (check-in: 6cc57bb2 user: drh tags: branch-3.44)
01:54
JSON5 bug fix: Escape double-quotes that occur inside of single-quoted strings. Forum post ddcad3e884. (check-in: 1c98d46d user: drh tags: trunk)
2023-11-08
21:38
Make a distinction between functions that consume subtypes and functions that generate subtypes. (check-in: 48a92e3a user: drh tags: func-rw-subtype)
18:08
Do not cover expressions using an indexed expression if the indexed expression is a function that might set a subtype. (Closed-Leaf check-in: e908b26a user: drh tags: idx-expr-fix)
17:11
Merge recent trunk enhancements into the jsonb branch, and especially the finer-grain characterization of JSON function properties. (check-in: 72393b00 user: drh tags: jsonb)
16:37
More precise characterization of JSON functions. Indicate when functions might return JSON (subtype 'J') and when they make use of the function argument cache. (check-in: b2b62546 user: drh tags: trunk)
15:56
Have the shell tool emit a warning if the user attempts to use ".scanstats vm" in a non-SQLITE_ENABLE_BYTECODE_VTAB build. (check-in: 3978c084 user: dan tags: trunk)
15:51
Remove old files related to wapptest.tcl from test/ directory. (check-in: dd3e7b5b user: dan tags: trunk)
15:49
Avoid blocking as part of passive checkpoint operations, even if SQLITE_ENABLE_SETLK_TIMEOUT is defined. (check-in: e5ecc404 user: dan tags: trunk)
15:34
Remove an unused/invalid test from the wasm suite. (check-in: 916ae898 user: stephan tags: trunk)
14:55
Add declarations for new fts5 API functions. (check-in: b8a48cc1 user: dan tags: fts5-token-data)
12:56
JNI build fixes for platforms where the jint type is not the same as int, as reported in forum post 9089d2049a. (check-in: b32b0873 user: stephan tags: trunk)
00:45
Suppress harmless UBSAN warnings about memory overflow in OP_AddImm. The exact same machine code is generated by GCC. (check-in: b0594383 user: drh tags: trunk)
00:12
Changes a no-op call to freeP4() into an assert(). (check-in: 32a7b1bd user: drh tags: trunk)
2023-11-07
20:56
Add -DSQLITE_ENABLE_SETLK_TIMEOUT=1 to a release-test configuration. (check-in: cd3e38fb user: dan tags: trunk)
20:11
Fix an assert() that could fail within calls to sqlite3_snapshot_open() in SQLITE_ENABLE_SETLK_TIMEOUT builds. (check-in: 84634bc2 user: dan tags: trunk)
19:39
An attempt to work around compilation errors on MinGW reported in forum post 9089d2049a. (check-in: d5658a3e user: stephan tags: trunk)
19:30
Refactor MBCS/UTF-8 translation to avoid extra allocations, supporting non-formatted (faster) output. Some code cleanup. Wrap .system/.shell command exection with restoration of startup console mode and renewing mode setup. Changes to make legacy MBCS build work better (than legacy did, even with --no-utf8.) (check-in: d5e88fcd user: larrybr tags: console-io-lib)
19:15
Update the documentation to the sqlite3_set_auxdata() and sqlite3_get_auxdata() routines to make it clear that they do not work as one might expect when they are called during query planning, instead of during query execution. The JSON routines misuse those interfaces, so add a special flag to JSON routines that prevents them from being invoked during query planning. (check-in: 36259009 user: drh tags: branch-3.44)
19:03
Update the documentation to the sqlite3_set_auxdata() and sqlite3_get_auxdata() routines to make it clear that they do not work as one might expect when they are called during query planning, instead of during query execution. The JSON routines misuse those interfaces, so add a special flag to JSON routines that prevents them from being invoked during query planning. Fix for the problem in forum post a655ee159eca1ea5. (check-in: 796a23f9 user: drh tags: trunk)
19:02
Do not allow aggregate or window functions in UPDATE statements. (Leaf check-in: fce776cc user: dan tags: no-aggregates-in-update)
17:15
JNI: during static init record whether the current JVM supports JNI-level access to java.nio.ByteBuffer raw memory, and add sqlite3_jni_supports_nio() to query that. (check-in: fb8dbb77 user: stephan tags: trunk)
15:56
Add Sqlite.prepareMulti() to JNI wrapper1, for preparing multiple statements from a single input. (check-in: e4670d68 user: stephan tags: trunk)
13:44
Diverse minor cleanups in the JNI pieces. (check-in: 35233dd9 user: stephan tags: trunk)
13:22
Flesh out [7a63b5b65a79] to be able to build JNI with or without SQLITE_ENABLE_COLUMN_METADATA. (check-in: fcee41b3 user: stephan tags: trunk)
02:41
Get dependencies into make recipes. Get legacy console I/O (-DSHELL_LEGACY_CONSOLE_IO) working. Due to movement of MBCS/UTF-8 translation into traditional stream I/O simulacra, the input translation does not happen the same way. (It works the same, but fails differently and a bit better.) Added printf() and fputs() look-alikes, and made CLI use them. (check-in: 1721dc6a user: larrybr tags: console-io-lib)
2023-11-06
21:57
Add -DSQLITE_ENABLE_COLUMN_METADATA to the JNI build, as per forum post 9205518c0568fdf0. Add tests for the functions that flag enables so that the build will fail if that flag is missing. (check-in: 7a63b5b6 user: stephan tags: trunk)
19:16
Merge latest trunk into this branch. (check-in: 3a869cf1 user: dan tags: fts5-token-data)
19:08
Update the srctree-check.tcl script and child script so that they can be run on a read-only source tree and so that if any inconsistencies are found, the script returns a non-zero exit code and thus halts the build. (check-in: a0cc7e81 user: drh tags: branch-3.44)
19:01
Fix an fts5 problem where a transaction consisting of (a) a DELETE on rowid X, (b) a prefix query, and (c) an INSERT on rowid X, could corrupt the index. (check-in: 34af510a user: drh tags: branch-3.44)
18:40
Fix an fts5 problem where a transaction consisting of (a) a DELETE on rowid X, (b) a prefix query, and (c) an INSERT on rowid X, could corrupt the index. (check-in: c2058a04 user: dan tags: trunk)
16:32
Merge trunk changes into this branch. (check-in: ac557061 user: dan tags: fts5-token-data)
15:31
Move console_io lib to its own subdirectory, etc/consio . (check-in: 1d0583f2 user: larrybr tags: console-io-lib)
15:15
Some renaming, warnings cured, and more coding convention conformance. (check-in: 58815f0a user: larrybr tags: console-io-lib)
13:24
Add an fputs() equivalent to console I/O lib, and use in CLI. (check-in: d661f907 user: larrybr tags: console-io-lib)
03:09
Cause CLI to use console_io library. (check-in: bf66a7c1 user: larrybr tags: console-io-lib)
00:15
Make MSVC accept it, too. (Cannot use static const int as part of a constant expression?) (check-in: bb278d24 user: larrybr tags: console-io-lib)
2023-11-05
23:55
Make it buildable. Pull test program from testee. Zap stray fprintf(). (check-in: 2b850aca user: larrybr tags: console-io-lib)
19:42
Input working. No line-editor provisions yet. (WIP, but suitable for testing.) (check-in: e8568b1d user: larrybr tags: console-io-lib)
04:20
Add incremental blob I/O support to JNI wrapper1. (check-in: 7f1c76fe user: stephan tags: trunk)
03:37
JNI wrapper1 normalizeSql() now throws UnsupportedOperationException, instead of returning null, if built without SQLITE_ENABLE_NORMALIZE. Remove SQLITE_PREPARE_NORMALIZE from the JNI interface because it's a legacy no-op. (check-in: d081a126 user: stephan tags: trunk)
01:55
Add authorizer support to JNI wrapper1. (check-in: 773f9873 user: stephan tags: trunk)
01:39
Add progress-handler support to JNI wrapper1. Correct the return type of the extended_result_codes() JNI binding and expose it to wrapper1. (check-in: 6c0acfdc user: stephan tags: trunk)
01:21
Setup, takedown, mode set and output working. No input yet. (WIP) (check-in: dfea85be user: larrybr tags: console-io-lib)
01:14
Add update-hook support to JNI wrapper1. (check-in: 6c584cf2 user: stephan tags: trunk)
00:48
Add commit/rollback hook support to JNI wrapper1. (check-in: ff3d44fe user: stephan tags: trunk)
00:02
Add busy-handler support to JNI wrapper1. (check-in: dcf579ab user: stephan tags: trunk)
2023-11-04
23:37
Bind collation and collation-needed to JNI wrapper1 and correct the callback return type for collation-needed callbacks in the lower-level JNI binding. (check-in: 0f673140 user: stephan tags: trunk)
22:47
Wrap the sqlite3_backup API in the JNI wrapper1 API. (check-in: 3ee6cc29 user: stephan tags: trunk)
21:51
Reimplement auto-extensions in Java for use with the JNI wrapper1 API. (check-in: 14ed4c64 user: stephan tags: trunk)
21:44
Ensure that the YYYY-MM-DD input to date and time functions has been normalized prior to returning a result. Forum post 6bb476897e. (check-in: b692eb8c user: drh tags: trunk)
16:01
Expose context_db_handle() to the JNI wrapper1 API and clean up some related tests. (check-in: c23123af user: stephan tags: trunk)
13:37
Rework the JNI wrapper1 variants of status() and db_status() to be more Java-esque. (check-in: 40ad3920 user: stephan tags: trunk)
13:16
Bind the bool-flag sqlite3_db_config() variants to the JNI wrapper1 API. (check-in: b5cdcb92 user: stephan tags: trunk)
12:53
Bind the trace API to the JNI wrapper1 API and add a way to map the native-level db/stmt types to their high-level counterparts (required for translating callbacks such as tracers). (check-in: 702910e0 user: stephan tags: trunk)
02:22
Define interface between project command-line apps and a console I/O "library". (check-in: 64abef83 user: larrybr tags: console-io-lib)
2023-11-03
18:45
Back out the ALWAYS inserted late yesterday. The fuzzer discovered a counter-example. (check-in: 57063557 user: drh tags: trunk)
17:20
Fix a case where adjacent tokens are handled incorrectly by the fts5 snippet() function. (check-in: 8f5e9c19 user: dan tags: trunk)
13:00
Wrap more of the stmt API behind the JNI wrapper1 API. (check-in: 8fea23dc user: stephan tags: trunk)
12:09
Enhance the JSONB lookup routine with logic to apply edits. The new logic is currently unused and hence untested but does not create any regressions. (check-in: b1211027 user: drh tags: jsonb)
11:53
Bind the sqlite3_keyword_...() and sqlite3_compileoption_...() family of functions to the JNI wrapper1 API. (check-in: b2724241 user: stephan tags: trunk)
11:41
Update the tool/srctree-check.tcl script so that it verifies that autoconf has been run following edits to VERSION. (check-in: 52ab3deb user: drh tags: trunk)
11:35
Merge all the latest trunk fixes and enhancements into the jsonb branch. (check-in: b089bf46 user: drh tags: jsonb)
10:15
Update the version number to 3.45.0 to begin the next development cycle. (check-in: 15b618e9 user: drh tags: trunk)
2023-11-02
22:39
Mark a branch made always-true by the penultimate check-in with ALWAYS(). (check-in: 268b5984 user: drh tags: trunk)
22:11
In the previous check-in, use a u32 instead of an int, to make it easier to prove that the integer will never overflow. (check-in: 51002079 user: drh tags: trunk)
21:02
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. e.g. "SELECT (SELECT x FROM (SELECT sum(t1.a) AS x)) FROM t1". Forum post c9970a37ed. (check-in: 4470f657 user: dan tags: trunk)
18:22
Add the "remove_diacritics" option to the fts5 trigram tokenizer. (check-in: 0d501724 user: dan tags: trunk)
18:10
Fix a problem with amalgamation builds on this branch. (Closed-Leaf check-in: 8f046c82 user: dan tags: fts5-trigram-diacritics)
18:08
Merge latest JNI pieces into trunk. (check-in: e8c97fae user: stephan tags: trunk)
17:31
Add the "remove_diacritics" option to the fts5 trigram tokenizer. (check-in: 83da8013 user: dan tags: fts5-trigram-diacritics)
13:10
One more tweak to tool/srctree-check.tcl so that a complete build can be accomplished from a read-only source tree. (check-in: cba9f060 user: drh tags: trunk)
12:05
Update the srctree-check.tcl script and child script so that they can be run on a read-only source tree and so that if any inconsistencies are found, the script returns a non-zero exit code and thus halts the build. (check-in: 58eb5440 user: drh tags: trunk)
11:14
Update the version number to 3.44.1 (check-in: 34f23c3d user: drh tags: branch-3.44)
11:08
CLI to compile with older MSVC compiler. (check-in: c8bf4f7a user: drh tags: branch-3.44)
11:04
CLI to compile with older MSVC compiler. (check-in: c89f75f8 user: larrybr tags: trunk)
2023-11-01
20:09
Remove some outdated JNI docs. (Closed-Leaf check-in: 52aef3d0 user: stephan tags: jni-post-3.44)
19:35
Update the windows build documentation to provide the exact command used to build the DLLs that appear on the download page. (check-in: 3524a891 user: drh tags: trunk)
14:33
Fix testrunner.tcl so that it accepts a relative path as an argument to the --zipvfs switch. (check-in: c1ed7ed0 user: dan tags: trunk)
14:12
Bring the jsonb branch up-to-date with version 3.44.0 changes. (check-in: a420a4f7 user: drh tags: jsonb)
12:50
Version 3.44.0 for the reuse-schema branch. (check-in: 30403ce2 user: drh tags: reuse-schema)
12:45
Version 3.44.0 for the bedrock branch. (check-in: 827cf67f user: drh tags: bedrock)
12:41
Version 3.44.0 for the wal2 branch (check-in: 470152fd user: drh tags: wal2)
12:38
Version 3.44.0 for the begin-concurrent branch. (check-in: 291d6b44 user: drh tags: begin-concurrent)
11:23
Version 3.44.0 (check-in: 17129ba1 user: drh tags: trunk, release, major-release, version-3.44.0)
2023-10-31
17:40
Fix harmless compiler warnings in test code. (check-in: d1895dd8 user: drh tags: trunk)
17:39
Fix a problem with SQLITE_ENABLE_FTS5 builds of the non-amalgamation testfixture.exe in Makefile.msc. (check-in: 544091cc user: dan tags: trunk)
2023-10-30
23:20
Remedy CLI non-UTF8 handling detection flaw noted in a forum post. (check-in: a4c7954b user: larrybr tags: trunk)
23:05
Merge the latest 3.44.0 release candidate changes into the reuse-schema branch. (check-in: 28f9a559 user: drh tags: reuse-schema)
23:04
Remedy CLI non-UTF8 handling detection flaw noted in a forum post. (Leaf check-in: 2666b80d user: larrybr tags: win-utf8-io-split)
22:57
Merge the latest 3.44.0 release candidate patches into the bedrock branch. (check-in: 956b03a4 user: drh tags: bedrock)
21:46
Merge the latest 3.44.0 changes into wal2 branch. (check-in: 4f65ae2d user: drh tags: wal2)
21:39
Merge the latest trunk changes into the begin-concurrent branch. (check-in: 9fa405eb user: drh tags: begin-concurrent)
20:35
Update the autoconf/Makefile.msc so that it aligns with Makefile.msc. (check-in: c4f724de user: drh tags: trunk)
19:50
Dodge a nuisance warning from MSVC in CLI use of Prepared Statement Scan Status. (Yes, C rules are fine.) (check-in: 166c96d9 user: larrybr tags: trunk)
19:03
Add a cast to i64 for an integer in an sqlite3OsWrite() offset calculation. The cast is not strictly necessary, but it helps human readers see that the code is correct. (check-in: 7564ff1b user: drh tags: trunk)
18:48
Fix another comment typo. No code changes. (check-in: 3203256c user: drh tags: trunk)
18:17
Add FTS5 to default Makefile.msc builds. And UNKNOWN_SQL_FUNCTION and STMT_SCANSTATUS to default Makefile.msc shell builds. (check-in: e41fde2f user: dan tags: trunk)
18:09
Make the new sqlite3_get_clientdata() and sqlite3_set_clientdata() interfaces available to run-time loaded extensions. (check-in: 8fc9aa0f user: drh tags: trunk)
18:07
Fix problems with previous commit on Makefile.msc. Also some win32-specific test failures in fts5misc.test. (Closed-Leaf check-in: 527f2237 user: dan tags: shell-build-changes)
17:56
Fix typo in a comment. No code changes. (check-in: 424ef955 user: drh tags: trunk)
17:13
Add FTS5 to default Makefile.msc builds. And UNKNOWN_SQL_FUNCTION and STMT_SCANSTATUS to default Makefile.msc shell builds. (check-in: bf99ebba user: dan tags: shell-build-changes)
16:38
Predicate Windows CLI UTF-8 console I/O on a runtime capability check rather than an OS version check. (check-in: 0058ea6a user: larrybr tags: trunk)
13:56
Predicate Windows CLI UTF-8 console I/O on a runtime capability check rather than an OS version check. (check-in: f89d062f user: larrybr tags: win-utf8-io-split)
12:09
With SQLITE_ENABLE_BLOCK_ATOMIC_WRITE enabled, if a transaction is committing and there is a new freelist page at the end of the database file which would cause the database file size to grow, ensure that page is written and the file size grows before the block-atomic-write commits. Fix for the problem identified by forum post 3bd8d497b2 (check-in: c9fdd680 user: drh tags: trunk)
2023-10-29
20:05
For Windows CLI, institute a version check to determine default MBCS or UTF-8 translation on console I/O. (Default to UTF-8 where known possible.) (check-in: ddc6ead6 user: larrybr tags: trunk)
19:55
Simplify code slightly. Improve comments on added code and its use. (check-in: 046c8429 user: larrybr tags: win-utf8-io-split)
16:26
Properly close a handle. Use a putatively effective runtime test for UTF-8 console I/O capability. (This makes the version test useful mainly for avoiding a warning that UTF-8 console I/O could not be setup.) (check-in: dc91eb91 user: larrybr tags: win-utf8-io-split)
00:24
Condition default UTF-8 console I/O for Windows builds on OS version 10 or more. This is to accomodate an IsValidCodePage() API which may happily report CP_UTF8 as a valid code page when the stock console cannot, in fact, do UTF-8 I/O. (check-in: 6b9b2a88 user: larrybr tags: win-utf8-io-split)
2023-10-28
16:19
Limit the range of integer unix timestamps in date4.test, since some systems (RaspberryPI) cannot deal with timestamp values that exceed pow(2,31). (check-in: 76529066 user: drh tags: trunk)
11:53
Update documentation for sqlite3_errmsg() to try to make it clear that if the schema of a database contains table names or similar with invalid UTF, then the error message generated by SQLite might also contain invalid UTF. No changes to code. (check-in: 33ba13c7 user: drh tags: trunk)
11:40
Since SQLite considers NaN to be like NULL and NULL sorts before any integer, make sure the sqlite3IntFloatCompare() routine reports that the integer argument is larger if the floating-point argument is NaN. (check-in: de1cf31a user: drh tags: trunk)
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)
03:56
Merge trunk into jni-post-3.44 branch. (check-in: 9670eb24 user: stephan tags: jni-post-3.44)
03:54
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. It now defaults to whatever sqlite3.c uses, which is currently just shy of 2gb. (check-in: f6e11379 user: stephan tags: trunk)
2023-10-27
23:02
Add missing docs for the JS Worker1 export method, as pointed out in forum post 75524f7342. (check-in: a7b267bd user: stephan tags: jni-post-3.44)
21:44
Fix cosmetic flaw in SQLITE_TXN_* doc. (no code change) (check-in: 72d7c18f user: larrybr tags: trunk)
21:05
Export sqlite3_get_autocommit() to WASM and add tests for it. (check-in: 7cb6d3cd user: stephan tags: jni-post-3.44)
18:16
Disable two rtree test cases for Linux-i686. We do not have that platform available for testing. The test cases work on all other 64-bit and 32-bit platforms that we have at hand. So there is no way for us to debug this problem. Better to disable the test. forum post ffcbf789b5386573. (check-in: fed4d6e9 user: drh tags: trunk)
17:40
Add makefile targets for fuzzcheck-asan and fuzzcheck-ubsan. (check-in: 27fc1430 user: drh tags: trunk)
15:31
Fix to Makefile.in so that the "tool-zip" target can be run from outside the source tree. (check-in: cd118da9 user: dan tags: trunk)
13:59
Cleanup shell.c comments. Hide -utf8 option, as it is undocumented and accepted only for backward compatibility. No functional changes except for -help content. (check-in: 3a879955 user: larrybr tags: trunk)
10:49
Back out [2904fcbeebba9189], mostly. The page bitmap is needed even for a partial integrity_check in order to avoid an infinite loops while walking the database. (check-in: dd6e03b3 user: drh tags: trunk)
2023-10-26
18:41
In CLI for Windows builds, do MBCS/UTF-8 translation independently for input and output. (And cure an MSVC warning.) (check-in: 80f0b6f9 user: larrybr tags: trunk)
18:24
Handle utf8 mode restore better for redirected input or output. Move utf8 mode setup to before any invocation command processing. Sync w/trunk. (Leaf check-in: 59452e7c user: larrybr tags: win-utf8-io-split)
17:30
Enhance the "tool-zip" makefile target on Windows so that it uses more universally available commands to build the ZIP archive. Fix other minor issues with that makefile target at the same time. (check-in: d2f2f912 user: drh tags: trunk)
16:59
Further enhancements to make sure the correct returnning trigger is run when there are nested INSERT RETURNING statements. (check-in: d83405e8 user: drh tags: trunk)
16:05
Handle the case where a virtual table xBestIndex method called while coding a trigger fired by a top-level statement with a RETURNING clause prepares a statement that also contains a RETURNING clause. (check-in: ec6bffa3 user: dan tags: trunk)
15:12
Ready for merge, but could use testing on some dusty old Windows machines. (check-in: 20220615 user: larrybr tags: win-utf8-io-split)
12:59
Deal with the case of a reentrant INSERT on a virtual table where the outer INSERT has a RETURNING clause but the inner does not. dbsqlfuzz 3ac9a1e33f676254e02c0f297263b0a7aeb0c1a5. Fault injected by [a2449bcc2c71d0f4], first appearing in release 3.40.1. (check-in: 8aba78e4 user: drh tags: trunk)
2023-10-25
20:44
Cure a harmless MSVC warning. (no other changes) (check-in: 02234ef8 user: larrybr tags: win-utf8-io-split)
20:27
In CLI for Windows builds, do MBCS/UTF-8 translation independently for input and output. (WIP) (check-in: 47b13e66 user: larrybr tags: win-utf8-io-split)
20:08
Updates to the mktoolzip.tcl to work on win32. (Closed-Leaf check-in: 166b775b user: dan tags: win32-mktoolzip)
19:06
Fix harmless compiler warnings. (check-in: cc8efe04 user: drh tags: trunk)
18:53
Provide dummy parameter names in the prototype for the new xIntegrity method of the sqlite3_module object. (check-in: 131374d7 user: drh tags: trunk)
18:35
Fix minor problems with the "showwal" utility program. Add a missing header to the zipfile.c extension. (check-in: 7b3f866e user: drh tags: trunk)
17:26
Test module altermalloc3.test requires DQS_DDL to be turned on. (check-in: c4d02f4b user: drh tags: trunk)
15:30
Add an ALWAYS on branch that was made always-true by the DISTINCT ORDER BY fix. (check-in: c29ebcb0 user: drh tags: trunk)
14:54
When doing a DISTINCT aggregate that contains an ORDER BY, only the arguments to the aggregate need to be distinct, not the ORDER BY terms. (check-in: d2dbbdf7 user: drh tags: trunk)
12:58
Fix the amalgamation generator so that when it is reporting the Fossil version number in the header comment of the amalgamation, it does not elide the first hex digit of the version hash. (check-in: cc66f526 user: drh tags: trunk)
10:37
Enhance the new xIntegrity method of the sqlite3_module object with new parameters that provide the name of the table being checked and a flag to indicate a "quick_check". Based on feedback in forum post 965c0d02ea. (check-in: bc8afa3f user: drh tags: trunk)
2023-10-24
19:56
Implement check-in [477577120b897bf1] differently, so as not to disrupt non-standard build configuration. See forum post c11523ca2df50293. (check-in: 50448fe4 user: drh tags: trunk)
19:05
Fix a test case in fts3corrupt4.test by bypassing the fast-prng. (check-in: 540ce72b user: dan tags: bedrock)
17:45
Test cases for COLLATE and NULLS FIRST/LAST in the ORDER BY for an aggregate function. (check-in: 641f928f user: drh tags: trunk)
16:16
New #ifdefs to fix certain compile-time options. (check-in: 688c6279 user: drh tags: trunk)
16:06
Fix a problem with the fts5 highlight() and snippet() functions when used with tokenizers like "trigram" that output overlapping tokens. Forum post 63735293ec. (check-in: e952db86 user: dan tags: trunk)
15:53
Fix a problem with the fts5 highlight() and snippet() functions when used with tokenizers like "trigram" that output overlapping tokens. Forum post 63735293ec. (Closed-Leaf check-in: d570aa02 user: dan tags: fts5-trigram-snippet-fix)
15:11
Spelling improvements, in comments only (check-in: 9ee25eea user: larrybr tags: trunk)
15:07
Spelling improvements, in comments only (check-in: 65bcc583 user: larrybr tags: trunk)
11:06
Fix various harmless scan-build warnings. (check-in: 54be9af4 user: drh tags: trunk)
09:57
Fix a harmless compiler warning in the expert extension. (check-in: 0c4907dd user: drh tags: trunk)
2023-10-23
23:34
Fix a minor typo in the previous. (check-in: 9d388267 user: drh tags: trunk)
23:34
Add notes on how to build a statically linked version of sqlite3_analyzer.exe. (check-in: 99ce9939 user: drh tags: trunk)
19:51
Add the sqlite3res file to the Windows build of sqldiff.exe so that the resulting binary shows the SQLite icon. (check-in: c696a496 user: drh tags: trunk)
19:27
Merge the latest trunk enhancments into the reuse-schema branch. (check-in: 52262ac9 user: drh tags: reuse-schema)
16:08
Merge latest changes from wal2 into this branch. (check-in: c9c9bc09 user: dan tags: bedrock)
16:00
Merge latest trunk changes into this branch. (check-in: 3a6479d3 user: dan tags: wal2)
15:48
Merge latest trunk changes into this branch. (check-in: c5ef898a user: dan tags: begin-concurrent)
15:30
Avoid attempting to delete a file while it is open in test script sessionalter.test. (check-in: f20b4a96 user: dan tags: trunk)
15:24
Revert an earlier change that considered passing a NULL callback to sqlite3_preupdate_hook() to be a misuse. This is required to clear the preupdate hook altogether. (check-in: 1bf6f0f3 user: dan tags: trunk)
15:23
New test cases for PRAGMA integrity_check against FTS4 and FTS5 tables. (check-in: 3950d20c user: drh tags: trunk)
14:24
Fix mutex1.test to take into account that the prng mutex is not (as of [c84e4483cb4]) taken when writing a header to an in-memory journal. (check-in: c9e37417 user: dan tags: trunk)
13:46
Improved error messages for the xIntegrity method in FTS3/4 and FTS5. (check-in: df69abc0 user: drh tags: trunk)
12:16
Fix sqlite3ExprDup() alignment assertions so that they work on 32-bit platforms. (check-in: 143f95ef user: drh tags: trunk)
11:41
Temporarily disable the ext/expert/expert1-6.0 test, which does not work on my configurations. (check-in: a41b903d user: drh tags: trunk)
11:34
Add an SQLITE_OMIT_VIRTUALTABLE block around the new vtab code in "PRAGMA integrity_check". (check-in: ab99eb2b user: dan tags: trunk)
11:18
Add missing test file fts3fault3.test. Should have been part of [7f41d700]. (check-in: 92e64ab6 user: dan tags: trunk)
02:08
Merge fixes for expert handling of UDFs and other UD-whatevers. (check-in: b5d7d07d user: larrybr tags: trunk)
02:06
Add missing JNI sqlite3_result_subtype() binding. (check-in: ac920b53 user: stephan tags: jni-post-3.44)
02:01
Fix the shell1.test test so to align with the new behavior imposed by [bce807cd48763273] - that backslash escapes only work without quoted arguments in dot-commands of the CLI. (check-in: 0db82b42 user: drh tags: trunk)
01:55
Clear some picky warnings, sync w/trunk. (Closed-Leaf check-in: ee584259 user: larrybr tags: expert-enhancement)
01:34
Add many more high-level wrappers to the JNI wrapper1 API. Correct the JNI bindings of sqlite3_strglob/strlike() to compare as the core lib does if their glob argument is NULL and the other is not. (check-in: 55c4b1dc user: stephan tags: jni-post-3.44)
2023-10-22
23:44
Fix [f5c01676fd281e93] so that it always preserves 8-byte alignment for Expr objects. Add new assert() statement to verify this. (check-in: 678a9728 user: drh tags: trunk)
23:36
Add high-level window function wrapper to the JNI wrapper1 interface. (check-in: a27e7471 user: stephan tags: jni-post-3.44)
17:27
Do not do backslash escape processing on any unquoted strings in dot-commands in the CLI - on Windows or on posix-like systems either one. This brings the processing into alignment with the documentation, allows backslash-delimited filenames on Windows (as long as they are unquoted), and causes the CLI to work the same with regard to backslash escapes on both Windows and posix. (check-in: bce807cd user: drh tags: trunk)
14:25
JNI: flesh out and simplify the APIs for binding and fetching arbitrary Java objects. (check-in: 89fecf1d user: stephan tags: jni-post-3.44)
13:54
JNI: add column-get bindings to the wrapper1 Stmt class and extend the AggregateFunction tests to ensure that the aggregate context is honored. (check-in: 60a0e82d user: stephan tags: jni-post-3.44)
13:09
Add API_ARMOR to sqlite3_clear_bindings(). (check-in: f3fb4d34 user: stephan tags: jni-post-3.44)
12:43
Add JNI wrapper1.SqliteStmt.bindXyz() APIs. (check-in: 54fce9bf user: stephan tags: jni-post-3.44)
12:33
JNI: improve UB protections in sqlite3_bind_blob/text/text16(). (check-in: 5c838321 user: stephan tags: trunk)
11:11
Add missing ScalarFunction.java to JNI build. (check-in: b8258103 user: stephan tags: trunk)
2023-10-21
22:31
In the CLI, do not translate unquoted backslash escapes on dot-commands as that can damage filename arguments. (check-in: 4a0e2c6e user: drh tags: trunk)
20:34
Remove a branch that cannot affect the outcome from FkNoAction processing in fkey.c. Replace it with an assert(). (check-in: 023a9dbe user: drh tags: trunk)
20:03
Replace the patch at [5cb61c6788d7c017] with a better way to avoid failing PRAGMA integrity_check if a module implementation is not loaded, as the use of suppressErr can lead to problems. (check-in: be5737ee user: drh tags: trunk)
19:51
Check-in contains stray edit. (Closed-Leaf check-in: cbea52e9 user: drh tags: mistake)
18:12
Fix a problem allowing a COMMIT following an OOM to cause fts3/4 corruption. (check-in: 7f41d700 user: dan tags: trunk)
16:33
Add the SQLITE_TESTCTRL_FK_NO_ACTION test control. Make it available in the CLI. Fix a minor problems with SQLITE_CHANGESETAPPLY_FKNOACTION in sessions. (check-in: 91b64c6a user: drh tags: trunk)
16:25
Extra comment on the implementation of SQLITE_TESTCTRL_FK_NO_ACTION, warning about the need to reset the schema in order for the setting change to take full effect. (Closed-Leaf check-in: a50a333a user: drh tags: fknoaction)
15:21
Add missing "finish_test" to sessionnoact.test. (check-in: 9a1d37f5 user: dan tags: fknoaction)
15:04
Fix a problem with SQLITE_CHANGESETAPPLY_FKNOACTION and the foreign-key-trigger-cache. (check-in: 95304ec6 user: dan tags: fknoaction)
12:54
Add SQLITE_TESTCTRL_FK_NO_ACTION. (check-in: 563cf5f7 user: drh tags: fknoaction)
11:43
Adjust an EXPLAIN QUERY PLAN output in scanstatus2.test to account for a different loop order taken due to the removal of the view-scan optimization. (check-in: 9deb8b69 user: drh tags: trunk)
11:34
Compress the content of the status line in testrunning.tcl so that all the same status information appears but with less punctuation and with "zero" values omitted, so that the status line will fit comfortably on an 80-column terminal window. (check-in: 96635131 user: drh tags: trunk)
11:13
Create the new string_agg(X,Y) aggregate function which is an alias for the two-argument group_concat(X,Y) function, for compatibility with SQL-Server and PostgreSQL. (check-in: a3b3df8a user: drh tags: trunk)
11:06
Avoid an unnecessary malloc() for the page usage bitmap when running a partial integrity_check. (check-in: 2904fcbe user: drh tags: trunk)
11:00
Fix a test case broken by the previous check-in. (Leaf check-in: 1e61864c user: drh tags: string_agg)
2023-10-20
20:19
Add string_agg(X,Y) as an alias for group_concat(X,Y), for compatibility with SQLServer and PG. (check-in: b91c19bf user: drh tags: string_agg)
19:59
Fix a problem allowing a COMMIT following an OOM to cause fts5 corruption. (check-in: fba3129d user: dan tags: trunk)
19:06
Fix PRAGMA integrity_check so that it does not raise an error if the schema contains a CREATE VIRTUAL TABLE that does not have its module loaded. (check-in: 5cb61c67 user: drh tags: trunk)
18:09
Omit some redundant calls to strlen() used to find the size of Expr.u.zToken in sqliteExprDup(). This inefficiency was seen while working on the previous check-in, and I thought it best to fix it while it was fresh in mind. (check-in: b7a84eff user: drh tags: trunk)
17:15
Improvements to the sqlite3ExprDup() logic for faster performance and better run-time error detection. This check-in fixes the 5x oversize memory allocation bug from [f371e4c0f8ea73ae] as well as all other known issues that result from handing the ORDER BY clause of an aggregate function off of the pLeft pointer of the Expr object. (check-in: f5c01676 user: drh tags: trunk)
17:06
Add the SQLITE_CHANGESETAPPLY_FKNOACTION flag to sqlite3session.h, for passing to sqlite3changeset_apply_v2() to cause all foreign key constraints to behave as if they were declared NO ACTION. (check-in: fc9f82ea user: dan tags: trunk)
15:47
Simplifications and optimizations to the Expr object duplication logic. The 5x multiplier crutch from [f371e4c0f8ea73ae] is still present. More fixes are still needed. (check-in: 56142a78 user: drh tags: trunk)
14:05
Omit an unused constant from sessionfuzz.c to prevent a compiler warning. (check-in: a0cf7e24 user: drh tags: trunk)
12:23
Correct the opfs-sahpool VFS's xGetLastError() method to return the previous error code, not 0, on success. (check-in: 95a1dde6 user: stephan tags: trunk)
11:44
Merge trunk into the wasm-xGetLastError branch. (Leaf check-in: 48a9bd64 user: stephan tags: wasm-xGetLastError)
10:18
Use sqlite3ParserAddCleanup() instead of calling sqlite3ExprListDelete() directly when disposing of an unused ORDER BY in an aggregate function, to avoid disrupting ALTER TABLE data structures. (check-in: d083e420 user: drh tags: trunk)
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:46
Merge recent trunk enhancements into the jsonb branch. (check-in: f47a8d0a user: drh tags: jsonb)
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)
20:06
Remove a faulty assert() that was added just a few check-ins ago by [8b6fffb552c30f9c]. (check-in: 18e7c826 user: drh tags: trunk)
19:57
For TK_ORDER expression nodes to always be full-size. (check-in: a5c73b46 user: drh tags: trunk)
19:19
Fix an adverse interaction between the new aggregate ORDER BY logic and the expression compressor. Update 2023-10-20: Memory allocations were multiplied by a factor of 5 on line 1575 of expr.c. This was a debugging change that I neglected to remove prior to checking it. That change masks deeper problems that will be solved in later check-ins. (check-in: f371e4c0 user: drh tags: trunk)
19:08
In the TreeView logic (used for debugging only) do not show unnecessary fields of the Window object when a function has a FILTER. (check-in: d2c6b82c user: drh tags: trunk)
18:23
Fix an fts3 problem caused by reducing the page size using the undocumented "nodesize" option, then running an incremental-merge. (check-in: 2875dcb1 user: dan tags: trunk)
18:07
Simplify the Expr compression logic slightly by adding the new EP_FullSize property to expressions that are exceptions to the rule and should not be compressed. (check-in: d5ae82ec user: drh tags: trunk)
13:35
Simplification to sqlite3GetVarint32() to avoid confusing gcov. (check-in: 89862c51 user: drh tags: trunk)
13:00
Fix an error in a debugging routine used inside of testcase(). Does not appear in production. Problem discovered by scan-build. (check-in: c6c9d7ed user: drh tags: trunk)
12:36
New assert() statements to help verify correctness of the ORDER BY aggregate code. (check-in: 8b6fffb5 user: drh tags: trunk)
12:12
Fix the sqlite3ReferencesSrcList() routine so that it recognizes columns in the ORDER BY clause of an aggregate. Fixes a problem with [634286828dad873d] discoverd by dbsqlfuzz. (check-in: 3d26f1aa user: drh tags: trunk)
01:26
Add support for ORDER BY on the argument list of aggregate functions. (check-in: 63428682 user: drh tags: trunk)
01:09
Merge the latest changes from trunk. (Closed-Leaf check-in: d18bc400 user: drh tags: agg-orderby)
00:25
Fix a false-positive in run-time error checking. (check-in: cd63eec0 user: drh tags: trunk)
2023-10-18
23:48
Changes for test coverage. (check-in: ddfa09c6 user: drh tags: agg-orderby)
22:53
Test case for alter column that is used in the ORDER BY of an aggregate. (check-in: 648ddb3a user: drh tags: agg-orderby)
22:27
Deal with an OOM condition while processing aggregate ORDER BYs. (check-in: b6d44427 user: drh tags: agg-orderby)
22:03
Make sure all terms of the ORDER BY within an aggregate go through aggregate analysis. Do not attach an aggregate ORDER BY to a window function. (check-in: 16f38055 user: drh tags: agg-orderby)
19:44
Basic test cases. (check-in: 6cccf86c user: drh tags: agg-orderby)
19:07
Fix one minor error in order to get all legacy tests to pass. (check-in: 5a885139 user: drh tags: agg-orderby)
18:11
ORDER BY on aggregates seem to work, at least for simple smoke tests. Lots more testing is needed though. Surely there are many bugs. (check-in: 64c12a83 user: drh tags: agg-orderby)
13:58
Basic error checking. Resolve symbols in the aggregate ORDER BY expressions. (check-in: c83a53a5 user: drh tags: agg-orderby)
13:18
Enhance the parser so that it can accept an ORDER BY clause on a function invocation. For this incremental check-in, the ORDER BY clause is currently ignored. (check-in: 3a98ff24 user: drh tags: agg-orderby)
2023-10-17
23:35
JS: replace one errant reference to 'self' with 'globalThis' and remove a separate dead-code 'self' reference. (check-in: da1a4793 user: stephan tags: trunk)
19:33
Fix a harmless compiler warning about variant types for a pointer function. (check-in: 37ff0d8e user: drh tags: trunk)
18:59
Make a new branch in the SqlExec opcode reachable by tests. (check-in: 023ad470 user: drh tags: trunk)
18:28
Omit an unreachable branch when SQLITE_ENABLE_API_ARMOR is not defined. (check-in: 5f8b807b user: drh tags: trunk)
17:53
Changes to sqlite3IntFloatCompare() in an attempt to better measure branch coverage in the face of aggressive compiler optimization. (check-in: 5781d043 user: drh tags: trunk)
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)
13:41
Fix a JSON bug introduced by the optimization of [df099ad713011b67] and first appearing in 3.43.0. The problem occurs when doing a JSON_EXTRACT() on an array element that was added by JSON_SET() without first reparsing. Reported by forum post fc0e3f1e2a. (check-in: e5099c54 user: drh tags: trunk)
11:57
Enhance the documentation of sqlite3_deserialize() to make it clear that the input database may not be in WAL mode. Forum post a7e272cee9ac469f (check-in: e7547899 user: drh tags: trunk)
10:47
When an I/O or similar error occurs during a transaction with journal_mode=MEMORY, attempt to rollback before closing the journal, as all rollback information is forgotten when a memory rollback journal is closed. (check-in: 1d67f75d user: drh tags: trunk)
02:15
Harden API_ARMOR checks for sqlite3_stmt_scanstatus_v2(). (check-in: d3f38e81 user: stephan tags: trunk)
2023-10-16
16:04
JNI: add aggregate function support to the wrapper1 API. (check-in: 15b28b34 user: stephan tags: trunk)
14:31
JNI: add scalar UDF support to the wrapper1 API. (check-in: a8505357 user: stephan tags: trunk)
13:04
JNI: initial draft (untested - requires more infrastructure first) of a UDF argument/result-handling interface which completely hides the C-style API from the client. (check-in: 43b10a5c user: stephan tags: trunk)
10:38
JNI: cleanups in Tester2 and update the jar makefile target to account for [9fcdf96adca2]. (check-in: abc82bf4 user: stephan tags: trunk)
10:27
JNI: move the C-style API parts into the capi subpackage and the higher-level wrapper into (tentatively) wrapper1, so that CApi.java can support multiple independent higher-level wrappers without name collisions, and CApi can be made public but have the option to be elided from wrapper-level javadocs for wrappers which do not wish to expose it. (check-in: 9fcdf96a user: stephan tags: trunk)
08:10
JNI: after calling a Java-side UDF, zero-out the pointer of the Java-side sqlite3_context and sqlite3_value array entries to avoid misbehavior if a client makes the mistake of holding a reference to one of those objects. (check-in: 9fc3104f user: stephan tags: trunk)
08:05
JNI: do not expose SQLITE_OPEN_... flags which are specific to VFSes. (check-in: 2b4e53d8 user: stephan tags: trunk)
2023-10-15
13:36
Change 3 instance of #if SQLITE_ENABLE_API_ARMOR to #ifdef for consistency with how it is normally used. (check-in: dd766eeb user: stephan tags: trunk)
13:32
JNI: enable all optional components in the default build and fix a test broken by an option toggle. (check-in: 5586a9df user: stephan tags: trunk)
13:25
Correct non-void return from sqlite3_preupdate_hook() when API_ARMOR is enabled. Broken by [6cb77503484e]. (check-in: 40f5906f user: stephan tags: trunk)
12:17
Merge trunk into the wasm-xGetLastError branch. (check-in: 0239e374 user: stephan tags: wasm-xGetLastError)
12:11
Add coverage of more functions to SQLITE_ENABLE_API_ARMOR builds. (check-in: 6cb77503 user: stephan tags: trunk)
2023-10-14
20:44
JNI: extend [baf220e78a46246c47] to include macro-generated sqlite3_value_...() bindings. (Closed-Leaf check-in: ad34b254 user: stephan tags: api-armor-audit)
20:34
JNI: make the sqlite3_value_...() family of bindings resistent to NULL arguments. (check-in: baf220e7 user: stephan tags: api-armor-audit)
20:24
Do not allow an ALTER TABLE ADD COLUMN on a STRICT table if the added column contains a DEFAULT clause that would violate the type of the added column. (check-in: 75b07586 user: drh tags: trunk)
20:01
Add API_ARMOR support to the scanstatus family of functions. (check-in: 2f3101f0 user: stephan tags: api-armor-audit)
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)
17:14
The rtreecheck() SQL function should not invoke BEGIN or COMMIT as this causes issues for statement transactions. (check-in: b7b2e30b user: drh tags: trunk)
16:57
JNI: add a missing result code check to sqlite3_bind_value(stmt, null). (check-in: f1a357f4 user: stephan tags: api-armor-audit)
16:56
JNI: add missing sqlite3_bind_value() and minor memory-safety-related cleanups. (check-in: 39000317 user: stephan tags: api-armor-audit)
16:29
Add API_ARMOR support to the sqlite3_result_...() family of functions and sqlite3_bind_zeroblob64(). (check-in: afabe3e3 user: stephan tags: api-armor-audit)
14:53
More API_ARMOR additions. (check-in: 78ebf838 user: stephan tags: api-armor-audit)
13:24
Add column name to API_ARMOR check in sqlite3_blob_open() to avoid a null-pointer deref. (check-in: 0114a662 user: stephan tags: api-armor-audit)
12:45
Revert [f6cd88e6b234] - the NULL callback case is perfectly legal. (check-in: 718ab676 user: stephan tags: api-armor-audit)
12:40
Bring JNI-side sqlite3_last_insert_rowid() and sqlite3_table_column_metadata() in line with the core's NULL handling. (check-in: c2afc1c2 user: stephan tags: api-armor-audit)
12:20
Extend API_ARMOR checks on sqlite3_commit/rollback_hook() to include a check for the callback pointer. (check-in: f6cd88e6 user: stephan tags: api-armor-audit)
12:19
Add missing JNI bindings for sqlite3_db_readonly() and sqlite3_db_name(). Code-adjacent tweaks for the API_ARMOR audit. (check-in: e5eace74 user: stephan tags: api-armor-audit)
10:54
Bug fix in sqlite3_analyzer: for databases larger than 1GiB, take into account the lock-byte page when calculating the number of freelist pages. (check-in: 26a909cd user: drh tags: trunk)
2023-10-13
22:19
Earlier detection of a host of errors in CREATE TABLE, such the CREATE TABLE statement itself fails, rather than generating an error on the first attempted use of the created table. (check-in: 348fa7aa user: drh tags: trunk)
19:41
Apply the correct affinity to DEFAULT values that are TRUE or FALSE. (check-in: 4958db70 user: drh tags: trunk)
18:29
Do not allow triggers on shadow tables under defensive mode. (check-in: 44b932ff user: drh tags: trunk)
15:59
Fix an fts5 problem caused by a 'rebuild' followed by a DELETE in secure-delete mode. (check-in: 18be505c user: dan tags: trunk)
13:49
Immediately fail a CREATE TABLE statement that attempts to create a table that has a generated column loop. Legacy allows the table to be created but the table would not be usable for anything. (check-in: 3237bf96 user: drh tags: trunk)
12:57
Actually prevent PRAGMA writable_schema=ON from being set in defensive mode, rather than just preventing it from functioning. (check-in: 2b574d9e user: drh tags: trunk)
12:48
Round one of an audit for SQLITE_ENABLE_API_ARMOR for functions exposed by JNI and those functions missing armor, as reported in several forum posts. (check-in: 8c25c4b1 user: stephan tags: api-armor-audit)
01:39
Avoid potential overflow in hex(). See forum post 7ac0c9c5ea. (check-in: 2e968114 user: larrybr tags: trunk)
2023-10-12
20:51
Make sure virtual tables have been connected before trying to invoke the xIntegrity method during PRAGMA integrity_check. (check-in: 4a4eccb6 user: drh tags: trunk)
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)
19:46
Fix a problem with an fts5 secure-delete on a rowid/term pair that follows a legacy delete of the same pair. (check-in: 579aea0c user: dan tags: trunk)
18:46
Enable SQLITE_VTAB_INNOCUOUS for FTS3, FTS5, and RTREE. (check-in: f34c533b user: drh tags: trunk)
18:09
Add test case for [29937081]. (check-in: d3b983ed user: dan tags: trunk)
17:47
Merge fixes from trunk into the jsonb branch. (check-in: a760bd7b user: drh tags: jsonb)
17:41
Make sure the journal file is closed when transitioning into MEMORY journal mode, to avoid an assertion fault in the new sqlite3_randomness() avoidance code added by [c84e4483cb44f827]. (check-in: 29937081 user: drh tags: trunk)
15:12
CLI to check for rare prepare failures. See forum post 5be6395182. (check-in: 286d1e80 user: larrybr tags: trunk)
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)
20:37
Unconditionally force use of SQLITE_ENABLE_API_ARMOR in the WASM and JNI builds. Their corresponding test suites still work. (check-in: c11394b5 user: stephan tags: trunk)
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)
17:24
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: d3c0cbb9 user: drh tags: trunk)
17:21
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: fc5ee9e5 user: drh tags: jsonb)
13:52
Add (prepare, step, reset, finalize) parts of the JNI level-2 stmt wrapper and associated tests. (check-in: a7082f18 user: stephan tags: trunk)
13:34
Simplification to sqlite3ApiExit(). Generates identical machine code, but easier for humans to read. (check-in: 793bbfa5 user: drh tags: trunk)
13:19
Fix a missing zero-terminator on a string when processing JSON aggregates into JSONB. (check-in: fb81d570 user: drh tags: jsonb)
12:44
Fix an issue that can arise when processing corrupt JSONB. (check-in: e50045c2 user: drh tags: jsonb)
12:21
Improved robustness against corrupt JSONB. (check-in: 0fbda92b user: drh tags: jsonb)
11:42
Fix an assertion fault in json_patch() that can occur if the patch JSON is malformed JSONB. Report the malformed JSONB instead. (check-in: a72d5464 user: drh tags: jsonb)
2023-10-10
23:02
Improved robustness in the decoding of JSON5 text escape sequences found in malformed JSONB. (check-in: 35e0108a user: drh tags: jsonb)
18:55
Fix an off-by-one error in the changes from the previous check-in on the jsonb branch. (check-in: 216191b1 user: drh tags: jsonb)
18:42
Improved robustness when translating corrupt JSONB into JSON text. (check-in: 0caa320d user: drh tags: jsonb)
18:32
Fix a potential buffer overrun due to corrupt JSONB. (check-in: 5cbb861f user: drh tags: jsonb)
18:04
Fix bugs uncovered by the fuzzer. (check-in: c96eb7fb user: drh tags: jsonb)
17:34
Merge the latest trunk enhancements into the jsonb branch. (check-in: f93f16c9 user: drh tags: jsonb)
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)
15:33
Fix a bug in the mkautoconfamal.sh script, introduced by check-in [3308fdda4b81c110] so that the "snapshot-tarball" and "amalgamation-tarball" makefile targets work again when run from outside of the source tree. (check-in: 65ccf5fe user: drh tags: trunk)
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:16
Start adding tests for the second JNI layer. (check-in: 0177f4df user: stephan tags: trunk)
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)
22:45
Use snprintf() in place of sprintf() in a debugging function in the CLI. (check-in: 5e5e4d2b user: drh tags: trunk)
18:33
Systematize the names of some of the translation function in the JSON implementation. (check-in: db44bd1d user: drh tags: jsonb)
17:54
Avoid calling sqlite3_randomness and taking the PRNG mutex when writing a journal header in "journal_mode=memory" mode. (check-in: c84e4483 user: dan tags: trunk)
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:56
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: 1f1a358a user: drh tags: trunk)
14:47
Fix a compiler warning caused by the previous check-in. (check-in: 7e8768bf user: drh tags: trunk)
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)
14:05
Turn on SEH by default when building using MSVC. (check-in: f57e8275 user: drh tags: trunk)
12:57
Merge the latest trunk fixes and enhancements into the jsonb branch, and especially the JSON cache spill UAF fix. (check-in: 9422c24f user: drh tags: jsonb)
12:51
Fix a potential UAF caused by JSON parser cache spill. (check-in: 5b09212a user: drh tags: branch-3.43)
12:46
Fix a potential UAF caused by JSON parser cache spill. Forum post b25edc1d46. (check-in: a163fecc user: drh tags: trunk)
12:45
Flesh out the error state captured by SqliteException.java. Doc additions. (check-in: 5c5397ff user: stephan tags: trunk)
12:39
Fix harmless compiler warning in the test module for sessions. (check-in: 3d5ec993 user: drh tags: trunk)
12:10
In the VDBE trace output (available under -DSQLITE_DEBUG only), identify register values that hold a refernce-counted string. (Closed-Leaf check-in: 53d5c504 user: drh tags: mistake)
11:46
Add JNI Sqlite and SqliteException classes. Add Tester2.java as the main test app for the high-level API. (check-in: 6acf52be user: stephan tags: trunk)
10:44
Minor JNI doc and public/private cleanups. (check-in: c49d36ec user: stephan tags: trunk)
10:30
Rename SQLite3Jni to CApi to (A) reduce name prefix collisions with incoming classes and (B) align with its counterpart in the JS build. Remove the Canonical annotation because (A) the new code separation will inherently make that distinction and (B) the line between truly canonical and semi-canonical (e.g. differing in signature overloads) is blurry enough that consistent use of that annocation is becoming an unnecessary burden. (check-in: ca216b44 user: stephan tags: trunk)
2023-10-07
23:35
Remove some unnecessary code. Report errors for invalid JSONB input on an extract. (check-in: cbea16c2 user: drh tags: jsonb)
19:46
The return from sqlite3_value_blob() in jsonFuncArgMightBeBinary() might be a NULL pointer. Check for that case. (check-in: 7b52b266 user: drh tags: jsonb)
19:40
Improved detection of malformed JSONB when parsing it into a JsonNode array. (check-in: ed99a788 user: drh tags: jsonb)
19:05
Fix the jsonbChangePayloadSize() routine so that it shifts the payload in order to always render the most compact encoding of the payload size. This is necessary as sometimes (as discovered by dbsqlfuzz) the payload size can grow significantly due to json_insert() or json_replace(). (check-in: 8d6d04ca user: drh tags: jsonb)
17:50
Improvements to error messages returned when the ->> operator fails. (check-in: 2f3388f1 user: drh tags: jsonb)
17:29
Fix a problem with sqlite3changegroup_schema() and patchsets. (check-in: c4ab4200 user: dan tags: trunk)
16:32
Add the sqlite3changegroup_schema() API. To allow changegroup objects to upgrade the schema of a changeset/patchset under some circumstances. (check-in: 03f9e50b user: dan tags: trunk)
16:07
Fix a problem with the changes on this branch and tables that use an implicit primary key. (Closed-Leaf check-in: 1f9d1023 user: dan tags: session-alter)
11:37
Merge the memory leak fix from trunk. (check-in: 358de1b0 user: drh tags: jsonb)
11:36
Improved error messages from search on JSONB. (check-in: 96cfdc31 user: drh tags: jsonb)
09:13
Report unknown JSONB element type when parsing JSONB into JsonNode. (check-in: 1f4d3268 user: drh tags: jsonb)
08:15
Add a test case to prevent a regression of the leak fixed in the previous trunk check-in. (check-in: f99ff655 user: drh tags: trunk)
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)
08:00
Fix a resource leak: sqlite3_blob_reopen() was failing to invoke the xDel() distructor on a register when it sets that register to the new rowid. This was never a problem prior to the large-column cache of [771fe35074b50b8d] as that destructor was always a no-op. dbsqlfuzz cd96368deaece480fb94d42427dde053737a650e. (check-in: 545edd5e user: drh tags: trunk)
2023-10-06
23:02
Correct handling of "raw" strings in JSON. This requires three test-case changes in TH3 to add double-quotes to the path outputs from json_tree(). The new behavior is correct, I believe. (check-in: ab2bf3e3 user: drh tags: jsonb)
22:16
Improved error detection for JSONB inputs. (check-in: 6945e11a user: drh tags: jsonb)
20:39
Add missing source code comments and fix other issues with the new code on this branch. (check-in: df39fbe9 user: dan tags: session-alter)
19:46
Update this branch with latest changes from the trunk. (check-in: 897e926a user: dan tags: session-alter)
19:01
Add tests for the sqlite3changegroup_schema() API. (check-in: 5dab481c user: dan tags: session-alter)
18:21
Incremental improvements to the JSONB logic. (check-in: fe326829 user: drh tags: jsonb)
15:35
Fixes to rendering JSON5 extensions encoded as JSONB. (check-in: 5a17e447 user: drh tags: jsonb)
14:59
Fix compiler warnings. (check-in: 5227add3 user: drh tags: jsonb)
14:52
Improvements to error handling. (check-in: b41dd237 user: drh tags: jsonb)
13:05
Merge compiler warning fixes from trunk into the jsonb branch. (check-in: 6409d307 user: drh tags: jsonb)
12:55
Remove an unused parameter from the recomputeColumnsNotIndexed() routine in order to squash a harmless compiler warning. (check-in: 9bf4bfd6 user: drh tags: trunk)
12:51
Ensure that all fields of static sqlite3_module objects are explicitly initialized, in order to hush-up nuisance compiler warnings. (check-in: f3b3d712 user: drh tags: trunk)
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)
01:29
Do not compute unused result columns of subqueries. This optimization will potentially resolve the performance optimization request of [ticket baa5bb76c35a124c]. (Closed-Leaf check-in: 0c21b6a5 user: drh tags: branch-3.26)
01:21
Update test cases so that they work with TCL 8.7 and later. (check-in: e9b762de user: drh tags: branch-3.26)
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)
13:00
Update the configure script so that it contains the correct version number. (check-in: a7cbf308 user: drh tags: branch-3.26)
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)
17:00
Fix a potential division by zero error in this version of RBU that might occur if an external client checkpoints a wal file created by a suspended RBU process. (Leaf check-in: 73edd93a user: dan tags: branch-3.14)
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
20:48
Updates to the 'vtshim' extension. (Leaf check-in: 163c6cdf user: mistachkin tags: xShadowName2)
20:24
Add experimental 'xShadowName2' method for virtual table modules. (check-in: 57beb700 user: mistachkin tags: xShadowName2)
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)
14:18
Import all FTS3/4 enhancements and fixes that exist on the latest trunk (3.31.0-beta) that do not require extensive change to the SQLite core into the 3.22 branch. Basically, the 3.31.0 FTS3 sources are copied into 3.22.0, with minor changes to work around core enhancements that are not available in 3.22.0. (Leaf check-in: cbcbb1e5 user: drh tags: branch-3.22)
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
19:40
Fix a buffer overread that could occur when running fts5 prefix queries inside a transaction. (Leaf check-in: b54aa18b user: dan tags: branch-3.18)
19:29
Fix a buffer overread that could occur when running fts5 prefix queries inside a transaction. (Leaf check-in: b584fd36 user: dan tags: branch-3.9)
18:43
Fix a buffer overread that could occur when running fts5 prefix queries inside a transaction. (Leaf check-in: 0770363b user: drh tags: branch-3.19)
18:36
Fix a buffer overread that could occur when running fts5 prefix queries inside a transaction. (check-in: 68b89838 user: drh tags: branch-3.22)
18:04
Disable the undocumented rtreenode() SQL function that is only used for testing, except when doing a build that is specifically intended for testing. (check-in: 8452fd54 user: drh tags: branch-3.22)
17:55
Disable the undocumented rtreenode() SQL function that is only used for testing, except when doing a build that is specifically intended for testing. (check-in: 34cd2d92 user: drh tags: branch-3.19)
17:46
Disable the undocumented rtreenode() SQL function that is only used for testing, except when doing a build that is specifically intended for testing. (check-in: 0a1cce49 user: drh tags: branch-3.18)
17:39
Disable the undocumented rtreenode() SQL function that is only used for testing, except when doing a build that is specifically intended for testing. (check-in: 7b4583f9 user: drh tags: branch-3.9)
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)
02:57
Add the exprNodeCopy() routine that will safely memcpy() an Expr node that might be a size-reduced node. (Leaf check-in: ab2ba8e7 user: drh tags: expr-node-copy-patch)
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:54
Add a defense-in-depth NEVER() test to the WAL cleanup code. (Leaf check-in: 1109942a user: drh tags: branch-3.27)
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:56
Fix a problem with a window function in a correlated sub-query where at least one reference to the outer SELECT appears in a FROM clause sub-select. (Closed-Leaf check-in: 9aca86f9 user: dan tags: window-functions)
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)
13:51
Remove assert() statements based on the counter-factual proposition that 0 is not a valid cursor number. (check-in: c7b33618 user: dan tags: window-functions)
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)
11:16
Enhance the rtreenode() function of rtree (used for testing) so that it uses the newer sqlite3_str object for better performance and improved error reporting. Test cases added to TH3. (check-in: 90acdbfc user: drh tags: trunk)
05:45
Fix various harmless compiler warnings seen with MSVC. (Closed-Leaf check-in: 1c0fe5b5 user: mistachkin tags: noWarnings)
2019-03-19
20:48
Merge recent enhancements from trunk. (check-in: 000f4398 user: drh tags: apple-osx)
20:42
Enhance the VACUUM INTO command so that it works on read-only databases. (check-in: 55be6d0a user: drh tags: trunk)
20:13
Fix a compiler warning in FTS5. (check-in: d5acf3af user: drh tags: trunk)
19:39
Add further tests to window8.test. (check-in: ec7e224f user: dan tags: window-functions)
19:19
Fix a problem with EXCLUDE clauses on window frames with no ORDER BY. (check-in: e0255063 user: dan tags: window-functions)
17:45
Add tests to ensure that the window functions implementation is not generating code for unnecessary sorts. (check-in: e195948a user: dan tags: window-functions)
16:49
Add missing VdbeCoverage() macros to new code in window.c. (check-in: 4f9b93e6 user: dan tags: window-functions)
15:36
When computing the amount of scratch memory needed during a rebalance operation, assume the worst case for the number of cells per page, rather than relying on the BtPage.nCell value, which might be incorrect for a corrupt database. (check-in: a420ebd0 user: drh tags: trunk)
11:56
Revert the OP_MustBeInt opcode implementation on this branch so that it again matches trunk. The extra functionality is no longer required. (check-in: c02f77b1 user: dan tags: window-functions)
11:35
Tweak the tool/cg_anno.tcl script so that it can run on systems without /usr/bin/tclsh. (check-in: a026189a user: dan tags: trunk)
11:17
Update this branch with latest trunk changes. (check-in: 98cc2659 user: dan tags: window-functions)
09:57
Add a LICENSE.md, containing the text of the blessing. (check-in: cbb7e602 user: drh tags: trunk)
06:40
Ensure that all the new window-function keywords can still be used as SQL identifiers. (check-in: a6d61dfd user: dan tags: window-functions)
2019-03-18
21:19
Add further tests for new window function functionality. (check-in: 1fbddf01 user: dan tags: window-functions)
18:55
Always evaluate window functions using the alternative path usually only used by EXCLUDE frames if the SQLITE_QueryFlattener test flag is set. (check-in: 2879a691 user: dan tags: window-functions)
16:51
Fixes for RANGE windows and NULL values. (check-in: 723c84be user: dan tags: window-functions)
15:49
Fix a buffer overread that could occur when running fts5 prefix queries inside a transaction. (check-in: b3fa58dd user: dan tags: trunk)
15:23
Fix an fts5 problem with interleaving reads and writes in a single transaction. (check-in: 45c73deb user: dan tags: trunk)
10:30
Fix a typo in a comment. No changes to code. (check-in: c2f50aa4 user: drh tags: trunk)
2019-03-17
23:59
New hyperlink on the README.md file. (check-in: cc5ab967 user: drh tags: trunk)
23:44
Update the README.md file at the top level to talk about how to deal with version names and how to verify the code in Git mirrors. (check-in: e8c87a0a user: drh tags: trunk)
2019-03-16
20:29
Fix problems with RANGE windows and string, blob and NULL values. (check-in: cebe09e1 user: dan tags: window-functions)
10:15
In order to identify the first row of each partition, check if the rowid in the ephemeral table is 1 instead of using a dedicated flag register. (check-in: f2d5f7a2 user: dan tags: window-functions)
2019-03-15
20:46
Implement the EXCLUDE clause for window frames. (check-in: 9b43c3ee user: dan tags: window-functions)
19:08
Back out the change to support Fuchsia, since it turns out fuchsia does not like dot-file locks. (check-in: 1d801a3b user: drh tags: trunk)
18:57
Remove a debugging printf() left in test/sessionfuzz.c. (check-in: 73c4abc9 user: dan tags: trunk)
16:17
Ensure that ALTER TABLE commands open statement transactions. Fix for [596d059a]. (check-in: 0f2129f5 user: dan tags: trunk)
2019-03-14
20:53
Parse EXCLUDE clauses in window frames. They do not yet work. (check-in: d03c7533 user: dan tags: window-functions)
16:36
Add things to this branch that will be required to support the EXCLUDE clause. (check-in: 7d66cd20 user: dan tags: window-functions)
00:01
Technical improvements to the documentation for sqlite3_bind_blob() and sqlite3_bind_text(). No changes to code. (check-in: fb60150a user: drh tags: trunk)
2019-03-13
23:51
Improvements to the sqlite3_db_filename() API documentation. No code changes. (check-in: 711f5ec4 user: drh tags: trunk)
17:31
Merge latest trunk changes into this branch. (check-in: 0b904517 user: dan tags: window-functions)
17:20
Avoid allocating excessive registers for the PARTITION BY expressions when processing window functions. (check-in: 180be266 user: dan tags: window-functions)
15:29
Remove rows from the ephemeral table used by window functions once they are no longer required. (check-in: 6ad55319 user: dan tags: window-functions)
13:19
New test cases added to test/fuzzdata8.db (check-in: 049e9926 user: drh tags: trunk)
11:40
When deserializing a database (sqlite3_deserialize()), do not attempt to parse the schema before the data is loaded. (check-in: 4e1b005e user: dan tags: trunk)
10:29
Detect zero-length free slots on btree pages and report that as corruption. (check-in: c4f0568f user: drh tags: trunk)
08:28
Minor optimization in sqlite3WindowCodeStep(). (check-in: b1322ffb user: dan tags: window-functions)
2019-03-12
18:28
Allow real values to be used in PRECEDING and FOLLOWING expressions for RANGE window frames. (check-in: 25ff7091 user: dan tags: window-functions)
15:21
Expand on header comment for sqlite3WindowCodeStep(). Further simplify the implementation of the same. (check-in: 5129bcc9 user: dan tags: window-functions)
09:49
Fix a crash that could occur if the RHS of an IN expression is a correlated sub-query that refers to the outer query from within a window frame definition only. (check-in: 0524aaaf user: dan tags: trunk)
2019-03-11
19:50
Remove "cache mode" from the window frame code generator. Handle the same cases by editing the window frame specification itself. (check-in: 08126353 user: dan tags: window-functions)
18:17
Simplify the windows frame code some. Add a comment explaining some of the VM code generated by sqlite3WindowCodeStep(). (check-in: 6bd1a079 user: dan tags: window-functions)
11:12
Fix problems with "RANGE ... ORDER BY <expr> DESC" window frames. (check-in: e7bced73 user: dan tags: window-functions)
2019-03-09
20:49
Add support for RANGE window frames. Some cases still do not work. (check-in: ffc32b24 user: dan tags: window-functions)
07:38
Merge latest trunk changes into this branch. (check-in: 53ea550c user: dan tags: window-functions)
2019-03-08
20:57
Add simple tests for GROUPS window frames. (check-in: 2872702d user: dan tags: window-functions)
20:26
Fix a harmless bug in the Makefile. (check-in: 62ac9cb0 user: drh tags: trunk)
20:02
Finish consolidation of window frame code. Add untested support for GROUPS frames. (check-in: 954bf369 user: dan tags: window-functions)
16:06
Merge the latest enhancements and fixes from trunk. (check-in: 543ecb30 user: drh tags: begin-concurrent-pnu-wal2)
15:57
Merge the latest enhancements and fixes from trunk. (check-in: bf20d4ff user: drh tags: wal2)
15:39
Add the bgckpt.c extension to Makefile.in and Makefile.msc. (check-in: 3712d625 user: drh tags: wal2)
15:30
Merge all the latest enhancements from trunk. (check-in: 667cce3d user: drh tags: begin-concurrent-pnu)
14:07
Add new test cases in test/fuzzdata8.db (check-in: 97bdc090 user: drh tags: trunk)
14:02
Patch makes balance_nonroot() slightly smaller and faster and more robust against corrupt databases. (check-in: 174da3c3 user: drh tags: trunk)
13:27
Fix another segfault in fts3 that could occur with corrupt records. (check-in: fcc24edd user: dan tags: trunk)
01:52
Detect an attempt to drop a btree that is not within the bounds of the database file and abort early with an SQLITE_CORRUPT error, to avoid problems later on in the process. (check-in: 235a9698 user: drh tags: trunk)
2019-03-07
20:47
Fix other "ROWS BETWEEN" cases on this branch. (check-in: a5f68f66 user: dan tags: window-functions)
19:26
Modify new window functions function so that cursors are stepped immediately after each operation, instead of immediately before. (check-in: 093d2b25 user: dan tags: window-functions)
2019-03-06
21:04
Simplify the window function code generator some more. (check-in: 45cbd3b4 user: dan tags: window-functions)
17:12
Improvements to the way built-in window functions are handled. (check-in: e8eee566 user: dan tags: window-functions)
14:53
Add the sqlite3_stmt_isexplain() interface. (check-in: ee642d3e user: drh tags: trunk)
14:08
Add an "|| CORRUPT_DB" term to an assert() that might be false if the database is corrupt. Also add a branch to have sqlite3PagerMovepage() return SQLITE_CORRUPT in that case. (check-in: b0d5cf40 user: drh tags: trunk)
2019-03-05
23:49
Fix a potential 32-bit integer overflow in the "showdb" utility program when it is trying to interpret a corrupt database file. (check-in: 3803e750 user: drh tags: trunk)
19:29
Extend windowCodeStep() to handle any ROWS PRECEDING/FOLLOWING frame specification. (check-in: af0ea136 user: dan tags: window-functions)
16:53
Add a script to tool/ that will extract the sqlite3.h header file from an sqlite3.c amalgamation. (check-in: 38d2e510 user: drh tags: trunk)
14:47
New dbfuzz2 test cases added to test/fuzzdata7.db (check-in: 25975e1f user: drh tags: trunk)
14:39
If the initial byte of a record is a large value, then always used the generalized record comparison routine sqlite3VdbeRecordCompare() rather than one of the specialized versions that are optimized for shorter records. (check-in: c1ac0070 user: drh tags: trunk)
2019-03-04
21:08
Merge trunk changes into this branch. (check-in: 9b4d561f user: dan tags: window-functions)
21:07
Support some "ROWS BETWEEN N PRECEDING AND M FOLLOWING" window functions without caching entire partitions. (check-in: e7a91f12 user: dan tags: window-functions)
07:25
Merge latest trunk changes into this branch. (check-in: 97a9604d user: dan tags: reuse-schema)
07:15
Fix a problem preventing compilation with SQLITE_OMIT_UTF16. (check-in: 906d1fd8 user: dan tags: trunk)
2019-03-02
20:09
Improved comments on the fossildelta.c extension. (check-in: d7d23f04 user: drh tags: trunk)
15:25
Fix the SQLITE_DIRECT_OVERFLOW_READ compile-time option so that it works with SQLITE_HAS_CODEC. (check-in: fd085e92 user: drh tags: trunk)
12:17
Remove a redundant parameter extraction call from the percentile.c extension. (check-in: d49c32e6 user: drh tags: trunk)
2019-03-01
21:37
Merge recent changes from trunk. (check-in: f270245a user: drh tags: apple-osx)
21:33
The fts3_tokenizer() function returns NULL if the SQLITE_DBCONFIG_ENABLE_FTS_TOKENIZER setting is disabled, which is is by default. (check-in: f5732f4c user: drh tags: trunk)
21:12
Fix a minor comment typo. No code changes. (check-in: 9a0a93c8 user: drh tags: trunk)
18:27
Merge the latest enhancements from trunk. (check-in: e64ded7b user: drh tags: apple-osx)
18:07
In a query that uses a partial index, the expression that is the WHERE clause of the partial index must always be true. Use this fact to avoid evaluating identical terms in the WHERE clause of the query. (check-in: 9b287962 user: drh tags: trunk)
2019-02-28
20:10
Add the ".parameter" command to the CLI. (check-in: 1f9fa585 user: drh tags: trunk)
17:29
Add the new "bind_fallback" method to the "sqlite3" object in the TCL interface. (check-in: c7f70b6d user: drh tags: trunk)
14:09
New test case loaded into test/fuzzdata8.db. (check-in: 00ae0c6c user: drh tags: trunk)
13:41
Avoid an assert() failure and an undefined left-shift operation in the fts3 snippet() function that could occur if the database was corrupt. (check-in: d5250db6 user: dan tags: trunk)
13:21
Add an "|| CORRUPT_DB" term to an assert() statement in the btree defragmenter. (check-in: 6bfd8655 user: drh tags: trunk)
2019-02-27
23:05
Enable the LIKE optimization when the ESCAPE keyword is present and the PRAGMA case_sensitive_like pragma is ON. (check-in: 6ae4b8c5 user: drh tags: trunk)
19:59
Fix the readfile() UDF so that it returns an empty BLOB, not an OOM error, when reading an empty file. (check-in: 0edad533 user: drh tags: trunk)
16:38
Add the "-returntype" option to the "db function" Tcl method. (check-in: 789a492b user: dan tags: trunk)
15:26
Verify that fts5 auxiliary functions cannot be used in aggregate queries. (check-in: 122330db user: dan tags: trunk)
2019-02-26
19:16
Reformat the white-space in a few test cases so that the tests work with Tcl 8.6.9. (check-in: 29d02bf2 user: dan tags: trunk)
18:21
Minor change to dbfuzz2 that allows it to be compiled against older versions of SQLite. (check-in: 6d39d6a6 user: drh tags: trunk)
17:52
New test cases added to test/fuzzdata8.db. (check-in: 61fdfc57 user: drh tags: trunk)
17:49
Allocate a few extra bytes for the pager temp page as an overrun buffer while processing corrupt database files. (check-in: e7aca071 user: drh tags: trunk)
16:36
Update doc/shared_schema.md to describe the shell tool ".shared-schema" dot-command. (check-in: 0ce2092a user: dan tags: reuse-schema)
16:17
Use unsigned integers to count the number of pages in a freelist during an integrity_check, to avoid any possibility of a signed integer overflow. (check-in: 05b87e07 user: drh tags: trunk)
16:13
Add new test file reuse5.test. For testing the shell tool ".shared-schema" command. (check-in: fa6008d5 user: dan tags: reuse-schema)
16:11
Fix a harmless compiler warning that only comes up during debug builds. (check-in: 848869ce user: drh tags: trunk)
15:43
Add the ".shared-schema check|fix DB1 DB2..." command to the shell tool. For checking if a database is eligible to share an in-memory with the main database, and for fixing small problems that prevent it from being so. (check-in: 7d8e8a95 user: dan tags: reuse-schema)
12:29
Update the configure-generated makekfile to generate a portable pkgIndex.tcl. (check-in: 35cbee7f user: drh tags: trunk)
2019-02-25
19:23
Fix a comment in build.c. (check-in: d6a9bff6 user: dan tags: reuse-schema)
18:43
Enhance the command-line shell to accept bound parameters, using the TEMP table named "$Parameters" to look up the values for bound parameters. (check-in: 7c941ce5 user: drh tags: trunk)
18:07
Merge latest trunk changes into this branch. (check-in: 5c1cf308 user: dan tags: reuse-schema)
17:54
Where possible, avoid loading all schemas into memory for PRAGMA statements. (check-in: 64f97530 user: dan tags: reuse-schema)
16:06
Version 3.27.2 (check-in: bd49a827 user: drh tags: release, branch-3.27, version-3.27.2)
15:55
Internally, remove all references to a Window object that belongs to an expression in an ORDER BY clause if that expression is converted to an alias of a result-set expression. (check-in: a21ffcd8 user: drh tags: branch-3.27)
15:43
This was originally intended to be the 3.27.2 release, but then I realized that I left out an important patch. (Closed-Leaf check-in: 6c5e5e2e user: drh tags: mistake)
14:52
Update comments on the fossildelta extension. No changes to code. (check-in: 9da4fb59 user: drh tags: trunk)
14:25
Fix a typo in the documentation for sqlite3_total_changes(). (check-in: 4febdfb3 user: drh tags: branch-3.27)
14:16
Fix a typo in the documentation for sqlite3_total_changes(). (check-in: 8474c156 user: drh tags: trunk)
2019-02-23
20:48
Fix a couple of assert() statements in fts3 that can be false if the database is corrupt. (check-in: 84162af5 user: dan tags: trunk)
00:56
Import from trunk the new fix to ticket [df46dfb631f75694] in which all ephemeral tables used as the RHS of an IN operator be index btrees and never table btrees so that they can always be reused. (check-in: 0e64ac12 user: drh tags: branch-3.27)
00:21
Check-in [fa792714ae62fa98] is incorrect. Add a test case to refute it and also a fix to make it right. Then add an alternative fix to ticket [df46dfb631f75694] in which all ephemeral tables used as the RHS of an IN operator be index btrees and never table btrees so that they can always be reused. (check-in: d3915230 user: drh tags: trunk)
00:08
Remove a testcase() macro which is now unreachable due to the contraction of the use of IN_INDEX_ROWID. (Closed-Leaf check-in: 90c5a17c user: drh tags: tkt-df46dfb631)
2019-02-22
23:29
Make all ephemeral tables built to hold the RHS of an IN operator be index-btrees, never table-btrees, regardless of whether or not they are used as IN_INDEX_LOOP or IN_INDEX_MEMBERSHIP. That way, the same ephmerial table can be reused for both cases. (check-in: c2d50df8 user: drh tags: tkt-df46dfb631)
21:33
Check-in [fa792714ae62fa980] is not a valid fix for ticket [df46dfb631f75694], as the new test case in this check-in demonstrates. The fix here causes test cases for the [df46dfb631f75694] bug to fail again, so this check-in is on a branch. A new fix is needed for [df46dfb631f75694]. (check-in: 0d456456 user: drh tags: tkt-df46dfb631)
19:24
Internally, remove all references to a Window object that belongs to an expression in an ORDER BY clause if that expression is converted to an alias of a result-set expression. Fix for [4feb3159c6]. (check-in: 579b66ea user: dan tags: trunk)
17:44
Merge latest trunk changes into this branch. (check-in: 001771af user: dan tags: reuse-schema)
16:18
In sqlite3NestedParse() be sure to detect all SQLITE_NOMEM and SQLITE_TOOBIG errors and to distinguish between them. (check-in: 73056b31 user: drh tags: trunk)
15:42
Modify sqlite3_str_finish() and sqlite3VMPrintf() so that they always return NULL on any OOM or SQLITE_LIMIT_LENGTH error. (check-in: e7144ffd user: drh tags: trunk)
2019-02-21
18:11
Fix OOM handling in sqlite3NestedParse(). (Leaf check-in: e6e9dd5c user: dan tags: nested-parse-oom)
16:41
Detect oversized strings in the OP_String opcode even if the P4 argument is originally UTF8 and has to be converted to UTF16 to match the database file and that conversion causes the string to become shorter and cross below SQLITE_LIMIT_LENGTH threshold. This might fix an OSSFuzz problem that we have been so far unable to reproduce. (check-in: c13d5639 user: drh tags: trunk)
2019-02-20
19:20
Changes to the unix VFS that allegedly enable it to build of Fuchsia. We have no way of testing this. (check-in: be21a641 user: drh tags: trunk)
19:06
Disable unix-specific features of dbfuzz2 when compiling on windows. (check-in: af84774d user: drh tags: trunk)
18:44
Further test cases and fixes for SQLITE_OPEN_SHARED_SCHEMA. (check-in: ba0ab042 user: dan tags: reuse-schema)
18:13
Avoid the use of function pointers in columnName(), as function pointers appear to be a source of consternation to LLVM. (check-in: c48f6f39 user: drh tags: trunk)
17:36
Add test and fixes for SQLITE_OPEN_SHARED_SCHEMA mode. (check-in: 9a78d89c user: dan tags: reuse-schema)
13:55
Progress handler improvements: (1) Invoke the callback after OP_Program opcodes (2) Invoke the callback multiple times in a row to catch up after a long run of no progress checks. (check-in: 0c5db18d user: drh tags: trunk)
13:23
Merge the latest performance enhancements and fixes from trunk. (check-in: be71d1e2 user: drh tags: apple-osx)
13:14
Increment the version number to 3.27.2. (check-in: a70d67d8 user: drh tags: branch-3.27)
13:12
When an IN operator drives a query loop, mark it as "CODED" so that it will not be used afterwards for a (pointless) membership test. (check-in: 55e38d53 user: drh tags: branch-3.27)
12:52
When an IN operator drives a query loop, mark it as "CODED" so that it will not be used afterwards for a (pointless) membership test. This is a better fix for ticket [df46dfb631f75694] than the previous fix that is now on a branch as it preserves the full optimization of check-in [e130319317e76119]. (check-in: fa792714 user: drh tags: trunk)
03:38
Back off the optimization of check-in [e130319317e76119] slightly so that it only applies to IN operators that are used for membership tests. Proposed fix for ticket [df46dfb631f75694]. (Closed-Leaf check-in: b5f90bfe user: drh tags: tkt-df46dfb631)
2019-02-19
20:29
Enhance the xBestIndex method on delta_parse() to return SQLITE_CONSTRAINT if no delta argument is supplied. (check-in: f16d127c user: drh tags: trunk)
20:19
Add the delta_parse(DELTA) table-valued function to the fossildelta extension. (check-in: d91fcc26 user: drh tags: trunk)
18:39
Add the fossildelta.c extension in ext/misc with implementations of the Fossil delta functions. (check-in: b80cafa6 user: drh tags: trunk)
18:00
Improve error messages caused by corrupt database schemas in OPEN_SHARED_SCHEMA mode. (check-in: 8ac75b8a user: dan tags: reuse-schema)
17:45
Fix a potential memory leak in RBU if the rbu_fossil_delta() SQL function is misused. Misuse never happens in a working RBU system, so this is not a particularly important fix. (check-in: 12517d1b user: drh tags: trunk)
16:42
Fix an assert() that might not be true if the database file is corrupt. (check-in: f2d400db user: drh tags: trunk)
13:51
New assert() to verify the TF_HasprimaryKey flag. (check-in: 0abace8a user: drh tags: trunk)
13:08
Always use the symbolic name SQLITE_IDXTYPE_PRIMARYKEY rather than a hard-coded magic number 2. (check-in: 55d43adc user: drh tags: trunk)
2019-02-18
18:16
Ensure that creating temp schema items does not cause an OPEN_SHARABLE_SCHEMA connection to load all schemas into memory. (check-in: 88cbf54e user: dan tags: reuse-schema)
12:16
Fix an assert() that might not be true if the %_segdir table of FTS3 contains corrupt entries. (check-in: a6509ca3 user: drh tags: trunk)
2019-02-16
22:45
Fix an assert() that might be false for a corrupt database. (check-in: 0cfb8887 user: drh tags: trunk)
17:27
Add support for chaining of WINDOW definitions. (check-in: c155125f user: dan tags: window-functions)
2019-02-15
19:36
Enhance the virtual table in test_schemapool.c so that it can be used to check that SHARED_SCHEMA connections are not allocating and freeing schemas when they should not be. (check-in: cb236cb9 user: dan tags: reuse-schema)
19:00
Fix a problem with eponymous virtual tables and SHARED_SCHEMA databases. Also, after preparing statements that require all database schemas (REINDEX, ANALYZE, CREATE, DROP and some PRAGMA statements), do not allow the database connection to return more than one schema to each schema-pool. (check-in: ecf6251e user: dan tags: reuse-schema)
11:54
Revert the rearrangement of VDBE code in [219b39e14] so that vdbe.c matches trunk. Since the new call to sqlite3Init() in OP_ParseSchema was removed, the rearrangement no longer provides any performance advantage. (check-in: 03c4f003 user: dan tags: reuse-schema)
2019-02-14
21:04
Fix SQLITE_DBSTATUS_SCHEMA_USED so that it works with SQLITE_OPEN_SHARED_SCHEMA connections. (check-in: d43b3c05 user: dan tags: reuse-schema)
18:38
Change the name of the SQLITE_OPEN_REUSE_SCHEMA flag to SQLITE_OPEN_SHARED_SCHEMA. (check-in: 7257fcc8 user: dan tags: reuse-schema)
17:59
Fix a typo in shared_schema.md. (check-in: e47a5aea user: dan tags: reuse-schema)
17:51
Add documentation file doc/shared_schema.md to describe the change on this branch. (check-in: a5f8067d user: dan tags: reuse-schema)
15:56
Merge latest trunk into this branch. (check-in: 577d1638 user: dan tags: reuse-schema)
15:47
Add missing comments and fix other code issues in the new functions in callback.c. (check-in: 441cabb6 user: dan tags: reuse-schema)
15:27
Improved oversized cell detection when updating ptrmap pages in balance_nonroot(). (check-in: aa61435a user: drh tags: trunk)
2019-02-13
19:17
Fix for sqlite3_table_column_metadata() on REUSE_SCHEMA databases. (check-in: 53220ad7 user: dan tags: reuse-schema)
18:29
Avoid crashing after parsing a corrupt schema with a REUSE_SCHEMA connection. (check-in: b102148e user: dan tags: reuse-schema)
15:51
Fix a problem with the incrblob API and reusable schemas. (check-in: 34f0f96f user: dan tags: reuse-schema)
14:06
Rearrange the code in the VDBE to help out the C-compiler optimizer. And fix a harmless compiler warning. (check-in: 219b39e1 user: drh tags: reuse-schema)
13:48
Performance optimization in the VDBE, and a fix for a harmless compiler warning. (Closed-Leaf check-in: e002666a user: drh tags: reuse-schema-vdbe-opt)
08:40
Fix a problem with OPEN_REUSE_SCHEMA connections reloading the temp schema. (check-in: 7c2ec2d4 user: dan tags: reuse-schema)
2019-02-12
22:58
Ensure that the nProgressLimit variable is always initialized in sqlite3VdbeExec(), even if the routine jumps to its exit processing early. (check-in: 167b91df user: drh tags: trunk)
21:04
Enhancement the progress callback mechanism so that the progress callback is always invoked at least once at the end of a prepared statement if the opcode count has been exceeded. This makes the progress callback more effective at limiting run times. This check-in also includes and unrelated performance enhancement to OP_Column. (check-in: 68cce272 user: drh tags: trunk)
20:58
Add tests for creating temp schema objects with SQLITE_OPEN_REUSE_SCHEMA connections. (check-in: 8c07b609 user: dan tags: reuse-schema)
19:20
Share schemas between databases attached to the same database handle. (check-in: ea611d7c user: dan tags: reuse-schema)
16:58
Further performance improvements to btreeInitPage(). (check-in: 93ae382e user: drh tags: trunk)
15:51
Increase the version number to 3.28.0 for the next release cycle. (check-in: 6eb38c59 user: drh tags: trunk)
12:25
Register the "vfsstat" virtual table immediately when loading the vfsstat.c extension. (check-in: 9bd92afd user: drh tags: trunk)
01:28
New test cases in test/fuzzdata8.db. (check-in: ab2356f5 user: drh tags: trunk)
01:04
Defer computing the number of bytes of free space on a btree page until that value is actually needed. (check-in: 177f5f40 user: drh tags: trunk)
00:58
Change an assert() into a NEVER(), since the condition is difficult to prove with certainty. Improved comment on the MemPage.nFree field. (Closed-Leaf check-in: fec071b8 user: drh tags: deferred-free-space)
2019-02-11
22:50
Do not invoke btreeComputeFreeSpace() when not necessary. (check-in: f11b0ed4 user: drh tags: deferred-free-space)
20:13
Merge latest trunk changes into this branch. (check-in: dbedd81b user: dan tags: reuse-schema)
19:34
Add eponymous virtual table "schemapool". For inspecting the current contents of the schema-pool. (check-in: 2ebeb747 user: dan tags: reuse-schema)
19:27
Improvements to comments. No changes to code. (check-in: 16eb0fc8 user: drh tags: deferred-free-space)
17:22
Fix test cases. Avoid unnecessary tests for MemPage.nFree less than zero. (check-in: 480a5090 user: drh tags: deferred-free-space)
16:12
Fix another segfault that could occur in fts5 with a corrupted database. (check-in: 09e33738 user: dan tags: trunk)
13:25
Fix typos in comments in fts5.h. No changes to code. (check-in: c19e97bc user: dan tags: trunk)
12:51
Updates to a comment to keep it in alignment to the changes on this branch. (check-in: 7499f743 user: drh tags: deferred-free-space)
11:34
Build and test fixes for SQLITE_OMIT_WINDOWFUNC builds. (check-in: 8824115a user: dan tags: trunk)
11:04
Avoid using a "return void_function();" statement in void function sqlite3WalSnapshotUnlock(). It provokes a warning from some compilers. (check-in: 4a4952d3 user: dan tags: trunk)
01:58
Add an assert() in an attempt to repro an ASAN warning from OSSFuzz. (check-in: 7b412224 user: drh tags: trunk)
2019-02-09
22:33
Fix a page-cache reference leak in the btree balancer when there is a corrupt database. (check-in: 92858991 user: drh tags: deferred-free-space)
21:06
Defer computing the MemPage.nFree value of an in-memory btree page until it is actually needed, since for many pages it is never needed. This checkin works sufficiently to prove the concept, but still has issues with exception handling. (check-in: 1d43ee40 user: drh tags: deferred-free-space)
19:23
Change a few assert() statements in fts3 that might fail if the database is corrupt. (check-in: db74a56a user: dan tags: trunk)
17:47
Fix virtual table support for SQLITE_OPEN_REUSABLE_SCHEMA connections. (check-in: 3ca8856a user: dan tags: reuse-schema)
2019-02-08
22:34
Small performance improvement and size reduction for pageFindSlot() - the routine in btree.c that locates a free slot for a cell on a btree page. (check-in: 1969372a user: drh tags: trunk)
20:55
Use a fast compiler-provided memory barrier exclusively, if such a memory barrier is available. (Leaf check-in: df66fec9 user: drh tags: faster-memory-barrier)
19:30
Add test cases and fix problems on this branch. (check-in: 2b2e9f81 user: dan tags: reuse-schema)
17:28
Further simplifications to sqlite3VdbeMemSetStr(). (check-in: 1d212957 user: drh tags: trunk)
15:59
Change the sqlite3VdbeMemGrow() routine so that it no longer guarantees a minimum size of 32 bytes. That minimum is no longer required, and without the extra check for the minimum size, the routine runs faster. (check-in: 5c499da8 user: drh tags: trunk)
14:59
Merge the fix for ticket [4e8e4857d32d401f], so that this branch now contains release 3.27.1 plus the extra patch to preserve ROWID values on VACUUM. (check-in: 0cdae60e user: drh tags: apple-osx)
14:55
Give the sqlite3 object a pointer to the current Parse so that if an OOM occurs, it can automatically set the Parse.rc value to SQLITE_NOMEM. This avoids a frequent extra test of db.mallocFailed in the innermost parser loop. (check-in: 5c663804 user: drh tags: trunk)
13:17
Version 3.27.1 (check-in: 0eca3dd3 user: drh tags: release, branch-3.27, version-3.27.1)
12:46
Cherrypick the fix for ticket [4e8e4857d32d401f] from trunk. (check-in: d5d944d7 user: drh tags: branch-3.27)
12:44
Increase the version number to 3.27.1. (check-in: b94d5428 user: drh tags: branch-3.27)
04:15
Do not do the optimization that attempts to pull expression values from an index on that expression when processing a multi-index OR (see check-in [a47efb7c8520a0111]) because the expression transformations that are applied become invalid when the processing moves off of the current index and on to the next index. Fix for ticket [4e8e4857d32d401f]. (check-in: 440a7cda user: drh tags: trunk)
2019-02-07
19:28
Pull in the change that causes VACUUM to preserve rowid values. (check-in: c9af2f71 user: drh tags: apple-osx)
19:07
Change VACUUM so that it preserves ROWID values. (check-in: 49e5d11d user: drh tags: trunk)
18:49
Merge the offical 3.27.0 release. (check-in: 62829164 user: drh tags: apple-osx)
17:02
Version 3.27.0 (check-in: 97744701 user: drh tags: trunk, release, version-3.27.0)
15:09
Experimental change to VACUUM so that it preserves existing ROWID values. (Closed-Leaf check-in: f264015f user: drh tags: vacuum-preserves-rowid)
00:17
In the fuzzcheck test program, make sure the isspace() and related routines are not given values outside the range of -1 to 255. (check-in: f2983287 user: drh tags: trunk)
2019-02-06
20:49
Ensure all bytes of the PgHdr1 structure are initialized. This avoids a valgrind error when running corruptI.test. (check-in: a505e34d user: dan tags: trunk)
20:12
Update an assert() in test_journal.c to take the new "VACUUM INTO" functionality into account. (check-in: 0e6249cb user: dan tags: trunk)
19:42
Avoid attempting to delete a file while it is still open in walfault2.test. (check-in: 9d54a63d user: dan tags: trunk)
18:08
Update test file dbfuzz001.test so that it works with SQLITE_ENABLE_OVERSIZE_CELL_CHECK builds. (check-in: 4371a0c4 user: dan tags: trunk)
15:23
Add -DSQLITE_ENABLE_DESERIALIZE to the default testing configuration in test/releasetest.tcl. (check-in: 433d6ef6 user: dan tags: trunk)
13:48
Do not attempt to test the shell ".trace" command in SQLITE_OMIT_TRACE builds. (check-in: 3839e909 user: dan tags: trunk)
13:41
Fix a problem preventing testfixture from being built with SQLITE_OMIT_VIRTUALTABLE. (check-in: d2cca36a user: dan tags: trunk)
01:18
When extending the size of SrcList objects, do not attempt to use extra space on the end of the allocation, as that provides scarcely any performance benefit but does greatly complicate cross-platform testing. (check-in: 3087a0c3 user: drh tags: trunk)
00:55
If the query flattener detects an error, cause the SELECT code generator to abort immediately. (check-in: 3d3b142f user: drh tags: trunk)
00:11
Back out check-in [008112bcef561a8], reenabling deprecated PRAGMAs when the SQLITE_OMIT_DEPRECATED compile-time option is used, because way too many TH3 tests depend on those deprecated PRAGMAs. (check-in: 9dbf512d user: drh tags: trunk)
2019-02-05
20:51
Omit the ".progress" command from the shell if it is compiled with the SQLITE_OMIT_PROGRESS_CALLBACK option. (check-in: 4d0a949f user: drh tags: trunk)
19:52
Fix a harmless compiler warning in the memtrace.c extension. (check-in: 2f468da4 user: drh tags: trunk)
19:51
Merge latest trunk into this branch. (check-in: c089cc4f user: dan tags: reuse-schema)
19:48
Fix compiler warnings on Windows. (check-in: 4978ee8b user: drh tags: trunk)
19:15
Fix memory leaks on this branch. (check-in: e9c5e189 user: dan tags: reuse-schema)
16:53
Update the tester.tcl --malloctrace option so that it uses eu-addr2line instead of addr2line. (check-in: 79c07387 user: dan tags: trunk)
14:36
The IS NOT NULL operator does not imply that the operand is never NULL. Fix for ticket [5948e09b8c415bc45da5cf] (check-in: d840e9bb user: drh tags: trunk)
12:16
Keep the temp_store_directory and data_store_directory pragmas even when compiling with SQLITE_OMIT_DEPRECATED. (check-in: 93386a7c user: drh tags: trunk)
08:55
Update test file "resetdb.test" so that it works with the "prepare" permutation. (check-in: 95d33812 user: dan tags: trunk)
2019-02-04
21:10
Early detection of implausibly sized records to avoid unnecessary large memory allocations. (check-in: 2c8769c6 user: drh tags: trunk)
21:02
Fix a problem with reloading the schema on this branch. (check-in: 5dfbef83 user: dan tags: reuse-schema)
19:52
Mention the new -memtrace command-line option in the -help output of the CLI. (check-in: ada91aef user: drh tags: trunk)
19:50
Add the -memtrace option to dbfuzz2. (check-in: 67fecbc7 user: drh tags: trunk)
19:45
Enhance dbfuzz2 so that with the -v option it shows the return code and error message for any failing SQL statements. (check-in: 3a127ef9 user: drh tags: trunk)
19:12
Ensure that the sqlite3_exec() callback gets the correct number of columns for a query, even if the schema changes out from under it. (check-in: a16ffb5a user: drh tags: trunk)
16:42
Do not run shmlock.test as part of the inmemory_journal permutation. (check-in: d3fea69c user: dan tags: trunk)
16:36
Update the test/fuzzdata8.db database with new interesting cases from dbsqlfuzz. (check-in: e467e4c8 user: drh tags: trunk)
16:25
Fix problems with SAVEPOINT and related commands within transactions on a corrupt database that include fts5 or some other virtual tables. (check-in: b0da6e0d user: dan tags: trunk)
14:53
Add the ".progress" command to the CLI. (check-in: ad84ca24 user: drh tags: trunk)
14:00
Fix another potential buffer overread in fts5. (check-in: 14fba4cc user: dan tags: trunk)
11:54
Fix another corruption case in fts5. (check-in: e608085d user: dan tags: trunk)
2019-02-03
07:46
Fix an assertion failure in fts3 triggered by a corrupt database. (check-in: 560ebd42 user: dan tags: trunk)
2019-02-02
21:02
Try new approach ensuring that each Schema object is only used by one connection/database at any one time. (check-in: 9e8e5f52 user: dan tags: reuse-schema)
18:24
New testcase added to test/fuzzdata8.db. (check-in: 2f5c1925 user: drh tags: trunk)
15:59
Honor key query parameters for SEE on the URI filename for ATTACH and VACUUM INTO. (check-in: 2e01096b user: drh tags: trunk)
15:05
Give a link to the URI Filename document in the documentation to the various sqlite3_uri_parameter() interfaces. (check-in: 69b0b2ee user: drh tags: trunk)
13:47
Fix a buffer overread in fts5 debugging scalar function fts5_decode(). (check-in: 54f2399f user: dan tags: trunk)
01:27
Fix harmless compiler warning. (check-in: dddda685 user: mistachkin tags: trunk)
2019-02-01
21:08
Slight adjustment to the printf formatter large memory allocation detector so that it does not overestimate the amount of space needed for oversize %d conversions. (check-in: 1aee70d6 user: drh tags: trunk)
20:29
Prevent the printf formatter from doing large memory allocations - larger than either the size of the static buffer for interfaces like sqlite3_snprintf(), or larger than SQLITE_LIMIT_LENGTH for interfaces that are associated with a database connection. This helps to prevent DOS attacks on products that let hostile sources inject arbitrary SQL. It also helps fuzzers run faster and more effectively. (check-in: 179e5d46 user: drh tags: trunk)
18:46
Performance improvement in the parsing of options to %-formats in the printf implementation. (check-in: 40d8f8ae user: drh tags: trunk)
15:06
Ensure that the Walker.pParse structure is initialized when walking the source tree to gather the WINDOW clauses on a query with window functions. (check-in: 4ca9d5d5 user: drh tags: trunk)
14:54
New test cases added to test/fuzzdata8.db. (check-in: e5924939 user: drh tags: trunk)
14:50
Improve the strict enforcement of cell sizes in balancing from check-in [12713f320b2c1def] so that it also works with table-btrees in addition to index-btrees. (check-in: ef27e7a0 user: drh tags: trunk)
14:40
Fix an assert() in fts5 that could fail if the database is corrupt. (check-in: 55f06aa3 user: dan tags: trunk)
13:34
Fix another corrupt-database-handling problem in fts5. (check-in: 9876ae1b user: dan tags: trunk)
2019-01-31
16:09
Remove an incorrect assert() from the deserialize in-memory database VFS. (check-in: 80151d7e user: drh tags: trunk)
15:38
Add the SQLITE_CONFIG_MEMDB_MAXSIZE configuration option for configuring the default maximum size of an in-memory database created using sqlite3_deserialize(). This is necessary to make the interface reasonably testable. (check-in: cb72ee04 user: drh tags: trunk)
14:37
Fix another buffer overrun that could occur when quering a corrupt database using an fts5vocab table. (check-in: b80119bd user: dan tags: trunk)
02:42
If the amalgamation file "sqlite3.c" is generated using the SQLITE_ENABLE_UPDATE_DELETE_LIMIT option, but then subsequently (mis-)compiled without that option, and then a particular syntax error could cause a memory leak, but for this fix. (check-in: 1bb17c86 user: drh tags: trunk)
01:39
Improvements to "PRAGMA parser_trace=ON": Make it a flag pragma, and then use the flag to show the complete SQL text at the beginning of the parse. (check-in: 507c4353 user: drh tags: trunk)
2019-01-30
19:50
Change the error message slightly for when two or more indexes have the same rootpage. (check-in: 916c52da user: drh tags: trunk)
19:12
When parsing the schema, check for duplicate index root page numbers before adding the index to the schema hash table. (check-in: 6b360bc0 user: dan tags: trunk)
18:47
Add test case for the previous commit. (check-in: 197edb23 user: dan tags: trunk)
18:33
Detect if two indexes of the same table share a common rootpage while parsing the schema, and throw an error immediately. (check-in: f21c6f13 user: drh tags: trunk)
16:58
Fix an off-by-one error when parsing the names of indexes that do not have arguments in the index_usage utility. (check-in: dc794d8f user: drh tags: trunk)
15:47
Add the --progress, --using, and -q options to the index_usage utility program. (check-in: a5e6be7c user: drh tags: trunk)
14:01
Enhancements to the index_usage utility program. (check-in: 19c739b4 user: drh tags: trunk)
12:15
Fix another buffer overread in fts5 that may occur when accessing a corrupt database. (check-in: 760d1437 user: dan tags: trunk)
2019-01-29
19:17
Merge enhancements from trunk. (check-in: 31efcc37 user: drh tags: apple-osx)
16:54
Fix harmless compiler warnings. (check-in: 9a93c68a user: drh tags: trunk)
16:47
Load all the latest dbsqlfuzz finds into test/fuzzdata8.db. (check-in: e744d2dd user: drh tags: trunk)
16:41
More robust handling of corrupt database file in the rebalance operation of the btree logic. (check-in: 97704cb7 user: drh tags: trunk)
16:34
Avoid an integer overflow in the fts5 snippet() function triggered by a corrupt database record. (check-in: 7c862c46 user: dan tags: trunk)
15:30
Avoid a crash when the fts5 snippet() function (or similar) is used with a special query pattern, like '*id' or '*reads'. (check-in: 9d58a157 user: dan tags: trunk)
11:42
Fix a buffer overrun triggered by a merge operation on a corrupt fts5 database. (check-in: 7ee3cd5b user: dan tags: trunk)
02:37
Set a low limit on the length of strings and blobs in the OSSFuzz module, in an effort to avoid timeouts when the fuzzer does things like "randomblob(1e12)". (check-in: 119d1609 user: drh tags: trunk)
2019-01-28
19:06
Fix the query planner so that it is able to use an index on a CAST expression. (check-in: 2c886f3d user: drh tags: trunk)
18:58
Fix a performance regression caused by the previous commit. (Closed-Leaf check-in: c4db0ad1 user: drh tags: index-on-cast)
18:08
Make indexes on CAST(...) expressions work. (check-in: 3ef711d9 user: dan tags: index-on-cast)
16:50
Fix a buffer overread in fts3 that could occur when accessing a corrupt database. (check-in: a9faf903 user: dan tags: trunk)
13:27
Do not assume that text parameters passed to fts4aux queries do not contain embedded nul characters. (check-in: df04859a user: dan tags: trunk)
11:54
Add a new test case to fuzzdata8.db. (check-in: ce8e279a user: drh tags: trunk)
00:42
Change the definition of the BtCursor.skipNext field so that it is undefined for states CURSOR_VALID and CURSOR_INVALID. (check-in: 6089d5db user: drh tags: trunk)
2019-01-27
19:50
Improvements to the ".eqp trace" command in the CLI so that it ensures that the schema has been read prior to activing the tracing feature, to avoid cluttering the output with a trace of the schema parse. (check-in: 42687d45 user: drh tags: trunk)
02:45
New test cases form dbsqlfuzz (check-in: 9cf8ebd1 user: drh tags: trunk)
02:41
Window functions that can abort should indicate this, so that if they are used in DML statement, a statement journal will be used. (check-in: 0ea05a0e user: drh tags: trunk)
01:11
Update fuzzcheck so that with the --load-dbsql options it screens its inputs to ensure that they are valid dbsqlfuzz cases. Add new dbsqlfuzz finds to the test/fuzzdata8.db database. (check-in: 004f7d9b user: drh tags: trunk)
2019-01-26
23:34
Ensure that the btree cursor is correctly set up prior to backing it up as part of a delete operation on a divider cell in an index. (check-in: a3ea1a82 user: drh tags: trunk)
21:05
Fix a broken assert() in fts3. Also some test script issues causing failures with builds that do not support fts3. (check-in: d59567dd user: dan tags: trunk)
20:41
Fix another typo in fts3_common.tcl causing test failures in builds that do not support fts3. (Closed-Leaf check-in: 773b5986 user: dan tags: rollback-abort)
20:35
Fix a typo in fts3corrupt4.test causing it to fail if the build does not support fts3. (check-in: 50163034 user: dan tags: rollback-abort)
19:09
Fix a broken assert() in fts3. (check-in: b8dd2d67 user: dan tags: rollback-abort)
18:10
If a write statement fails with OE_Abort, but there is no statement journal, roll the entire transaction back instead. (check-in: 75a8ed7a user: dan tags: rollback-abort)
17:47
Fix "PRAGMA journal_mode" so that if it fails because there is a transaction open, it does not roll that transaction back. (check-in: 9f39cb5b user: dan tags: rollback-abort)
16:34
Roll back the transaction if a write statement fails with OE_Abort but there is no open statement transaction. (check-in: d536be69 user: dan tags: rollback-abort)
15:40
Add the ".eqp trace" command to the CLI when using SQLITE_DEBUG, as a convenient shorthand for "PRAGMA vdbe_debug=ON" but with automatic indentation feature for program listings provided by the CLI. (check-in: 626502fa user: drh tags: trunk)
2019-01-25
20:09
Do not accidently truncate zeroblob values when doing an arithmetic operation. Fix for ticket [bb4bdb9f7f654b0bb9f34cfba]. (check-in: 13f6942e user: drh tags: trunk)
19:29
Reinitialize debugging information on registers of a trigger prior to each invocation of the trigger. This prevents false-positives from the sqlite3VdbeMemAboutToChange() test logic. (check-in: 98b3b975 user: drh tags: trunk)
18:17
Fix harmless compiler warnings. (check-in: 3ff220ad user: drh tags: trunk)
18:17
Fix the assert_fts3_nc() macro so that it works for test builds that omit SQLITE_DEBUG. (check-in: b10df2b5 user: drh tags: trunk)
17:51
Fix harmless compiler warnings in fuzzcheck (check-in: a8253966 user: drh tags: trunk)
17:26
Fix a segfault that could follow an OOM when querying a table that has one or more columns with default values "true" or "false". (check-in: 202f9919 user: dan tags: trunk)
16:54
Fix asan warnings in fts5 triggered by corrupt databases - passing NULL to memcmp, out-of-range left-shift values and signed integer overflow. (check-in: 93f8ec14 user: dan tags: trunk)
14:48
Add an assert_fts3_nc() macro to fts3 - for assert() conditions that are only true when it is guaranteed that the fts3 database is not corrupt. (check-in: 3498908c user: dan tags: trunk)
14:23
Extend fuzzcheck so that it can process dbsqlfuzz cases. Add a collection of interesting dbsqlfuzz cases to the standard test suite. (check-in: e2991a7e user: drh tags: trunk)
14:16
Fix the xFetch method of the "memdb" VFS (used by deserialize) so that it is robust against corrupt database file. (Closed-Leaf check-in: 2c1ef40e user: drh tags: dbsqlfuzz-in-fuzzcheck)
13:42
Fix a couple of assert() statments in btree.c that could fail with corrupt databases. (check-in: 5eb5e828 user: dan tags: trunk)
13:03
In fuzzcheck, activate vdbe_debug for dbsqlfuzz cases when using the -vvvvv verbosity level or above. (check-in: 2e6f7c2a user: drh tags: dbsqlfuzz-in-fuzzcheck)
04:43
Improved automatic detection of dbsqlfuzz cases in fuzzcheck. (check-in: 1ef24e89 user: drh tags: dbsqlfuzz-in-fuzzcheck)
04:00
Add the ability to process dbsqlfuzz cases in fuzzcheck and add an initial set of interesting dbsqlfuzz cases. (check-in: fb9074ff user: drh tags: dbsqlfuzz-in-fuzzcheck)
2019-01-24
17:41
Fix a buffer overread in fts3 that could occur in a prefix query on a corrupted database. (check-in: d0d56893 user: dan tags: trunk)
16:51
While PRAGMA full_column_names is off (the default) do not make changes to the short_column_names pragma when computing the column names for subqueries. (Leaf check-in: 718ead55 user: drh tags: literal-column-names)
16:27
Fix a problem with running ALTER TABLE on a schema that contains expressions of the type "col IN ()" (empty set on RHS of IN operator). (check-in: 2d9cd067 user: dan tags: trunk)
16:07
Omit deprecated PRAGMAs when compiling with the -DSQLITE_OMIT_DEPRECATED option. (check-in: 008112bc user: drh tags: trunk)
15:51
Make sure the column name flags are restored correctly after an error inside of sqlite3ResultSetOfSelect(). (check-in: b1601db7 user: drh tags: trunk)
15:16
Fix a potential problem with "INSERT INTO ... SELECT * FROM" (or VACUUM) statements on a corrupted database. (check-in: db4b4c2c user: dan tags: trunk)
14:16
Change a integer variable in sqlite3VdbeRecordUnpack() to unsigned in order to avoid any possibility of an integer overflow. (check-in: 1b536f6f user: drh tags: trunk)
13:36
Use memmove() instead of memcpy() in a place where buffers might overlap if the database file is badly corrupted, to prevent warnings from ASAN and valgrind. (check-in: 65ad6c55 user: drh tags: trunk)
04:44
Remove an unreachable branch. (check-in: 4c976f17 user: drh tags: trunk)
2019-01-23
20:31
Fix an assert() in vdbemem.c that could fire if the database was corrupt. (check-in: a70958cd user: dan tags: trunk)
19:50
Fix a problem with renaming a table within a schema that contains a composite query that uses a column alias as an ORDER BY term. (check-in: 2ca6b8f8 user: dan tags: trunk)
19:25
Stricter enforcement of cell sizes when doing balancing operations on the btree, in order to catch file corruption sooner. (check-in: 12713f32 user: drh tags: trunk)
19:17
Fix another fts5 crash that can occur if the database is corrupted. (check-in: 44ce8baa user: dan tags: trunk)
16:59
Fix problems with sub-selects in WINDOW definitions. Also rename-column operations when the column being renamed appears in a WINDOW definition that is part of a VIEW or TRIGGER. (check-in: 0387cb3a user: dan tags: trunk)
12:19
Fix a buffer overwrite triggered by a prefix query on a corrupt fts5 table. (check-in: 1d8172a9 user: dan tags: trunk)
2019-01-22
21:17
Fix a buffer overrun that could occur in fts5 if a prefix query is made on a corrupt database. (check-in: 1abc4415 user: dan tags: trunk)
20:18
Do not run shmlock.test as part of the journaltest permutation. (check-in: 5b7d0c78 user: dan tags: trunk)
18:20
Add the SQLITE_ENABLE_EARLY_CURSOR_CLOSE compile-time option which causes read cursors to be closed after their usefulness ends during a two-pass UPDATE. (check-in: 8790368b user: mistachkin tags: branch-3.26)
16:44
Use _strdup() instead of strdup() on Windows builds of the CLI, to avoid a compiler warning reported on the mailing list. (check-in: a7126a4f user: drh tags: trunk)
16:43
Fix the SQLITE_DESERIALIZE_READONLY feature so that it does not cause an assertion fault in the pager. (check-in: b9eccef7 user: drh tags: trunk)
16:11
Update dbfuzz2 to set a maximum database size of 100MiB by default, but with the new --max-db-size N option to change that limit. (check-in: 21d6bb78 user: drh tags: trunk)
16:06
Enhancements to deserialize: (1) Add the SQLITE_FCNTL_SIZE_LIMIT file control to set a maximum size for an in-memory database, defaulting to SQLITE_MEMDB_DEFAULT_MAXSIZE or 1GiB. (2) Honor the SQLITE_DESERIALIZE_READONLY flag. (3) Enhance the TCL interface to support -maxsize N and -readonly BOOLEAN. (4) Add the --maxsize option to the ".open" command and on the command-line for the CLI. (check-in: 30f08d58 user: drh tags: trunk)
13:45
Make sure cursors are opened on all indexes for an UPDATE OR REPLACE regardless of whether or not the indexes are partial or contain columns that might need to be updated. (check-in: e148cdad user: drh tags: trunk)
12:21
Fix another segfault caused by a corrupt fts3 database. (check-in: ba3b8412 user: dan tags: trunk)
02:34
Ensure that a key comparison does not read a collating sequence past the end of the KeyInfo, even if the key field of an index is corrupted by having a string in the last column instead of the ROWID. (check-in: 058a8006 user: drh tags: trunk)
2019-01-21
23:18
Enhance the btree search routine so that it does early detection of impossibly large keys and thereby avoids a large malloc() call. (check-in: 3ecaaee6 user: drh tags: trunk)
17:57
Avoid deferencing a freed pointer following an OOM or SQLITE_CORRUPT error in the fts3 xDestroy method. (check-in: 505ed9a4 user: dan tags: trunk)
16:12
Remove a faulty assert() from fts3. (check-in: 6c33a303 user: dan tags: trunk)
16:01
Make sure the extra bytes allocated for the saved cursor position by check-in [160b1e31c0f27257] are initialized to zero. (check-in: 27375649 user: drh tags: trunk)
14:55
Add the --memtrace option to the CLI. (check-in: a1e12fa2 user: drh tags: trunk)
14:49
Minor fix the fallocate.test module change from [7cd56cad5efead5] (check-in: 94fb7a47 user: drh tags: trunk)
13:47
Add the --max-data and --max-as options to dbfuzz2. Also cause dbfuzz2 to show its maximum RSS size upon exit in standalone mode with the -v option. (check-in: 7ce93e82 user: drh tags: trunk)
2019-01-20
00:03
Add the --max-stack option to dbfuzz2. (check-in: c11ae4fe user: drh tags: trunk)
2019-01-19
15:55
Avoid a division-by-zero error in fts5 caused by a corrupt database. (check-in: 928e6221 user: dan tags: trunk)
15:27
Remove a broken assert() triggered by a "PRAGMA max_page_count = N" invocation, where N is larger than the number of pages in the database image, but smaller than the number of pages in the database file. (check-in: 7cd56cad user: dan tags: trunk)
14:07
Fix a problem with using ALTER TABLE to rename a table or column when the database schema contains a trigger or view that itself contains an expression "<column> AND 0". (check-in: 908ff7ff user: dan tags: trunk)
2019-01-18
21:17
Fix a memory leak introduced by [55c5d72a]. (check-in: fbd681dc user: dan tags: trunk)
21:12
Fix a crash in the fts5vocab module caused by including a "term < NULL" term in a WHERE clause. (check-in: 9e717c43 user: dan tags: trunk)
21:03
Fix an infinite loop caused by a corrupt database in fts3. Also an undefined left-shift in fts5. (check-in: 55c5d72a user: dan tags: trunk)
20:15
Avoid passing a NULL pointer to memcpy in fts5, even if the database is corrupt. (check-in: acccc980 user: dan tags: trunk)
19:33
Typecasts added to the GeoPoly extension to avoid harmless UBSAN warnings. (check-in: a1f6a093 user: drh tags: trunk)
19:26
Fix problems causing undefined left-shift operations in the fts3 snippet() function. (check-in: b90dbaed user: dan tags: trunk)
18:52
Avoid integer overflow when computing the array of a bounding box with the rtree_i32 virtual table. (check-in: b352f159 user: drh tags: trunk)
17:53
Handle oversize floating point values carefully when converting to integers for the '%' binary operator. (check-in: 048add13 user: drh tags: trunk)
16:06
Fix a fairly obscure problem allowing an "ALTER TABLE RENAME col TO ..." statement to modify the schema in such a way as to break a reference within a trigger program. (check-in: 64bec9e6 user: dan tags: trunk)
14:53
Use the full 64-bit integer value in the argument to randomblob(). (check-in: 05df5f7a user: drh tags: trunk)
2019-01-17
20:19
Disable the xfer-optimization if the two tables have the same root page due to schema corruption. (check-in: f31b3bd2 user: drh tags: trunk)
20:06
Fix another corruption related crash in fts5. (check-in: 4538d9af user: dan tags: trunk)
19:33
Add the SQLITE_ENABLE_EARLY_CURSOR_CLOSE compile-time option which causes read cursors to be closed after their usefulness ends during a two-pass UPDATE. (check-in: 7def6c8e user: drh tags: trunk)
19:11
Fix a buffer overwrite that could occur when running an fts5 prefix query against a corrupt database. (check-in: 3910b563 user: dan tags: trunk)
17:39
Fix problems with joining two or more fts5_vocab tables that access the same underlying fts5 table. (check-in: 49956395 user: dan tags: trunk)
15:47
Sync up with the latest enhancements on trunk. (check-in: 475a179a user: drh tags: apple-osx)
15:40
Revamp the SrcList allocator routines to be methods of Parse instead of being methods of the "sqlite3" object, so that they can leave better error messages when the SrcList object grows too large. (check-in: df08d472 user: drh tags: trunk)
14:34
Limit the size of SrcList objects to 200 entries (compile-time configurable using -DSQLITE_MAX_SRCLIST=n). The maximum number of tables in a join has always been 64, so this is not a real constraint on capability. Limiting the size of a SrcList prevents DOS attacks (discovered by OSSFuzz) using crazy nexted CTE joins. (check-in: 7cac614d user: drh tags: trunk)
04:40
Fix a corner-case for the logic that cause an insert of a NULL into an INTEGER PRIMARY KEY column to be converted into a valid integer key, when the NULL results from a CASE expression that lacks an ELSE clause. (check-in: 9a425051 user: drh tags: trunk)
03:43
Ensure that the variable-length integer decoder in FTS3 never tries to left-shift a negative number. (check-in: 10ffc1fe user: drh tags: trunk)
01:06
Fix a failure in sqlite3ExprCompare() (check-in: 835e2cc5 user: drh tags: trunk)
2019-01-16
20:48
Fix a problem with fix [b4b57413]. (check-in: ca7b7aae user: dan tags: trunk)
19:44
Fix a problem in the fts3 matchinfo() function with corrupt database handling. (check-in: 24ed5fb6 user: dan tags: trunk)
19:26
Fix a problem in the code generator for sorting results with SRT_EphemTab and a LIMIT clause. (check-in: 49fcde2f user: drh tags: trunk)
14:58
Fix a problem with renaming a column that is used as part of an ORDER BY on a compound SELECT within a database view or trigger. (check-in: b4b57413 user: dan tags: trunk)
12:05
Avoid a dangling pointer comparison when renaming a table that has a trigger that itself contains a window function with an (illegal) column reference in a FOLLOWING expression. (check-in: d45bee36 user: dan tags: trunk)
11:38
Fix a memory leak that could occur in fts3 when handling a corrupt database. (check-in: 65cebb06 user: dan tags: trunk)
2019-01-15
20:51
Fix a problem with ALTER TABLE and vector assignments in UPDATE statements within triggers. (check-in: cc6cd753 user: dan tags: trunk)
18:14
Handle SQL NULL values without crashing in the fts5 snippet() and highlight() functions. (check-in: a5e9cc79 user: dan tags: trunk)
16:14
Fix a buffer overread in fts3 caused by a corrupt record. (check-in: e54efd60 user: dan tags: trunk)
15:18
Have fts5 reject attempts to insert a non-integer, non-null value into a rowid column with SQLITE_MISMATCH. (check-in: 4a9483f8 user: dan tags: trunk)
14:44
Fix a harmless memory leak in the Lemon parser generator utility program. (check-in: 1caff0fb user: drh tags: trunk)
14:31
Fix a problem triggered by DELETE statements with WHERE clauses that use the OR-optimization on some virtual tables. (check-in: ecf5caa7 user: dan tags: trunk)
2019-01-14
20:44
Add scalar function "prefix_length()" to ext/misc/prefixes.c. (check-in: 0bf15505 user: dan tags: trunk)
19:13
Fix a problem causing some Tcl test cases to fail with errors like "expected: [<multiline-whitespace>], got: []". (check-in: 11b8a4cb user: dan tags: trunk)
16:16
Add the "prefixes" table-valued function in the ext/misc folder. (check-in: f0fd2163 user: drh tags: trunk)
15:35
Fix a problem causing a crash if an fts5vocab table was created to query an fts3/4 FTS index. (check-in: 9cd64ce4 user: dan tags: trunk)
15:09
Fix a problem with querying a corrupt fts3 database. (check-in: 65e50706 user: dan tags: trunk)
13:32
When parsing a corrupt record using sqlite3VdbeRecordUnpack(), make sure that the resulting UnpackedRecord object is completely initialized, to avoid (harmless) MSAN warnings. (check-in: ddc3697e user: drh tags: trunk)
11:56
Have fts3 ignore empty sets of parenthesis if built with SQLITE_ENABLE_FTS3_PARENTHESIS. (check-in: c93c6b45 user: dan tags: trunk)
05:48
Avoid reading off the front of a page buffer when balancing a corrupt btree page. (check-in: cb505090 user: drh tags: trunk)
2019-01-13
20:23
In dbfuzz2, avoid using a malloc in the LLVMFuzzerInitialize() initializer routine, so that no memory leaks are reported. Also, show the version of SQLite being used when the -v option is on. (check-in: 824f9324 user: drh tags: trunk)
20:17
Relax the minimum size database file constraint on the dbtotxt utility program. (check-in: 97e723d7 user: drh tags: trunk)
20:17
Improved detection of database corruption while balancing pages from an auto_vacuum database with overflow pages. Test cases in TH3. (check-in: 35f04235 user: drh tags: trunk)
00:58
Move a local variable declaration into the outermost scope in which it is used. This fixes an ASAN warning. (check-in: ac3b6021 user: drh tags: trunk)
2019-01-12
21:30
Prevent unsigned 32-bit integer overflow from leading to a buffer overread inside of an assert(). The problem fixed here is no reachable in production code. (check-in: 0f850a25 user: drh tags: trunk)
20:55
Fix another problem with handling corrupt records in fts5_decode(). (check-in: 726e398b user: dan tags: trunk)
16:19
Fix an off-by-one error on a Goto in the code generator, that only causes problems for a REPLACE on an INTEGER PRIMARY KEY in non-debug builds. Test case in TH3. (check-in: e35eb877 user: drh tags: trunk)
14:58
Fix a problem with corrupt database handling in the fts3 matchinfo() function. (check-in: 703646b1 user: dan tags: trunk)
00:45
Improved detection of shadow table corruption in the fts5_decode() SQL function. (check-in: b74e5f3f user: drh tags: trunk)
00:12
Improved shadow table corruption detection in the matchinfo() function of FTS3. (check-in: 567be3bb user: drh tags: trunk)
00:07
Indicate that the database may be corrupt in the fts3corrupt4.test test script. (check-in: 473626d5 user: drh tags: trunk)
2019-01-11
23:08
Use 64-bit APIs in the fileio.c extension. (check-in: b49d56a0 user: drh tags: trunk)
21:34
Fix a segfault in fts3 prompted by a corrupted database. (check-in: 2d7b1d1d user: dan tags: trunk)
19:27
Fix another problem with corrupt databases in fts5. (check-in: 9bf811ea user: dan tags: trunk)
17:41
Fix a problem handling a negative value in the "number-of-pages" database header field. Also a problem with running "REINDEX tbl" against a virtual table for which the SQL passed to sqlite3_declare_vtab() contains PRIMARY KEY or UNIQUE constraints. (check-in: 556dd892 user: dan tags: trunk)
17:20
Improved detection and reporting of errors in the readfile() extension SQL function. (check-in: d2f0b5a4 user: drh tags: trunk)
17:19
Omit errors about missing SAVEPOINTs when aborting the .archive command in the CLI. (check-in: 2a47387b user: drh tags: trunk)
16:44
Improved detection of cell corruption in sqlite3VdbeRecordCompareWithSkip(). (check-in: fa47f4c6 user: drh tags: trunk)
15:26
Merge documentation changes from branch begin-concurrent-wal2 into this branch. (check-in: cf8a0c71 user: dan tags: begin-concurrent-pnu-wal2)
15:22
Merge documentation changes from branch "begin-concurrent" into this branch. (Closed-Leaf check-in: 41e742bd user: dan tags: begin-concurrent-wal2)
15:06
Add new documentation file begin_concurrent.md. (check-in: fdbf97e6 user: dan tags: begin-concurrent)
15:00
Merge latest begin-concurrent-wal2 changes (documentation only). (check-in: d0ab56a3 user: dan tags: begin-concurrent-pnu-wal2)
14:59
Merge latest wal2 changes (documentation only) into this branch. (check-in: 820ba1cc user: dan tags: begin-concurrent-wal2)
14:58
Add new file doc/wal2.md to this branch. (check-in: b495dce1 user: dan tags: wal2)
14:46
Fix PRAGMA integrity_check so that it does not cancel the PRAGMA vdbe_debug setting. (check-in: aaa3a19f user: drh tags: trunk)
14:38
Add the --vdbe-debug command-line option to dbfuzz2. (check-in: 599b4df4 user: drh tags: trunk)
14:22
Add the "dbfuzz2" target to main.mk. Remove an unused local variable from dbfuzz2.c. (check-in: 05c7609c user: drh tags: trunk)
13:32
The keywords TRUE and FALSE should only act as boolean literal values if unquoted. (check-in: 5547f39d user: drh tags: trunk)
13:03
Separate makefile targets for "dbfuzz2", "dbfuzz2-asan", and "dbfuzz2-msan". (check-in: ea119641 user: drh tags: trunk)
2019-01-10
19:26
Fix a memory leak in fts5 that could occur if scalar function fts5_decode() was passed a corrupt record. (check-in: 240f1c0c user: dan tags: trunk)
18:35
Fix a memory leak in fts5. (check-in: ff3b011f user: dan tags: trunk)
17:08
Avoid use-after-free and double-free errors that could occur if an fts5 table is modified in certain ways while there are active cursors. (check-in: 3291b2a6 user: dan tags: trunk)
15:17
Fix further problems with fts5 handling corrupt databases. (check-in: 83c467d7 user: dan tags: trunk)
14:33
More aggressive early detection of orphaned and malformed autoindexes when parsing the schema. (check-in: 10f9e39d user: drh tags: trunk)
13:56
Use the new SQLITE_IDXTYPE_IPK values (3) on Index.idxType to indicate the fake INTEGER PRIMARY KEY index used during query planning. (check-in: e22d2f90 user: drh tags: trunk)
01:12
Fix the fts3DecodeIntArray() function so that it will not read off the end of the buffer it is handed. Any unread integers are set to zero. (check-in: 666cf8f6 user: drh tags: trunk)
2019-01-09
21:12
Fix an out-of-bounds read in SQL function fts5_decode() that could occur if it was passed a corrupt record. (check-in: 931278b2 user: dan tags: trunk)
14:49
Adjustments to the page cache to try to avoid harmless TSAN warnings. (check-in: 383437be user: drh tags: trunk)
11:19
Improved database corruption detection in the dbstat virtual table. (check-in: fc5ecc88 user: drh tags: trunk)
11:06
Small simplification to the dbstat virtual table. (check-in: 9d4c156f user: drh tags: trunk)
02:02
Enhance the ALTER TABLE RENAME COLUMN feature so that it works on tables that have redundant UNIQUE and/or PRIMARY KEY constraints. Fix for ticket [bc8d94f0fbd633fd9a051e3] (check-in: f09aa324 user: drh tags: trunk)
2019-01-08
20:02
Use 64-bit math to compute the sizes of memory allocations in extensions. (check-in: ca67f2ec user: drh tags: trunk)
15:18
Performance improvement on the instr() function, especially for large haystacks. (check-in: ce51f1a2 user: drh tags: trunk)
14:28
Fix a possible memory leak when trying to UPDATE a corrupt RTREE index. (check-in: 63eb803d user: drh tags: trunk)
08:02
Fix further problems with fts5 and corrupt databases causing integer overflow. (check-in: 673a7dd6 user: dan tags: trunk)
2019-01-07
16:52
Fix another potential buffer overread in fts5. (check-in: d0e943d9 user: dan tags: trunk)
15:57
For SQLITE_ENABLE_PREUPDATE_HOOK builds, disable the optimization for a REPLACE command on a WITHOUT ROWID table with no indexes, triggers or foreign key constraints that causes SQLite to clobber any existing row without separately checking for it. This optimization causes SQLite to omit the expected pre-update-hook callbacks. (check-in: 6281ef97 user: dan tags: trunk)
2019-01-06
02:06
The page size becomes fixed as soon as page1 from a non-empty database file is read. (check-in: 6064584d user: drh tags: trunk)
01:46
Give symbolic names to the special prepared statements used to implement incremental blob I/O. (Leaf check-in: 2a1cc632 user: drh tags: named-blob-I/O)
2019-01-05
21:56
Add the exprNodeCopy() routine that will safely memcpy() an Expr node that might be a size-reduced node. (check-in: a874c649 user: drh tags: trunk)
21:09
If the OP_ParseSchema opcode with a non-NULL P4 operand does not parse any rows out of the sqlite_master table, that indicates that the sqlite_master table is corrupt, so raise an SQLITE_CORRUPT error. (check-in: 598d7358 user: drh tags: trunk)
07:17
Fix two more problems with corrupt database handling in fts5. (check-in: 444c7c99 user: dan tags: trunk)
2019-01-04
23:39
Give a meaningful error on an attempt to use UPSERT on a virtual table, rather than simply not working. (check-in: fa98748f user: drh tags: trunk)
19:39
Fix the experimental sqlite3_wal_info() API so that it works with wal2 mode. (check-in: 079daedb user: dan tags: begin-concurrent-pnu-wal2)
19:25
Add the "-external" option to the tserver_test.tcl program.. (check-in: ae7c5ed1 user: dan tags: begin-concurrent-pnu-wal2)
17:12
Update the "tserver" program to report the amount of time spent in COMMIT commands. (check-in: cf494b41 user: dan tags: begin-concurrent-pnu-wal2)
14:29
If the ".open" command fails in the CLI, reopen to :memory: so that at least some database is available for subsequent commands. (check-in: d7f55c62 user: drh tags: trunk)
12:46
Remove debugging pragmas accidently left in by a prior change. (check-in: 26275fc7 user: drh tags: trunk)
12:35
Fix a typo in a comment used to generate documentation. No functional changes. (check-in: ccc4f742 user: drh tags: trunk)
11:20
Fix another fts5 assert() that may fail if the database is corrupt. (check-in: 0888fc2e user: dan tags: trunk)
2019-01-03
19:12
Fix some problems with sqlite3_interrupt() handling in fts5. (check-in: c0eb839a user: dan tags: trunk)
16:03
Fix the csv01.test module so that it works on systems with \r\n line endings. (check-in: 36eaf5a5 user: drh tags: trunk)
16:00
Fix the shmlock.test script so that it works with the Windows restriction that UnlockFile must exactly correspond to a prior LockFile. (check-in: df939c89 user: drh tags: trunk)
15:22
Fix a harmless compiler warning in the CSV extension. (check-in: fbcd7256 user: drh tags: trunk)
15:17
Fix a problem with the second and subsequent sqlite3rbu_savestate() calls made on an RBU vacuum handle. (check-in: bef216df user: dan tags: trunk)
00:44
Fix the geopoly_svg() function so that it returns NULL when given zero arguments. (check-in: 120cb176 user: drh tags: trunk)
2019-01-02
23:49
Fix harmless compiler warnings in the unicode2 logic of FTS3 and FTS5. (check-in: 703029ac user: drh tags: trunk)
19:46
Merge changes from begin-concurrent-wal2. Also modify the unix-excl shm-locks on this branch so that it is not an error to attempt to release an EXCLUSIVE lock that is not held. (check-in: 86685679 user: dan tags: begin-concurrent-pnu-wal2)
17:08
Reinstate assert() statements in os_unix.c that were removed to allow wal-mode SHARED locks to be taken over more than one locking slot (this branch no longer does that, so the assert() statements can go back in). (check-in: fcb7348b user: dan tags: begin-concurrent-wal2)
17:00
Reinstate assert() statements in os_unix.c that were removed to allow wal-mode SHARED locks to be taken over more than one locking slot (this branch no longer does that, so the assert() statements can go back in). (check-in: 8445fb6d user: dan tags: wal2)
16:30
Merge latest wal2 changes into this branch. (check-in: c31eeb3c user: dan tags: begin-concurrent-wal2)
16:15
Merge latest trunk changes into this branch. (check-in: 87ef68f9 user: dan tags: wal2)
16:08
Merge latest trunk changes into this branch. (check-in: 5bf212f1 user: dan tags: begin-concurrent)
16:01
Add another test case to vacuum-into.test. (check-in: 0465d2fc user: dan tags: trunk)
15:27
Add test cases for commit [6c6fb1c6]. (check-in: 3961995c user: dan tags: trunk)
14:34
Raise an error if the argument to VACUUM INTO is an identifier. (check-in: 6c6fb1c6 user: drh tags: trunk)
2019-01-01
19:17
Fix another fts5 problem caused by a corrupt database. (check-in: 911342f7 user: dan tags: trunk)
18:00
Ensure that when a new cursor is opened by OP_OpenDup, any existing cursor with the same id opened by a previous OP_OpenDup is closed first. (check-in: 5c188361 user: dan tags: trunk)
13:59
Fix another case in fts5 where a corrupt database could cause a buffer overread. (check-in: f7e6cdc5 user: dan tags: trunk)
2018-12-31
21:43
Fix harmless compiler warnings. (check-in: b57c545a user: drh tags: trunk)
20:39
Additional steps to help ensure that scalar subqueries are only evaluated once even if they are used in multiple places within the query. This fixes a performance regression reported on the mailing list and caused by check-in [531eca6104e41e43] which was a fix for ticket [787fa716be3a7f650c]. Think of this check-in as an improved fix for that ticket. (check-in: e1303193 user: drh tags: trunk)
20:13
Remove an optimization that can no longer occur, being superceded by the subquery-reuse optimization. Put an assert in place of the optimization to detect if the need for this optimization ever returns. (Closed-Leaf check-in: 4fcdc7a2 user: drh tags: reuse-subqueries)
18:30
Merge enhancements and bug fixes from trunk. (check-in: 9fb646f2 user: drh tags: reuse-subqueries)
17:58
Small changes to the OP_OpenEphemeral opcode to improve testability. (check-in: f856676c user: drh tags: trunk)
16:36
Fix the OP_OpenEphemeral opcode in the bytecode engine so that if it is called a second or subsequent time, it merely clears the existing table rather than creating a new one. Proposed fix for ticket [d0866b26f83e9c55e30de0821f5d]. (check-in: 4678cb10 user: drh tags: trunk)
2018-12-29
20:47
Merge latest begin-concurrent changes with this branch. (check-in: 1625887c user: dan tags: begin-concurrent-wal2)
20:42
Fix a problem causing a corrupt pager-cache if an OOM or IO error was encountered while committing a concurrent transacation. (check-in: 48ca30f9 user: dan tags: begin-concurrent)
16:34
Increase coverage provided by permutation "coverage-wal" on this branch. (check-in: f664f940 user: dan tags: begin-concurrent-wal2)
14:23
Additional small performance increase and size reduction to the sqlite3VdbeMakeLabel() mechanism. (check-in: 1bdee199 user: drh tags: trunk)
02:26
A new implementation of sqlite3VdbeMakeLabel() is faster and makes fewer memory allocations by deferring memory allocation until sqlite3VdbeResolveLabel() is called, at which point the code generator has a better idea of how big the relocation table needs to be. The sqlite3VdbeMakeLabel() routine now takes a Parse* parameter instead of Vdbe*. (check-in: 4a0929ac user: drh tags: trunk)
2018-12-28
21:40
Merge performance enhancements and other patches. (Leaf check-in: 44e1b55a user: drh tags: factor-out-scalar-subselect)
21:32
Merge performance enhancements from trunk. (check-in: 0f1b9ff9 user: drh tags: reuse-subqueries)
20:48
Faster allocation of new sqlite3_stmt objects. (check-in: 891f1f72 user: drh tags: trunk)
20:14
Move the nOpAlloc field from Parse into Vdbe to avoid an extra pointer deference on the fast path in sqlite3VdbeAddOp3(). (check-in: 8f10efc2 user: drh tags: trunk)
19:23
Merge patches and enhancements from trunk. (check-in: da53f3d3 user: drh tags: reuse-subqueries)
18:09
Fix another problem with loading the structure record from a corrupt fts5 database. (check-in: c4d44542 user: dan tags: trunk)
17:45
Fix a problem causing the sqlite_master entry corresponding to a virtual table to be removed by a DROP TABLE even if the call to the vtabs xDestroy() method failed. (check-in: 0140f6db user: dan tags: trunk)
16:20
Add new test file wal2rollback.test to this branch. (check-in: 85a376fc user: dan tags: wal2)
14:33
Avoid an undefined left-shift operation in fts5 caused by malformed utf-8 text. (check-in: c3a3a111 user: dan tags: trunk)
13:57
Fix a buffer overwrite in fts5 triggered by a corrupt database. (check-in: a385298d user: dan tags: trunk)
07:37
Fix problems in fts5 found by ASAN. (check-in: c564bf87 user: dan tags: trunk)
2018-12-27
20:12
Fix another problem with corrupt database handling in fts5. (check-in: fb0d7fba user: dan tags: trunk)
17:11
Merge latest wal2 changes with this branch. (check-in: ea96001e user: dan tags: begin-concurrent-wal2)
16:55
Modify the btree02.test module so that it does not depend on whether TCL interprets a value as a string or as an integer. (check-in: d9e4f957 user: drh tags: trunk)
16:49
Increase test coverage of wal.c provided by permutation "coverage-wal" on this branch. (check-in: 2f7f893a user: dan tags: wal2)
15:36
Fix another problem in fts5 caused by a corrupt schema record. (check-in: ff45f9dd user: dan tags: trunk)
13:52
Fix the filename normalization in the dbtotxt utility program. (check-in: 29a00a05 user: drh tags: trunk)
07:46
Fix a null-pointer dereference that could occur in fts5 with a corrupt database. (check-in: b0a49d5e user: dan tags: trunk)
02:16
Fix a problem in which nested CTEs with the same table name trick the code generator into thinking they are the same CTE, which then tries to use the manifest them both into the same transient table. (check-in: 202dd033 user: drh tags: trunk)
00:30
In the treeview debugging output, provide additional details for the Table object associated with each FROM clause term. (check-in: 11d4682d user: drh tags: trunk)
2018-12-26
20:42
Improve testing of the wal.c changes on this branch. (check-in: 63483e22 user: dan tags: wal2)
19:10
Merge latest trunk changes with this branch. (check-in: 404f9d99 user: dan tags: wal2)
18:34
Update the coverage-wal permutation to cover branches enabled by SQLITE_ENABLE_SNAPSHOT. (check-in: 6821c61f user: dan tags: trunk)
17:49
Add a few more test cases to walvfs.test. (check-in: 14a64df3 user: dan tags: trunk)
16:57
Avoid an "uninitialized value read" problem in fts5 that can occur with a corrupt database. (check-in: 6cae81cd user: dan tags: trunk)
16:04
Fix a problem with handling corrupt databases in the fts5 integrity-check function. (check-in: 9bad745d user: dan tags: trunk)
15:04
Here is the beginnings of an effort to factor out the implementation of scalar subqueries to be implemented as subroutines at the end of the main body of bytecode, after the jump back to the OP_Init opcode. This is an incremental check-in that contains only preliminary changes. (check-in: 50e5f390 user: drh tags: factor-out-scalar-subselect)
14:23
Fix a problem with corrupt fts3 database detection introduced by [27199380]. (check-in: ceeb4fba user: dan tags: branch-3.22)
14:15
Fix a problem with corrupt fts3 database detection introduced by [95a9a39f]. (check-in: c80bb15b user: dan tags: trunk)
12:50
Fix a problem with the CSV extension when it uses the "header" option on a real file. (check-in: 7acaed08 user: drh tags: trunk)
11:39
Avoid a left-shift of a negative value (undefined behaviour) when dealing with a corrupt database in fts3. Cherrypick of [b851d12474]. (check-in: 2fa63a8b user: dan tags: branch-3.22)
2018-12-25
11:17
Fix a typo in a comment that is used to generate session documentation. (check-in: a1f50d57 user: drh tags: trunk)
00:15
Increase the number of parameters to sqlite3WhereCodeOneLoopStart() to encourage the compiler to inline that routine within sqlite3WhereBegin(). This gives a performance improvement. (check-in: 3c2ad0e9 user: drh tags: reuse-subqueries)
2018-12-24
20:21
Improvements to EXPLAIN QUERY PLAN formatting. The MULTI-INDEX OR now shows a separate "INDEX" subtree for each index. SCALAR SUBQUERY entries provide a subquery number that is related back to the .selecttrace output. (check-in: 7153552b user: drh tags: reuse-subqueries)
20:00
Add a few more test cases to walfault2.test and walvfs.test. (check-in: 3873941c user: dan tags: trunk)
19:59
Change another fts5 assert() that may fail with a corrupt database to an assert_nc(). (check-in: d9653380 user: dan tags: trunk)
18:51
Add test cases to test file walvfs.test. (check-in: d697f6f3 user: dan tags: trunk)
18:10
Always include OP_Explain opcodes in the bytecode when SQLITE_DEBUG is enabled. (check-in: d8c1235c user: drh tags: trunk)
15:22
Copy some extra test infrastructure from the mutexfree-shmlock branch to trunk. (check-in: 883337ff user: dan tags: trunk)
15:15
Merge latest trunk with this branch. (Leaf check-in: 606b1ead user: dan tags: mutexfree-shmlock)
14:30
Restore a line of code that was previously commented out for debugging. (check-in: e53781f5 user: drh tags: reuse-subqueries)
13:39
Change the way a comparison used to detect corrupt databases in fts3 is done to avoid potential pointer overflow in 32-bit builds. Cherrypick of [95a9a39ff7]. (check-in: 27199380 user: dan tags: branch-3.22)
13:34
Change the way a comparison used to detect corrupt databases in fts3 is done to avoid potential pointer overflow in 32-bit builds. (check-in: 95a9a39f user: dan tags: trunk)
12:09
Do not generate subroutines for non-static SELECT and EXISTS expressions. Fix up some test cases to account for the minor changes in EXPLAIN QUERY PLAN output. (check-in: 06de44ec user: drh tags: reuse-subqueries)
11:55
Prevent the use of subroutines to implement the RHS of IN operators within CHECK constraints. (check-in: 6b24d3fb user: drh tags: reuse-subqueries)
02:34
Experimental code that tries to put the computation of subqueries inside a subroutine, and reuse that subroutine if the same subquery is evaluated more than once. Current code does not work for CHECK constraints. (check-in: 6c44838a user: drh tags: reuse-subqueries)
2018-12-23
21:27
Split the code generation for the RHS of IN operators and for SELECT and EXISTS expressions into two separate subroutines, because there is now little commonality between those to functions. This is intended to help make the code easier to read and maintain. (check-in: 2b6494b1 user: drh tags: trunk)
2018-12-22
20:32
Improve the coverage of wal.c provided by the "coverage-wal" test permutation. (check-in: 62314851 user: dan tags: trunk)
19:54
Catch another case of a corrupted structure record in fts5. (check-in: fb17fea4 user: dan tags: trunk)
19:09
Change a faulty assert() in fts5 that could fail on a corrupt db to an if() statement. (check-in: 1daaba9f user: dan tags: trunk)
16:14
Fix one more instance of excess whitespace in test result strings. (check-in: c064964d user: drh tags: trunk)
15:50
Enhance the wal2 header comment in wal.c to explain how the wal-hook is invoked in wal2 mode. (check-in: 118aa7e3 user: dan tags: wal2)
15:46
Remove unnecessary whitespace from testcase result strings. (check-in: ad70f03c user: drh tags: trunk)
15:21
Fix an assert() in fts5 that could fail with a corrupt database. (check-in: 83935b95 user: dan tags: trunk)
13:34
Fix a "jump or move depends on uninitialized value" valgrind error that could occur in fts5 when dealing with a corrupt database. (check-in: 3518c09b user: dan tags: trunk)
09:39
Avoid a left-shift of a negative value (undefined behaviour) when dealing with a corrupt database in fts3. (check-in: b851d124 user: dan tags: trunk)
07:16
Fix cut-and-paste error in test file fts4umlaut.test. (check-in: cad5da1b user: dan tags: trunk)
01:13
Do not all REPLACE to sneak a NULL value into a NOT NULL column. Detect that situation and ABORT instead. Fix for ticket [e6f1f2e34dceeb1ed61531c7e98]. (check-in: db8d1d12 user: drh tags: trunk)
00:34
The OP_Eq and OP_Ne operators have a special P5 value SQLITE_NOTNULL that asserts that the values are not null. Except that is not always true for a corrupt database. Adjust the assert() and add a testcase() to make this point clear. (check-in: a3fdb2c7 user: drh tags: trunk)
2018-12-21
22:11
Update the dbtotxt utility program so that it does not output characters that are special to TCL, thus making the output of dbtotxt easier to insert into test scripts. (check-in: 48438bb3 user: drh tags: trunk)
22:08
Improved detection of shadow table corruption in RTREE. (check-in: b39bf435 user: drh tags: trunk)
20:18
Add new sqlite3_prepare_v3() flag SQLITE_PREPARE_NO_VTAB, for preparing statements that are not allowed to use any virtual tables. Use this to prevent circular references in triggers on virtual table shadow tables from causing resource leaks. (check-in: da587d18 user: dan tags: trunk)
19:55
Use SQLITE_PREPARE_NO_VTAB in rtree as well. (Closed-Leaf check-in: 82a2ae71 user: dan tags: prepare-no-vtab)
19:30
Add tests for the use of SQLITE_PREPARE_NO_VTAB in fts5. (check-in: 19996120 user: dan tags: prepare-no-vtab)
19:29
Add new sqlite3_prepare_v3() flag SQLITE_PREPARE_NO_VTAB, for preparing statements that are not allowed to use any virtual tables. Use this to prevent circular references in triggers on virtual table shadow tables from causing resource leaks. (check-in: 25666e3d user: dan tags: prepare-no-vtab)
18:51
In FTS3, avoid calling memcpy() with a NULL source pointer, even if the transfer amount is zero bytes. (check-in: 1abb83d2 user: drh tags: trunk)
18:50
The fts4umlaut.test module requires FTS5, so do not try to run it without that module. (check-in: dee3ae90 user: drh tags: trunk)
18:17
Fix the node hash function in RTREE to ensure that it always returns a non-negative value. (check-in: 0bf4c70a user: drh tags: trunk)
17:51
Fix a potential NULL-pointer deference in RTREE due to corrupt shadow tables. (check-in: 1fdd3604 user: drh tags: trunk)
16:53
Prevent an infinite loop in rtree that can result from a corrupt shadow table. (check-in: 08566718 user: drh tags: trunk)
15:13
Fix the RTree extension so that it correctly ignores constraints that it does not understand, even if they are against a dimension column. (check-in: ed8531e5 user: drh tags: trunk)
13:30
In RTREE, turn an assert() into an if() because the condition can sometimes be false when dealing with a corrupt database. (check-in: 99bce435 user: drh tags: trunk)
11:53
Remove an assert() that could fail on a corrupt db from fts3_write.c. (check-in: 4cdcda40 user: dan tags: trunk)
2018-12-20
22:08
Do not set the Cursor.seekOp test variable in the OP_NotExists opcode. This is a change to test logic only and does not affect deliverable builds. (check-in: 98f34307 user: drh tags: trunk)
17:32
Fix a bug in the code that detects self-referencing rows as part of foreign key processing. Fix for [50d2a6c2]. (check-in: 16fff053 user: dan tags: trunk)
15:04
Fix a segfault caused by using the RAISE function incorrectly (library now returns an error instead of crashing). (check-in: ddf06db7 user: dan tags: trunk)
2018-12-19
17:05
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. Cherrypick from commit [8201f4e1] on branch-3.18. (check-in: 553a923c user: dan tags: branch-3.19)
16:03
Add interfaces sqlite3_bind_pointer(), sqlite3_result_pointer(), and sqlite3_value_pointer() used to safely move pointer values through SQL without exposing underlying memory address information. Cherrypick from commit [8201f4e1] on branch-3.18. (check-in: 4cb67252 user: dan tags: branch-3.9)
14:44
Fix a crash that can follow an OOM in fts3 on this branch. (check-in: de078148 user: dan tags: branch-3.19)
01:57
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: 882ef4e3 user: drh tags: branch-3.9)
01:44
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: 4f315e4a user: drh tags: branch-3.19)
01:38
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: 4bb21d82 user: drh tags: branch-3.18)
01:30
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: c255889b user: drh tags: branch-3.22)
2018-12-18
20:31
In defensive mode, do not allow shadow tables to be renamed using ALTER TABLE. (check-in: 23e200da user: dan tags: trunk)
19:46
Add the "mutexfree-shmlock" patch to this branch. (check-in: c3191fc8 user: dan tags: begin-concurrent-pnu-wal2)
18:16
Fix a test script problem in wal2savepoint.test. (check-in: e388d029 user: dan tags: begin-concurrent-pnu-wal2)
18:01
Merge the wal2 feature into this branch. (check-in: a2c618c0 user: dan tags: begin-concurrent-pnu-wal2)
17:47
Merge latest begin-concurrent changes into this branch. (check-in: a93ca38b user: dan tags: begin-concurrent-pnu)
17:32
Merge latest trunk changes into this branch. (check-in: b3a163b4 user: dan tags: begin-concurrent-wal2)
17:20
Merge latest trunk changes into this branch. (check-in: 123cbb33 user: dan tags: begin-concurrent)
16:24
Add the ".integrity_check" command to tserver. (check-in: fa46fa3b user: dan tags: begin-concurrent-wal2)
2018-12-17
22:19
Move variable declaration to address compilation issue (C89). (check-in: d64f248d user: mistachkin tags: trunk)
18:26
Add wal2 related tests to this branch. (check-in: 56458220 user: dan tags: begin-concurrent-wal2)
15:22
Merge changes from wal2 branch. (check-in: 85f49f0d user: dan tags: begin-concurrent-wal2)
15:22
Add extra test case to wal2recover.test. (check-in: 1a5aa734 user: dan tags: wal2)
2018-12-15
20:59
Merge latest wal2 changes into this branch. (check-in: 06bb80ee user: dan tags: begin-concurrent-wal2)
20:20
Further test cases for wal2 mode. (check-in: 9cb5f8da user: dan tags: wal2)
07:12
Fix errors in comments in fts5.h. (check-in: 4002790d user: dan tags: trunk)
2018-12-14
21:58
Experimental support for new sqlite3_bind_blob() and sqlite3_bind_text() interfaces that take an extra void* argument that is passed into the destructor in front of the object that is to be destroyed. (Leaf check-in: 33a1924e user: drh tags: custom-destructors)
19:53
Add further tests for wal2 mode. (check-in: 54e628f9 user: dan tags: wal2)
18:11
Fix harmless compiler warnings. (check-in: 27221c69 user: drh tags: trunk)
17:57
Fix possible integer overflow while running PRAGMA integrity_check on a database file with a badly corrupted freelist. (check-in: 39559911 user: drh tags: trunk)
16:20
Back out the expansion of the temporary buffer size from [32754ca6f86da816] and replace it with an explicit test for buffer overreads. (check-in: 8ba3d9f3 user: drh tags: trunk)
16:00
Avoid a buffer overread in ptrmapPutOvflPtr() that can occurs in a corrupt database file that has large entries and uses autovacuum. (check-in: f8b781cf user: drh tags: trunk)
13:47
Fix a harmless compiler warning in Sessions. (check-in: fc9791ea user: drh tags: trunk)
13:35
Expand the size of the temporary page used during btree rebalancing by a few bytes, to avoid problems with small buffer overreads that can occur on corrupted database files. (check-in: 32754ca6 user: drh tags: trunk)
13:18
When saving the position of a cursor at the b-tree layer, allocate a few extra bytes at the end of the buffer used to save the key. Otherwise, if the key is corrupt, the code that restores the cursor position may overread the buffer by a little. (check-in: 160b1e31 user: dan tags: trunk)
11:16
Fix a problem with bytecode generation when a query involves two or more indexes on expressions connected by OR. Ticket [d96eba87698a428c1ddd0790ea04] (check-in: 7e4ed8b5 user: drh tags: trunk)
08:40
Possible fix for [d96eba87]. (Closed-Leaf check-in: 89a25abf user: dan tags: tkt-d96eba87)
03:16
Report corruption when an attempt is made to write a pointer-map page that is also being used as a btree page. Also, fix a bug in fuzzcheck that cause it to overlook a pointer-map bug that was trigger by the fuzzcheck test data, and also fix the pointer-map bug. (check-in: cc42dd15 user: drh tags: trunk)
03:14
Detect when an attempt is made to write to a pointer map page that is also being used as a btree page and report corruption. (Closed-Leaf check-in: 3036fd71 user: drh tags: fuzzcheck-fix)
02:29
Fix a bug in the custom in-memory VFS used by fuzzcheck. This bug masks other bugs that should have caused some existing fuzzdata7.db entries to fail, and so this fix is initially on a branch until those other bugs can be repaired. (check-in: e0994e99 user: drh tags: fuzzcheck-fix)
2018-12-13
22:58
Fix the dbtotxt decoder in the CLI so that it ignores excess bytes. (check-in: 18740bd4 user: drh tags: trunk)
21:52
dbfuzz2 found a NEVER() that is sometimes true. (check-in: 1201615c user: drh tags: trunk)
21:11
Add extra tests for database corruption inside the defragmentPage() routine, as dbfuzz2 has found ways for corruption to leak into that point. Add test cases in fuzzdata7.db. (check-in: 997b6511 user: drh tags: trunk)
21:05
Fix a problem in sqlite3BtreeDelete() in which deleting an entry from a corrupt database can leave a btree page with zero cells. (check-in: 682053d1 user: drh tags: trunk)
20:49
Add the "decode_hexdb" TCL command to testfixture. Add the dbfuzz001.test module to demonstration how to use decode_hexdb to deserialize a dbtotxt database description for use in a corruption test. (check-in: 1f583c53 user: drh tags: trunk)
18:59
Fix the CLI to keep proper track of input line numbers for use in error messages, even after processing in-line hex database inputs using ".open --hexdb". (check-in: 7ffa9858 user: drh tags: trunk)
18:30
Fix the CLI so that the ".open --hexdb" command works even if it is contained in a subscript that is read using ".read". (check-in: 67a87399 user: drh tags: trunk)
16:26
Add tests cases for recovery in wal2 mode. (check-in: 34f56f8a user: dan tags: wal2)
15:52
Merge the dbtotxt enhancement from trunk. (Closed-Leaf check-in: b386fce9 user: drh tags: dbfuzz2-cases)
15:06
Add the "dbtotxt" utility program and the ability to read "dbtotxt" output as a deserialized input database in the CLI, using the --hexdb option to the ".open" command. (check-in: e3bf1d3e user: drh tags: trunk)
12:37
Include OPTS in the build of dbfuzz2. (check-in: eac9c0c4 user: drh tags: trunk)
12:28
Fix the Makefile so that it honors CFLAGS when building sessionfuzz. (check-in: 54231ac4 user: drh tags: trunk)
03:36
New database corruption test cases discovered by dbfuzz2. The new cases have been added to test/fuzzdata7.db, but have not yet all been fixed, so tests will not currently pass. (check-in: b4210d32 user: drh tags: dbfuzz2-cases)
2018-12-12
21:34
Fix another problem found by Matthew Denton's new fuzzer. (check-in: 2b690dbd user: drh tags: trunk)
20:39
Add new test file wal2big.test. (check-in: e3e50bcd user: dan tags: wal2)
20:11
Remove an ALWAYS() from a branch that is not always taken. The test case found by OSSFuzz has been added to TH3. (check-in: 5c7dab85 user: drh tags: trunk)
19:04
Add tests to ensure that each of the 4 wal read-locks does what it is supposed to. (check-in: 4d5779f3 user: dan tags: wal2)
11:57
OSSFuzz found a case where an assert() inside sqlite3ExprCompare() can be true. Test case added to TH3. (check-in: bc891ac6 user: drh tags: branch-3.26)
11:54
Fix a problem with using "<db>-vacuum" (the default) as the state database when resuming an RBU vacuum. (check-in: 6b7567fc user: drh tags: branch-3.26)
11:50
Do not use a partial index as a table scan in an IN operator. Fix for ticket [1d958d90596593a77420e59]. (check-in: c1c735a8 user: drh tags: branch-3.26)
11:23
OSSFuzz found a case where an assert() inside sqlite3ExprCompare() can be true. Test case added to TH3. (check-in: 23b62fb1 user: drh tags: trunk)
2018-12-11
17:56
Change the way wal2 locks work to ensure a reader only ever has to lock a single slot. (check-in: 18b2c23a user: dan tags: wal2)
13:44
Merge latest trunk changes into this branch. (check-in: d8dd98a3 user: dan tags: wal2)
12:51
Small performance improvement in sqlite3_step(). (check-in: d1db8d58 user: drh tags: trunk)
12:20
Small performance improvement in the sqlite3_bind() family of interfaces. (check-in: 1dc0c3df user: drh tags: trunk)
2018-12-10
20:01
Further refinements to the sqlite3_normalized_sql() interface. TH3 now gives 100% MC/DC on that interface. (check-in: c96bf6cc user: drh tags: trunk)
18:15
Refactor the sqlite3_normalized_sql() implementation. (check-in: 06e955e5 user: drh tags: trunk)
16:53
Merge latest mutexfree-shmlock changes into this branch. (Leaf check-in: 186b376e user: dan tags: begin-concurrent-pnu-mutexfree-shmlock)
16:52
Make SQLITE_MFS_NSHARD a compile time setting. (check-in: b9a74151 user: dan tags: mutexfree-shmlock)
16:49
Fix issues with the new normalizer. (Leaf check-in: 057d7d40 user: drh tags: normalize-refactor)
16:00
Refactor the sqlite3_normalized_sql() implementation. This is a work-in-progress. There are still issues. (check-in: a4c890b0 user: drh tags: normalize-refactor)
15:58
Merge the latest version of mutexfree-shmlock with this branch. (check-in: 6007abfe user: dan tags: begin-concurrent-pnu-mutexfree-shmlock)
15:51
Add extra tests to shmlock.test (direct testing of xShmLock methods). (check-in: d2c785f9 user: dan tags: mutexfree-shmlock)
15:24
Rework the SQLITE_MUTEXFREE_SHMLOCK code to reduce contention. (check-in: d9157dd1 user: dan tags: mutexfree-shmlock)
09:45
Avoid a mutex in-and-out in unixShmBarrier() on this branch. Use __sync_synchronize() instead. (check-in: a8c5fd86 user: dan tags: mutexfree-shmlock)
09:36
Avoid a mutex in-and-out in unixShmBarrier() on this branch. Use __sync_synchronize() instead. (check-in: 280d1a72 user: dan tags: begin-concurrent-pnu-mutexfree-shmlock)
08:41
Fix a problem with using "<db>-vacuum" (the default) as the state database when resuming an RBU vacuum. (check-in: c878d741 user: dan tags: trunk)
02:00
Merge enhancements from trunk. (check-in: b1bbc718 user: drh tags: apple-osx)
01:48
Add support for the VACUUM INTO command. (check-in: 77f150b8 user: drh tags: trunk)
00:41
Fix the shell1.test test for the new format of the .backup command. (Closed-Leaf check-in: 9748d799 user: drh tags: vacuum-into)
00:40
Merge fixes from trunk. (check-in: ab1e58fa user: drh tags: vacuum-into)
2018-12-09
18:55
New test case for ticket [1d958d90596593a77420e59]. (check-in: b7bf3c98 user: drh tags: trunk)
2018-12-08
20:30
Do not use a partial index as a table scan in an IN operator. Fix for ticket [1d958d90596593a77420e59]. (check-in: 15bc915d user: drh tags: trunk)
01:09
Add the --async option to the ".backup" command in the CLI. (check-in: 7b6a605b user: drh tags: vacuum-into)
00:43
Allow the INTO clause of VACUUM to be a text-valued expression. (check-in: af172b53 user: drh tags: vacuum-into)
2018-12-07
23:48
Do not allow VACUUM INTO into a file that already exists. (check-in: 92f70e0f user: drh tags: vacuum-into)
20:40
Merge the VACUUM simplification from trunk. (check-in: 93d92a0a user: drh tags: vacuum-into)
20:26
Remove a line of code from VACUUM that is no longer needed, due to the change that allows ATTACH to run within a transaction. (check-in: a92c398f user: drh tags: trunk)
20:25
Add multi-threaded performance test program "tserver" to this branch. Fix bugs in the begin-concurrent/wal2 integration revealed by the same. (check-in: 7bd3b356 user: dan tags: begin-concurrent-wal2)
17:28
Prototype implementation for the VACUUM INTO command. (check-in: 036e3320 user: drh tags: vacuum-into)
16:32
Fix the sqlite3_normalized_sql() interface so that it renders double-quoted string literals as "?". (check-in: 0d8e1504 user: drh tags: trunk)
03:01
Fix dbfuzz2.c so that it works with -DSQLITE_OMIT_INIT (check-in: 9ad796a8 user: drh tags: trunk)
02:01
Fix the sqlite3ExprDup() function so that it correctly duplicates the Window object list on a Select that contains window functions. Fix for ticket [f09fcd17810f65f717]. (check-in: 65aafb55 user: drh tags: branch-3.26)
01:56
Fix the sqlite3ExprDup() function so that it correctly duplicates the Window object list on a Select that contains window functions. Fix for ticket [f09fcd17810f65f717]. (check-in: db5ed226 user: drh tags: trunk)
2018-12-06
22:12
Performance improvement: Avoid using sqlite3WalkerSelectExpr() and sqlite3WalkerSelectFrom() twice, so that the compiler will in-line their implementation. (Closed-Leaf check-in: 2b9258b8 user: drh tags: ticket-f09fcd17810f)
22:04
Fix the sqlite3ExprDup() routine so that it makes complete duplications of subqueries containing window functions. (check-in: 94017454 user: drh tags: ticket-f09fcd17810f)
20:26
Add the mutexfree-shmlock experiment to the begin-concurrent-pnu branch. (check-in: 3aead209 user: dan tags: begin-concurrent-pnu-mutexfree-shmlock)
20:18
Experimental changes to (optionally) allow double-quoted strings to be checked against known identifiers. (Leaf check-in: 73a6b8c1 user: mistachkin tags: normalize_v4)
19:56
New test case that still hits an assertion fault, just to prove that the previous checkin merely made the problem more obscure and did not completely fix it. (check-in: a9a3b532 user: drh tags: ticket-f09fcd17810f)
19:15
Simplify the query flattener so that it does not duplicate the WHERE clause of subquery that is being incorporated into the outer query - copies it directly. This is more efficient. And it also fixes the specific test case show for ticket [f09fcd17810f65f71789525] but it does not resolve the more general problem that sqlite3ExprDup() does not correctly duplicate expressions that contain subqueries with window functions. (check-in: f1b18d44 user: drh tags: ticket-f09fcd17810f)
18:58
Experiment with using an atomic CPU primitive instead of a mutex for intra-process locking with the unix-excl VFS. (check-in: 8f4cb9dd user: dan tags: mutexfree-shmlock)
17:06
When masking bits off of sqlite3.flags, make sure the mask is 64 bits in size so as not to accidentally mask of high-order bits. (check-in: 53d3b169 user: drh tags: trunk)
16:54
Add test file wal2snapshot.test that should have been added as part of an earlier commit. (check-in: f6baa7e1 user: dan tags: wal2)
16:50
When saving off the value of sqlite3.flags, take care to preserve all 64 bits. (check-in: 9c6dbcfa user: drh tags: trunk)
16:11
Issue a warning whenever a double-quoted string literal is used. (check-in: ac9ad504 user: drh tags: trunk)
14:24
Bump the version number to 3.26.1. (check-in: e97e053b user: drh tags: branch-3.26)
14:11
Fix a potential NULL pointer dereference that can occur in ALTER TABLE following an OOM. Test case in TH3. (check-in: 99a0951f user: drh tags: branch-3.26)
13:57
Ensure that ALTER TABLE modifies table and column names embedded in WITH clauses that are part of views and triggers. (check-in: e066b4e1 user: drh tags: branch-3.26)
03:59
Invoking the sqlite3_trace() or sqlite3_trace_v2() interfaces cancels any sqlite3_profile() that is running. (check-in: ec63d350 user: drh tags: trunk)
03:13
Merge fixes from trunk. (check-in: f2083ee4 user: drh tags: begin-concurrent-pnu)
02:08
Merge bug fixes from trunk. (check-in: 1e13aaa2 user: drh tags: begin-concurrent)
02:01
Remove the unused pColHash field from the Table object. (check-in: 3a2c0479 user: drh tags: trunk)
01:53
Fix a potential NULL pointer dereference that can occur in ALTER TABLE following an OOM. Test case in TH3. (check-in: ea50815b user: drh tags: trunk)
01:08
Fix a missing mutex in the sqlite3_normalized_sql() interface when it is called on a prepared statement that did not previously have a computed normalization of the input SQL. (check-in: 1a1a59c6 user: drh tags: trunk)
00:08
Merge ALTER TABLE and sqlite3_normalized_sql() bug fixes from trunk. (check-in: 3793e5d5 user: drh tags: begin-concurrent-pnu)
00:05
Merge ALTER TABLE and sqlite3_normalized_sql() fixes from trunk. (check-in: acf10b3f user: drh tags: begin-concurrent)
2018-12-05
23:56
Get rid of the hash table used to track IN operators in the sqlite3_normalized_sql() implementation. Use simple integer variables instead. (check-in: 272dc74f user: drh tags: trunk)
23:45
The sqlite3_normalized_sql() interface should not be transforming quoted identifier names into wildcards. Fix this, and at the same time simplify the code substantially. (check-in: e8540377 user: drh tags: trunk)
23:25
Bungled checkin. Ignore. (Closed-Leaf check-in: 9b6e9a6e user: drh tags: mistake)
21:55
Fix an imbalanced lock problem in sqlite3Normalize() introduced by the simplification in [94ea6379178e3ff6a]. (check-in: f6962437 user: drh tags: trunk)
19:42
Increase the version number to 3.27.0 for the next development cycle. (check-in: 8f8d6828 user: drh tags: trunk)
18:28
Merge enhancements and the ALTER TABLE bug fix from trunk. (check-in: edfc2acf user: drh tags: apple-osx)
18:25
Add test cases to wal2concurrent.test. (check-in: ef9e7a87 user: dan tags: begin-concurrent-wal2)
17:48
Simplifications to the sqlite3_normalized_sql() implementation. (check-in: 94ea6379 user: drh tags: trunk)
17:36
Fix a test script problem on this branch. (check-in: 692ddc28 user: dan tags: begin-concurrent-wal2)
17:31
Fix a test script problem on this branch. (check-in: 285d1c59 user: dan tags: wal2)
17:20
Fix a problem causing "PRAGMA journal_mode" to report the wrong journal mode (wal instead of wal2) under some circumstances. (check-in: bf309107 user: dan tags: begin-concurrent-wal2)
17:14
Fix a problem causing "PRAGMA journal_mode" to report the wrong journal mode (wal instead of wal2) under some circumstances. (check-in: 1d8d4f68 user: dan tags: wal2)
16:45
Fixes for snapshots API on this branch. Also ensure that the snapshots API cannot be used with wal2 mode databases (for now anyhow). (check-in: d8c2d55f user: dan tags: begin-concurrent-wal2)
16:31
Fixes for snapshots API on this branch. Also ensure that the snapshots API cannot be used with wal2 mode databases (for now anyhow). (check-in: 19c61ab7 user: dan tags: wal2)
13:49
Merge enhancements from trunk, especially the sqlite3_normalized_sql() enhancement. (check-in: 342c9538 user: drh tags: begin-concurrent-pnu)
13:49
Ensure that ALTER TABLE modifies table and column names embedded in WITH clauses that are part of views and triggers. (check-in: f44bc7a8 user: dan tags: trunk)
13:44
Merge enhancements from trunk, especially the enhanced sqlite3_normalized_sql() interface. (check-in: 47b73f6b user: drh tags: begin-concurrent)
13:39
Enhance the sqlite3_normalize_sql() interface so that it works even if the prepared statement was not initially compiled using SQLITE_PREPARE_NORMALIZED. Enhance the ".trace" command in the CLI so that it is able to access the full scope of functionality provided by sqlite3_trace_v2() and in particular so that it is able to show normalized SQL output using the newly enhanced sqlite3_normalize_sql() interface. (check-in: 7da617e9 user: drh tags: trunk)
2018-12-04
21:16
When compiled with SQLITE_ENABLE_NORMALIZE, always have sqlite3_exec() enable the SQLITE_PREPARE_NORMALIZE flag. (Leaf check-in: 28643d83 user: mistachkin tags: execWithNormalize)
19:41
First attempt at making features work together. Only the most minimal testing so far. (check-in: fd707001 user: dan tags: begin-concurrent-wal2)
16:51
Add the "index_usage" utility program. (check-in: df954552 user: drh tags: trunk)
14:33
Performance improvement in sqlite3_step() by creating a new mTrace flag for the legacy xProfile pointer that is set by sqlite3_profile(). (check-in: e28584e8 user: drh tags: trunk)
13:51
Fix a problem with SQLITE_ENABLE_EXPENSIVE_ASSERT builds on this branch. (check-in: ddb4a6fb user: dan tags: begin-concurrent)
13:51
Small performance increase in sqlite3_step() for the common case where it returns SQLITE_ROW. (check-in: 89344826 user: drh tags: trunk)
01:18
Attempt to make the parser a little faster by storing the ON and USING clause in a single OnUsing object. (Leaf check-in: 6770ed08 user: drh tags: on-using-opt)
2018-12-03
23:57
Reduce the size of the parser tables generated by Lemon by splitting the yyRuleInfo structure into separate yyRuleInfoLhs and yyRuleInfoNRhs arrays. (check-in: 70fe8ec2 user: drh tags: trunk)
20:49
Merge the wal2 and begin-concurrent code. Both features work, but not at the same time. (check-in: b7281a1c user: dan tags: begin-concurrent-wal2)
20:38
Minor change to wal.c on this branch to make it more similar to trunk. (check-in: 6a7af3ea user: dan tags: begin-concurrent)
19:29
Cherrypick a couple of fixes from begin-concurrent-pnu into this branch. The differences between the two branches are now that this one does not have "PRAGMA noop_update" or the mutex-free PRNG. (check-in: a56506b9 user: dan tags: begin-concurrent)
18:24
Merge in all changes for release 3.26.0. (check-in: 85fd92c7 user: drh tags: begin-concurrent-pnu)
18:15
Bring up to date with version 3.26.0. (check-in: f0ddb358 user: drh tags: begin-concurrent)
18:13
Increase a timeout in test file walprotocol2.test. To account for unix builds without HAVE_USLEEP. (check-in: 480be916 user: dan tags: wal2)
17:40
Remove the unused sqlite3Fts5UnicodeNCat() function. (check-in: 7149dacf user: drh tags: trunk)
16:14
Add the "remove_diacritics=2" option to the unicode61 tokenizer in both FTS5 and FTS3/4. (check-in: 06177f3f user: dan tags: trunk)
14:58
Update the autoconf makefile for MSVC. (check-in: 675aba1f user: mistachkin tags: trunk)
01:58
Remove two lines of unnecessary code, for a very small performance increase and size decrease. (check-in: 15824ccd user: drh tags: trunk)
01:47
Fix a parser bug in the use of parentheses around table-valued functions. (check-in: 58a51123 user: drh tags: trunk)
2018-12-02
01:15
Omit a line of code that has no affect on the outcome. (check-in: 5d933aa6 user: drh tags: trunk)
2018-12-01
21:13
Very slightly smaller and faster. (check-in: 27798f17 user: drh tags: trunk)
20:14
Sync this branch with the latest trunk. (check-in: 7a44fa5a user: dan tags: wal2)
12:34
Version 3.26.0 (check-in: bf8c1b2b user: drh tags: trunk, release, version-3.26.0)
2018-11-30
20:59
Fix a typo in a comment. No changes to code. (check-in: 23684cb8 user: drh tags: trunk)
18:22
Merge the pre-3.26.0 fixes from trunk. (check-in: 2c76ce4f user: drh tags: apple-osx)
16:26
Merge the mutex-free PRNG change into this branch. (check-in: 81e626f4 user: dan tags: begin-concurrent-pnu)
2018-11-29
12:00
Fix the name of the trig function approximation in geopoly. No functional changes to the code. (check-in: 33576b12 user: drh tags: trunk)
2018-11-28
19:23
Fix a typo in a comment used to generate documentation. No changes to code. (check-in: 62360cea user: drh tags: trunk)
19:12
Update incrvacuum.test so that it works with builds that do not support mmap(). (check-in: 8eb62fd5 user: dan tags: trunk)
11:49
Update some test cases to account for SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: b53a9a3d user: dan tags: trunk)
11:09
Follow-up to [0bf0fd242b93c3bd30]: only reset the pager when adding a new codec, not when overwriting an existing codec. Also, improve a comment in the pcache1 subsystem. (check-in: 5c040fdb user: drh tags: trunk)
08:24
Changes to Makefile.in to allow testfixture to be built with SQLITE_USER_AUTHENTICATION. (check-in: 7b510f59 user: dan tags: trunk)
08:09
Remove -DSQLITE_USER_AUTHENTICATION from the "Unlock-Notify" configuration. Create a dedicated "User-Auth" configuration for testing this feature. (check-in: 8c41024f user: dan tags: trunk)
08:02
Fixes for SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 9bcdec85 user: dan tags: trunk)
01:45
Always enable SQLITE_ENABLE_DESERIALIZE for the MSVC makefile as this is necessary to get releasetest.tcl to work. (check-in: d362dedb user: drh tags: trunk)
2018-11-27
19:47
Fix a failing assert() in sqlite3ResetAllSchemasOfConnection(). (check-in: 0ea049f3 user: dan tags: trunk)
17:02
Improvements to two cases in pragma4.test. (check-in: 3c893d9b user: drh tags: trunk)
14:41
Remove the sqlite3PagerUseWal() routine which was made obsolete by the [81629ba91475938b6ad] change. (check-in: 4331b499 user: drh tags: trunk)
14:34
Add a simple test case for Lemon. Always include assert.h in the Lemon-generated parser. (check-in: 9c9c46dc user: drh tags: trunk)
14:03
Fix to the error handling logic in the Lemon parser template. This does not affect SQLite since SQLite does not use that part of the Lemon parser template. (check-in: c6dfc59e user: drh tags: trunk)
09:57
Add an "#ifndef SQLITE_DISABLE_FTS4_DEFERRED" block around function fts3EvalDeferredPhrase() in fts3 in order to silence a compiler warning. (check-in: 6f4b0d04 user: dan tags: trunk)
2018-11-26
23:35
Merge recent enhancements from trunk. (check-in: e8c20a88 user: drh tags: apple-osx)
18:09
Do not allow direct access to internal-use SQL functions such as sqlite_rename_column() and sqlite3_rename_table() except when the new SQLITE_TESTCTRL_INTERNAL_FUNCTIONS flag is set. (check-in: 6e133054 user: drh tags: trunk)
15:00
Minor comment enhancement in alter.c. No changes to code. (check-in: 12920bcb user: drh tags: trunk)
07:34
Merge latest begin-concurrent changes into this branch. (check-in: 76608f75 user: dan tags: begin-concurrent-pnu)
07:21
Merge latest trunk changes into this branch. (check-in: 28a615a2 user: dan tags: begin-concurrent)
2018-11-24
20:44
Fix a bug in the geopoly_ccw() function. Test cases in TH3. (check-in: 773c5c1d user: drh tags: trunk)
17:46
Make the winTruncate() method of the windows VFS be a no-op if there are outstanding references to the memory-mapped pages. Otherwise, memory might be deleted out from under those references when the file is remapped during the truncate operation. (check-in: ffce4aac user: drh tags: trunk)
16:07
Remove the unused mmapSizeActual field from the Windows sqlite3_file implementation. (check-in: 0e7aa622 user: drh tags: trunk)
2018-11-23
13:21
Make the winTruncate() method of the windows VFS be a no-op if there are outstanding references to the memory-mapped pages. Otherwise, memory might be deleted out from under those references when the file is remapped during the truncate operation. (Leaf check-in: 8576ccb4 user: drh tags: branch-3.25)
2018-11-22
19:10
Fix a problem reading from temp databases in SQLITE_DIRECT_OVERFLOW_READ builds. (check-in: 81629ba9 user: dan tags: trunk)
2018-11-21
14:27
Improvements to the ossfuzz.c fuzz-testing module so that it works with -DSQLITE_OMIT_PROGRESS_CALLBACK and with -DSQLITE_OMIT_INIT. (check-in: d343f7d6 user: drh tags: trunk)
2018-11-20
18:09
Fix problems in pragma.c causing some PRAGMA statements to test the wrong schema-cookie before proceeding, or to try to open cursors on the wrong database ("PRAGMA foreign_key_check" only). (check-in: 6982f52f user: dan tags: trunk)
16:02
Consolidate the two sqlite3SchemaToIndex() routines. (Leaf check-in: dfab7170 user: dan tags: reuse-schema1)
2018-11-19
20:41
Fix a problem with virtual tables in shared schemas. (check-in: 84be9220 user: dan tags: reuse-schema1)
2018-11-17
19:15
Fix another name resolution problem occurring when two or more attached databases use the same Schema object. (check-in: 5328f899 user: dan tags: reuse-schema1)
18:45
Merge latest trunk changes into this branch. (check-in: 9fdd1868 user: dan tags: reuse-schema1)
18:11
Fix further problems with the feature on this branch. (check-in: 6d7a7e5f user: dan tags: reuse-schema1)
14:59
Fix the regexp used to recognize libdl errors on OS-X. (check-in: 17400253 user: drh tags: trunk)
14:26
Fix harmless compiler warnings that appear with SQLITE_OMIT_EXPLAIN. (check-in: 5fff00b0 user: drh tags: trunk)
14:19
Remove a C++-style comment. (check-in: 645232f2 user: drh tags: trunk)
13:08
Fix a problem in test script e_fkey.test. (check-in: acfd0a05 user: dan tags: trunk)
2018-11-16
20:50
Fix a test case so that it works on windows. (check-in: 2d92d25f user: drh tags: trunk)
20:18
Add SQLITE_CONSTRAINT support to the xBestIndex methods on dbstat, sqlite_dbpage, and zipfile. (check-in: 5cd24e55 user: drh tags: trunk)
19:19
Update the explain virtual table to make use of SQLITE_CONSTRAINT. (check-in: b2d41ff7 user: drh tags: trunk)
17:04
Fix further REUSE_SCHEMA issues. (check-in: 9780829a user: dan tags: reuse-schema1)
16:04
Fix the JSON table-valued functions to make use of SQLITE_CONSTRAINT. (check-in: 3f34f4f5 user: drh tags: trunk)
15:41
Add an assert() to the generate_series virtual table to verify assumptions about the design. (check-in: cd13b499 user: drh tags: trunk)
15:08
Update the generate_series() table-valued function to make use of the new SQLITE_CONSTRAINT return from xBestIndex. (check-in: 4372ad64 user: drh tags: trunk)
14:36
In order to avoid exporting a symbol, use a macro instead of a function to replace sqlite3_complete() in the shell code when SQLITE_OMIT_COMPLETE is defined. (check-in: d584a0cb user: dan tags: trunk)
13:56
Enhance the xBestIndex interface of virtual table so that if the xBestIndex method returns SQLITE_CONSTRAINT then that particular combination of constraints is considered unusable and does not participate further in query planning. (check-in: 684013ce user: drh tags: trunk)
13:06
Fix comments and make magic numbers into #defines in the fsdir implementation. (check-in: c537c9c3 user: drh tags: trunk)
08:36
Fix a problem with virtual table "fsdir" and some join queries. (check-in: 7fffcee0 user: dan tags: trunk)
01:42
Improvements to the CSV virtual table. (check-in: 0406ecbb user: drh tags: trunk)
2018-11-15
21:20
Fix some problems with the feature on this branch. Many problems remain. (check-in: 31b6aee7 user: dan tags: reuse-schema1)
19:12
Fix typos in the previous check-in. (check-in: 9b37bbf5 user: mistachkin tags: trunk)
16:56
Include geopoly in the compiler-warning script. (check-in: 3d947e1e user: drh tags: trunk)
13:51
New fuzztest cases. (check-in: e8316ba4 user: drh tags: trunk)
2018-11-13
20:21
Fix a potential buffer overread in the dbstat virtual table when processing a corrupt database file. (check-in: a62e6b59 user: drh tags: trunk)
19:51
Turn on ASAN for the dbfuzz2 utility. Fix a buffer overread associated with sqlite3_deserialize(). (check-in: 4e38f27b user: drh tags: trunk)
2018-11-12
15:20
New hyperlinks in comments used to generate documentation. No changes to code. (check-in: f9755f81 user: drh tags: trunk)
13:20
Fix a use-after-free problem in the fts5vocab virtual table. (check-in: ac69d169 user: dan tags: trunk)
2018-11-10
20:07
Merge the read-only shadow table and defensive mode enhancments from trunk. (check-in: 977fc44e user: drh tags: apple-osx)
18:23
Add support for read-only shadow tables on virtual tables. Added the SQLITE_DEFAULT_DEFENSIVE compile-time option that can put SQLite in defensive mode by default. (check-in: 9c685171 user: drh tags: trunk)
17:37
Add the "changesetfuzz" program. For fuzzing changeset blobs. (check-in: 2bae0e7c user: dan tags: trunk)
17:36
Merge latest trunk changes. (Closed-Leaf check-in: b6d549c9 user: dan tags: changesetfuzz)
04:14
Remove a NEVER() that is reachable after all. Reverts checkin [9292d3351c40339]. (Closed-Leaf check-in: c5dc7fb8 user: drh tags: read-only-shadow)
03:47
Merge fixes from trunk. (check-in: bf88efce user: drh tags: read-only-shadow)
2018-11-09
23:45
Merge fixes from trunk. (check-in: e3e9b85e user: drh tags: apple-osx)
23:41
Fix invalid use of unprotected sqlite3_value objects in the sqldiff utility, when using the --changeset option. (check-in: a8d65214 user: drh tags: trunk)
20:04
When a table is renamed using "ALTER TABLE RENAME TO", update any REFERENCES clauses that refer to the table, unless "PRAGMA legacy_alter_table" is true and "PRAGMA foreign_keys" is set to false (i.e. so that when "PRAGMA legacy_alter_table" is set behaviour is still compatible with versions 3.24 and earlier). (check-in: ae9638e9 user: dan tags: trunk)
18:44
Merge latest trunk changes with this branch. (check-in: ae88f8e1 user: dan tags: reuse-schema)
14:17
Fix for ticket [787fa716be3a7f650cac] (check-in: 531eca61 user: drh tags: trunk)
00:02
Disable the use of coroutines for subqueries within a query that is the RHS of an IN operator, as the IN operator might be evaluated more than once. Possible fix for [787fa716be3a7f65], unless we can come up with something better. Later: Counter-example found. (Closed-Leaf check-in: 8d663bfa user: drh tags: tkt787fa716-deadend)
2018-11-08
22:53
In the treeview.c module, break out the display of SrcList into a separate subroutine, so that it can be invoked while debugging. (check-in: 8c74065f user: drh tags: trunk)
17:32
Improved documentation for SQLITE_DBCONFIG_DEFENSIVE. Add a NEVER() macro on an unreachable branch. (check-in: 9292d335 user: drh tags: read-only-shadow)
14:59
Add tests and a fix for program "changesetfuzz". (check-in: 09b90db5 user: dan tags: changesetfuzz)
2018-11-07
20:13
Merge latest trunk changes into this branch. (check-in: 53cd91d0 user: dan tags: changesetfuzz)
20:07
Fix minor issues in the changesetfuzz program. (check-in: 5c7f0240 user: dan tags: changesetfuzz)
17:52
Update the "changesetfuzz" program to work with patchsets as well as changesets. (check-in: 75b00fbe user: dan tags: changesetfuzz)
16:46
Performance improvement in subroutine that decides whether or not a table is read-only. (check-in: 6e4968b0 user: drh tags: read-only-shadow)
16:12
Merge the onefile permutation fix from trunk. (check-in: e543bff8 user: drh tags: read-only-shadow)
14:41
More test-case adjustments for defensive mode. (check-in: 911e8a17 user: drh tags: read-only-shadow)
14:39
Fix a problem with the handling of SQLITE_FCNTL_PRAGMA in the test_onefile.c demo. (check-in: 13e21b7d user: dan tags: trunk)
13:41
Merge the permutations fix from trunk. (check-in: b753d849 user: drh tags: read-only-shadow)
11:56
Partially revert [3e1a2f661], as some test scripts require separate $presql and $dbconfig variables. (check-in: cbf85284 user: dan tags: trunk)
02:17
Add the SQLITE_DEFAULT_DEFENSIVE compile-time option. Fix up test cases so that they work with DEFENSIVE enabled. (check-in: 3212733c user: drh tags: read-only-shadow)
2018-11-06
20:08
Update the changesetfuzz program to fuzz changeset schemas as well as data. (check-in: 141a93c8 user: dan tags: changesetfuzz)
19:26
Enable DEFENSIVE mode by default for tests. This requires lots of case of turning DEFENSIVE off in order to dodgy things to the database for testing purposes. No all of those cases are yet handled, so "make test" does not run to completion. (check-in: a1d6c671 user: drh tags: read-only-shadow)
15:57
Turn on defensive mode for running test scripts. Does not yet work. (check-in: 1c1d24ed user: drh tags: read-only-shadow)
14:03
Only allow shadow table to be written from within a recursive SQL call. Omit the SQLITE_PREPARE_SHADOW flag. Some tests are failing because the tests depend on being able to write to shadow tables. (check-in: d890c658 user: drh tags: read-only-shadow)
13:37
Add enforcement of read-only on shadow tables. This does not currently work since some virtual tables are attempting to update shadow tables using sqlite3_exec(). (check-in: f79b47c9 user: drh tags: read-only-shadow)
2018-11-05
23:01
Initial code to make shadow tables read-only to ordinary SQL. The now xShadowName method is added to the sqlite3_module object and is used to identify potential shadow tables. The SQLITE_PREPARE_SHADOW argument to sqlite3_prepare_v3() is defined. It is designed to permit writing to shadow tables, but is currently an unused placeholder. (check-in: 31942b3d user: drh tags: read-only-shadow)
20:37
Version 3.25.3 (check-in: 89e099fb user: drh tags: release, version-3.25.3, branch-3.25)
20:37
Add preliminary version of "changesetfuzz" program. For fuzzing changeset data without creating corrupt changesets. (check-in: 81ac8745 user: dan tags: changesetfuzz)
19:37
Add the SQLITE_DBCONFIG_DEFENSIVE flag. (check-in: 11d98414 user: drh tags: trunk)
16:38
Eponymous virtual tables appear to exist in all schemas. This is an alternative and improved fix to the eponymous virtual table in trigger problem that was previously addressed by checkin [1fa74930ab56171e]. (check-in: b8d35c4a user: drh tags: trunk)
13:53
Merge recent trunk enhancements. (check-in: 62acf7a0 user: drh tags: apple-osx)
13:48
Disable the IS NOT NULL optimization when the IS NOT NULL operator is part of the ON clause of a LEFT JOIN. Fix for ticket [65eb38f6e46de8c75e188a17ec]. (check-in: 8d09ce5d user: drh tags: branch-3.25)
13:43
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: 940f2adc user: drh tags: branch-3.25)
13:37
Increase the version number to 3.25.3. (check-in: 1250ab8f user: drh tags: branch-3.25)
13:35
Fix a assert() in the query planner that can arise when doing row-value operations on a PRIMARY KEY that contains duplicate columns. Ticket [1a84668dcfdebaf12415d]. (check-in: 1309c84a user: drh tags: branch-3.25)
07:53
Disable the IS NOT NULL optimization when the IS NOT NULL operator is part of the ON clause of a LEFT JOIN. Fix for ticket [65eb38f6e46de8c75e188a17ec]. (check-in: af39661e user: drh tags: trunk)
2018-11-03
17:31
Correct the internal logic for SQLITE_DBCONFIG_DEFENSIVE. (Closed-Leaf check-in: 76094345 user: drh tags: dbconfig-defensive)
16:51
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: d44318f5 user: dan tags: trunk)
16:09
Add the SQLITE_DBCONFIG_DEFENSIVE flag. (check-in: af3f29d4 user: drh tags: dbconfig-defensive)
13:11
Fix a assert() in the query planner that can arise when doing row-value operations on a PRIMARY KEY that contains duplicate columns. Ticket [1a84668dcfdebaf12415d]. (check-in: dcb8c735 user: drh tags: trunk)
2018-11-02
17:38
Enhance triggers so that they can use table-valued-functions that exist in schemas outside of the schema in which the trigger is defined. (check-in: 1fa74930 user: drh tags: trunk)
2018-10-31
20:52
Deploy the sqlite3Strlen30NN() function (argument guaranteed to be non-NULL) for a small performance improvement. (check-in: 4a6ad519 user: drh tags: trunk)
19:01
Add support for the SQLITE_PREPARE_NORMALIZED flag and the sqlite3_normalized_sql() when compiling with SQLITE_ENABLE_NORMALIZE. Also remove unnecessary whitespace from Makefiles. (check-in: 790ea39a user: drh tags: trunk)
18:24
Tweaks to the test_intarray documentation and tests. (check-in: 7107f0da user: drh tags: trunk)
01:26
Merge fixes from trunk, especially rebustness against corrupt database files. (check-in: 4b370c74 user: drh tags: apple-osx)
01:12
Merge fuzz test cases computed by dbfuzz2. (check-in: e0d30c18 user: drh tags: trunk)
01:04
Improved corrupt database detection in the relocatePage() routine of the b-tree module. (check-in: d5787333 user: drh tags: trunk)
2018-10-30
23:45
Add new fuzzer cases generated by dbfuzz2. (Closed-Leaf check-in: 79fdad8b user: drh tags: dbfuzz2-cases)
19:14
Update comments in sqlite3session.c to describe the format of "rebase blobs", as well as changesets and patchsets. (check-in: bf93f7b5 user: dan tags: trunk)
16:25
Split the SQLITE_WriteSchema flag in two flags, WriteSchema and SQLITE_NoSchemaError. Set only WriteSchema on a VACUUM to avoid problems when trying to vacuum a corrupt database. With this change, the size of the flags field on sqlite3 must grow from 32 to 64 bytes. (check-in: 4f987810 user: drh tags: trunk)
15:31
Modify the CLI so that the --deserialize option is only available if it is compiled with SQLITE_ENABLE_DESERIALIZE. DESERIALIZE is now off by default for the main.mk makefile, but on for Makefile.in and Makefile.msc. (check-in: 90b2a684 user: drh tags: trunk)
15:20
Improvements to the -fsanitize=fuzzer based database file fuzzer. (Cherrypick from the rubust-against-damaged-db branch.) (check-in: 3cc01a0e user: drh tags: trunk)
14:36
In the CLI, when opening a file that begins with the normal SQLite prefix, open the file as a normal database even if it has a ZIP for AppendVFS record at the end. (check-in: 7989bbda user: drh tags: trunk)
13:19
Enable sqlite3_deserialize() in the CLI. The --deserialize option associated with opening a new database cause the database file to be read into memory and accessed using the sqlite3_deserialize() API. This simplifies running tests on a database without risk of modifying the file on disk. (check-in: 5e0129ee user: drh tags: trunk)
00:06
Improvements to the -fsanitize=fuzzer based database file fuzzer. (Closed-Leaf check-in: 585c94db user: drh tags: robust-against-damaged-db)
00:06
In the VACUUM command, defer setting writable_schema until after it has been determined that the schema is not corrupt. (check-in: 3afec260 user: drh tags: robust-against-damaged-db)
2018-10-29
21:01
Fix a potential assertion fault that can occur while trying to DROP a table from a corrupted database file. (check-in: 147a9429 user: drh tags: trunk)
18:33
Fix minor memory leak in the dbstat extension that can occur following an attempt to analyze a corrupt database file. (check-in: cb874fd8 user: drh tags: trunk)
17:53
Add the sqlite3_normalized_sql() API. (Closed-Leaf check-in: 592b66e8 user: mistachkin tags: normalized_sql)
17:08
In the sessions module, avoid collecting rebase data if the user has not requested it. (check-in: de72a773 user: dan tags: trunk)
16:07
Harden the dbstat extension against corrupt database files. (check-in: a0d47f25 user: drh tags: trunk)
2018-10-27
21:06
Improvements to the dbfuzz2.c test module. (check-in: d60eff49 user: drh tags: trunk)
16:02
Add an entry in Makefile.in to build dbfuzz2 using clang-6.0 with -fsanitize=fuzzer,undefined. (check-in: a4a083ed user: drh tags: trunk)
00:47
Initial code for a fuzzing tool on database file that works with the -fsanitize=fuzzer option of clang. (check-in: 90d12094 user: drh tags: trunk)
2018-10-26
17:05
Add the sqlite3session_config() interface. For configuring global parameters belonging to the sessions module. (check-in: 1e69f3ff user: dan tags: trunk)
15:36
Prevent an == constraint specified using the table-valued-function argument syntax from being used to optimize any scan not related to the virtual table for which it was specified as an argument. (check-in: 4d46685f user: dan tags: trunk)
2018-10-25
16:58
Merge bug fixes from trunk. (check-in: 1e973f65 user: drh tags: apple-osx)
15:25
In the WHERE-constraint propagation optimization, if there are duplicate constraint, make sure only one of them propagates. Proposed fix for ticket [cf5ed20fc8621b165]. (check-in: caebf879 user: drh tags: branch-3.25)
14:15
In the WHERE-constraint propagation optimization, if there are duplicate constraint, make sure only one of them propagates. Proposed fix for ticket [cf5ed20fc8621b165]. (check-in: 5d5b596f user: drh tags: trunk)
11:55
Speed up xAccess() calls made on an RBU VFS when there are lots of open connections. Cherrypick of [310b4b65]. (check-in: fda8fdb0 user: dan tags: branch-3.22)
2018-10-24
23:55
Add the ENABLE_GEOPOLY case to the compile_options pragma. (check-in: de940296 user: drh tags: trunk)
2018-10-23
13:48
Fix a problem with using window functions in compound (UNION, INTERSECT etc.) queries. (check-in: 059ff53a user: dan tags: trunk)
2018-10-20
13:48
Add the sqlite3changeset_start_v2() - a new version of _start() that accepts a flags parameter - and a streaming equivalent to the sessions module. Also add the SQLITE_CHANGESETSTART_INVERT flag, used with start_v2() to invert a changeset while iterating through it. (check-in: cbedcb9a user: dan tags: trunk)
2018-10-18
15:17
Take steps to avoid a potential integer overflow in sessionBufferGrow(). (check-in: f7affa2e user: dan tags: trunk)
14:59
Add the SQLITE_CHANGESETAPPLY_INVERT flag to sessions. For inverting and applying a changeset in a single step. (check-in: d4b6406e user: dan tags: trunk)
2018-10-12
22:02
Fix the SQLITE_ENABLE_APPLE_SPI compile-time option. (check-in: 6cb537bd user: drh tags: apple-osx)
15:01
Test case modifications to support SEE. (check-in: 02b6f8f2 user: drh tags: trunk)
2018-10-11
18:45
Fix issues with the new textkey pragma from the previous check-in. (check-in: d1008b07 user: drh tags: apple-osx)
18:41
Add the textkey and textrekey pragmas. (check-in: f03164d4 user: drh tags: trunk)
18:28
Add the textkey and textrekey pragmas. (check-in: f829099d user: drh tags: apple-osx)
17:05
Merge compiler warning fixes and the codec enhancement from trunk. (check-in: f9fa58e1 user: drh tags: apple-osx)
16:53
Fix harmless compiler warnings in the CLI. (check-in: 1916d291 user: drh tags: trunk)
16:38
Always reset the pager before changing the codec. (check-in: 0bf0fd24 user: drh tags: trunk)
16:28
Fix a merge problem in main.mk (check-in: 9a549359 user: drh tags: apple-osx)
14:07
Remove surplus code in geopoly.c that seems to have come from a bad merge. (check-in: c486a63c user: drh tags: apple-osx)
13:57
Merge enhancements from trunk. (check-in: 9e10d88b user: drh tags: apple-osx)
13:51
On the first connection to a WAL-mode database that was not cleanly shut down and contains a left-over -shm file, truncate the -shm file to 3 bytes instead of to 0 bytes. Avoiding a truncation to 0 means that system monitoring tools can better detect if a process illegitimately tries to truncate a -shm file. Such a rogue process might think it is being helpful by cleaning up old files, but there is a race condition that can cause damage to the database. (check-in: 90cf32cd user: drh tags: trunk)
10:37
In the CLI, fix a file descriptor leak following OOM and a missing va_end() call. (check-in: ec36d15a user: drh tags: trunk)
02:39
In the unix VFS, fix the heap shm allocator (used for unix-excl) so that it works even on systems where the page size is larger than 32KB. (check-in: 7fbb083c user: drh tags: trunk)
2018-10-10
18:56
In the CLI, allow the SQLITE_HISTORY environment variable, if it exists, to specify an alternative file in which to store the shell edit history. (check-in: 696e82f7 user: drh tags: trunk)
01:01
Fix the build for Macs. (check-in: 6a1d937d user: drh tags: apple-osx)
2018-10-09
22:58
Merge enhancements from trunk. (check-in: 1b60e7a9 user: drh tags: apple-osx)
22:50
Merge changes for the 3.25.0 release. (check-in: ddf6a54e user: drh tags: apple-osx)
2018-10-08
23:29
Add the ability to open a database connection in -reuseschema mode in the CLI. Adjust memory allocation accounting so that a shared schema is allocated across each database sharing it. (check-in: 3869b210 user: drh tags: reuse-schema)
20:57
Fix a problem with using virtual tables via reuse-schema connections. (check-in: e5897daf user: dan tags: reuse-schema)
20:37
Merge fixes from trunk. (check-in: 9c8255a1 user: drh tags: reuse-schema)
20:04
Fix an issue with the new memstat.c extension. (check-in: ce6e80b1 user: drh tags: trunk)
18:58
Merge latest trunk changes into this branch. (check-in: 2ac72114 user: dan tags: reuse-schema)
18:55
Replace the new geopoly_reverse() function with geopoly_ccw(). The geopoly_ccw() function only reverses the vertex order if doing so is necessary to get the correct right-hand winding rule on the polygon. (check-in: 07506694 user: drh tags: trunk)
12:58
Add the geopoly_reverse() function to the GeoPoly extension. (check-in: 690dd18a user: drh tags: trunk)
2018-10-06
14:38
Fix the ".help -all" option in the command-line shell. (check-in: aac8f1df user: drh tags: trunk)
14:33
Ensure each ALTER TABLE statement makes just a single SQLITE_ALTER_TABLE call to the authorizer function. (Leaf check-in: dac28547 user: dan tags: alter-auth-callbacks)
13:46
Add test cases and assert() statements to ensure that the authorizer is being called as expected from within ALTER TABLE. (check-in: ff10d2c7 user: dan tags: trunk)
2018-10-05
20:09
When the left-hand side of a WHERE clause contraint is a UNIQUE column, and that term of the WHERE clause is not used for indexing, assume that the term reduces the number of output rows by half. This is one proposed fix for ticket [e8b674241947eb3ba4] (Leaf check-in: 5c243eec user: drh tags: unique-constraint-weights)
15:10
Changes to geopoly to silience false-positive warnings coming out of clang. (check-in: 11d9015f user: drh tags: trunk)
2018-10-04
18:17
The 0x8000 optimization flag associated with SQLITE_TESTCTRL_OPTIMIZATIONS causes a large penalty (200) to be added to all sorting costs, which encourages the query planner avoid using the sorter. This flag can be used in experiments to help come up with a more accurate estimate of the true cost of sorting. (Leaf check-in: 857a1b01 user: drh tags: query-planner-debug)
2018-10-03
18:05
Add an ALWAYS on an unreachable branch in the ALTER TABLE logic. (check-in: ebcd4523 user: drh tags: trunk)
11:13
Change a type in shell.c.in from "int" to "sqlite3_int64" in order to avoid a compiler warning and possible integer overflow. (check-in: bf0a6634 user: dan tags: trunk)
2018-10-02
20:16
Add an additional assert() verifying mutex invariants on the unixShmSystemLock() routine in the unix VFS. (check-in: cb151106 user: drh tags: trunk)
19:58
Additional field name changes and commit fixes associated with shared-memory locking in the unix VFS, to improve maintainability. No logic changes. (check-in: 9280774a user: drh tags: trunk)
19:36
Fix comments and refactor some names associated with shared-memory locking in the Unix VFS. No logical changes. (check-in: 3e9f1635 user: drh tags: trunk)
2018-10-01
21:41
Add the "PRAGMA table_xinfo" command that works like table_info but also shows hidden columns in virtual tables and adds the "hidden" boolean column. (check-in: defa0515 user: drh tags: trunk)
21:36
Test case for PRAGMA table_xinfo. (Closed-Leaf check-in: 7694b9bc user: drh tags: pragma-table-vinfo)
21:26
Change the name of the pragma to PRAGMA table_xinfo. Improve the mkpragmatab.tcl script to reuse column names where appropriate. (check-in: 2fdd0689 user: drh tags: pragma-table-vinfo)
18:28
Add the extra "hidden" column to the end of the PRAGMA table_vinfo output. (check-in: cf1b7613 user: drh tags: pragma-table-vinfo)
17:33
Speed up xAccess() calls made on an RBU VFS when there are lots of open connections. (check-in: 310b4b65 user: dan tags: trunk)
17:15
Bring the PRAGMA table_vinfo statement up to date with trunk. (check-in: 6f606f99 user: drh tags: pragma-table-vinfo)
14:05
Fix a potential crash that can occur while reading an index from a corrupt database file. The corruption is a record-header-size that is larger than 0x7fffffff. Problem detected by OSSFuzz against GDAL and reported to us (with a suggested fix) by Even Rouault. The test case is in TH3. (check-in: 5d291658 user: drh tags: branch-3.25)
13:54
Fix a potential crash that can occur while reading an index from a corrupt database file. The corruption is a record-header-size that is larger than 0x7fffffff. Problem detected by OSSFuzz against GDAL and reported to us (with a suggested fix) by Even Rouault. The test case is in TH3. (check-in: 8ac2cdda user: drh tags: trunk)
11:00
Ensure that the OP_VColumn opcode does set sqlite3_vtab_nochange() unless the OPFLAG_NOCHNG bit is set in P5. Fix for ticket [69d642332d25aa3b7315a6d385] (check-in: 31ac8dba user: drh tags: branch-3.25)
07:04
Fix a problem with ALTER TABLE commands when the schema features an INSTEAD of trigger that uses NEW.* or OLD.*. (check-in: c52f457e user: dan tags: trunk)
2018-09-29
19:38
Add the PRAGMA table_vinfo command (with an extra "v" before "info") that works like PRAGMA table_info (without the "v") except that it also shows hidden columns on virtual tables. (check-in: 8bcd1a59 user: drh tags: pragma-table-vinfo)
2018-09-28
23:53
Fix test cases so that they work with ICU. (check-in: d04b2013 user: drh tags: trunk)
21:11
Merge latest begin-concurrent changes into this branch. (check-in: 6f3dd980 user: dan tags: begin-concurrent-pnu)
20:58
Merge latest trunk into this branch. (check-in: 86750c92 user: dan tags: begin-concurrent)
20:46
Have sqlite3changegroup_output_strm() call its output function more regularly. (check-in: 8467c31a user: dan tags: trunk)
18:51
Fix a bug in the sqlite_memstat virtual table that was causing it to report the amount of memory used as zero bytes. (check-in: 8a758a87 user: drh tags: trunk)
14:01
Add the geopoly_regular(X,Y,R,N) function to the geopoly extension. (check-in: 4505bbae user: drh tags: trunk)
13:18
Make most geopoly functions pure. (check-in: 944e167a user: drh tags: trunk)
00:16
Rig geopoly to use sqlite3AtoF() if it is available, as that routine is much faster than atof(). (check-in: 470c6c07 user: drh tags: trunk)
2018-09-27
23:57
Small performance optimization in the JSON parser of Geopoly. (check-in: fb520e71 user: drh tags: trunk)
20:37
Enhance the GeoPOLY extension so that it always stores its polygons in the binary format, which is faster and more compact. (check-in: dc35f7b1 user: drh tags: trunk)
20:20
Ensure that the OP_VColumn opcode does set sqlite3_vtab_nochange() unless the OPFLAG_NOCHNG bit is set in P5. Fix for ticket [69d642332d25aa3b7315a6d385] (check-in: 322ab1fc user: drh tags: trunk)
17:33
Another minor tweak to memstat.c so that it may be built against older versions of SQLite. (check-in: 4c1fed60 user: dan tags: trunk)
17:15
Modify the memstat virtual table so that it works with SQLite version 3.9.2. (check-in: 7171d8ae user: drh tags: trunk)
17:03
Add the sqlite_memstat extension - an eponymous virtual table that shows memory usages statistics for SQLite. (check-in: 954ef61f user: drh tags: trunk)
16:57
Enhancements to sqlite_memstat: (1) Add an extra "schema" column to show the schema name for ZIPVFS stats. (2) Only show ZIPVFS stats to schema that use ZIPVFS (3) Put a NULL in unused columns of the output. (Closed-Leaf check-in: 9351135b user: drh tags: memstat-vtab)
15:45
Add initial ZIPVFS support for the "main" database to the sqlite_memstat virtual table. (check-in: 9cd27350 user: drh tags: memstat-vtab)
15:21
Initial prototype of a eponymous virtual table that accesses sqlite3_status64() and sqlite3_db_status(). (check-in: 0b44e1f6 user: drh tags: memstat-vtab)
14:24
Minor enhancement to the pager so that it remembers if the underlying database files is immutable. (Leaf check-in: 64db614e user: drh tags: immutable-pager)
13:10
Disallow the use of window functions in the recursive part of a recursive CTE. Fix for ticket [e8275b415a2f03bee]. (check-in: b2849570 user: drh tags: branch-3.25)
12:14
Disallow the use of window functions in the recursive part of a recursive CTE. Fix for ticket [e8275b415a2f03bee]. (check-in: 7fc29944 user: dan tags: trunk)
00:04
Minor simplification: In OP_ParseSchema, read the p1 register once. (check-in: bd250533 user: mistachkin tags: trunk)
2018-09-26
18:02
Further improvements to the ".help" command in the CLI. (check-in: edc3d18e user: drh tags: trunk)
16:53
Begin revamping the ".help" command in the command-line shell so that it can accept an argument and will do a search for commands that match that argument. (check-in: 209afb8d user: drh tags: trunk)
16:05
Tweak spellfix.c so that if SQLITE_SPELLFIX_5BYTE_MAPPINGS is defined at compile time the Transliteration structure has space for 5 byte (instead of 4 byte) mappings. (check-in: cbaf5b6c user: dan tags: trunk)
03:43
Fix typos in the header comment for the sha1 and sha3 hash extensions in the ext/misc folder. (check-in: 4ed9d83a user: drh tags: trunk)
2018-09-25
19:08
Version 3.25.2 (check-in: fb90e718 user: drh tags: release, version-3.25.2, branch-3.25)
13:52
Fix a problem in releasetest.tcl causing configuration "Fast-One" to fail. (check-in: 32ac0014 user: dan tags: branch-3.25)
13:51
Fix a problem in releasetest.tcl causing configuration "Fast-One" to fail. (check-in: 42e04fef user: dan tags: trunk)
01:38
Bump the version number to 3.25.2. (check-in: 996d74f5 user: drh tags: branch-3.25)
01:35
Fix a compilation issue in the "userauth" extension. Also fix a few test script errors that occur with SQLITE_USER_AUTHENTICATION=1 builds. (check-in: e7db5f59 user: drh tags: branch-3.25)
01:17
Fix a problem building on Android with SQLITE_ENABLE_BATCH_ATOMIC_WRITE set. (check-in: b9ffa77c user: drh tags: branch-3.25)
2018-09-24
21:07
Avoid incrementing the SQLITE_LOOKASIDE_MISS_SIZE stat before sqlite3_open() returns. Fix test script problem in lookaside.test. (check-in: 3bd94e43 user: drh tags: branch-3.25)
20:50
Fix missing space in 'configure.ac' reported on the mailing list. (check-in: 4407e15a user: drh tags: branch-3.25)
20:48
Add the "PRAGMA legacy_alter_table=ON" command to enable the pre-3.25.0 behavior of ALTER TABLE that does not modify the bodies of triggers or views or the WHERE clause of a partial index. Enable the legacy behavior by default when running the xRename method of virtual tables. (check-in: 31dc8b19 user: drh tags: branch-3.25)
19:41
Allow a writable virtual table to have a schema with an INTEGER PRIMARY KEY and WITHOUT ROWID. This fixes ticket [f25d5ceebe1d710ff61a571e395356869d8272ef]. Test case in TH3. (check-in: 3139af99 user: drh tags: branch-3.25)
19:32
Fix a faulty assert() in the validation logic for the LEFT JOIN strength reduction optimization. Problem found by OSSFuzz. (check-in: 8694c3d5 user: drh tags: branch-3.25)
19:21
Fix the "sqlite3" command in the TCL interface so that it correctly returns an error if invoked with no arguments. (check-in: 8a82fcf0 user: drh tags: branch-3.25)
18:29
Fix a problem with views that use window functions as part of complex expressions. (check-in: 1c0ecbbd user: drh tags: branch-3.25)
15:39
Slightly smaller and faster alternative to [507d892c3a40a0bacbd47] that fixes a problem with views that use window function as part of complex expressions. (check-in: d7c816ae user: drh tags: trunk)
14:51
Fix a problem with views that use window functions as part of complex expressions. (check-in: 507d892c user: dan tags: trunk)
14:10
Allow a writable virtual table to have a schema with an INTEGER PRIMARY KEY and WITHOUT ROWID. This fixes ticket [f25d5ceebe1d710ff61a571e395356869d8272ef]. Test case in TH3. (check-in: 5a38d928 user: drh tags: trunk)
12:37
Use compile-time options SQLITE_QUERY_PLANNER_LIMIT and SQLITE_QUERY_PLANNER_LIMIT_INCR to control the value for WhereLoopBuilder.iPlanLimit, rather than embedding magic numbers in the code. (check-in: 903e5018 user: drh tags: trunk)
10:47
Increase the initial value of WhereLoopBuilder.iPlanLimit to 20K. Issue a warning if the iPlanLimit reaches zero. (check-in: 3dd35f51 user: drh tags: trunk)
2018-09-23
02:01
Fix a faulty assert() in the validation logic for the LEFT JOIN strength reduction optimization. Problem found by OSSFuzz. (check-in: 2fd62fcc user: drh tags: trunk)
2018-09-22
15:05
Enhance WhereLoopBuilder.iPlanLimit to handle a case involving the OR optimization discovered overnight by OSSFuzz. (check-in: 7b59930a user: drh tags: trunk)
2018-09-21
23:41
Fix harmless compiler warning when compiled with SQLITE_OMIT_AUTHORIZATION. (check-in: 50f2fa19 user: mistachkin tags: trunk)
19:06
Comment typo fixed. No code changes. (check-in: 7e68cdab user: drh tags: trunk)
18:43
Put a limit counter on the query planner that restricts the number of index+constraint options that can be considered for each table in a join. This prevents certain pathological queries from taking up too much time in the query planner. (check-in: 8690b5a0 user: drh tags: trunk)
13:07
Optimization to the OP_MakeRecord opcode makes speed-check.sh run about 1.1 million cycles faster, and results in a slightly smaller library. (check-in: d10e6362 user: drh tags: trunk)
2018-09-20
20:43
Minor code simplification. (check-in: 22ae8a52 user: drh tags: trunk)
20:15
Add the "PRAGMA legacy_alter_table=ON" command to enable the pre-3.25.0 behavior of ALTER TABLE that does not modify the bodies of triggers or views or the WHERE clause of a partial index. Enable the legacy behavior by default when running the xRename method of virtual tables. (check-in: 7edd26ed user: drh tags: trunk)
19:02
Combine the Expr.pTab and Expr.pWin fields into a union named "y". Add a new EP_WinFunc property that is only true if Expr.y.pWin is a valid pointer. This reduces the size of the Expr object by 8 bytes, reduces the overall amount of code, and shaves over 1 million cycles off of the speed test. (check-in: ad130bb8 user: drh tags: trunk)
17:21
By default, make all "ALTER TABLE RENAME" statements executed within a virtual table xRename() method exhibit the legacy behaviour. (Closed-Leaf check-in: 71947337 user: dan tags: legacy-alter-table)
08:28
Add a PRAGMA that restores the legacy ALTER TABLE RENAME TO behaviour. (check-in: 5acad2e9 user: dan tags: legacy-alter-table)
2018-09-19
20:14
Reduce the size of Expr to 64-bytes. This works somewhat, but there are test failures. More importantly, the size reduction from 80- to 64-bytes has not lowered the schema memory usage, but it has made the code a little bigger and a little slower. So the initial evidence is that this Expr refactoring experiment is not working... (Leaf check-in: 24b0f66a user: drh tags: expr-simplify)
18:17
A minor code simplification, saved in a branch for future reference. (Leaf check-in: 5e458f4a user: drh tags: minor-altertab-simplification)
17:24
Fix an issue in virtual table handling associated with the new Expr.x.pRight field. (check-in: 8487f84a user: drh tags: expr-simplify)
17:09
Fix a compilation issue in the "userauth" extension. Also fix a few test script errors that occur with SQLITE_USER_AUTHENTICATION=1 builds. (check-in: 221f3f57 user: dan tags: trunk)
16:35
Make sure Expr.eX changes back to EX_None after Expr.x.pRight is set to NULL due to an OOM. (check-in: e4129cd3 user: drh tags: expr-simplify)
15:08
Fix the "sqlite3" command in the TCL interface so that it correctly returns an error if invoked with no arguments. (check-in: 2034fa80 user: drh tags: trunk)
14:54
Reduce the size of Expr from 80 to 72 bytes moving the pRight field inside the "x" union. This is an incremental check-in that still has issues. (check-in: 147c61a6 user: drh tags: expr-simplify)
11:59
Make sure temporary Expr objects are fully initialized prior to sending them into sqlite3ExprCodeTemp(). (check-in: de02a1d9 user: drh tags: expr-simplify)
2018-09-18
21:35
In the Expr object, the Expr.eX field determines what value is stored in the Expr.x union. This mostly works, but there are issues identified by valgrind. (check-in: 8849a463 user: drh tags: expr-simplify)
20:20
Version 3.25.1 (check-in: 2ac9003d user: drh tags: release, version-3.25.1, branch-3.25)
19:40
Fix a problem building on Android with SQLITE_ENABLE_BATCH_ATOMIC_WRITE set. (check-in: e41e50fe user: dan tags: trunk)
18:08
Merge all recent trunk enhancements. (check-in: 655f0654 user: drh tags: expr-simplify)
17:50
Avoid incrementing the SQLITE_LOOKASIDE_MISS_SIZE stat before sqlite3_open() returns. Fix test script problem in lookaside.test. (check-in: e461cb28 user: dan tags: trunk)
17:00
Enhance tester.tcl so that when "--malloctrace=1" is specified, the test generates self-contained Tcl scripts that present GUIs instead of *.sql files that require a separate program to interpret. (check-in: de2e3cbd user: dan tags: trunk)
16:06
Minor improvements to the permutations.test script. Most notably, a command like "permutations.test alter%" now runs all test scripts with names that match the LIKE pattern "alter%". Or, say, "permutations wal alter%" to run all alter% tests in wal mode. (check-in: 3e1a2f66 user: dan tags: trunk)
2018-09-17
20:47
Further optimizations to the UPDATE logic to avoid making changes to partial indexes if none of the columns mentioned in the WHERE clause are modified by the UPDATE. (check-in: d1365a5b user: drh tags: trunk)
15:25
Disable the ORDER BY LIMIT optimization in queries using window functions. This fixes a problem that was introduced by check-in [206720129ed2fa8875a286] which attempted to fix ticket [9936b2fa443fec03ff25f9]. This changes is a fix for the follow-in tocket [510cde277783b5fb5de628]. (check-in: 36c75fd5 user: drh tags: branch-3.25)
15:19
Disable the ORDER BY LIMIT optimization in queries using window functions. This fixes a problem that was introduced by check-in [206720129ed2fa8875a286] which attempted to fix ticket [9936b2fa443fec03ff25f9]. This changes is a fix for the follow-in tocket [510cde277783b5fb5de628]. (check-in: c6c9585f user: drh tags: trunk)
14:18
Fix a false-positive in the post-ALTER-TABLE schema verification logic that prevents ALTER TABLE from working if the table being altered has a trigger that references any column of a virtual table. Ticket [b41031ea2b537237]. (check-in: 5ce568c0 user: drh tags: branch-3.25)
14:13
Fix a false-positive in the post-ALTER-TABLE schema verification logic that prevents ALTER TABLE from working if the table being altered has a trigger that references any column of a virtual table. Ticket [b41031ea2b537237]. (check-in: 84105ea4 user: drh tags: trunk)
13:55
Restore an assert() that was present on trunk. (Closed-Leaf check-in: a7b572ca user: drh tags: tkt-b41031ea)
13:38
Minor modification to the fix on this branch to avoid adding extra conditional compilation macros. (check-in: 4d8be404 user: dan tags: tkt-b41031ea)
12:49
Fix missing space in 'configure.ac' reported on the mailing list. (check-in: 96b00a3c user: mistachkin tags: trunk)
11:36
Increase the version number to 3.25.1. (check-in: f3c8cfdb user: drh tags: branch-3.25)
08:27
Add extra test for the fix on this branch. Also fix a pointer-compare-after-free problem that occurs in similar cases. (check-in: 1856ea63 user: dan tags: tkt-b41031ea)
00:15
Add assert()s to the new code in the previous check-in. (check-in: b12f23a5 user: drh tags: tkt-b41031ea)
2018-09-16
23:27
First proposed fix for the ALTER TABLE problem described by ticket [b41031ea2b5372378cb3d2d] (check-in: 05a9d129 user: drh tags: tkt-b41031ea)
18:23
Remove an unreachable branch from the index-on-expression optimization. (check-in: 2df2cf4f user: drh tags: trunk)
16:34
Fix a memory leak in the explain extension. (check-in: d0c92b04 user: drh tags: trunk)
16:18
Add the new "explain" virtual table in ext/misc. Use this virtual table for additional test cases for the optimization that avoids updating indexes on expressions when none of the columns changed by the UPDATE are in the expression. (check-in: 2404304c user: drh tags: trunk)
15:01
Improved presentation on the new code that prevents unnecessary writes to expressions on indexes during an UPDATE when the expression does not reference any of the columns that are changing. (check-in: c9f04529 user: drh tags: trunk)
2018-09-15
21:43
Increase the version number to 3.26.0 as we start the next development cycle. (check-in: 885f0f82 user: drh tags: trunk)
21:38
Optimization: when doing an UPDATE on a table with indexes on an expression, do not update the expression indexes if they do not refer to any of the columns of the table being updated. (check-in: a71b1016 user: drh tags: trunk)
04:01
Version 3.25.0 (check-in: b63af6c3 user: drh tags: trunk, release, version-3.25.0)
2018-09-14
17:42
Fix minor typos in comments that get carried over into documentation. No changes to code. (check-in: 7921dd91 user: drh tags: trunk)
2018-09-13
17:11
Update releasetest.tcl to run "make test" as part of the "Fast-One" configuration. (check-in: d5ebfe1c user: dan tags: trunk)
17:07
Make sure the %z optimization for printf() is not invoked if there has been a prior error (SQLITE_NOMEM or SQLITE_TOOBIG) associated with the same printf() call. (check-in: a2304a34 user: drh tags: trunk)
13:17
Fix a requirement mark on a test script. No changes to code. (check-in: 628d5c0a user: drh tags: trunk)
2018-09-12
20:32
Fix an assert() in os_unix.c that is not true when using RBU. (check-in: 028ed861 user: dan tags: trunk)
15:51
Restrict the scope of internal-use functions in alter.c. (check-in: 4396914f user: drh tags: trunk)
14:28
Improvements to the documentation for SQLITE_FCNTL_DATA_VERSION. No changes to code. (check-in: 27837624 user: drh tags: trunk)
08:51
Fix an invalid pointer comparison triggered by renaming a table column when there are views with explicit column names in the schema. (check-in: 572de7e4 user: dan tags: trunk)
01:05
Fix some harmless compiler warnings seen with MSVC. (check-in: 78862252 user: mistachkin tags: trunk)
00:48
For MSVC, migrate some commonly used shell compilation options to the library. (check-in: 68a71e5f user: mistachkin tags: trunk)
00:21
Fix a harmless compiler warning that arose from the ENABLE_CURSOR_HINTS fix of check-in [0af18674ca5b34e67e] (check-in: f578e62a user: drh tags: trunk)
2018-09-11
19:05
Do not do the byte-by-byte modifications in the resetdb.test script if the reserved-byte flag in the DB header is non-zero, because in that case the bytes will be in the wrong place and the test won't work. (check-in: 0af18674 user: drh tags: trunk)
13:38
Fix a problem causing ENABLE_CURSOR_HINTS builds to segfault. (check-in: e7033104 user: dan tags: trunk)
2018-09-10
19:34
Fix a test script issue in fts3ao.test. (check-in: 74c381b5 user: dan tags: trunk)
19:27
Fix a minor problem causing an incorrect cursor-hint to be generated in some cases. (check-in: d879c47d user: dan tags: trunk)
17:21
Add the ability for loadable extensions to access the new sqlite3_create_window_function() interface. (check-in: 3def6d8e user: drh tags: trunk)
16:38
Fix a broken assert() in fts3.c. (check-in: 564fa751 user: dan tags: trunk)
14:43
New testcase() macros on virtual table xBestIndex logic. (check-in: 3bbd9c5f user: drh tags: trunk)
12:40
Fix the LIKE optimization so that it is disabled when the LHS of the expression does not have TEXT affinity and the RHS is the pattern '/%' or the RHS begins with the escape character. Fix for ticket [c94369cae9b561b1f996d0054b]. (check-in: f191431d user: drh tags: trunk)
12:17
Fix a problem with processing a "vtab.col IS NULL" expression within the WHERE clause of a query when "vtab" is a virtual table on the rhs of a LEFT JOIN. (check-in: 83da4d41 user: dan tags: trunk)
2018-09-08
20:29
Fix an unreachable branch in the new sqlite3WhereOrderByLimitOptLabel() function of the query planner. (check-in: 5a954533 user: drh tags: trunk)
20:09
Fix multiple issues with the ORDER BY LIMIT optimization. This is the proposed resolution to ticket [9936b2fa443fec03ff25]. (check-in: 20672012 user: drh tags: trunk)
16:55
Add a missing call to free() in Lemon. (check-in: 8b4cf33a user: mistachkin tags: trunk)
16:53
Fix typo in the Win32-specific code for the fileio extension. (check-in: e812e5d5 user: mistachkin tags: trunk)
2018-09-07
19:12
Remove a faulty ALWAYS() macro added by check-in [8fa254aa6329bdd0]. (check-in: fc47316e user: drh tags: trunk)
18:56
Add extra test case to altertab.test. (check-in: 64c3ee3c user: dan tags: trunk)
18:52
Add assert() and ALWAYS() to identify two unreachable branches. (check-in: 8fa254aa user: drh tags: trunk)
15:50
Fix a problem with renaming a non-temp table that has at least one temp trigger and shares its name with a temp table. (check-in: ceb60bd7 user: dan tags: trunk)
11:51
Minor fixes for problems revealed by releasetest.tcl. (check-in: 1a8aedc3 user: dan tags: trunk)
11:08
Fix an uninitialized variable in the OP_ParseSchema opcode that comes up only if the schema is corrupt. (check-in: 725808d4 user: drh tags: trunk)
2018-09-06
20:33
In all.test, do not attempt to run the RBU tests in non-RBU builds. (check-in: 10c3e5a0 user: dan tags: trunk)
19:36
Fix a harmless compiler warning in os_unix.c. (check-in: b9d1fb5d user: drh tags: trunk)
18:56
Fix a problem with ALTER TABLE when there are views or triggers in the schema that contain "<expr> IS NULL" expressions. (check-in: 91aab32e user: dan tags: trunk)
17:47
Fix a problem in ALTER TABLE with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: fa835145 user: dan tags: trunk)
17:23
Fix test script problems causing SQLITE_OMIT_VIRTUALTABLE builds to fail. (check-in: 37ad064e user: dan tags: trunk)
16:50
Merge accidental fork. (check-in: ebadb7dc user: mistachkin tags: trunk)
16:47
Fix harmless compiler warning. (check-in: 88b39c46 user: mistachkin tags: trunk)
16:47
Fix a problem causing SQLITE_OMIT_VIRTUALTABLE builds to fail. (check-in: 18beabc8 user: dan tags: trunk)
16:24
Add new test file "alterauth.test". (check-in: 00940265 user: dan tags: trunk)
16:20
Add an "ALTER TABLE RENAME COLUMN" command. Upgrade "ALTER TABLE RENAME TABLE" so that it modifies references to the renamed table embedded in SQL view and trigger definitions. (check-in: 4da59983 user: dan tags: trunk)
16:17
Merge latest trunk changes into this branch. (Closed-Leaf check-in: 8a28a326 user: dan tags: alter-table-rename-column)
16:01
Ensure that the tbl_name column in the sqlite_temp_master table is updated correctly as part of a RENAME TABLE operation. (check-in: ffecfca5 user: dan tags: alter-table-rename-column)
14:01
Add the randomshape.tcl test-case generator script to the util subdirectory of the rtree extension. (check-in: 8f48991d user: drh tags: trunk)
11:14
Fix excess memory usage in the JSON parser of GEOPOLY. (check-in: 9057e27e user: drh tags: trunk)
02:40
Fix a problem with geopoly trying to update both the _shape and an auxiliary column in the same UPDATE statement. (check-in: 14c95515 user: drh tags: trunk)
2018-09-05
17:52
Merge latest trunk changes into this branch. (check-in: 6f4f707f user: dan tags: alter-table-rename-column)
17:45
Fix some test script errors. And an incorrect assert() in fts5. (check-in: f804336f user: dan tags: alter-table-rename-column)
16:16
Remove an old testcase() macro that is no longer valid. (check-in: e6287133 user: drh tags: trunk)
14:36
Avoid comparing pointer values after the object that they point to has been deleted. (check-in: 2ec7e50c user: dan tags: alter-table-rename-column)
08:28
Fix minor code issues in alter.c. (check-in: 18ba35b8 user: dan tags: alter-table-rename-column)
2018-09-04
18:23
Merge latest trunk changes into this branch. (check-in: ef9e0882 user: dan tags: alter-table-rename-column)
2018-09-03
20:05
Improve the error messages emitted by RENAME TABLE. (check-in: 6805b590 user: dan tags: alter-table-rename-column)
17:11
Ensure that FTS5 queries of the form "WHERE rowid BETWEEN ? AND ? AND tbl MATCH ? ORDER BY rank" do rowid filtering before sorting. (check-in: f1138a38 user: dan tags: trunk)
2018-09-01
20:38
Add another test case to altertab.test. (check-in: 828e8849 user: dan tags: alter-table-rename-column)
20:23
Fix a problem with renaming a column in a table that has a temp trigger that references another attached database. (check-in: 336b8a09 user: dan tags: alter-table-rename-column)
20:02
Fixes for harmless compiler warnings. (check-in: 41b8f38b user: drh tags: alter-table-rename-column)
16:55
Fix some harmless compiler warnings and improve defenses against OOM errors. (check-in: 2e2cf992 user: drh tags: alter-table-rename-column)
16:13
Merge alter-table-rename-table back into this branch. (check-in: ad704a7c user: dan tags: alter-table-rename-column)
16:05
Have "ALTER TABLE ADD COLUMN" reload the entire db schema, as "RENAME COLUMN" and "RENAME TABLE" do. (Closed-Leaf check-in: 8d89ddc1 user: dan tags: alter-table-rename-table)
15:55
Merge fixes from the alter-table-rename-column branch that occurred after this branch separated from that one. (check-in: 22e785aa user: drh tags: alter-table-rename-table)
15:49
Merge fixes and enhancements from trunk. (check-in: 589186c0 user: drh tags: alter-table-rename-table)
06:13
Update test script snapshot_fault.test to account for the new sqlite3_snapshot_open() error code. (check-in: c1aca767 user: dan tags: trunk)
2018-08-31
23:22
New hyperlink on the README.md file. (check-in: c663961e user: drh tags: trunk)
19:00
If a call to sqlite3_snapshot_open() fails because the requested snapshot no longer exists, return SQLITE_ERROR_SNAPSHOT instead of SQLITE_BUSY_SNAPSHOT. (check-in: e0792312 user: dan tags: trunk)
18:23
Ensure b-tree mutexes are always held when sqlite3FindTable() is called. Do not invoke the authorizer callback when parsing schema items as part of ALTER TABLE commands. Fix test script issues. (check-in: eac2aa7d user: dan tags: alter-table-rename-table)
2018-08-30
20:28
Try to identify the places in WAL code where thread-safety depends on the underlying architecture supporting atomic load and store of aligned 32-bit values. (check-in: 47d44be4 user: drh tags: trunk)
20:03
Test the schema after renaming a table. Ensure that temp database triggers and views are updated when renaming a column. (check-in: f3c27d91 user: dan tags: alter-table-rename-table)
18:53
Give the debugging routine print_pager_stats() external linkage in order to suppress harmless compiler and TSAN warnings. (check-in: ff4dc082 user: drh tags: trunk)
16:26
Fix an ALTER TABLE problem with processing temp schema views and triggers. (check-in: 72cfb1be user: dan tags: alter-table-rename-table)
01:52
Improved JSON parser caching. (check-in: 58078c0d user: drh tags: trunk)
2018-08-29
21:01
Additional test cases for geopoly. (check-in: 19b5eb45 user: drh tags: trunk)
21:00
Extend RENAME TABLE to edit triggers and views. Still buggy. (check-in: 01308bae user: dan tags: alter-table-rename-table)
20:52
Fixes to the UPDATE logic in Geopoly. (check-in: 7c3cee0a user: drh tags: trunk)
20:24
Also free up the MEM_RowSet bit in the Mem.flags field and have RowSet objects be destroyed using Mem.xDel. This change results in faster code. (check-in: f48e9feb user: drh tags: trunk)
18:47
Free up the MEM_Frame bit in Mem.flags object. Store VdbeFrame objects as MEM_Blob with a special Mem.xDel pointer instead. (check-in: 62db5fd4 user: drh tags: trunk)
15:50
Add the geopoly_group_bbox() aggregate function to the Geopoly module. (check-in: 2d4debcc user: drh tags: trunk)
2018-08-28
21:12
Disable the server1.test script on old PPC Macs due to problems in the pthreads implementation on those archaic machines. (check-in: 43efdd8c user: drh tags: trunk)
19:23
Stricter enforcement of the JSON and GeoJSON standards in the Geopoly extension. (check-in: c0bf3ff3 user: drh tags: trunk)
15:51
Fix new issues in the geopoly module discovered by TH3. (check-in: 22fff9af user: drh tags: trunk)
11:23
Fix a problem causing spurious SQLITE_CORRUPT errors when using the snapshot API to read from old database snapshots. (check-in: 535155be user: dan tags: trunk)
2018-08-27
17:13
Add support for the Geopoly extension to the R-Tree extension. This also involves adding the SQLITE_INDEX_CONSTRAINT_FUNCTION capability to the xFindFunction method of the sqlite3_module object, and to the sqlite3_index_info.aConstraint.op field in the xBestIndex implementation of virtual tables. (check-in: 666133e3 user: drh tags: trunk)
17:05
Minor changes to the visual01.txt test script. (Closed-Leaf check-in: 4bc28eed user: drh tags: rtree-geopoly)
15:55
Split the three-argument version of geopoly_within() off into a separate function named geopoly_contains_point(). (check-in: 5a0e1541 user: drh tags: rtree-geopoly)
2018-08-25
23:03
Enhance the geopoly virtual table so that it does a better job of optimizing geopoly_within() queries. (check-in: 1f717385 user: drh tags: rtree-geopoly)
19:51
Provide the two-argument geopoly_within(P1,P2) routine that determines if polygon P2 is contained within polygon P1. Make this function available to the query planner for optimized rtree lookups. Update the visual01.txt script to verify that the new functionality actually works. (check-in: 6eb5d09b user: drh tags: rtree-geopoly)
18:57
Fix a harmless compiler warning. (check-in: d49be983 user: drh tags: rtree-geopoly)
16:22
Fix a minor issue in the altercol.test script so that it runs on Windows. (check-in: 62089c6d user: drh tags: alter-table-rename-column)
16:14
Invoke the authorizer for ALTER TABLE RENAME COLUMN. (check-in: fc293bcb user: drh tags: alter-table-rename-column)
03:29
Remove an unnecessary IN_RENAME_COLUMN macro from resolve.c. (check-in: 5858c0bd user: drh tags: alter-table-rename-column)
02:04
The implementation of sqlite_rename_column() must be holding the schema mutexes. (check-in: f0eed21d user: drh tags: alter-table-rename-column)
2018-08-24
20:20
Fix a problem by renaming a column when the schema contains an trigger program featuring an UPSERT that uses an "excluded.*" reference to a different table. (check-in: 83d5f5ab user: dan tags: alter-table-rename-column)
20:10
Fix a problem with renaming a column that occurs as an "excluded.colname" construction in an UPSERT that is part of a trigger program. (check-in: bb2f7234 user: dan tags: alter-table-rename-column)
19:04
Set SQLITE_PTRSIZE to 4 when compiling with xlc on 32-bit AIX. (check-in: d158e5b1 user: mistachkin tags: trunk)
17:55
After modifying and reparsing the schema as part of an ALTER TABLE RENAME COLUMN, check that no new schema errors have been introduced (e.g. ambiguous column names in views) before committing the operation. (check-in: a0e06d2c user: dan tags: alter-table-rename-column)
16:04
Avoid incorrectly replacing tokens that refer to a column being renamed via an alias. For example, do not overwrite "xyz" when "a" is renamed in "CREATE VIEW v1 AS SELECT a AS xyz FROM tbl WHERE xyz=1" (check-in: ad072a83 user: dan tags: alter-table-rename-column)
2018-08-23
20:09
Add the "atrc" test program to the Makefiles. Fix a typo in the instructions in the header comment of the atrc program. (check-in: 2130a407 user: drh tags: alter-table-rename-column)
19:32
Fix harmless compiler warnings in the ALTER TABLE logic. Rephrase an error message to use active voice. (check-in: a7dae59a user: drh tags: alter-table-rename-column)
18:56
Automatically detect when compiling for AArch64 on windows and set SQLITE_BYTEORDER to little-endian to avoid compile-time testing. (check-in: ef6729be user: drh tags: trunk)
18:50
The Expr.iColumn field must also be initialized in tokenExpr(). (check-in: 772985f1 user: drh tags: alter-table-rename-column)
18:22
Make sure the Expr.iTable field is initialized by tokenExpr(). (check-in: 02a05a3b user: drh tags: alter-table-rename-column)
14:54
Merge enhancements from trunk. (check-in: c446c884 user: drh tags: rtree-geopoly)
2018-08-21
17:03
Fix a test case that was failing for SQLITE_ENABLE_STAT4 builds. (check-in: 1e29fd43 user: dan tags: trunk)
16:32
Rename internal function sqlite3RenameToken() to sqlite3RenameTokenMap() and sqlite3MoveRenameToken() to sqlite3RenameTokenRemap(). (check-in: b9ae9a0a user: dan tags: alter-table-rename-column)
15:06
Rationalize some duplicated code in alter.c. Also improve error messages for ALTER TABLE RENAME COLUMN in some cases. (check-in: 5d2163c7 user: dan tags: alter-table-rename-column)
12:46
Further attempts to reduce the number of false-positives genenerated by static analysis tools. (check-in: 38f9ce65 user: drh tags: trunk)
12:16
Fix various harmless warnings generated by static analysis tools. (check-in: a04a0ea9 user: drh tags: trunk)
08:29
Minor changes to function tokenExpr() in order to claw back cycles lost to the rename-column change. (check-in: 47997695 user: dan tags: alter-table-rename-column)
2018-08-20
20:01
Add further tests for RENAME COLUMN. (check-in: 82c4c10a user: dan tags: alter-table-rename-column)
16:16
Ensure that it is not possible to rename columns of system tables, views or virtual tables. (check-in: 786b5991 user: dan tags: alter-table-rename-column)
2018-08-18
18:27
Additional fixes for harmless compiler warnings that are specific to this branch. (check-in: 9d8e73bf user: drh tags: alter-table-rename-column)
18:14
Merge trunk fixes. (check-in: ccad2779 user: drh tags: alter-table-rename-column)
18:01
Have ALTER TABLE RENAME COLUMN also edit trigger and view definitions. (check-in: 7908e8a4 user: dan tags: alter-table-rename-column)
17:35
Improvements to error handling in ALTER TABLE RENAME COLUMN. (Closed-Leaf check-in: 7fa1faea user: dan tags: edit-trigger-wrapper)
2018-08-17
21:14
Fix harmless compiler warnings only seen with STAT4 enabled. (check-in: 6f5e84ba user: mistachkin tags: trunk)
18:08
Allow an ALTER TABLE RENAME COLUMN to proceed even if the schema contains a virtual table for which the module is unavailable. (check-in: 7b72b236 user: dan tags: edit-trigger-wrapper)
17:18
Ensure that CREATE VIEW, TRIGGER or INDEX statements can be edited by ALTER TABLE RENAME COLUMN even if they use collation-sequences or user-defined-functions that are not available. (check-in: 540014ef user: dan tags: edit-trigger-wrapper)
2018-08-16
19:49
Further progress on updating trigger programs as part of ALTER TABLE RENAME COLUMN. (check-in: 3f47222b user: dan tags: edit-trigger-wrapper)
16:24
Fix a harmless unused-variable compiler warning that only came up in certain compile-time configurations. (check-in: 45684292 user: drh tags: trunk)
15:29
Fix EXPLAIN QUERY PLAN so that it describes IN operators implemented using a ROWID lookup. (check-in: 60045fbf user: drh tags: trunk)
2018-08-15
20:28
Have ALTER TABLE RENAME COLUMN edit trigger programs. Only partly working. (check-in: e272dc2b user: dan tags: edit-trigger-wrapper)
14:03
Allow sqlite3_snapshot_open() to be called to change the snapshot after a read transaction is already open on database. (check-in: 41399169 user: dan tags: trunk)
2018-08-14
21:05
Fix a problem when renaming an IPK column that is also part of a child key. (check-in: 6e6a2bfd user: dan tags: edit-trigger-wrapper)
21:03
Fix a problem when renaming an IPK column that is also part of a child key. (check-in: ad154860 user: dan tags: alter-table-rename-column)
20:40
Merge latest trunk and ALTER TABLE error message improvements into this branch. (check-in: 7a45802d user: dan tags: edit-trigger-wrapper)
20:38
Do not allow ALTER TABLE RENAME COLUMN on a virtual table. (check-in: f6d6b472 user: drh tags: alter-table-rename-column)
20:18
Have ALTER TABLE RENAME edit column references in CREATE VIEW statements. (check-in: db829dc1 user: dan tags: edit-trigger-wrapper)
19:27
Improved error messages when an ALTER TABLE RENAME COLUMN fails due to a duplicate column name. (check-in: 37d11b8e user: drh tags: alter-table-rename-column)
18:12
Merge fixes and enhancements from trunk. (check-in: dff0314b user: drh tags: alter-table-rename-column)
16:18
Fix ALTER TABLE RENAME COLUMN in cases where the column being renamed is an IPK declared with a separate PRIMARY KEY clause - "CREATE TABLE x(y INTEGER, PRIMARY KEY(y))". (check-in: 32ca8418 user: dan tags: alter-table-rename-column)
15:12
Fix UPSERT so that it checks the target-constraint first and fires the DO UPDATE if that constraint is violated regardless of whether or not other constraints are in violation. This aligns SQLite behavior with what PostgreSQL does. Fix for ticket [908f001483982c43cdb476dfb590a1a]. (check-in: 529fb55e user: drh tags: trunk)
2018-08-13
22:50
Stop requiring the global VFS mutex to access the unixInodeInfo.pUnused field. The unixInodeInfo mutex is sufficient. (check-in: e3ea43da user: drh tags: trunk)
20:46
Take extra precautions to ensure access to unixInodeInfo.pUnused is protected by all necessary mutexes. (check-in: 8b1e0010 user: drh tags: trunk)
17:14
Edit the WHEN and UPDATE OF clauses of trigger programs as part of ALTER TABLE RENAME COLUMN. (check-in: 5fdb6b0a user: dan tags: edit-trigger-wrapper)
17:02
Make the sqlite_rename_column() SQL function resistant to problems caused by OOMs and/or malformed parameters submitted by hostile application code. Also add additional comments to the RENAME COLUMN logic. (check-in: 87743dde user: drh tags: alter-table-rename-column)
15:09
Fix legacy comments on Token. Begin commenting the new ALTER TABLE RENAME COLUMN code. Fix a memory leak in the sqlite_rename_column() SQL function. (check-in: 32edc892 user: drh tags: alter-table-rename-column)
13:43
Fix issues with ALTER TABLE RENAME COLUMN associated with OOM errors. (check-in: 0b28dd5c user: drh tags: alter-table-rename-column)
12:58
Fix a heap-corruption causing race condition in os_unix.c that could occur when one thread wal opening a database file while another is unlocking the same file. Edit: Let's go in a slightly different direction with this fix. (Closed-Leaf check-in: 2447e0fd user: dan tags: unix-lock-fix-attempt)
11:32
Fix an incorrect comment on the unix-nolock VFS object. No functional code changes. (check-in: 90f7c193 user: drh tags: trunk)
2018-08-11
20:46
Add the "atrc" test program. "Atrc" is short for "ALTER TABLE RENAME COLUMN". See the header comment on the program itself for further information. (check-in: ed64a55a user: drh tags: alter-table-rename-column)
20:38
If the new column name in an ALTER TABLE RENAME COLUMN statement is quoted, then also use quotes for the column name in the edited SQL statements. (check-in: ca5184a2 user: dan tags: alter-table-rename-column)
18:34
Avoid an assert() sometimes triggered by ALTER TABLE RENAME COLUMN in non-debug builds. (check-in: 520c1c75 user: dan tags: alter-table-rename-column)
17:49
Fix a bug causing ALTER TABLE RENAME COLUMN to fail when renaming an IPK column that is used in a CHECK constraint. (check-in: 6595c881 user: dan tags: alter-table-rename-column)
17:34
Fix a bug causing all ALTER TABLE RENAME COLUMN commands to fail if ANALYZE had been run on the database. Also prevent the user from renaming the columns of system tables. (check-in: ca644a28 user: dan tags: alter-table-rename-column)
13:40
Reload the entire schema after renaming a column in order to ensure that the schema for any tables for which parent key definitions were changed are reloaded. (check-in: f4497b01 user: dan tags: alter-table-rename-column)
2018-08-10
20:19
Ensure the schema cookie is changed when a column is renamed. (check-in: 2dec9ea4 user: dan tags: alter-table-rename-column)
19:33
Fix harmless compiler warnings. (check-in: 9564d700 user: drh tags: alter-table-rename-column)
19:19
When a column is renamed, update any references to it in REFERENCES clauses that belong to other tables. (check-in: 191079bd user: dan tags: alter-table-rename-column)
15:27
Merge latest trunk changes with this branch. (check-in: c355a837 user: dan tags: alter-table-rename-column)
14:23
Fix a problem with renaming columns on tables with REFERENCES clauses that specify a large number of columns. (check-in: d48f7bbd user: dan tags: alter-table-rename-column)
2018-08-09
21:45
Fix the isLikeOrGlob() routine in the WHERE clause processing logic so that it avoids signed/unsigned character comparisons, as that can lead to an incorrect answer if the ESCAPE clause is an invalid UTF8 string. Problem found by OSSFuzz. (check-in: 4195a3f8 user: drh tags: trunk)
20:47
Experimental implementation of ALTER TABLE ... RENAME COLUMN. Still buggy. (check-in: fa0fc01e user: dan tags: alter-table-rename-column)
18:36
When a column must be a constant due to WHERE clause and the value of that column is being coded as a constant, make sure the affinity is correct. (check-in: 7404ea83 user: drh tags: trunk)
2018-08-08
20:46
Minor style improvements. (check-in: 60bbca2b user: mistachkin tags: trunk)
2018-08-06
17:12
Allow sqlite3_snapshot_open() to be called to change the snapshot after a read transaction is already open on database. (Closed-Leaf check-in: 051ac015 user: dan tags: exp-snapshot-open)
02:08
Enhance the edit() function so that it converts text from \r\n back into \n only if the original unedited copy contained no \r\n values. (check-in: 20c995d3 user: drh tags: trunk)
01:39
Add the --info option to the fuzzcheck test utility. (check-in: 1caaaaa7 user: drh tags: trunk)
01:21
Fix an overzealous assert() statement discovered by OSSFuzz. (check-in: d9c9fe9f user: drh tags: trunk)
2018-08-04
20:30
Remove the column-cache from the code generator. The column-cache has been a persistent source of bugs for years and with recent improvements in the performance of OP_Column, it no longer provides a benefit. After the column cache is removed, the binary is almost 2KB smaller and the speed-check.sh performance test is over 3 million cycles faster. (check-in: cdff3af7 user: drh tags: trunk)
20:12
Remove a testcase() that is no longer reachable without the column cache. Provide an assert() to help prove that the testcase is no longer reachable. (Closed-Leaf check-in: a500893b user: drh tags: omit-column-cache)
17:15
Fix comments that were made obsolete by the removal of the column cache. (check-in: 2041231d user: drh tags: omit-column-cache)
16:54
Remove more column-cache residue: The OP_SetColTab and OP_VerifyColTab opcodes and the associated SQLITE_DEBUG_COLUMNCACHE logic. (check-in: 80236e81 user: drh tags: omit-column-cache)
15:53
Further logic simplifications that flow out of the omission of the column cache. (check-in: 7d9072b0 user: drh tags: omit-column-cache)
15:28
Add test cases for the constant expression fix of the previous check-in. (check-in: 95db5bd9 user: drh tags: trunk)
15:16
Ensure that all expressions that are to be evaluated once at the start of a prepared statement (the Parse.pConstExpr expressions) pass the sqlite3ExprIsConstantNotJoin() test. It is not sufficient to pass just the sqlite3ExprIsConstant() test as that would allow through column references that are bound to constants by the WHERE clause in the constant propagation optimization. This fixes a problem discovered by OSSFuzz. (check-in: 8bc7f84c user: drh tags: trunk)
14:30
Remove additional traces of the column cache. (check-in: db6052e9 user: drh tags: omit-column-cache)
2018-08-03
23:04
Completely remove the column cache logic, which has been a persistent source of bugs for many years. Due to recent enhancements to the performance of the OP_Column opcode, removing the column cache actually makes speed-check.sh run faster. Removing the column cache also saves about 1,800 bytes of code space. (check-in: 3f5f60cd user: drh tags: omit-column-cache)
20:19
Fix the handling of sub-queries with LIMIT clauses by the optimization activated by compile-time symbol SQLITE_COUNTOFVIEW_OPTIMIZATION. (check-in: 21235d9a user: dan tags: trunk)
15:58
Fix the OP_SeekRowid opcode so that it has no type-change side-effects on the key register in P3. This fixes an obcure problem that arises when doing equi-joins between a table with a TEXT column against another table with an INTEGER PRIMARY KEY. The original problem was discovered when OSSFuzz created such a query and hit an assert() in OP_VerifyTabCol that was specifically designed to catch these kinds of errors at run-time. Test cases for this fix are in TH3. (check-in: fa94b49e user: drh tags: trunk)
13:56
Improve "PRAGMA vdbe_trace=ON" to always show the key values for the OP_IdxGT and related opcodes. (check-in: 0f881955 user: drh tags: trunk)
2018-07-29
18:56
In the command-line shell, always exit if realloc() fails. (check-in: e390023c user: drh tags: trunk)
2018-07-28
21:01
Add a small cost penalty to sorting to bias the query planner in favor of plans that do not require a final sorting pass. (check-in: 85b9beb4 user: drh tags: trunk)
16:24
Do not allow a column reference that is converted into a constant by the WHERE-clause constant propagation optimization to be moved to the init-time constant expression list, as the table reference will not work there. This fixes a problem found by OSSFuzz. (check-in: d30b2a94 user: drh tags: trunk)
14:56
Fix an assert() statement that was made obsolete by the constant propagation enhancement. Problem discovered by OSSFuzz. (check-in: e4b4737e user: drh tags: trunk)
14:34
Improved debugging output when the ".selecttrace" option is used in the shell. (check-in: fcb88dd6 user: drh tags: trunk)
13:37
An early attempt at refactoring Expr (Closed-Leaf check-in: fc90a53d user: drh tags: expr-simplify-branch1)
01:30
Add assert() statements to sqlite3ExprDelete() that prove various symmetry properties of the Expr object that might be exploited to make the Expr object smaller and faster. (check-in: 81f25d5c user: drh tags: expr-simplify)
2018-07-27
23:33
Improvements to the parser to increase coverage. Fix the parser so that at least one expresssion is required after PARTITION BY and within the list of expressions on VALUES(). (check-in: 02204f8b user: drh tags: trunk)
22:55
When doing a DROP VIEW do not try to delete entries from the sqlite_stat1 table as there are none. (check-in: 7efdba2b user: drh tags: trunk)
22:14
Minor grammar changes that help the parser run faster by reducing the number of NUL rule reductions. (check-in: cfd1b005 user: drh tags: trunk)
20:45
Enhance Makefile for MSVC to support building the shell tool without using the amalgamation. (check-in: 3d815d83 user: mistachkin tags: trunk)
20:37
The WHERE-clause constant propagation optimization attempts to use transitive laws to replace column values with constants in the WHERE clause in order to help to query planner make more aggressive optimizations. (check-in: f4229707 user: drh tags: trunk)
20:01
Reduce the performance cost of the constant propagation optimization to less than 200,000 cycles. (Closed-Leaf check-in: 865249de user: drh tags: propagate-const-opt)
18:19
Performance improvement to sqlite3ExprCollSeq(). With this change, the performance of speed-check.sh is within 400,000 cycles of trunk. (check-in: a5f86f49 user: drh tags: propagate-const-opt)
18:12
Faster implementation of sqlite3IsBinary(). (check-in: be05d0db user: drh tags: propagate-const-opt)
17:51
Only run the constant propagation optimization on joins since that is the only scenario where it is useful. This saves prepare time for the common case of a simple query. (check-in: 598d6083 user: drh tags: propagate-const-opt)
16:57
Constant propagation is now restricted to just the WHERE clause. The mechanism is changed to take affinity and collation into account. This seems to give correct answers. But the search for constant propagation costs 4 million cycles in the speed test. (check-in: 82c67efb user: drh tags: propagate-const-opt)
2018-07-26
23:54
Add a test case demonstrating the collation problem with constant propagation. (check-in: 50add839 user: drh tags: propagate-const-opt)
23:47
Generalize the constant propagation optimization so that it applies on every WHERE close, not just those that contain a subquery. This then demonstrates that the current implementation is inadequate since it does not take into account collating sequences. (check-in: 57eb2abd user: drh tags: propagate-const-opt)
21:48
In the unix VFS, give every unixInodeInfo object its own mutex, rather than using the global VFS mutex, to improve concurrency in cases where there are many threads operating on separate database files. (check-in: 22f47cf4 user: drh tags: trunk)
21:16
Initial implementation of the WHERE-clause constant propagation optimization. (check-in: 2fb82ad8 user: drh tags: propagate-const-opt)
2018-07-25
15:25
Fix a buffer overread in fts5. (check-in: 0e3de8ab user: dan tags: trunk)
15:12
Keep generated opcode values grouped together when required, even when they do not correspond to a token. (check-in: 6ee2950b user: mistachkin tags: trunk)
07:29
Fix a typo in the documentation for sqlite3_snapshot_get(). (check-in: cd9713c9 user: dan tags: trunk)
2018-07-24
22:02
Do not abort running queries due to a CREATE INDEX statement. Allow them to run to completion before being reprepared. Fix for ticket [c694113e50321afdf9]. (check-in: 2bd59333 user: drh tags: trunk)
13:57
Add missing SQLITE_OMIT_WINDOWFUNC check to the json1 extension. (check-in: fe19f823 user: mistachkin tags: trunk)
2018-07-23
22:55
Return an SQLITE_NOMEM error if the locking mutex fails to allocate. (Closed-Leaf check-in: 1c948348 user: drh tags: separate-lock-mutex)
21:10
First attempt at reducing mutex contention in the unix VFS by providing a separate mutex for each unixInodeInfo object. (check-in: f69afaf0 user: drh tags: separate-lock-mutex)
18:53
Fix typo of 'SQLITE_OMIT_WINDOWFUNC'. (check-in: 8607b84a user: mistachkin tags: trunk)
18:32
Attempt to improve the documentation for snapshots. No changes to code. (check-in: 46dd076a user: drh tags: trunk)
10:57
Fix the macros used to generate the output of "PRAGMA compile_options" so that they handle valid values for the SQLITE_DEFAULT_LOOKASIDE macro (which contain a "," character). (check-in: 1cc72845 user: dan tags: trunk)
2018-07-22
21:23
Fix more harmless compiler warnings seen with MSVC. (check-in: edab5666 user: mistachkin tags: trunk)
21:08
Another minor revision to the 'fulltestonly' set of tests. (check-in: 61f8e2a4 user: mistachkin tags: trunk)
20:24
Fix harmless compiler warning. (check-in: ead4762d user: mistachkin tags: trunk)
06:25
In the Win32 VFS, when truncating a file, unmap it first. (check-in: 21510a66 user: mistachkin tags: trunk)
00:45
Remove an unused branch in the FK logic. (Closed-Leaf check-in: 523ff779 user: drh tags: dropViewNoStat)
2018-07-21
23:15
In 'resetdb.test', close a database prior to trying to delete it. (check-in: 45137053 user: mistachkin tags: trunk)
2018-07-20
20:56
When dropping a view, skip trying to delete from 'sqlite_stat*'. (check-in: 2f5be3a2 user: mistachkin tags: dropViewNoStat)
19:24
Change the SQLITE_Stat34 bit of the optimization test-control so that it prevents STAT4 data from being used but allows it to be loaded into the Index objects. This permits STAT4 to be turned on and off on a per-statement basis. (check-in: 489f3caf user: drh tags: trunk)
18:01
Experimental change to ANALYZE so that when computing values for sqlite_stat1, it uses the maximum number for the number of rows having equivalent values, rather than the average. (Leaf check-in: 085f17e1 user: drh tags: stat1-max)
15:44
New checks in PRAGMA integrity_check to validate the autovacuum settings in the header. (check-in: a4663f09 user: drh tags: trunk)
13:39
Enhanced detection of problems on the freelist and on overflow list in PRAGMA integrity_check. (check-in: 11e58f5b user: drh tags: trunk)
2018-07-19
15:27
Avoid a branch in the commit logic that is unreachable when compiled without SQLITE_ENABLE_BATCH_ATOMIC_WRITE. (check-in: 271b8980 user: drh tags: trunk)
14:40
Allow the VACUUM following SQLITE_DBCONFIG_RESET_DATABASE to proceed even if the write-version in the header indicates that the database file is not writable. (check-in: 3dca8b9d user: drh tags: trunk)
11:44
Experimental fix for resetting databases that have been deemed read-only due to a corrupt "read-version" header field. (Closed-Leaf check-in: e2394002 user: dan tags: exp-dbreset-fix)
2018-07-18
19:09
Add the SQLITE_FCNTL_DATA_VERSION file control (check-in: a5087c5c user: drh tags: trunk)
17:37
Fix a harmless compiler warning in the pager. Enhance the docs for sqlite3_changes() and sqlite3_total_changes() to refer to the data_version pragma. (check-in: 4c70ea5b user: drh tags: trunk)
2018-07-17
14:01
If an SQLITE_IOERR error is encountered as part of an atomic commit on an F2FS file-system, retry the commit in legacy journal mode. (check-in: 2e0357c2 user: dan tags: trunk)
13:55
Fix for builds without SQLITE_ENABLE_BATCH_ATOMIC_WRITE. (Closed-Leaf check-in: b10ec14e user: dan tags: exp-retry-atomic-commit)
2018-07-16
20:44
Add new file doc/F2FS.txt, containing notes on the way SQLite uses the F2FS atomic commit feature. (check-in: 59efb1bf user: dan tags: exp-retry-atomic-commit)
11:32
Minor simplification to sqlite3RollbackAll(). (check-in: 432fdc22 user: drh tags: trunk)
2018-07-14
20:25
If an SQLITE_IOERR error is encountered as part of an atomic commit on an F2FS file-system, retry the commit in legacy journal mode. (check-in: 1c41250f user: dan tags: exp-retry-atomic-commit)
2018-07-13
20:28
Remove an unused function declaration from fts5. (check-in: 148d9b61 user: dan tags: trunk)
19:52
Add the "categories" option to the unicode61 tokenizer in fts5. (check-in: 80d2b9e6 user: dan tags: trunk)
2018-07-12
19:39
Merge latest begin-concurrent changes with this branch. (check-in: d33527d2 user: dan tags: begin-concurrent-pnu)
19:28
Merge latest trunk changes into this branch. (check-in: 6a00a34e user: dan tags: begin-concurrent)
19:14
Add a test-control to disable the skip-scan optimization. (check-in: 650a3fe0 user: dan tags: trunk)
11:28
Add a test case to check that SQLITE_DBCONFIG_RESET_DATABASE can be used with wal mode databases even if there are active readers. (check-in: 6145f5b3 user: dan tags: trunk)
2018-07-11
13:34
On an UPSERT when the order of constraint checks is rearranged, make sure that the affinity transformations on the inserted content occur before any of the constraint checks. Fix for ticket [79cad5e4b2e219dd197242e9e5f4e]. (check-in: d120c45f user: drh tags: trunk)
03:27
Adjustments to VdbeCoverage macros to deal with byte-code branches that can never be taken in some directions. (check-in: b170c009 user: drh tags: trunk)
2018-07-10
23:31
Remove incorrect ALWAYS() macros from the window function logic. (check-in: 94ac51cc user: drh tags: trunk)
22:24
Add VdbeModuleComment()s on the three main code generators for window functions. (check-in: f7c239e9 user: drh tags: trunk)
20:50
Minor comment changes. Add ALWAYS() macros on some unreachable branches in the xStep() methods of built-in window functions. (check-in: f2057542 user: drh tags: trunk)
19:48
Identify Select objects within a single statement using small sequential integers rather than "0x%p". This is more readable and yields the same result on successive runs. (check-in: a7cdc5bc user: drh tags: trunk)
18:50
Modify tests in window3.test to be tolerant of rounding errors when comparing floating point values. (check-in: 7c26c443 user: dan tags: trunk)
17:26
Fix a problem with using scalar sub-selects in window function queries. (check-in: 687fe532 user: dan tags: trunk)
17:10
Further improvements to bytecode branch testing. Fix cases where the macros said a branch could not be taken when in fact it could be. Alter some window function branch coverage macros to indicate that comparison operands cannot be NULL. (check-in: 76e42b70 user: drh tags: trunk)
16:04
Enhancements and improved documentation to the byte-code branch coverage testing logic. Provide new macros that allow the code to specify that some branch instructions can never take the NULL path and that the OP_Jump opcode is only interested in equal/not-equal. The SQLITE_TESTCTRL_VDBE_COVERAGE file control callback now works slightly differently (it provides the callback with a bitmask of the branch action, rather than an integer). (check-in: cd2da7e1 user: drh tags: trunk)
15:55
Experimental planner change to avoid a skip-scan if a regular index scan on the same index columns can be done instead. (Leaf check-in: 350f29ea user: dan tags: exp-begin-concurrent-pnu)
15:48
Merge begin-concurrent changes into this branch. (check-in: af17432e user: dan tags: begin-concurrent-pnu)
15:45
Merge latest trunk changes into this branch. (check-in: e9a3e864 user: dan tags: begin-concurrent)
07:39
Fix a harmless warning about comment formatting in the previous check-in. Simplify the ORDER BY dereferencing logic so that it avoids unreachable branches. (check-in: 0f6ec605 user: drh tags: trunk)
07:25
Assert that if two functions compare equal in every other way, then they must both have OVER clauses, or neither has an OVER clause. Use this fact to simplify expression comparison. (check-in: 52559ad5 user: drh tags: trunk)
06:47
Enhance the sqlite3ExprCompare() routine so that it knows to compare the OVER clause of window functions. (check-in: 0a7649af user: drh tags: trunk)
06:32
Enhance the TreeView mechanism so that it shows the window function data structures as part of the abstract syntax tree. (check-in: a2c0e1be user: drh tags: trunk)
05:11
New VDBE comments and coverage macros. (check-in: a9a30726 user: drh tags: trunk)
2018-07-09
22:49
Fixes for various harmless compiler warnings. (check-in: 5023b1b8 user: drh tags: trunk)
20:58
Add a comment to restriction (6) of the push-down optimization. No changes to code. (check-in: 0c8a2f25 user: drh tags: trunk)
20:41
Add an ALWAYS() around a branch in sqlite3BtreeSkipNext() that we believe must always be true. (check-in: 12be361a user: drh tags: trunk)
18:55
Avoid leaving view-definitions with an incomplete set of column names/types in the in-memory schema if an OOM strikes while allocating the same. (check-in: 1ddbb537 user: dan tags: trunk)
18:11
Add a couple of OOM tests. (check-in: 50de2a0d user: dan tags: trunk)
17:33
Remove redundant branches in window function processing. (check-in: 8fdaf3f3 user: drh tags: trunk)
16:24
Simplification to the grammar rules for window functions. Fix a memory leak that can follow an OOM while parsing a comma-separated list of window definitions. (check-in: a568f9c9 user: drh tags: trunk)
13:31
Throw an error if the second argument passed to nth_value() is not a positive integer. (check-in: 1a06e57a user: dan tags: trunk)
06:51
Fix a bad assert() in window.c. (check-in: fe8aaf0c user: dan tags: trunk)
02:37
Simplification to the logic that detects misuse of the application-defined function creation interfaces. (check-in: 8f21d778 user: drh tags: trunk)
02:02
During WITHOUT ROWID table creation, if the sqlite3CreateTable() call fails due to an authorizer denying the INSERT into the sqlite_master table, then detect this fact and abort the CREATE TABLE early, to avoid an assertion fault. (check-in: 164b1641 user: drh tags: trunk)
2018-07-08
01:02
Identify specific FuncDef objects for window functions using the pointer to the function name (FuncDef.zName) rather than the pointer to the xStep method. This allows xStep method pointer to be replaced with a single noopStepFunc() procedure, and thus save having lots of different no-op step functions. (check-in: 410e13b0 user: drh tags: trunk)
2018-07-07
20:55
Simplifications to the implementation of the sum() SQL function. (check-in: a8b13002 user: drh tags: trunk)
20:26
Fix another problem with reusing LSM cursors for range scans. (check-in: ae3fc765 user: dan tags: trunk)
20:23
Fix the JSON extension so that it can be compiled separately from the amalgamation. (check-in: 4b8cfe7b user: drh tags: trunk)
20:13
Fix an LSM problem caused by using the same cursor for equality and range scans. (check-in: f05bead3 user: dan tags: trunk)
19:47
Add ALWAYS() macros on results of sqlite3_aggregate_context() calls in xInverse() implements, since they can never fail. (check-in: fdef2a92 user: drh tags: trunk)
19:36
Add an assert() to help verify that OP_AggInverse is never called on an accumulator that has not previously been processed by OP_AggStep. (check-in: 42138891 user: drh tags: trunk)
17:38
Add missing VdbeCoverage() macro to window.c. (check-in: 63f4d306 user: dan tags: trunk)
17:30
Fix a problem with the handling of NULL values in the min() window function. (check-in: b76f35b0 user: dan tags: trunk)
2018-07-06
17:19
Try to improve the error messages for misformed frame specifications in window definitions. (check-in: 927b95a0 user: drh tags: trunk)
14:31
Also disallow non-constant expressions in "<expr> PRECEDING" or "<expr> FOLLOWING" clauses. (check-in: a6dffecc user: dan tags: trunk)
14:15
Ensure an error is returned if the user specifies an unsupported frame type. (check-in: 0f3f8fcd user: dan tags: trunk)
13:48
Prevent "UNBOUNDED FOLLOWING" from being used as the starting boundary of a window-frame. And "UNBOUNDED PRECEDING" from being used as the ending boundary. (check-in: e51fdf66 user: dan tags: trunk)
13:25
Remove some bad assert() statements from the implementations of window functions percent_rank() and cume_dist(). (check-in: 443f0c28 user: dan tags: trunk)
07:42
Return an error if DISTINCT is used with a window-function (e.g. "count(DISTINCT <expr>) OVER (...)"). (check-in: d59bcc8e user: dan tags: trunk)
2018-07-05
21:22
Use separate opcodes, OP_AggValue and OP_AggInverse, for the new callbacks associated with Window Functions, for improved readability of EXPLAIN output. (check-in: fa653805 user: drh tags: trunk)
20:33
Update the recipe for resetting a database using SQLITE_DBCONFIG_RESET_DATABASE. (check-in: c43dd23f user: dan tags: trunk)
20:05
Get the json_group_array() and json_group_object() SQL functions working as window functions. (check-in: 916cdc83 user: drh tags: trunk)
18:34
Return an error if a "RANGE" window-frame uses "<expr> PRECEDING" or "<expr> FOLLOWING". (check-in: 786c87ba user: dan tags: trunk)
18:19
Fix a problem in the xInverse method of window-function group_concat(1). (check-in: 73391283 user: dan tags: trunk)
17:35
Fix the .dump command in the command-line shell so that it does not show extraneous SELECT statements when ".echo on" is enabled. (check-in: 11763cac user: drh tags: trunk)
17:16
In wal mode, if a "BEGIN EXCLUSIVE" command (or any other command that upgrades from no transaction directly to a write transaction) hits an SQLITE_BUSY_SNAPSHOT error, change the error code to SQLITE_BUSY to indicate to the caller that the condition may be transient. (check-in: e6108047 user: dan tags: trunk)
17:03
Fix a typo inside an assert() statement introduced by the previous commit. (Closed-Leaf check-in: e3357728 user: dan tags: exp-busy-snapshot-fix)
15:46
In wal mode, if a "BEGIN EXCLUSIVE" command (or any other command that upgrades from no transaction directly to a write transaction) hits an SQLITE_BUSY_SNAPSHOT error, change the error code to SQLITE_BUSY to indicate to the caller that the condition may be transient. (check-in: 221ff63e user: dan tags: exp-busy-snapshot-fix)
2018-07-04
14:28
Experimental planner change to avoid a skip-scan if a regular index scan on the same index columns can be done instead. (Leaf check-in: 32924446 user: dan tags: exp-avoid-expensive-skipscan)
2018-07-03
20:17
Test that a race condition can cause a "BEGIN EXCLUSIVE" to return SQLITE_BUSY_SNAPSHOT in wal mode. (check-in: 5a12db75 user: dan tags: trunk)
2018-07-02
17:45
Fix a problem in the xInverse callback for the built-in sum() window function. (check-in: b6563647 user: dan tags: trunk)
17:14
Fix a segfault caused by having identical window functions in the select-list and ORDER BY clause of a SELECT statement. (check-in: 693b4350 user: dan tags: trunk)
15:03
Fix a crash caused by a LIKE pattern that consists of a single escape character. Problem found by OSSFuzz. (check-in: bb9bfc3a user: dan tags: trunk)
12:07
Fix a segfault caused by invoking a regular aggregate as a window-function. And some problems with count(*) when used as a window-function. (check-in: 4f3c8a82 user: dan tags: trunk)
2018-07-01
16:05
Quick patch to the Lemon parser template to avoid an array overread reported by OSSFuzz. A proper fix involves enhancements to the table generators in Lemon to make the overread impossible. That fix will take longer to implement. The current check-in is a stop-gap. (check-in: 3f6730be user: drh tags: trunk)
2018-06-30
20:26
Avoid a warning in fts5.c due to not using generated routine sqlite3Fts5ParserFallback(). (check-in: 65ff5144 user: dan tags: trunk)
20:15
Merge implementation of SQL window functions from the exp-window-functions into trunk. (check-in: 17198a12 user: dan tags: trunk)
20:00
Fix a minor problem in the code for determining whether or not an SQL statement is SQLITE_TOOBIG. (Closed-Leaf check-in: 763e6c9e user: dan tags: exp-window-functions)
19:12
Merge all changes from the weak-fallback branch except those related to the weak-fallback feature itself. (check-in: aad718fb user: dan tags: exp-window-functions)
18:54
Have the tokenizer handle fallback for tokens "OVER" and "FILTER" in the same way as it does for "WINDOW". (Leaf check-in: 12d819e1 user: dan tags: weak-fallback)
2018-06-29
20:43
Further performance related tweaks for sqlite3RunParser(). (check-in: 5eb47765 user: dan tags: weak-fallback)
20:21
Further tweaks to sqlite3RunParser(). (check-in: eef61ffa user: dan tags: weak-fallback)
19:54
Improve on the previous checkin. Still a bit slow. (check-in: c1fb41aa user: dan tags: weak-fallback)
17:44
Instead of using a lemon %fallback directive, have the tokenizer try to figure out whether an instance of "WINDOW" should be TK_WINDOW or TK_ID. (check-in: 022079cb user: dan tags: weak-fallback)
2018-06-28
20:05
Modifications to parse.y to better support backwards compatibility for the "window" keyword. (check-in: 7c4b879b user: dan tags: weak-fallback)
03:38
Introduce the concept of "weak fallback" in the parser. A weak fallback only occurs if a syntax error would result otherwise. (check-in: c41d7079 user: drh tags: weak-fallback)
2018-06-27
20:24
Add missing VdbeCoverage() and VdbeCoverageNeverTaken() macros to window.c. (check-in: 4383cb68 user: dan tags: exp-window-functions)
19:48
Avoid redundant ORDER BY operations when rewriting SELECT statements that contain window functions. (check-in: 336de43a user: dan tags: exp-window-functions)
2018-06-26
20:19
Merge latest trunk changes. (check-in: d9f814b4 user: dan tags: exp-window-functions)
2018-06-25
20:34
Add documentation comment for sqlite3_create_window_function(). And further tests. (check-in: 3f2705b9 user: dan tags: exp-window-functions)
11:42
Fix another problem that could cause a crash when a window function was used in a view. (check-in: e954145a user: dan tags: exp-window-functions)
2018-06-23
19:29
Fix problems with using window-functions in correlated sub-queries. (check-in: 3e23cfc8 user: dan tags: exp-window-functions)
16:26
Fix a problem with using LIMIT in window-function queries. (check-in: c1abd2dd user: dan tags: exp-window-functions)
07:59
Fix a problem with using a window-function SELECT as a FROM clause sub-query in some circumstances. (check-in: 11d73339 user: dan tags: exp-window-functions)
2018-06-22
20:51
Omit all window-function related code when building with SQLITE_OMIT_WINDOWFUNC. (check-in: 5f04b016 user: dan tags: exp-window-functions)
17:57
Merge latest trunk changes. (check-in: ebe65b23 user: dan tags: exp-window-functions)
2018-06-21
23:53
Improved context for error_log message coming from sqlite3_prepare(). (check-in: fea7ade6 user: drh tags: trunk)
23:43
Improved context for error_log message coming from sqlite3_prepare(). (Leaf check-in: 64df1189 user: drh tags: ieee754)
19:20
Fix a problem with handling single row partitions in the percent_rank() window function. (check-in: b84fbf16 user: dan tags: exp-window-functions)
2018-06-20
09:23
Add tests to improve coverage of code in window.c. Fix a problem with "SELECT row_number() OVER ()". (check-in: f41b6b73 user: dan tags: exp-window-functions)
2018-06-19
21:15
Make the ieee754() a built-in function. Add the --ieee754 option to the ".dump" command in the shell to cause it to output floating-point values as ieee754() calls, so that the floating point number will be reproduced exactly. Not sure yet that we want to go this way, but it is one option. (check-in: 7fa8f16e user: drh tags: ieee754)
19:16
The file_control_ofd_locks TCL command in testfixture distinguishes between OFD locks unavailable on the platform and OFD locks not used. (Leaf check-in: 87a9e9d7 user: drh tags: ofd-locks)
19:15
Merge latest trunk changes with this branch. (check-in: 6ad0e64b user: dan tags: exp-window-functions)
19:01
OFD locks are now mostly working, but need additional tests. (check-in: 4f1fb5c9 user: drh tags: ofd-locks)
18:11
Fix a problem caused by a sub-query containing a window function in the FROM clause of a query that itself uses a window function. (check-in: f4b1b6f8 user: dan tags: exp-window-functions)
17:19
Miscellaneous cleanup of OFD logic. Add an #if 0 to disable the use of OFD logic, temporarily, until I can get it to actually work. (check-in: d849ade3 user: drh tags: ofd-locks)
17:13
Fix a problem with using min() or max() as a window function. (check-in: 801074ce user: dan tags: exp-window-functions)
13:45
Initial attempt to get SQLite working with OFD locks on Linux. The code here does not function correctly. This is an incremental check-in for a work in progress. (check-in: 148f8dec user: drh tags: ofd-locks)
11:15
Minor change to the input grammar to make the parser tables slightly smaller. (check-in: 320fa69e user: drh tags: trunk)
2018-06-18
20:34
Fix problems with using window functions in CREATE VIEW statements. (check-in: 943bccd2 user: dan tags: exp-window-functions)
20:08
Add test case for the fix in the previous commit. (check-in: 39434262 user: dan tags: trunk)
19:09
Fix typo in the 'normalize' extension. (check-in: 0c9163ea user: mistachkin tags: trunk)
17:36
Ensure that all four callbacks are provided when registering a window function (otherwise SQLITE_MISUSE is returned). (check-in: 5720dcd8 user: dan tags: exp-window-functions)
16:55
Add new API function sqlite3_create_window_function(), for creating new aggregate window functions. (check-in: da03fb43 user: dan tags: exp-window-functions)
2018-06-15
20:46
Add extra OOM test. (check-in: ac251f72 user: dan tags: exp-window-functions)
19:01
Fix another problem in lead()/lag(). And some errors that could occur following OOM faults. (check-in: fadd4dc1 user: dan tags: exp-window-functions)
16:10
Fix a bug in the lead() and lag() window functions causing them to fail when used in queries featuring multiple window functions. (check-in: 3839fb18 user: dan tags: exp-window-functions)
2018-06-14
20:52
Fix a problem with handling of statements containing two or more different windows. (check-in: 567e09ef user: dan tags: exp-window-functions)
19:06
Fix problem with window functions min() and max() when used with a PARTITION clause and a frame starting point other than "UNBOUNDED PRECEDING". (check-in: 43eb1e75 user: dan tags: exp-window-functions)
14:30
Merge latest trunk changes into this branch. (check-in: 5cf5f180 user: dan tags: exp-window-functions)
14:27
Improve comments and code legibility in new file window.c. (check-in: bb915854 user: dan tags: exp-window-functions)
2018-06-13
20:29
Fix problems with "RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING" window frames. (check-in: c34f31db user: dan tags: exp-window-functions)
17:19
Output infinity as 1e999 in the ".dump" command of the command-line shell. (check-in: ee431d55 user: drh tags: trunk)
16:52
Pad out the sqlite3_value structure to be a multiple of 8 bytes. (check-in: f76dc33b user: drh tags: trunk)
16:08
Fix some test case numbers in expert1.test. (check-in: b90c3c16 user: dan tags: trunk)
11:41
Unless SQLITE_OMIT_AUTOINIT is defined, allow sqlite3_vfs_unregister() to be called before sqlite3_initialize(). (check-in: ab6c1ae4 user: dan tags: trunk)
11:11
Check that malloc() has not already failed when invoking the xUpdate() method of a virtual table implementation. This fixes an assert() failure in FTS5 that could occur following an OOM condition. (check-in: e9a7e4d5 user: dan tags: trunk)
02:20
Add the unused SQLITE_CANTOPEN_DIRTYWAL result code. This code was used in some historical versions on the apple-osx branch but was removed by check-in [27e20d699872b2b8]. Restore it so that old code that actually references that result code will still compile. (check-in: 9f40383e user: drh tags: trunk)
2018-06-12
20:53
Fix another issue to do with window-functions in aggregate queries. (check-in: 6413e38a user: dan tags: exp-window-functions)
19:35
Documentation update: clarify that sqlite3_errcode() and related interfaces do not themselves modify the error code. (check-in: 858fc52b user: drh tags: trunk)
19:22
Documentation updates: clarify the behavior of sqlite3_column and sqlite3_value interfaces following an OOM error. (check-in: 428c581e user: drh tags: trunk)
18:40
Fix some problems with using window-functions in aggregate queries. (check-in: fe7081e0 user: dan tags: exp-window-functions)
13:52
Improvements to SCopy correctness tracking when SQLITE_DEBUG is enabled. (check-in: b2973f23 user: drh tags: trunk)
13:16
Fix the "Synopsis" on the OP_BitNot opcode. (check-in: acd78df6 user: drh tags: trunk)
2018-06-11
21:33
Improvements to the --enable and --disable options for the amalgamation tarball. (check-in: 02e337e0 user: drh tags: trunk)
20:50
Clarify the relationship between a Window object and its associated Expr. (check-in: 0cd55e98 user: dan tags: exp-window-functions)
19:47
Fix various --enable and --disable options on the top-level configure script. (check-in: 6fd7e8ce user: drh tags: trunk)
18:16
Fix handling of window frames containing negative number of rows. e.g. "ROWS x PRECEDING AND y PRECEDING" where (x<y). (check-in: b6d9c7ed user: dan tags: exp-window-functions)
18:06
Fix the column cache invalidation logic in the code for ROWID uniqueness constraint checking in the INSERT command. This fixes ticket [c2432ef9089ee73bd]. (check-in: 0b485a57 user: drh tags: trunk)
17:35
Add the OP_SetTabCol and OP_VerifyTabCol opcodes, only when compiling with SQLITE_DEBUG, to do run-time verification of the column cache. (check-in: b37614a3 user: drh tags: trunk)
13:10
Strengthen the sqlite3VdbeMemAboutToChange() run-time verification mechanism to better detect missed calls to AboutToChange(). (check-in: 793e9422 user: drh tags: trunk)
11:19
Fix a typon in main.mk. (check-in: e74f86f2 user: dan tags: exp-window-functions)
01:30
Always initialize the WhereClause.hasOr field that was added by check-in [292724ffc4]. Error detected by OSSFuzz. (check-in: 9faf4171 user: drh tags: trunk)
2018-06-10
07:42
Update Makefile.msc to include window.c in the build. (check-in: 16db7384 user: dan tags: exp-window-functions)
2018-06-09
20:52
Fix a typo in the amalgamation autoconf file. (check-in: de0857f3 user: drh tags: trunk)
18:09
Merge recent trunk changes with this branch. (check-in: c71f2359 user: dan tags: exp-window-functions)
17:58
Update the amalgamation build script to include window.c. (check-in: 21d2f4a6 user: dan tags: exp-window-functions)
17:43
Add support for FILTER clause on aggregate window functions. (check-in: ceaf798e user: dan tags: exp-window-functions)
16:49
Slightly smaller and faster code by encapsulating wal-index hash table location information in a separate WalHashLoc object rather than passing around the various elements as separate variables. (check-in: 538a365b user: drh tags: trunk)
14:13
Improved comments an presentation for the recent IN operator decision improvement. (check-in: 31e480f6 user: drh tags: trunk)
02:49
Performance improvement to sqlite3WhereExprUsage(). (check-in: fd093413 user: drh tags: trunk)
01:12
Compute the bitmask of indexed columns for each index once when the Index objecct is constructed, instead of recomputing it every time it is needed. (check-in: d735872e user: drh tags: trunk)
00:09
Avoid invoking the whereLoopAddOr() routine in the query planner if there are no OR operators in the WHERE clause, thus speeding up query planning slightly. (check-in: 292724ff user: drh tags: trunk)
2018-06-08
23:23
When the query planner has the opportunity to use an IN operater constraint on a term of an index other than the left-most term, use the estimated number of elements on the right-hand side of the IN operator to determine if makes sense to use the IN operator with index lookups, or to just do a scan over the range of the table identified by the index terms to the left. Only do this if sqlite_stat1 measurements are available as otherwise the performance estimates will not be accurate enough to discern the best plan. Bias the decision slightly in favor of using index lookups on each element of the IN operator. (check-in: 2cbbabdf user: drh tags: trunk)
21:21
Only choose to scan an IN operator rather than use an index if we have real STAT1 data to suggest it is advantageous. (Closed-Leaf check-in: 30e87466 user: drh tags: in-scan-vs-index)
20:58
Add support for the WINDOW clause. (check-in: 19c983b5 user: dan tags: exp-window-functions)
19:54
Merge the btreeNext() assertion bug fix from trunk. (check-in: 11bd66e0 user: drh tags: in-scan-vs-index)
19:13
Fix an assert() that can be false for a corrupt database and a strange query that uses a recursive SQL function to delete content from a corrupt database file while it is being queried. (check-in: 99057383 user: drh tags: trunk)
18:22
Consider doing a partial table scan to fulfill an IN operator rather than using an index. Try to pick the plan with the lowest cost. (check-in: 1fa40a78 user: drh tags: in-scan-vs-index)
16:11
Do not flatten sub-queries that contain window functions. (check-in: 236cb75b user: dan tags: exp-window-functions)
11:45
Fixes to allow group_concat() to be used as a window function. (check-in: 89bbc9ba user: dan tags: exp-window-functions)
2018-06-07
20:35
Merge latest trunk changes with this branch. (check-in: 25102203 user: dan tags: exp-window-functions)
20:08
Add window functions lag() and lead(). (check-in: ef342070 user: dan tags: exp-window-functions)
18:13
The IN-early-out optimization: When doing a look-up on a multi-column index and an IN operator is used on a column other than the left-most column, then if no rows match against the first IN value, check to make sure there exist rows that match the columns to the right before continuing with the next IN value. (check-in: 09fffbdf user: drh tags: trunk)
18:01
Fix the assert()s in the byte-code engine that prove that cursors are unidirectional. (Closed-Leaf check-in: 4b0b4e14 user: drh tags: multikey-opt-idea)
17:45
Add support for window function first_value(). (check-in: 060b2640 user: dan tags: exp-window-functions)
17:32
Remove the NextIfOpen and PrevIfOpen opcodes which are no longer needed when the IN-early-out optimization is working. (check-in: 439c8162 user: drh tags: multikey-opt-idea)
16:07
Test cases. (check-in: 085e8637 user: drh tags: multikey-opt-idea)
15:54
Fix problems with the nth_value() function. (check-in: 63002b9a user: dan tags: exp-window-functions)
15:28
Merge the ".stat/.eqp" CLI fix from trunk. (check-in: a91cad33 user: drh tags: multikey-opt-idea)
15:23
Avoid using a prepared statement for ".stats on" after it has been closed by the ".eqp full" logic. Fix for ticket [7be932dfa60a8a6b3b26bcf76]. (check-in: bb87c054 user: drh tags: trunk)
14:59
Add the WHERE_IN_EARLYOUT flag and use it to clarify the logic of this optimization. (check-in: 522f1eac user: drh tags: multikey-opt-idea)
14:32
Merge recent trunk enhancements. (check-in: e9d7bf4f user: drh tags: multikey-opt-idea)
2018-06-06
23:31
Change a comma into a logically equivalent but semantically clearer semicolon. (check-in: 71f97f0f user: drh tags: trunk)
20:55
More space and performance enhancements to sqlite3VdbeRecordCompare(). (check-in: 83a60ff0 user: drh tags: trunk)
20:51
Add implementation of nth_value() window function. (check-in: eb1fb420 user: dan tags: exp-window-functions)
20:29
Small performance optimization in sqlite3VdbeRecordCompareWithSkip() for the common case where the comparison is equal. (check-in: 1e616e25 user: drh tags: trunk)
19:48
Rearrange the order of some checks in the integrity_check pragma for a very slight performance gain. (check-in: 4b853f02 user: drh tags: trunk)
18:50
Fix the sqlite3BeginTrans() calls within the snapshot extension. (check-in: 1fef7ad2 user: drh tags: trunk)
17:45
Another minor optimization to OP_Transaction. (check-in: d80077ae user: drh tags: trunk)
17:12
Merge the 3.24.0 changes plus a few subsequent enhancements. (check-in: be7004a9 user: drh tags: begin-concurrent-pnu)
17:03
Merge changes from trunk, including all the 3.24.0 changes plus some later enhancements. (check-in: d7299bfe user: drh tags: begin-concurrent)
16:28
Change sqlite3BtreeBeginTrans() to return the BTREE_SCHEMA_COOKIE, for a small speed improvement when starting new transactions. (check-in: a10662aa user: drh tags: trunk)
01:18
Fix the ".archive" command in the CLI (and the corresponding -A command-line option) so that it silently ignores filenames that contain "../" in their names. This prevents the "Zip Slip" attack. (check-in: 27291f2d user: drh tags: trunk)
00:36
Attempt to optimize the resolveExprStep() routine by mapping Expr opcodes into a subset of opcodes that resolveExprStep() cares about and only calling the routine when those opcodes are encountered. Is slightly faster, but it seems like the very slight performance bump is not worth the added complexity. Saved on a dead-end branch for historical reference. (Closed-Leaf check-in: bad4d7a0 user: drh tags: dead-end)
2018-06-05
23:51
Update the version number to 3.25.0 for the next development cycle. (check-in: 7598236c user: drh tags: trunk)
23:21
Avoid unnecessary loads of columns in an aggregate query that are not within an aggregate function and that are not part of the GROUP BY clause. (check-in: e15e1006 user: drh tags: trunk)
20:45
Add the OP_IfNoHope and OP_SeekHit opcodes used to reduce the number of unnecessary sqlite3BtreeMovetoUnpacked() calls when checking for an early exit on IN-operator loops. Futher optimizations are likely possible here. (check-in: 6bf251af user: drh tags: multikey-opt-idea)
20:04
Calculate non-aggregate expressions in the SELECT list of an aggregate query that does not use min() or max() once per group, instead of once per row visited. (Closed-Leaf check-in: dce2dfbe user: dan tags: exp-agg-opt)
16:16
Add implementation of last_value() window function. (check-in: 2493ce1a user: dan tags: exp-window-functions)
15:16
Use an OP_NotFound opcode to cancel futile IN operators early. The current implementation is suboptimal because it always runs teh OP_NotFound. This still needs to be enhanced to only do the OP_NotFound if no results have been seen on the current loop. (check-in: 87a9fc50 user: drh tags: multikey-opt-idea)
13:54
Merge trunk changes. (check-in: 047295c5 user: drh tags: multikey-opt-idea)
13:43
Update and correct the documentation on the OP_OpenRead, OP_OpenWrite, and OP_ReopenIdx opcodes. No code changes other than the addition of an assert(). (check-in: 8a0b730d user: drh tags: trunk)
2018-06-04
19:24
Version 3.24.0 (check-in: c7ee0833 user: drh tags: trunk, release, version-3.24.0)
18:55
Add implementation of window function ntile(). (check-in: 3f093f60 user: dan tags: exp-window-functions)
14:10
Merge changes from trunk. (check-in: 95fbac39 user: drh tags: apple-osx)
13:27
Merge recent changes from trunk. (check-in: f8df2a8e user: drh tags: multikey-opt-idea)
08:28
Merge latest trunk changes into this branch. (check-in: 83d6416a user: dan tags: exp-window-functions)
08:22
Add support for window function cume_dist(). Improve tests for percent_rank(). (check-in: 76543f7d user: dan tags: exp-window-functions)
2018-06-02
21:04
Add support for window functions row_number(), rank(), dense_rank() and percent_rank(). (check-in: 91c1cb7a user: dan tags: exp-window-functions)
19:14
Avoid using a misaligned pointer. (check-in: 1ecb3aa1 user: drh tags: trunk)
19:01
Fix the usage of posix_fallocate() so that it correctly responds to EINVAL returns. (check-in: ce2c3e7a user: drh tags: trunk)
17:00
Update a test case in malloc5.test to take into account that malloc() sometimes returns slightly more space than requested. (check-in: 3d5eae1c user: dan tags: trunk)
16:32
Work around a sanitizer warning about a pointer being only 4-byte aligned instead of 8-byte aligned. (Closed-Leaf check-in: 1b807b51 user: drh tags: align8-fix)
14:37
Proposed fix for the use of posix_fallocate() so that it handles EINVAL returns correctly. (Closed-Leaf check-in: ab3a5539 user: drh tags: einval-from-fallocate)
12:05
Fix the CSV extension so that it works with single-column CSV files. (check-in: e336cf00 user: drh tags: trunk)
11:31
Ensure that sqlite3AuthRead() is only call for TK_COLUMN and TK_TRIGGER expression nodes. This fixes a harmless assert() identified by OSSFuzz. Move the assert() into a position where it is tested even if the authorizer is disabled. (check-in: d0c3beef user: drh tags: trunk)
2018-06-01
21:00
Allow an entire partition to be cached in a temp table for all types of window frames. This is required by nth_value() and others. (check-in: b5b18f66 user: dan tags: exp-window-functions)
13:30
Fix a bug in the SQLITE_ENABLE_SORTER_REFERENCES code causing an out-of-bounds array reference. (check-in: 8cadaf58 user: dan tags: trunk)
2018-05-31
19:14
More documentation typo fixes. No code changes. (check-in: 66c24513 user: drh tags: trunk)
19:00
Fix a harmless typo in a comment used to generate documentation. (check-in: 5a2a88cb user: drh tags: trunk)
2018-05-30
20:44
Allow min() and max() to be used as window functions. (check-in: c16125a8 user: dan tags: exp-window-functions)
14:17
Add the Makefile.fallback makefile to the amalgamation tarball. (check-in: ce3d0456 user: drh tags: trunk)
07:36
Do not use the codec on the resetdb.test script. (check-in: fe55cea0 user: drh tags: trunk)
07:24
Fix a typo in an error message in the CLI. (check-in: 80883980 user: drh tags: trunk)
01:14
Fix the parser so that it builds with -DSQLITE_OMIT_CTE. (check-in: 86ee267e user: drh tags: trunk)
00:59
Fix a harmless compiler warning. (check-in: 8d02c7a6 user: drh tags: trunk)
00:54
Demonstration code on a possible technique for optimizing the use of IN operator on columns to the right of multicolumn indexes. If the OP_Noop generated where were really a new opcode that checked to see if there existed any entries in the index with a matching prefix, it might prevent unnecessary iterations of the IN operator. (check-in: 92f0fe15 user: drh tags: multikey-opt-idea)
2018-05-29
19:12
Increase the number of database handles opened by test script oserror.test to provoke an "out of file-descriptors" error to 20000 (from 2000). (check-in: 3b00f734 user: dan tags: trunk)
17:17
Fix a problem in the geopoly json parser associated with spaces before a coordinate number. (check-in: 9d8d3af8 user: drh tags: rtree-geopoly)
16:37
Fix autoinc.test and resetdb.test so that they work with all permutations. (check-in: 89f56d6b user: dan tags: trunk)
15:18
Add a comment to justify a goto statement. No code changes. (check-in: f141d806 user: drh tags: trunk)
14:29
More minor changes to test scripts. (check-in: ce9b756f user: dan tags: trunk)
14:06
Fix some test script issues caused by recent EXPLAIN QUERY PLAN enhancements. (check-in: f808e228 user: dan tags: trunk)
13:25
Do not run test file "resetdb.test" as part of permutation "inmemory_journal". (check-in: 4921e5ba user: dan tags: trunk)
2018-05-28
23:59
The geopoly virtual table seems to be working. But only thinly tested so far. (check-in: 4288f1ad user: drh tags: rtree-geopoly)
18:30
Further window frame tests and fixes. (check-in: e74c6e91 user: dan tags: exp-window-functions)
18:29
Do not require a statement journal in cases where REPLACE conflict handling is used to insert a single row, so long as the REPLACE operation cannot fire any triggers or foreign key actions. (check-in: 469a62ca user: dan tags: trunk)
18:25
When compiling with SQLITE_DEBUG, add run-time checks to ensure that no statement aborts unless either there have been no writes or else there is a statement journal. (check-in: ce99c772 user: drh tags: trunk)
17:43
Fix the build so that it works with -DSQLITE_TEST_REALLOC_STRESS (Closed-Leaf check-in: 90ba2b2e user: drh tags: stmt-journal-testing)
17:31
When compiling with SQLITE_DEBUG, add run-time checks to ensure that no statement aborts unless either there have been no writes or else there is a statement journal. (check-in: 5a4542db user: drh tags: stmt-journal-testing)
13:23
Untested incremental check-in. Add the geopoly_xform() function. Complete basic logic for the geopoly virtual table. (check-in: ed06cc32 user: drh tags: rtree-geopoly)
2018-05-26
21:17
More fixes for different window frame types. (check-in: 2c85668a user: dan tags: exp-window-functions)
20:04
Merge the ability to plan virtual table queries using overloaded functions. (check-in: 2c2a202c user: drh tags: rtree-geopoly)
18:03
Experimental change that allows overloaded functions to be analyzed by the xBestIndex method and used by the xFilter method of a virtual table. (Leaf check-in: a353b1d7 user: drh tags: vtab-func-constraint)
16:00
Store application-defined function names as lower-case to avoid the need for case conversions before calling xFindFunction on virtual tables. Avoid using lookaside to store the destructors for application defined functions, as lookaside should be reserved for transient allocations. (check-in: 777189ce user: drh tags: trunk)
13:55
Add a single sentence of documentation about the virtual table scan flags. No changes to code. (check-in: 27b4fa5d user: drh tags: trunk)
12:21
Minor correction. (check-in: f20d9a99 user: drh tags: rtree-geopoly)
2018-05-25
22:39
Untested incremental check-in. Basic infrastructure for geopoly in place, except for the MATCH operator. (check-in: b2745191 user: drh tags: rtree-geopoly)
20:53
Incremental check-in: Progress toward implementing the geopoly vtab. (check-in: 9b7d6f98 user: drh tags: rtree-geopoly)
20:30
Fix "RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING" window frame processing. (check-in: b4e9c686 user: dan tags: exp-window-functions)
19:22
Forward port the geopoly extension functions into the r-tree extension, with the idea of creating a new spatial index based on simply polygons. (check-in: 0593aac8 user: drh tags: rtree-geopoly)
14:39
This is an untested proof-of-concept for enhancements to RTree that attempt to use sqlite3_value_nochange() to reduce the amount of work associated with UPDATE operations in cases where either the coordinates or the auxiliary data is unchanged. (Leaf check-in: 6f7cfeff user: drh tags: rtree-update-optimization)
09:36
Merge latest trunk changes into this branch. (check-in: 62325198 user: dan tags: exp-window-functions)
09:29
Fixes for "ROWS BETWEEN <expr> FOLLOWING AND <expr> FOLLOWING" and "ROWS BETWEEN <expr> FOLLOWING AND UNBOUNDED FOLLOWING" (check-in: 5ac44872 user: dan tags: exp-window-functions)
03:46
Add SQLITE_LOCKED_VTAB and SQLITE_CORRUPT_SEQUENCE to sqlite3ErrName(). Also, use SQLITE_CORRUPT_BKPT in one more place. (Leaf check-in: eac8888d user: mistachkin tags: errCodes)
2018-05-24
23:51
When doing a one-pass UPDATE or DELETE on virtual tables, close the cursor prior to running VUpdate. This allows one-pass to work on virtual tables that do not allow concurrent reads and writes. Enhance rtree to take advantage of this new capability. (check-in: b816023c user: drh tags: trunk)
22:42
New test case for reading and writing the same rtree concurrently. (check-in: 3ba08e53 user: drh tags: trunk)
22:31
Do not allow RTree writes when a read cursor is active on the same virtual table, as the writes might rebalance and disrupt the read cursors. Return the new SQLITE_LOCKED_VTAB error code if this happens. (check-in: d4ce6661 user: drh tags: trunk)
21:10
Allow "<expr> PRECEDING" to be used to specify the end of a window frame. (check-in: 7b709a98 user: dan tags: exp-window-functions)
17:49
Support other frame types that use "<expr> PRECEDING" or "<expr> FOLLOWING" as start or end conditions. (check-in: ec7b648c user: dan tags: exp-window-functions)
17:38
In the OOM testing logic, add the sqlite3FirstFault() routine as a place to set a breakpoint the first time any simulated OOM fault occurs for a single test case. (check-in: b4d80bd2 user: drh tags: trunk)
17:25
Fix a typo in a comment used to generate VDBE opcode documentation. No code changes. (check-in: 36cdfbf2 user: drh tags: trunk)
16:18
Addition cases for rtree preformance testing in speedtest1.c. Add the --nodiff option to the speed-check.sh script. (check-in: 95f2d62c user: drh tags: trunk)
13:59
Updates to the sqlite3_vtab_nochange() documentation. No changes to code. (check-in: 5bd99abc user: drh tags: trunk)
2018-05-23
20:55
Add support for "ROWS BETWEEN <expr> PRECEDING AND <expr> FOLLOWING" window frames. (check-in: 3a203660 user: dan tags: exp-window-functions)
17:53
Remove a branch that is no longer used due to the fix to the sqlite_sequence schema problem, ticket [d8dc2b3a58cd5dc2918a1d4acbba4676a23ada4c] (check-in: 06674269 user: drh tags: trunk)
16:50
Verify that the sqlite_sequence table exists and is in approximately the correct format prior to using it to process an autoincrement table. Fix for ticket [d8dc2b3a58cd5dc2918a1d4a]. (check-in: e199e859 user: drh tags: trunk)
2018-05-22
20:36
Merge latest trunk changes into this branch. (check-in: cdb68d2c user: dan tags: exp-window-functions)
20:35
Add comments to window.c describing how other window frames will be implemented. (check-in: 16168146 user: dan tags: exp-window-functions)
2018-05-21
19:45
Begin adding support for more esoteric window frames. (check-in: bc4b81d6 user: dan tags: exp-window-functions)
2018-05-19
14:15
Fix minor problems on this branch. (check-in: 19c2e4b2 user: dan tags: exp-window-functions)
2018-05-18
17:58
Add support for auxiliary columns to the rtree extension. (check-in: c6071ac9 user: drh tags: trunk)
17:17
Merge enhancements from trunk, especially the CLI fixes. (Closed-Leaf check-in: a350040a user: drh tags: aux-data-in-rtree)
17:11
In the CLI, detect and report errors on sqlite3_close(). Clear global variables prior to exit to so that valgrind can better detect resource leaks. (check-in: e3b2e0a0 user: drh tags: trunk)
16:53
Avoid unnecessary sqlite3_finalize() operations. (check-in: 16f71032 user: drh tags: aux-data-in-rtree)
16:46
Fix a prepare-statement leak. (check-in: 95fd296f user: drh tags: aux-data-in-rtree)
15:21
Improved error messages. Limit the number of auxiliary columns to 100. (check-in: 059d20ab user: drh tags: aux-data-in-rtree)
14:24
Improvements to integer/float comparisons on architectures that lack a "long double" type. (check-in: 5139ea62 user: drh tags: trunk)
14:19
Remove incorrect NEVER() macro added by the previous check-in. (Closed-Leaf check-in: 3d662511 user: drh tags: int-float-compare)
13:39
Improvements to the sqlite3IntFloatCompare() routine for systems that lack the long double type. (check-in: ea6a03a8 user: drh tags: int-float-compare)
2018-05-17
20:04
In the CLI with the -A command, if the file does not previously exist and its name looks like a ZIP archive name, then create it as a ZIP archive. (check-in: 33dc8fad user: drh tags: trunk)
19:24
Evaluate multiple window functions in a single pass if they use the same window definition. Add xValue callbacks for other built-in aggregate functions. (check-in: c9f0f140 user: dan tags: exp-window-functions)
14:26
Handle multiple window-functions in a single query. (check-in: 35af0b75 user: dan tags: exp-window-functions)
14:09
Improved error and help messages for the ".archive" command and "-A" option to the CLI. If a memory leak in --list processing. (check-in: 02541ac6 user: drh tags: trunk)
13:29
Fix memory errors associated with argv in the CLI when it is compiled on Windows. (check-in: 4474d69b user: drh tags: trunk)
2018-05-16
20:58
Start of experimental implementation of SQL window functions. Does not yet work. (check-in: 3781e520 user: dan tags: exp-window-functions)
19:56
Fix an issue with rtreecheck() and auxiliary data columns. (check-in: 46715136 user: drh tags: aux-data-in-rtree)
19:07
Do not allow auxiliary columns in the rtree to interfere with query planning. Begin adding test cases. (check-in: 9abe023e user: drh tags: aux-data-in-rtree)
18:18
Fix the OOM issue mentioned in the previous check-in. (check-in: c489d8e4 user: drh tags: aux-data-in-rtree)
17:57
Initial implementation of the ability to have auxiliary columns in an rtree virtual table that store arbitrary content. It mostly works, but there are some minor issues in OOM corner cases. (check-in: 0c87fec9 user: drh tags: aux-data-in-rtree)
15:35
Enhance the sqlite3_str_new() interface so that it always returns a valid and non-NULL pointer even in an OOM condition. (check-in: ed5b0968 user: drh tags: trunk)
12:19
Correct output for the fullkey column of json_each() when the total JSON input is a simple value, not an array or object. (check-in: b45b1885 user: drh tags: trunk)
2018-05-15
11:55
Merge latest trunk changes into this branch. (check-in: 72f39efa user: dan tags: begin-concurrent-pnu)
11:45
Merge latest trunk changes with this branch. (check-in: ae86cf60 user: dan tags: begin-concurrent)
11:33
Instead of just the flags byte, include the first 8 bytes of the relevant page in an on-commit conflict log message. (check-in: 52e443eb user: dan tags: begin-concurrent-pnu)
11:28
Instead of just the flags byte, include the first 8 bytes of the relevant page in an on-commit conflict log message. (check-in: e7dc03e7 user: dan tags: begin-concurrent)
09:09
Fix a test case problem in wherelimit.test. (check-in: 3012df8b user: dan tags: trunk)
09:03
Include the value of the "flags" byte of the relevant page in the log message emitted when a BEGIN CONCURRENT commit conflict is detected. (check-in: de19abb9 user: dan tags: begin-concurrent-pnu)
08:51
Include the value of the "flags" byte of the relevant page in the log message emitted when a BEGIN CONCURRENT commit conflict is detected. (check-in: fbfa5471 user: dan tags: begin-concurrent)
2018-05-14
22:46
Make more aggressive use of automatic indexes when processing materalized views and subqueries. (check-in: 172f5bd2 user: drh tags: trunk)
18:09
The restriction on using automatic indexes for low cardinality loops only applies if the cardinality is restricted by a LIMIT clause. (Closed-Leaf check-in: 991a76bf user: drh tags: exp-indexed-clause)
17:12
Experimental syntax enhancement for an "INDEXED" keyword following a FROM-clause subquery that indicates that an automatic index on that subquery is suggested. (check-in: 32b3d110 user: drh tags: exp-indexed-clause)
15:26
Convert the schema creation logic in the rtree extension to use the new sqlite3_str interface. (check-in: fd8b8c41 user: drh tags: trunk)
12:23
Fix typo in the shell.c source file. (check-in: 389dc0a9 user: mistachkin tags: trunk)
00:41
Export the deduceDatabaseType() function the shell.c source file. (check-in: d0f35739 user: drh tags: trunk)
00:23
Add the --append option to the ".backup" command in the CLI. (check-in: 0dfdbdee user: drh tags: trunk)
2018-05-12
23:59
Add test cases for geopoly_overlap(). (Later:) This branch is closed and the development of the geopoly logic is moved to the rtree-geopoly branch. (Closed-Leaf check-in: 39209251 user: drh tags: geojson)
23:56
Merge changes from trunk. (check-in: 715740e3 user: drh tags: geojson)
23:56
In the CLI, allow comment lines that begin with '#', but only in a context where a dot-command is allowed. In other words, '#' at the beginning of a line in the middle of an SQL statement is just part of the SQL. (check-in: 4ee136d6 user: drh tags: trunk)
23:31
Resolve issues with floating-point round-off error in the geopoly_overlap() routine. (check-in: a3c6696f user: drh tags: geojson)
21:09
Add the geopoly_svg() SQL function. (check-in: 318ba5f0 user: drh tags: geojson)
20:28
Preliminary tests show geopoly_overlap() is working. (check-in: 77bb7b7d user: drh tags: geojson)
16:05
An initial attempt at an overlap function in the geopoly extension. (check-in: c857976e user: drh tags: geojson)
2018-05-11
19:11
In the CLI, return non-zero if there are errors on the command-line. (check-in: 13e7300a user: drh tags: trunk)
16:50
Add the geopoly_within() SQL function. (check-in: 927d52a9 user: drh tags: geojson)
15:38
Add the geopoly_read() SQL function to the geopoly.c extension. (check-in: b37625e8 user: drh tags: geojson)
15:10
Fix a typo in the help message from the ".sha3sum" command in the CLI. (check-in: dba87a20 user: drh tags: trunk)
15:10
Make sure the open_db() routine in the CLI does not invoke access() with a NULL filename. (check-in: 20a8c611 user: drh tags: trunk)
14:02
Fix a typo in the help message from the ".sha3sum" command in the CLI. (check-in: e76f676c user: drh tags: geojson)
14:00
Make sure the open_db() routine in the CLI does not invoke access() with a NULL filename. (check-in: 2b8fd3b4 user: drh tags: geojson)
2018-05-09
16:32
Add a test case to check that the fts5 unicode64 tokenizer is dealing with codepoints greater than 65535 correctly. (check-in: 9f7a6ae8 user: dan tags: trunk)
15:27
The translation in and out of GeoJSON automatically adds or removes the redundant last vertex, as necessary. (check-in: 2653bedd user: drh tags: geojson)
15:20
Fix the geopoly_json() SQL function so that it works. (check-in: 236588d5 user: drh tags: geojson)
15:19
Merge from trunk the ability to use sqlite3_sql interfaces in extensions. (check-in: 5bb9e6a9 user: drh tags: geojson)
15:17
Add 14 new interfaces to the loadable extension mechanism. (check-in: 0e809cdc user: drh tags: trunk)
15:00
Add the geopoly_json() interface. Untested. (check-in: 25695c80 user: drh tags: geojson)
14:33
Merge trunk changes, and especially the newly published sqlite3_str interface. (check-in: f3609aef user: drh tags: geojson)
14:29
Fix minor problems with the sqlite3_str interface. (check-in: 43ea8a68 user: drh tags: trunk)
13:46
Make the internal dynamic string interface available to extensions using the new sqlite3_str object and its associated methods. This is mostly just a renaming of internal objects and methods to use external names, through there are a few small wrapper functions. (check-in: 87f261f0 user: drh tags: trunk)
10:11
Fix a typo in a comment used for documentation. No code changes. (check-in: b866693e user: drh tags: trunk)
02:23
Version 3.23.2 (Leaf check-in: f139f6f0 user: drh tags: release, branch-3.23, version-3.23.2)
2018-05-08
23:17
Correctly format the STAT1 and STAT4 content in the output from the ".fullschema" command in the CLI. Fix for ticket [e63a34a0045832dc850367552]. (check-in: 0c3f128f user: drh tags: trunk)
22:47
Experiments with routines for processing GeoJSON. (check-in: d22fbff2 user: drh tags: geojson)
13:32
Merge changes from trunk, especially the activation of the cell-overwrite optimization for indexes and WITHOUT ROWID tables. (check-in: a016144b user: drh tags: apple-osx)
13:03
Fix a harmless compiler warning in fuzzcheck. Add new OSSFuzz test cases to the test case library. (check-in: d2619746 user: drh tags: trunk)
12:49
Fuzz test cases for UPSERT. (check-in: fd11fbd2 user: drh tags: trunk)
2018-05-07
18:41
Activate the cell-overwrite optimization for index b-trees. (check-in: a68697d1 user: drh tags: trunk)
17:27
Improved comments on the cell-overwrite optimization code. (check-in: a4fe966d user: drh tags: trunk)
13:01
Merge enhancements from trunk, and especially the cell-overwrite optimization. (check-in: cb3aa778 user: drh tags: apple-osx)
11:48
On an UPDATE, try to overwrite an existing btree cell with the modified content, if the old and new cell are the same size. Use memcmp() first to avoid dirtying pages that are unchanged. (check-in: 5887d8be user: drh tags: trunk)
11:37
Fix harmless compiler warnings associated with the new EXPLAIN QUERY PLAN logic. (check-in: 374d8e26 user: drh tags: trunk)
11:29
Fix harmless compiler warnings in the cell-overwrite logic. (Closed-Leaf check-in: 3e11dc31 user: drh tags: cell-overwrite-prototype)
02:50
Backout change [05fee1a21ea398f1e4d6f1cf3] because it does not take into account the LD_LIBRARY_PATH environment variable used by dl_open(). (check-in: b348d119 user: drh tags: trunk)
2018-05-05
16:50
In an ORDER BY LIMIT, make sure the ORDER BY expression evaluator does not try to reuse values from the result set if the result set has not yet be computed. This fixes a bug in the recent deferred-row loading optimization, check-in [c381f0ea57002a264fd958b28e]. OSSFuzz discovered the problem. (check-in: 5d61e75f user: drh tags: trunk)
01:23
Fix a slightly incorrect corruption detection branch in the btree logic. (check-in: 9191ff67 user: drh tags: trunk)
2018-05-04
20:00
Bring the code that changes the owner of WAL and rollback files when running as root into alignment with trunk. (check-in: 180516bf user: drh tags: apple-osx)
19:33
Merge recent enhancements from trunk. (check-in: e17bca2c user: drh tags: apple-osx)
19:18
Merge enhancements from trunk. (check-in: 9650f71b user: drh tags: cell-overwrite-prototype)
18:32
Fix requirements marks. No code changes. (check-in: 7fdad122 user: drh tags: trunk)
04:49
For the amalgamation-tarball, enable FTS5 and JSON1 by default and provide a new --enable-debug option that actives debugging facilities. (check-in: 03edecaf user: drh tags: trunk)
00:39
Make a separate limb in the EXPLAIN QUERY PLAN output for the various lines associated with the OR-optimization. (check-in: 75ac7b4e user: drh tags: trunk)
2018-05-03
23:20
In ORDER BY LIMIT queries, try to evaluate the ORDER BY terms first, and it it becomes clear that the row will not come in under the LIMIT, then skip evaluation of the other columns. (check-in: c381f0ea user: drh tags: trunk)
22:52
Fix a branch that has become unreachable due to recent enhancements. (check-in: 81ab5e0d user: drh tags: trunk)
21:51
Improved security for VACUUM. This check-in combines the fixes of [ab0d99d0b5ede] and [27754b74ddf646] in a way that is less likely to to be broken by future changes. (check-in: 260fc696 user: drh tags: trunk)
19:56
Overhaul of EXPLAIN QUERY PLAN. The output is now in the form of a tree. More details of the query plan are shown, and what is shown is truer to what actually happens. (check-in: ff01bbda user: drh tags: trunk)
19:47
Optimizations to the new EQP framework. (Closed-Leaf check-in: 956fef36 user: drh tags: rework-EQP)
16:56
Fix various error handling conditions on the cell overwrite optimization. Fix a test case so that it works with the new optimization. (check-in: f89b54f4 user: drh tags: cell-overwrite-prototype)
14:07
The BtCursor.info fields are only valid if info.nSize!=0. (check-in: 54c537ee user: drh tags: cell-overwrite-prototype)
13:56
Add more corruption checking to the cell overwrite logic. (check-in: 58d14afe user: drh tags: cell-overwrite-prototype)
12:57
Bug fixes in the overwrite optimization. (check-in: 0cb6cd2a user: drh tags: cell-overwrite-prototype)
03:59
The sqlite3BtreeInsert() routine tries to overwrite an existing cell with modified content if the new content is the same size. Pages are only dirtied if they change. This prototype works some, but still has issues. (check-in: 489451b3 user: drh tags: cell-overwrite-prototype)
01:37
Enhance EXPLAIN QUERY PLAN to report the generation of constant rows using VALUES or just a SELECT without FROM. (check-in: c75eee69 user: drh tags: rework-EQP)
2018-05-02
19:42
More test case updates. Tests are all running now. (check-in: dab5e529 user: drh tags: rework-EQP)
18:00
Fix test cases so that they work with the new EXPLAIN QUERY PLAN output format. Only some of the cases have been fixed. This is an incremental check-in. (check-in: 5f0e803e user: drh tags: rework-EQP)
16:13
Improved EQP output for recursive CTEs and multi-value VALUES clauses. (check-in: f2f52554 user: drh tags: rework-EQP)
15:00
Prevent VACUUM from running any commands in sqlite_master.sql other than CREATE statements. That is all that should be there anyhow. This fixes a problem discovered by OSSFuzz. Test cases in TH3. (check-in: ab0d99d0 user: drh tags: trunk)
14:24
Fix a dangling-else problem that was causing recursive CTEs to malfunction. Begin fixing test cases to work with the new EQP output. (check-in: 82ca44b8 user: drh tags: rework-EQP)
08:12
Fix a problem in the xBestIndex method of the closure extension causing it to allocate non-contiguous argvIndex values in some cases (an "xBestIndex malfunction" error). (check-in: 0c671507 user: dan tags: trunk)
03:03
Add sqlite3_win32_set_directory8() and sqlite3_win32_set_directory16() functions. (check-in: 6cf0f4e2 user: mistachkin tags: branch-3.23)
03:01
Add sqlite3_win32_set_directory8() and sqlite3_win32_set_directory16() functions. (check-in: 22089ea2 user: mistachkin tags: trunk)
02:22
Improvements to the EQP display for compound select statements. (check-in: 699a77e4 user: drh tags: rework-EQP)
00:33
Begin reengineering the EXPLAIN QUERY PLAN function to provide more intuitive output. (check-in: 70b48a79 user: drh tags: rework-EQP)
2018-05-01
18:39
The SQLITE_ALLOW_SQLITE_MASTER_INDEX compile-time option allows a CREATE INDEX statement against the sqlite_master table. Once created, the index works, and is usable by legacy instances of SQLite. (check-in: 853f3163 user: drh tags: trunk)
01:18
The ".selecttrace 0x4000" command causes the AST to be output to stdout as a table with four columns. (Leaf check-in: 2a75e631 user: drh tags: ast-trace-demo)
2018-04-30
19:32
Defer loading result column values into registers on an ORDER BY LIMIT until we know that the LIMIT does not exclude the current row. (Closed-Leaf check-in: ce4ef460 user: drh tags: faster-order-by-limit)
2018-04-28
19:08
Test cases added for SQLITE_DBCONFIG_RESET_DATABASE. (check-in: 08665a9e user: drh tags: trunk)
18:20
Fix an RBU problem causing spurious SQLITE_CONSTRAINT errors when restarting an RBU update in which more than one source table writes to a single target database table. (check-in: 564ae829 user: dan tags: trunk)
13:21
Add the SQLITE_DBCONFIG_RESET_DATABASE control for resetting a corrupt database file without closing any database connections. Added the ".dbconfig" command to the CLI. (check-in: a200a49e user: drh tags: trunk)
12:43
Add the SQLITE_DBCONFIG_RESET_DATABASE control as a replacement for the reset_database pragma. Resetting the database should be hard enough to do that it cannot be done by accident. (Leaf check-in: ff836cb8 user: drh tags: reset-database)
11:22
Merge updates from trunk. (check-in: 94877e49 user: drh tags: reset-database)
04:16
Prevent deep recursions on nested COLLATE operators. (check-in: 6e098ee4 user: drh tags: trunk)
04:10
Fix compiler warnings in FTS3. (check-in: de508e83 user: drh tags: trunk)
01:48
Document and expose sqlite3_win32_set_directory() function for use on Win32. (check-in: f677065a user: mistachkin tags: branch-3.23)
01:46
Document and expose sqlite3_win32_set_directory() function for use on Win32. (check-in: 7626b593 user: mistachkin tags: trunk)
01:44
Add comments about the intended use of the sqlite3_data_directory variable as it pertains to the sqlite3_win32_set_directory function. (Closed-Leaf check-in: d11c4197 user: mistachkin tags: win32dir)
01:37
Bump the version number to 3.23.2. (check-in: 242dc910 user: drh tags: branch-3.23)
01:27
Add the "PRAGMA reset_database=ON|OFF" command. When on, it causes the database to appear to be empty, causing the next transaction to reset it to an empty database. (check-in: 02e1a13c user: drh tags: reset-database)
2018-04-27
22:42
Document and expose sqlite3_win32_set_directory() function for use on Win32. (check-in: cbce7180 user: mistachkin tags: win32dir)
20:49
Better comments on the bindvtab.c implementation. All the two-argument version of the .set command. All bindings from .set and -D are still string. (Leaf check-in: 7b2a65a6 user: drh tags: shell-bindings)
18:05
Update test script fts3expr4.test so that it always creates fts3 tokenizers in the "en_US" locality. (check-in: 576a8f69 user: dan tags: trunk)
17:39
Add the ability to use bind parameters in the CLI. The new ".set KEY=VALUE" dot-command works to set bindings. Or use the "-Dkey=value" command-line option. Or use the built-in shell_bindings(k,v) virtual table to set, delete, or changing bindings. (check-in: 1f2944d1 user: drh tags: shell-bindings)
16:35
Fix a test script error causing tests to fail in soak.test. (check-in: 462b52b1 user: dan tags: trunk)
15:17
Enhance the comments in the templatevtab.c implementation. (check-in: 05f6278a user: drh tags: trunk)
2018-04-26
18:34
The previous fix for ticket [d85fffd6ffe856092ed8da] in check-in [0a514e62ad1ebe5c12da8dae] did not completely address the probably in that it only worked for cases where the OP_SCopy that loaded the register was the last instruction in the sequence for the expression, which is not necessarily the case for expressions like CASE...END. This revision prevents the registered that will be recomputed from being cached in the first place. (check-in: 9fd0faf5 user: drh tags: trunk)
18:01
Merge latest changes from trunk. Including the "ORDER BY ... LIMIT" optimization. (check-in: 83a4c9f0 user: dan tags: begin-concurrent-pnu)
17:54
Merge latest changes from trunk. Including the "ORDER BY ... LIMIT" optimization. (check-in: d8ae7ba0 user: dan tags: begin-concurrent)
17:43
When processing an "ORDER BY ... LIMIT" that does not use an index, check whether or not a record may appear in the final result set before adding it to the temp b-tree used for sorting. (check-in: 0fcfc36c user: dan tags: trunk)
16:13
When processing an "ORDER BY ... LIMIT" that does not use an index, check whether or not a record may appear in the final result set before adding it to the sorter. (Closed-Leaf check-in: 71bf91c2 user: dan tags: sorter-limit-opt)
15:50
Ensure that new.* values of an UPDATE do not get clobbered after the BEFORE triggers run when unmodified columns of the row being updated are reloaded. Fix for ticket [d85fffd6ffe856092ed8da] (check-in: 0a514e62 user: drh tags: trunk)
15:04
Clarification of the behavior of a BEFORE UPDATE trigger when the trigger changes the values of some of the columns used to compute new columns in the UPDATE. (check-in: 7bb23c2a user: drh tags: trunk)
12:27
Improved VDBE comment on the OP_Param opcode. No substantial changes. (check-in: 368c14da user: drh tags: trunk)
08:56
Update the "fuzz_malloc.test" script to print SQL statements in which OOM handling problems are found to stdout. (check-in: a956363c user: dan tags: trunk)
2018-04-25
19:02
Add new interfaces for accessing the list of SQL keywords: sqlite3_keyword_count(), sqlite3_keyword_name(), sqlite3_keyword_check(). (check-in: 7dd34e37 user: drh tags: trunk)
17:10
Add the new DO and NOTHING keywords to the keyword lists maintained by various extensions and auxiliary programs. (check-in: 77a98a07 user: drh tags: trunk)
13:27
Add the new SQLITE_SHELL_INIT_PROC compile-time entry point to the CLI. This is needed to work around the tighter sqlite3_config() constraints now in the CLI. (check-in: 3bcdbccf user: drh tags: trunk)
12:01
Avoid many unnecessary calls to sqlite3ReadSchema() and sqlite3Init() when the schema is known to be valid already. (check-in: 58cf812f user: drh tags: trunk)
10:30
Add an assert() to ensure that schema mutexes are held prior to accessing the DB_SchemaLoaded flag inside of sqlite3Init(). (check-in: d8b46290 user: drh tags: trunk)
2018-04-24
19:22
Update this branch with latest changes from trunk. (check-in: 2d8d13e4 user: dan tags: begin-concurrent-pnu)
19:21
Merge latest trunk changes into this branch. (check-in: b27bd799 user: dan tags: begin-concurrent)
18:59
Remove a recently added NEVER() macro from a branch that can be taken in obscure circumstances. (check-in: 2aa21003 user: dan tags: trunk)
18:53
Fix a problem with processing "LEFT JOIN tbl ON tbl.a = ? AND (tbl.b=? OR tbl.c=?)" in cases where there are indexes on both tbl(a, b) and tbl(a, c). (check-in: ce35e39c user: dan tags: trunk)
17:34
Do not attempt to use terms from the WHERE clause to drive indexes on the right table of a LEFT JOIN. Fix for ticket [4ba5abf65c5b0f9a96a7a40cd18b] (check-in: aeb694e3 user: drh tags: trunk)
16:51
Update the expert extension test cases to account for the fact that EXPLAIN QUERY PLAN now shows the start of each trigger in its output. (check-in: 8acb42f4 user: drh tags: trunk)
16:41
All the OR optimization to proceed even if the OR is also converted into an IN operator. (check-in: e252c654 user: drh tags: trunk)
14:18
Add a hyperlink to the ticket on the code comment for the fix to ticket [7fa8049685b50b5aeb0c2]. (check-in: 45247c7f user: drh tags: trunk)
14:05
Do not attempt to read values from indexes-on-expressions if the index is on the RHS of a LEFT JOIN. This won't work if the index cursor points at a null-row. Fix for [7fa80496]. (check-in: b8ef967a user: dan tags: trunk)
13:07
Enhance the CLI to render EXPLAIN QUERY PLAN using an ASCII-art graph. This works with ".eqp" modes and when the query begins with exactly "EXPLAIN QUERY PLAN". To see the original output format, add extra space characters in between words of the initial "EXPLAIN QUERY PLAN". (check-in: f53716ee user: drh tags: trunk)
10:57
Fix a memory leak following failure to open an external CSV file in the csv.c extension. (check-in: 526ee07d user: drh tags: trunk)
01:10
In EXPLAIN QUERY PLAN output, do not show an EXECUTE LIST SUBQUERY line for IN operators where the RHS is a list and not a subquery, since in that case there is no SUBQUERY to execute. (check-in: 8bc0207a user: drh tags: trunk)
00:08
Fix to check-in [ca34c2dd20ee071e] - avoid a NULL pointer dereference following an OOM. (check-in: c7e6e848 user: drh tags: trunk)
2018-04-23
20:38
Fix a problem in sqlite3ExprCompare() associated with UPSERT. (check-in: 67d0b2c1 user: drh tags: trunk)
20:04
Fix a formatting issue in the TreeView output for bare expression lists. (check-in: a6356817 user: drh tags: trunk)
19:30
Disable the OR optimization based on expressions in the ON clause of a LEFT JOIN. This is a temporary measure until we can devise a better fix. (Closed-Leaf check-in: 4df5ea93 user: drh tags: begin-concurrent-pnu-tempfix)
18:38
Add the ".imposter off" variant of the ".imposter" dot-command in the CLI. (check-in: d3dad06f user: drh tags: trunk)
17:43
The ".selecttrace 0x2000" command causes just the top-level parse tree to be displayed, after all transformations, and showing the EQP iSelectId at each level. (check-in: ca34c2dd user: drh tags: trunk)
17:18
The ".selecttrace 4" command now shows only a single parse tree after name resolution. (check-in: 5682146e user: drh tags: trunk)
17:09
Do not restore the iSelectId value until after the last SELECTTRACE when debugging Select processing. (check-in: 8088d8ca user: drh tags: trunk)
17:02
In the ".selecttrace" output, include the EXPLAIN QUERY PLAN iSelectId as part of each Select identifier. (check-in: 5c6339f9 user: drh tags: trunk)
13:28
Ensure that there are no bind-parameters or incorrect schema references in the UPSERT portions of an INSERT within a TRIGGER. (check-in: d47a6bdd user: drh tags: trunk)
00:25
Fix an unreachable branch associated with stack overflow in the LEMON-generated parser. (check-in: e3064ba3 user: drh tags: trunk)
2018-04-21
22:40
Performance improvements on the main loop of the LEMON-generated parser. (check-in: fec1ebad user: drh tags: trunk)
20:24
Enhance LEMON to track which symbols actually carry semantic content. Output the list of symbols that do not carry content at the end of the report, but do not (yet) do anything else with the information. (check-in: dcf2bafc user: drh tags: trunk)
14:11
A few more tests for upsert. (check-in: b78005b6 user: dan tags: trunk)
13:51
Add the %extra_context directive to lemon, as an alternative to %extra_argument. Use this to improve the performance of the parser. (check-in: be47a6f5 user: drh tags: trunk)
03:06
Fix UPSERT so that it plays nicely with AUTOINCREMENT. (check-in: 359725ab user: drh tags: trunk)
2018-04-20
20:47
Add the -dDIRECTORY command-line option to LEMON. (check-in: 9cd20475 user: drh tags: trunk)
20:37
Enhance the "rbu" command line utility a bit. (check-in: 61eb516f user: dan tags: trunk)
20:09
Fix a harmless compiler warning. (check-in: d2ab24f5 user: drh tags: trunk)
19:46
Avoid the use of statement journals on DELETEs of a single row without triggers or foreign keys. (check-in: 20bf5800 user: drh tags: trunk)
19:32
Avoid opening a statement journal on single-row UPDATEs without triggers or FK constraints. (check-in: 2772404b user: drh tags: trunk)
18:01
Fix a VDBE comment on upsert. Provide an error message when upsert detects index corruption. (check-in: 279c48f6 user: drh tags: trunk)
17:50
Add tests for name resolution in ON CONFLICT clauses. (check-in: cf253584 user: dan tags: trunk)
17:02
Avoid unnecessary cursor seeking when performing an UPSERT. (check-in: 693a3dcb user: drh tags: trunk)
16:49
Improved VDBE comment on UPSERT code. (Closed-Leaf check-in: 131ed95e user: drh tags: upsert-opt2)
16:27
Minor simplification of the previous checkin. (check-in: d1906689 user: drh tags: upsert-opt2)
15:56
Avoid unnecessary cursor seeks during upsert processing. (check-in: 7c4b6d54 user: drh tags: upsert-opt2)
15:34
Add test cases for UPSERT. And a fix for a "REPLACE INTO ... ON CONFLICT" statement where the new row conflicts with both the IPK and the ON CONFLICT indexes. (check-in: d8eb9f8d user: dan tags: trunk)
13:18
Enhance UPSERT so that the UPDATE uses the same set of cursors as the INSERT. (check-in: c37f39d1 user: drh tags: trunk)
00:40
Minor simplification of the cursor allocation logic for update. (check-in: fdf71be6 user: drh tags: trunk)
2018-04-19
23:52
Fix the handling of "PRAGMA count_changes=ON" with UPSERT. Also improved the implementation of count_changes in other places, without changing the behavior. (check-in: c6f71115 user: drh tags: trunk)
21:29
Minor simplification to the upsert logic. (check-in: e657c1d6 user: drh tags: trunk)
20:18
Avoid unnecessary OP_Goto instructions on an upsert of a table that only has a single secondary index. (Leaf check-in: 97dd21ab user: drh tags: upsert-opt)
20:06
Modify a test case in zipfile2.test to take into account that with some platform/file-system combinations it is possible to fopen() and fread() (but not fwrite()) a directory. (check-in: 893e6089 user: dan tags: trunk)
16:52
Add the --upsert option to the wordcount test program. (check-in: ee1e750b user: drh tags: trunk)
16:14
Add the ext/misc/templatevtab.c template for virtual tables. This is a work-in-progress as it still needs improvements to the comments in order to be useful as a template. (check-in: 22358fb5 user: drh tags: trunk)
13:52
Fix a problem in the new upsert implemention, discovered by OSSFuzz. (check-in: b6d5ea59 user: drh tags: trunk)
11:45
Fix the table name aliasing on INSERT so that it occurs before the column list rather than afterwards, just as it does for PostgreSQL. Add table name aliasing to UPDATE and DELETE. (check-in: 861a2e2a user: drh tags: trunk)
2018-04-18
19:56
Add the "sorter-reference" optimization, allowing SQLite to be configured so that some required values may be loaded from the database after external sorting occurs for SELECT statements with ORDER BY clauses that are not satisfied by database indexes. (check-in: ef74090a user: dan tags: trunk)
19:45
Minor changes to test script upsert4.test. (check-in: 0cb83c84 user: dan tags: trunk)
19:08
Avoid a NULL-pointer deref following OOM. (Closed-Leaf check-in: 413015c0 user: drh tags: sorter-reference)
18:19
Fix a test case inside distinct.test. (check-in: 61cb8a39 user: drh tags: trunk)
18:18
Improved matching of COLLATE clauses within the ON CONFLICT conflict-target. (check-in: 8f4376e5 user: drh tags: trunk)
17:56
Add extra test cases for UPSERT. (check-in: 7ea08d07 user: dan tags: trunk)
17:52
Fix a problem in the sqlite3ExprCompare() function that caused two dissimilar expressions to match if they have the same "COLLATE name" at the outer layer. (check-in: fb16348a user: drh tags: trunk)
16:03
Add support for PostgreSQL UPSERT syntax and functionality. (check-in: fba24aec user: drh tags: trunk)
15:33
Fix the build for SQLITE_OMIT_UPSERT (Closed-Leaf check-in: 32956519 user: drh tags: upsert)
15:21
Add the --sorterref N option to the CLI. (check-in: 902a4089 user: drh tags: sorter-reference)
14:48
Omit some code not used without SQLITE_ENABLE_SORTER_REFERENCES. Improvements to comments used for documentation. (check-in: f3596ab9 user: drh tags: sorter-reference)
14:04
Remove an unused local variable. (check-in: 9afeb0c8 user: drh tags: sorter-reference)
11:35
Enhance ALTER TABLE ADD COLUMN to support "DEFAULT true" and "DEFAULT false". (check-in: 594ebc69 user: drh tags: trunk)
10:44
Add checks to the CLI that issue a warning if SQLite gets initialized prior to the last sqlite3_config() call. (check-in: 40b11734 user: drh tags: trunk)
09:16
Fix a problem in the shell preventing it from working with SQLITE_OMIT_AUTOINIT builds. (check-in: 89209000 user: dan tags: trunk)
01:34
Add new testcase() macros and fix a bug that was revealed when trying to cover all the new test cases. (check-in: 266a99f7 user: drh tags: upsert)
2018-04-17
21:59
Remove unreachable branches. 100% MC/DC in TH3 now. (check-in: 558865d5 user: drh tags: upsert)
20:09
Added a comment on the assert() added to the previous check-in. (check-in: 542547c1 user: drh tags: upsert)
20:06
Fixes to the logic for constraint check reordering during upsert. Improved comments on constraint check bytecode. Add an assert that prevents the same label from being resolved more than once. (check-in: 1ddbb0ff user: drh tags: upsert)
19:29
During PRAGMA vdbe_addoptrace=ON, show calls to sqlite3VdbeResolveLabel() in the debugging output. (check-in: 9ff07a06 user: drh tags: upsert)
18:50
TK_REGISTER expressions nodes are probably not constant. Make sure sqlite3ExprIsConstant() knows this. (check-in: f3d91cad user: drh tags: upsert)
18:18
Simplification to the upsert logic. (check-in: f36d07a5 user: drh tags: upsert)
18:16
Add some more simple test cases for UPSERT. And a minor fix. (check-in: 27cd3b2f user: dan tags: upsert)
16:16
New test cases for upsert. (check-in: 907b5a37 user: drh tags: upsert)
2018-04-16
21:12
Add SQLITE_CONFIG_SORTERREF_SIZE configuration option. (check-in: b25a7bb7 user: dan tags: sorter-reference)
14:36
Merge the Lemon enhancement from trunk, resulting in smaller parser tables. (check-in: 641f4172 user: drh tags: upsert)
14:31
Lemon enhancements: (1) Do not allocate space for the 'error' non-terminal if it is not used. (2) Fix an off-by-one problem so that 'unsigned char' can be used for symbol numbers if the number of symbols is 256. (check-in: 3b7801ac user: drh tags: trunk)
13:26
Remove the MySQL upsert syntax. As an optional alias to the insert table name in order to finish out PostgreSQL upsert syntax emulation. (check-in: 810d9f63 user: drh tags: upsert)
13:00
Add support for the "excluded.*" names in the UPDATE clause of an upsert. (check-in: 0203f34f user: drh tags: upsert)
10:47
Merge changes from trunk. (check-in: 54d96772 user: drh tags: upsert)
10:41
Increase the version number to 3.24.0 (check-in: f94528e1 user: drh tags: trunk)
10:34
Reduce the size of the NameContext object by grouping seldom-used fields into a union. (check-in: dba3095f user: drh tags: trunk)
2018-04-14
22:35
Get upsert working on WITHOUT ROWID tables. (check-in: d3c53fd3 user: drh tags: upsert)
20:24
Make sure constraint checks occur in the correct order, even in the presence of upserts. (check-in: 07fb30c3 user: drh tags: upsert)
18:46
Experimental change to "SELECT * FROM ... ORDER BY" processing to load some column values from the db after sorting. (check-in: 9719cb46 user: dan tags: sorter-reference)
2018-04-13
21:55
First cut at logic to perform DO UPDATE for rowid tables. (check-in: a9080bc8 user: drh tags: upsert)
18:59
Add infrastructure for doing an UPDATE as part of an UPSERT. Still no actual UPDATE code, however. (check-in: 6d3017f9 user: drh tags: upsert)
16:29
Merge the preupdate hook change from trunk. (check-in: 7353caab user: drh tags: upsert)
16:23
Remove an always-true branch from the preupdate hook logic. (check-in: 0ab45188 user: drh tags: trunk)
15:14
Get the ON CONFLICT DO NOTHING form of upsert working by mapping it into INSERT OR IGNORE. (check-in: d07f05e9 user: drh tags: upsert)
14:27
Get the conflict-target clause parsing working correctly, with test cases. This change involves an enhancement to sqlite3ExprCompare() which needs to be reviewed on trunk prior to merging. (check-in: 5bf70425 user: drh tags: upsert)
13:44
Improved conflict-target matching logic. (check-in: 98d32ba6 user: drh tags: upsert)
13:06
Back off of the extended upsert syntax that allows multiple ON CONFLICT clauses. The syntax now is exactly as in PostgreSQL and MySQL. Add support for WHERE clauses on the conflict-target phrase, for partial indexes. (check-in: 2c1b1987 user: drh tags: upsert)
01:15
Begin adding upsert logic. This is an incremental check-in. (check-in: 80969643 user: drh tags: upsert)
2018-04-12
21:42
Break out the upsert code into a separate source file. (check-in: 389806b0 user: drh tags: upsert)
20:21
Fix another typo in a comment. (check-in: 046bb6d2 user: drh tags: upsert)
19:51
Simple comment clarification. No code or logic changes. (check-in: a26f9c9f user: drh tags: upsert)
17:28
Extend the upsert syntax to allow a WHERE clause on the UPDATE. (check-in: e4396c54 user: drh tags: upsert)
15:43
Update the upsert parsing so that it accepts conflict-target labels using the PostgreSQL syntax, and also accepts the MySQL "ON DUPLICATE KEY" syntax. (check-in: c48f64d8 user: drh tags: upsert)
13:15
Add the Upsert object for holding upsert clause information. (check-in: d83eaed5 user: drh tags: upsert)
12:25
Merge changes from trunk. (check-in: 9f6f1180 user: drh tags: upsert)
2018-04-11
17:10
Help the parser run faster by avoiding the "explain ::= ." production. (check-in: d7ec7b59 user: drh tags: trunk)
16:04
Prohibit bound parameters in the arguments to table-valued functions within a trigger. Problem discovered by OSSFuzz. (check-in: b7178209 user: drh tags: trunk)
14:11
Minor simplification to internal function generateSortTail(). (check-in: f32cdb41 user: dan tags: trunk)
2018-04-10
18:56
Include the 'sqlite3rebaser_' APIs in the Windows '.def' file. (check-in: 56e4965f user: mistachkin tags: trunk)
18:05
Merge all version 3.23.1 changes and enhancements from trunk. (check-in: e20fcb51 user: drh tags: apple-osx)
17:39
Version 3.23.1 (check-in: 4bb22940 user: drh tags: trunk, release, version-3.23.1)
15:31
Fix a problem causing the LEFT JOIN strength reduction optimization to be incorrectly applied in some cases where the WHERE clause of the query contains a filter expression of the form "lhs.x IS NOT ?". (check-in: 1fdaf2c3 user: dan tags: trunk)
14:29
When testing, avoid injecting an OOM fault into a file-control call made by SQLite on an unopened file-descriptor. (check-in: 9c1a5eba user: dan tags: trunk)
12:33
Increase the version number to 3.23.1. (check-in: 9488c87b user: drh tags: trunk)
12:10
Fix a problem causing the LEFT JOIN strength reduction optimization to be incorrectly applied in some cases where the WHERE clause of the query contains a filter expression of the form NOT(x AND y). Ticket [1e39b966]. (check-in: 38d319c1 user: dan tags: trunk)
10:37
Remove an unnecessary SQLITE_UNTESTABLE compile-time conditional from the command-line shell. (check-in: 80b75a34 user: drh tags: trunk)
00:53
Update the top-level README.md file to point to the whynotgit.html document. Put it on the correct branch, this time. (check-in: a52e3cdd user: drh tags: trunk)
00:30
Update the top-level README.md file to point to the whynotget.html document. (check-in: 7dfd4543 user: drh tags: upsert)
2018-04-09
20:36
Minor changes to the input grammar resulting in a faster and slightly smaller parser. (check-in: a2c443c0 user: drh tags: trunk)
15:57
Enhance the query planner so that it detects when the xBestIndex method of a virtual table gives out-of-sequence argvIndex values and reports an error. Secondary fix for ticket [2b8aed9f7c9e6]. (check-in: 9506ec14 user: drh tags: trunk)
14:26
Fix the fts5 xBestIndex method so that it is not confused by "IS", "!=", "REGEXP", "GLOB" or "LIKE" operators. Fix for ticket [2b8aed9f]. (check-in: a0ca4ddb user: dan tags: trunk)
13:58
Improvements to ".wheretrace" output. (check-in: ea2e5b34 user: drh tags: trunk)
11:43
Add a "flags" parameter to experimental API sqlite3changeset_apply_v2(). Also add the SQLITE_CHANGESETAPPLY_NOSAVEPOINT flag. (check-in: 3d29631f user: dan tags: trunk)
00:46
Fix a (harmless) signed integer overflow warning. (check-in: 43c2c60c user: drh tags: trunk)
2018-04-07
15:04
More complete parsing of UPSERT, including UPSERT within a trigger. The sqlite3Insert() logic to actually perform the UPSERT is not yet implemented, however. (check-in: 5cc2a5a3 user: drh tags: upsert)
2018-04-06
19:36
Demonstration of how the parser can be augmented to recognize a PostgreSQL-style UPSERT. This check-in implements parsing only. (check-in: 9b22905b user: drh tags: upsert)
19:12
Enhance LEMON to show precendence of symbols and all rules in the report that is generated in parallel to the parser. (check-in: 602fbd81 user: drh tags: trunk)
16:22
Fix a problem in the sessions module causing sqlite3session_apply_strm() to allocate enough memory for the entire input buffer - which defeats the point of a streaming interface. (check-in: 7594e609 user: dan tags: trunk)
2018-04-05
16:26
Fix an instance where an uninitialized VM register might be accessed. Fix for [093420fc0]. This problem was found by OSSFuzz. (check-in: a3b02db7 user: dan tags: trunk)
12:02
Fix the sqlite3WhereTrace mechanism so that it compiles with the --disable-amalgamation and the --enable-debug options to ./configure using clang. (check-in: 81322436 user: drh tags: trunk)
2018-04-04
12:21
Fix segfault in 'eval.c' extension when used with 'empty_result_callbacks'. (check-in: e8b87bd4 user: mistachkin tags: trunk)
2018-04-03
20:44
Fix an error message in speedtest1.c and make the "trigger" testset sensitive to the --size parameter. (check-in: 5a6fd9e0 user: drh tags: trunk)
20:00
Update speedtest1.c with new testset "trigger" based on the tests in speed4p.test. (check-in: 7b7fa5fa user: dan tags: trunk)
17:05
Fix a few small test script issues affecting SQLITE_TEMP_STORE=3 builds. (check-in: e171f372 user: dan tags: trunk)
14:25
Fix the generate_series virtual table so that it correctly returns no rows if any of its constraints are NULL. Ticket [fac496b61722daf28]. (check-in: 3328e828 user: drh tags: trunk)
14:04
Change the LEFT JOIN strength reduction optimization so that assumes that virtual table constraints can be true even if terms within the constraint are NULL. This works around dodgy virtual table implementations. Fix for ticket [fac496b61722daf2]. (check-in: cbb977fe user: drh tags: trunk)
2018-04-02
11:04
Version 3.23.0 (check-in: 736b53f5 user: drh tags: trunk, release, version-3.23.0)
00:16
Better solution to the LIKE problem from the previous check-in that works even if the SQLITE_LIKE_DOESNT_MATCH_BLOBS compile-time option is used. (check-in: b850dd15 user: drh tags: trunk)
2018-03-31
23:28
Fix a logic error discovered by OSSFuzz that can cause an assert() fault if a LIKE operator is used on an INTEGER PRIMARY KEY. (check-in: fc06ddd4 user: drh tags: trunk)
18:43
Fix an error in README-server-edition.html. (Leaf check-in: 754ad35c user: dan tags: server-process-edition)
16:31
Fix an assertion failure triggered by a SELECT with a compound sub-query that contains an incorrectly placed ORDER BY clause. This problem is just an assert() failure - non-DEBUG builds are not affected. Problem found by OSSFuzz. (check-in: 823779d3 user: dan tags: trunk)
2018-03-30
20:42
Update and add further detail to README-server-edition.html. (check-in: 337a0b67 user: dan tags: server-process-edition)
16:34
Fix a bug in the spellfix extension causing it to compute suboptimal answers. The problem was introduced by check-in [afd6fbc01052ccfc9]. (check-in: 3bf28fd9 user: drh tags: trunk)
15:59
Fix an off-by-one error in the dist3 algorithm of the spellfix extension. (check-in: 5c34af7b user: drh tags: trunk)
2018-03-29
16:54
Another change to test file zipfile.test to help it run on systems without "unzip". (check-in: b6252feb user: dan tags: trunk)
16:39
Fix a test script bug causing zipfile.test to fail on systems that do not have the "unzip" program installed. (check-in: d99022a5 user: dan tags: trunk)
13:47
Modify the sqlite3OsFileControl() interface to detect unopened sqlite3_file objects and return SQLITE_NOTFOUND. (check-in: 1fc72b70 user: drh tags: trunk)
11:02
Update memdb1.test so that it works with SQLITE_DEFAULT_AUTOVACUUM builds. (check-in: d67f1c7d user: dan tags: trunk)
2018-03-28
22:08
Fix a harmless compiler warning in the kvtest.exe program. (check-in: d48972cf user: drh tags: trunk)
21:45
Fix a harmless compiler warning. (check-in: f0d12354 user: drh tags: trunk)
20:29
Add -DSQLITE_ENABLE_DESERIALIZE to the "Device-Two" configuration in releasetest.tcl. (check-in: 765a014d user: dan tags: trunk)
15:56
Remove tab characters. No logical changes to code. (check-in: eb29b336 user: drh tags: trunk)
15:41
Update this branch with latest trunk changes. (check-in: df52e89f user: dan tags: server-process-edition)
15:06
Minor comment changes. (check-in: d282f064 user: drh tags: trunk)
2018-03-27
22:58
Fix a typo in the README file for ICU. No code changes. (check-in: 79c4383b user: drh tags: trunk)
15:13
The push-down optimization was being too aggressive such that it sometimes generated incorrect results. Reinstate the restriction (4) (with qualifications) that was removed by check-ins [b5d3dd8cb0b1e4] and [dd568c27b1d765]. (check-in: f08c1731 user: drh tags: trunk)
13:57
Provide the ability for the VFS to do a blocking wait on locks if compiled with SQLITE_ENABLE_SETLK_TIMEOUT. (check-in: e7dff982 user: drh tags: trunk)
2018-03-26
21:05
Do not inject OOM errors on SQLITE_FCNTL_LOCK_TIMEOUT calls as an OOM is not possible in that context. (Closed-Leaf check-in: 5474e560 user: drh tags: lowlevel-lock-timeout)
20:43
Avoid a race condition that might cause a busy_timeout to last longer than it should. (check-in: b8196056 user: drh tags: lowlevel-lock-timeout)
17:56
Fix a typo preventing test script avtrans.test from running in auto-vacuum mode. (check-in: c7473bdb user: dan tags: trunk)
17:40
Add infrastructure to support for using F_SETLKW with a timeout on system that support that functionality. Requires SQLITE_ENABLE_SETLK_TIMEOUT. (check-in: 2e54a743 user: drh tags: lowlevel-lock-timeout)
16:37
Refactor some internal object element names used by the busy handler, to simplify analysis. (check-in: 6c40c557 user: drh tags: trunk)
2018-03-24
23:16
Fix a couple issues in the 'session' module tests. (check-in: ccf734f7 user: mistachkin tags: trunk)
20:06
Fix harmless compiler warning seen with MSVC. (check-in: e9508ab1 user: mistachkin tags: trunk)
18:01
Add testcase() macros and improve comments in the LEFT JOIN strength reduction optimization. (check-in: 56134577 user: drh tags: trunk)
15:47
Yet another fault in the sqlite3ExprImpliesNotNull() routine, causing errors in the LEFT JOIN strength reduction optimization of check-in [dd568c27b1d76563]. (check-in: e88cf3d4 user: drh tags: trunk)
15:08
Fix a test script problem causing shell1.test to fail with -DSQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 2e06906e user: dan tags: trunk)
13:24
Bug fix in the LEFT JOIN strength reduction optimization of check-in [dd568c27b1d76563]. The sqlite3ExprImpliesNotNull() routine was mistakenly assuming that a CASE expression must always be NULL if contained any reference to a variable that was NULL. (check-in: cf171abe user: drh tags: trunk)
00:19
Prepend linkage macros to the sqlite3rebaser interfaces. (check-in: c64e8f37 user: drh tags: trunk)
2018-03-23
17:36
Fix typos in sqlite3session.h preventing documentation webpages from being generated. Also mark all new sessions functions (those related to rebasing) as experimental. (check-in: de974235 user: dan tags: trunk)
16:31
Fix minor problems with passing NULL pointers to memcmp() and memcpy() found by -fsanitize=undefined. (check-in: 0b06ce6d user: dan tags: trunk)
16:08
Fix the -readonly option on the CLI so that it actually works. (check-in: 0477fb3f user: drh tags: trunk)
14:56
Add some more tests for the IS TRUE / IS FALSE operators. (check-in: 9fe5bebe user: mistachkin tags: trunk)
14:50
Fix typo in a comment used for documentation. No changes to code. (check-in: 49974d3b user: drh tags: trunk)
14:24
Enhance .schema in shell to enable matching patterns with literal underscores. (check-in: 98e3f524 user: mistachkin tags: trunk)
13:18
Fix an error in the CLI in the previous ([0249d9aecf69948]) check-in. Only the pattern to sqlite3_strlike() need to be escaped. (check-in: 71d5f6e6 user: drh tags: trunk)
12:59
Fix the ANALYZE command so that it will process tables whose names begin with "sqlite" as long as they do not being with "sqlite_". (check-in: 0249d9ae user: drh tags: trunk)
00:31
Fix harmless compiler warnings seen with MSVC. (check-in: 2f2be1b1 user: mistachkin tags: trunk)
2018-03-22
20:35
Add APIs to the sessions module for "rebasing" changesets. (check-in: 509506c7 user: dan tags: trunk)
20:11
Remove some unused code from sqlite3rebaser_rebase(). (Closed-Leaf check-in: 07cc955e user: dan tags: sessions-rebase)
19:52
Fix another problem with rebasing updates against multiple remote changes. (check-in: c8e7b5a0 user: dan tags: sessions-rebase)
17:17
Fix an RBU problem causing errors when updating tables with default collation sequences that require quoting (e.g. COLLATE "ICU_root-u-kn-on"). Cherrypick of [eb4f452e]. (check-in: 5dd61e1c user: dan tags: branch-3.22)
17:13
Fix an RBU problem causing errors when updating tables with default collation sequences that require quoting (e.g. COLLATE "ICU_root-u-kn-on"). (check-in: eb4f452e user: dan tags: trunk)
17:02
Fix a test script problem causing rbuvacuum.test to fail when run along with other tests. (check-in: 901cb3b6 user: dan tags: trunk)
14:07
Add tests to ensure that patchsets are handled correctly by the session rebase APIs. (check-in: 0e45baae user: dan tags: sessions-rebase)
12:00
Add the left join strength reduction optimization. Enhance the push-down optimization so that it works with many LEFT JOINs. (check-in: dd568c27 user: drh tags: trunk)
11:28
Add the --valid-sql option to the optfuzz test program. (check-in: a8dfeec7 user: drh tags: trunk)
11:15
Remove some unused code from the sessions module. (check-in: a09518ab user: dan tags: sessions-rebase)
2018-03-21
20:21
Get the optfuzz program working. (check-in: 21346bbc user: drh tags: trunk)
20:13
Merge latest trunk changes into this branch. (check-in: d00b71ec user: dan tags: sessions-rebase)
19:46
Fix some documentation and other issues with the code on this branch. (check-in: a9ec6862 user: dan tags: sessions-rebase)
19:25
Add the optfuzz.c program for verifying the query planner using a fuzzer. This is an initial code check-in. (check-in: 3fb21251 user: drh tags: trunk)
17:29
Fix rebasing of UPDATE changes against a set of remote changesets that feature both OMIT and REPLACE conflict resolution on different fields of the same row. (check-in: d8bc3fdb user: dan tags: sessions-rebase)
01:59
Relax LEFT-JOIN restrictions on the push-down optimization. (Closed-Leaf check-in: b5d3dd8c user: drh tags: join-strength-reduction)
2018-03-20
22:52
Do a more thorough job of cleaning traces of the strength-reduced LEFT JOIN. (check-in: 08833dda user: drh tags: join-strength-reduction)
21:16
If terms of the WHERE clause require that the right table in a LEFT JOIN not be a null row, then simplify the LEFT JOIN into an ordinary JOIN. (check-in: 5b7abecc user: drh tags: join-strength-reduction)
20:27
Add further tests and documentation for the sessions rebase feature. (check-in: 7475a363 user: dan tags: sessions-rebase)
19:02
Fix incorrect testcase labels on two cases in join5.test. No changes to code. (check-in: 4661ac81 user: drh tags: trunk)
18:08
Improvements to the HAVING-to-WHERE optimization. The code uses less space and less CPU, and there is now ".selecttrace" output. (check-in: 5ad668d4 user: drh tags: trunk)
16:56
For 'zipfile', detect attempts to cause a duplicate entry via UPDATE. Also, fix handling of 'UPDATE OR REPLACE' statements run on zipfile virtual tables. Win32 portability fixes to the 'fileio' extension. Miscellaneous test fixes. (check-in: b36caeca user: mistachkin tags: trunk)
14:00
Merge all recent trunk enchancements, and especially the autoincrement write reduction fix. (check-in: 25790049 user: drh tags: begin-concurrent-pnu)
13:54
Remove debugging puts from concurrrent3.test. (check-in: 13b49756 user: drh tags: begin-concurrent)
13:52
Merge all recent enhancements from trunk. (check-in: b0c2f760 user: drh tags: begin-concurrent)
13:44
Avoid unnecessary write to the sqlite_sequence table when an insert is done into an autoincrement table with an application-specified rowid that is less than the maximum. (check-in: ec7addc8 user: drh tags: trunk)
13:26
Add the ability to disable the push-down optimization using the 0x1000 bit of SQLITE_TESTCTRL_OPTIMIZATIONS. Also some documentation fixes and an enhancement to ".eqp full" in the CLI. (check-in: ae34edb7 user: drh tags: trunk)
13:26
Fix handling of "UPDATE OR REPLACE" statements run on zipfile virtual tables. (Closed-Leaf check-in: 9a5ef341 user: dan tags: testFixes)
13:00
Remove a debugging statement accidently left in check-in [eddc35f3057e59fd] (Closed-Leaf check-in: 85a31557 user: drh tags: push-down-disable)
12:12
Add a test case for the fix on this branch. (check-in: 7834cf6c user: dan tags: testFixes)
12:04
In the CLI, avoid extra .selecttrace and .wheretrace output when in ".eqp full" mode. (check-in: 427bbf31 user: drh tags: push-down-disable)
11:58
Closer reading of the sqlite3_db_config() documentation show that it is subtly incorrect. This check-in fixes the problem. No code changes. (check-in: 44d90e7f user: drh tags: push-down-disable)
11:51
Fix a minor formatting issue on the sqlite3_db_config() documentation. No changes to code. (check-in: 8a439a6d user: drh tags: push-down-disable)
11:24
Add the ability to disable the push-down optimization using the 0x1000 bit of SQLITE_TESTCTRL_OPTIMIZATIONS. (check-in: eddc35f3 user: drh tags: push-down-disable)
2018-03-19
22:28
Minor improvements to ".selecttrace". No changes to non-debug code. (check-in: 03e541f6 user: drh tags: trunk)
19:05
Enhance the command-line completion extension to return the names of triggers and views along with the names of tables. (check-in: 10e32204 user: drh tags: trunk)
16:59
Show symbolic SELECT names in EXPLAIN QUERY PLAN output when compiling with SQLITE_ENABLE_SELECTTRACE. (Leaf check-in: 16c22ff8 user: drh tags: EQP-improvements)
16:09
In the compile_options pragma, show the actual value of the SQLITE_ENABLE_CEROD compile-time option, if it exists. (check-in: 1ec339fd user: drh tags: trunk)
16:06
Improved ".selecttrace" output formatting. No changes in non-debug code. (check-in: 30704d2a user: drh tags: trunk)
2018-03-17
16:26
Do not use sqlite3_column_decltype() in the CLI if it is compiled with SQLITE_OMIT_DECLTYPE. (check-in: 442e816b user: drh tags: trunk)
02:13
For 'zipfile', detect attempts to cause a duplicate entry via UPDATE. (check-in: cf78a882 user: mistachkin tags: testFixes)
00:44
Another Win32 portability fix for the 'zipfile' tests. (check-in: 9f604418 user: mistachkin tags: testFixes)
2018-03-16
23:59
Detect corruption in the form of the sqlite_sequence table pointing to the wrong type of btree. (check-in: 525deb7a user: drh tags: trunk)
23:54
Win32 portability fixes to the 'fileio' extension. (check-in: 9d2b0f8b user: mistachkin tags: testFixes)
23:54
Enable more 'zipfile' tests on Win32. (check-in: 49d2566c user: mistachkin tags: testFixes)
23:54
Make a couple tests less sensitive to timing. (check-in: bc2af8e0 user: mistachkin tags: testFixes)
23:53
Fix a duplicate test number and cleanup a bit of Makefile whitespace. (check-in: 56d11c25 user: mistachkin tags: testFixes)
20:23
Detect databases whose schema is corrupted using a CREATE TABLE AS statement and issue an appropriate error message. (check-in: d75e6765 user: drh tags: trunk)
20:15
Better error message text when the schema is corrupted by a CREATE TABLE AS entry. (Closed-Leaf check-in: e13993cf user: drh tags: corrupt-schema)
19:10
Fix a parsing issue associated with a corrupt sqlite_master table. (check-in: 5f779ff6 user: mistachkin tags: corrupt-schema)
18:46
Avoid writing the sqlite_sequence table when it has not actually changed. (Closed-Leaf check-in: 3e3849a9 user: drh tags: autoinc-enhancement)
18:02
Fix a problem with handling rebasing UPDATE changes for REPLACE conflict resolution. (check-in: f7bf71f1 user: dan tags: sessions-rebase)
07:49
Fix a problem in test script thread001.test causing a spurious "-1 files were left open" error when run separately. Cherrypick of [1774f1c3b]. (check-in: 6cf8172d user: dan tags: branch-3.19)
07:48
Fix a problem in test script thread001.test causing a spurious "-1 files were left open" error when run separately. (check-in: 1774f1c3 user: dan tags: trunk)
2018-03-15
19:25
Add simple tests for the sessions module rebase API. (check-in: cf0d1abb user: dan tags: sessions-rebase)
17:46
Fix a typo in a comment used to generate documentation. No code changes. (check-in: f1784aff user: drh tags: trunk)
15:09
Fix an issue with the fsdir() table-valued function not resetting correctly after each pass of a join. (check-in: 7ce4e71c user: drh tags: trunk)
05:25
Draft fix for an fsdir() issue reported via the mailing list. (Closed-Leaf check-in: 48641010 user: mistachkin tags: fsDirFix)
2018-03-14
21:06
Add largely untested APIs for rebasing changesets. (check-in: 39915b68 user: dan tags: sessions-rebase)
17:17
Merge the latest enhancements from trunk. (check-in: a658f80c user: drh tags: apple-osx)
15:25
Add the SQLITE_DBSTATUS_CACHE_SPILL option to sqlite3_db_status(). (check-in: 48a06eb0 user: drh tags: trunk)
15:06
Disable one of the test cases from check-in [21ecbce1378f3cc4] when API_ARMOR is not enabled. (check-in: 8fb23d42 user: drh tags: trunk)
14:53
Add the SQLITE_DBSTATUS_CACHE_SPILL option to sqlite3_db_status() (Closed-Leaf check-in: 3faeb851 user: drh tags: dbstatus-cache-spill)
08:27
Improve detection of out-of-range parameters in sqlite3_stmt_status() for SQLITE_ENABLE_API_ARMOR builds. (check-in: 21ecbce1 user: dan tags: trunk)
2018-03-13
20:31
Add sqlite3_changeset_apply_v2() and apply_v2_strm() to the sessions module. (check-in: 445bfe97 user: dan tags: sessions-rebase)
2018-03-12
21:09
Fix a typo causing SQLITE_LOG_CACHE_SPILL builds to fail. (check-in: 0171d4a7 user: dan tags: trunk)
2018-03-10
20:45
Add more tests for the profile output of the Tcl trace_v2 method. (check-in: 61eeb48f user: mistachkin tags: trunk)
20:25
Fix the second callback argument to the "profile" response of the "trace_v2" method in the TCL interface so that it shows the actual number of nanoseconds for the command, not the address of the variable containing the number of nanoseconds. (check-in: 8f9a1251 user: drh tags: trunk)
14:17
Add support for INSERT OR REPLACE and INSERT OR IGNORE on the zipfile extension. (check-in: 8ad35d48 user: drh tags: trunk)
13:21
Improved error messages from the zipfile extension. (check-in: f634a7e3 user: drh tags: trunk)
12:53
Avoid harmless left-shifts of negative numbers in the zipfile extension when building ZIP archives of files with pre-DOS dates. (check-in: 16bba865 user: drh tags: trunk)
12:34
Fix the zipfile extension so that it is able to create symbolic link entries in the ZIP file even on systems like Win32 that do not support symbolic links on the native filesystem. (check-in: 2a4493f4 user: drh tags: trunk)
2018-03-09
22:18
Fix the .archive command in the CLI so that it actually compresses content. (check-in: 3c2e3c2d user: drh tags: trunk)
21:54
Enhance the ".ar" command in the CLI so that it is able to update and create ZIP Archives. (check-in: 9404765e user: drh tags: trunk)
16:37
Setting ".stats 2" in the CLI causes column metadata for each prepared statement to be displayed. (check-in: 7fea00fd user: drh tags: trunk)
15:24
Simplification to the shell_exec() mechanism in the CLI. (check-in: 72e8f529 user: drh tags: trunk)
14:11
Fix a problem in test file nockpt.test causing errors with SQLITE_DEFAULT_AUTOVACUUM builds. (check-in: e547c83f user: dan tags: trunk)
14:06
Fix a test case in zipfilefault.test so that it only runs if JSON1 is available. (check-in: 072b2447 user: drh tags: trunk)
12:46
Attempt to fix a harmless compiler warning from Clang. (check-in: bba1bfbd user: drh tags: trunk)
2018-03-08
19:56
Enable API armor handling for the new deserialize APIs. (check-in: 0798c91a user: mistachkin tags: trunk)
18:14
Add the --append and --zip options of the CLI to the --help message. (check-in: f010c86e user: drh tags: trunk)
18:09
Include the 'sessionfuzz' tool in the clean target for MSVC. (check-in: 0f5a8666 user: mistachkin tags: trunk)
16:36
Updates to documentation on sqlite3_serialize() and sqlite3_deserialize(). No changes to code. (check-in: e71ceb60 user: drh tags: trunk)
2018-03-07
21:39
Fix harmless compiler warnings in the 'dbdump' tool. (check-in: 2b9bb266 user: mistachkin tags: trunk)
21:29
Fix harmless compiler warning in the 'sessionfuzz' tool. (check-in: 706800ba user: mistachkin tags: trunk)
21:13
Enable compilation of 'sessionfuzz' tool using MSVC. (check-in: c58de43b user: mistachkin tags: trunk)
20:48
Add the sessionfuzz test program and data obtained from a week of running AFL. Automatically run this test program on any "make test" on unix. (check-in: ecaedfe5 user: drh tags: trunk)
15:54
Update the autoconf Makefile for MSVC. (check-in: 36fec7a4 user: mistachkin tags: trunk)
15:19
Fix various compilation issues seen with MSVC. (check-in: d6fa9389 user: mistachkin tags: trunk)
14:53
Another tweak to the MSVC clean target. (Closed-Leaf check-in: 493abf10 user: mistachkin tags: msvcFixes)
14:49
Fix harmless compiler warning in FTS5. (check-in: 2d544711 user: mistachkin tags: msvcFixes)
14:42
Fix utility compilation issues with MSVC. (check-in: 5bd5a798 user: mistachkin tags: msvcFixes)
13:01
Add the sqlite3_serialize() and sqlite3_deserialize() interfaces, enabled when the -DSQLITE_ENABLE_DESERIALIZE compile-time option is used. (check-in: fc42d31d user: drh tags: trunk)
01:37
Mark an unreachable branch using NEVER(). (Closed-Leaf check-in: fadbc5e2 user: drh tags: memdb)
2018-03-06
21:43
Improved documentation for sqlite3_serialize() and sqlite3_deserialize(). Change the name of the compile-time option to enable these interfaces from SQLITE_ENABLE_MEMDB to SQLITE_ENABLE_DESERIALIZE. (check-in: f07e97ae user: drh tags: memdb)
20:54
Handle some boundary cases in memdb associated with OOM faults. (check-in: b58ca4cb user: drh tags: memdb)
19:14
Simplifications to the memdb VFS. (check-in: 6c3f723a user: drh tags: memdb)
11:49
Avoid running a couple of tests in crash8.test that depend on the presence of the journal file if running on an F2FS file-system that does not require a journal file. Cherrypick of [797e02e0]. (check-in: eeedfc74 user: dan tags: branch-3.19)
11:46
Avoid running a couple of tests in crash8.test that depend on the presence of the journal file if running on an F2FS file-system that does not require a journal file. (check-in: 797e02e0 user: dan tags: trunk)
04:01
Improvements to the memdb VFS. (check-in: a14fed69 user: drh tags: memdb)
02:00
Merge the walIteratorInit() fix from trunk. (check-in: 6399e101 user: drh tags: memdb)
2018-03-05
23:23
Fix walIteratorInit() so that it always leaves the iterator as a NULL pointer if an OOM occurs. This fixes an assertion fault introduced by check-in [044b0b65e716bff]. (check-in: e5ce256a user: drh tags: trunk)
21:19
Merge the session fix from trunk. (check-in: 6274cf1f user: drh tags: memdb)
21:17
Fix another crash in the sessions module triggered by malformed input. (check-in: 7e70c9b8 user: dan tags: trunk)
20:21
Improved command-line help for the -A option on the CLI. (check-in: d937ac18 user: drh tags: trunk)
20:20
A new way of doing archive commands on the command-line for the CLI. The -A option means that everything that follows is a ".archive" command, including any suffix on the -A option. (check-in: 9d8081fa user: drh tags: trunk)
19:34
In the CLI, add a new command-line option "--archive" (also "--ar") that passes all subsequent arguments to the ".archive" command. (check-in: a5c4d30a user: drh tags: trunk)
18:20
Merge session fixes from trunk. (check-in: 99c02aee user: drh tags: memdb)
2018-03-02
20:00
In sqlite3_checker, wrap the call to "SELECT checkfreelist()" in a transaction. (check-in: 02906e55 user: dan tags: trunk)
18:26
Merge latest changes from begin-concurrent into this branch. (check-in: 8ade94ba user: dan tags: begin-concurrent-pnu)
17:59
Update this branch with recent checkpoint related changes from trunk. (check-in: fb6b7938 user: dan tags: begin-concurrent)
17:40
Merge latest trunk changes into this branch. (check-in: 36801eff user: dan tags: begin-concurrent)
16:52
In a checkpoint, figure out if it is possible to checkpoint any frames at all before creating the wal-iterator. (check-in: 044b0b65 user: dan tags: trunk)
15:42
Optimize the obscure case of running a checkpoint against a very large wal file for which a large percentage of the frames have already been checkpointed. (check-in: 0f5057df user: dan tags: trunk)
2018-03-01
22:18
Allow the zSchema argument to sqlite3_serialize() to be NULL to mean the main database. (check-in: 5b01b991 user: drh tags: memdb)
18:09
Typo fixes in comments. No changes to code. (check-in: 1293d4f6 user: mistachkin tags: trunk)
15:20
Fix further crashes in sqlite3changeset_apply() caused by corrupt changeset blobs. (check-in: 2c01c72e user: dan tags: trunk)
13:44
Merge the latest enhancements from trunk. (check-in: c8083de1 user: drh tags: memdb)
12:05
Fix some crashes in the sqlite3changeset_apply() function that could be caused by corrupt changeset blobs. (check-in: 745a9a7f user: dan tags: trunk)
2018-02-28
22:21
Enhance the sessions documentation to show the methods of the various objects. (check-in: e0117775 user: drh tags: trunk)
21:50
Use <pre> around code snippets in the documentation for sessions interfaces. This is a documentation change only with no changes to code. (check-in: c949b915 user: drh tags: trunk)
04:30
Fix a potential NULL pointer deref following OOM in the new IS TRUE logic. (check-in: 48775ec6 user: drh tags: trunk)
2018-02-27
20:09
Update zonefile README.md file to mention the frame cache. (Leaf check-in: 84e9351b user: dan tags: zonefile)
19:50
Rationalize some code in zonefile.c. Fix other minor issues in the same. (check-in: f11beb16 user: dan tags: zonefile)
15:47
Enhance test 'zonefile1-6.5' to account for platform differences. (check-in: 8b617840 user: mistachkin tags: zonefile)
15:42
Adjustments to test numbers for the 'zonefile' extension. (check-in: 55de6f14 user: mistachkin tags: zonefile)
15:40
Add support for TRUE and FALSE keywords and for operators IS TRUE, IS FALSE, IS NOT TRUE, and IS NOT FALSE. If there is are columns named TRUE or FALSE, then the keywords resolve to the column names, for compatibility. The behavior of the "DEFAULT true" phrase is changed to mean what it says, rather than being an alias for "DEFAULT 'true'". (check-in: 9a7f02c5 user: drh tags: trunk)
14:49
Clean up comments and variable names prior to merge. (Closed-Leaf check-in: 6445519e user: drh tags: is-true-operator)
14:26
Have the zonefile extension use binary instead of text keys. (check-in: 39a4267f user: dan tags: zonefile)
00:58
Remove an unnecessary decision. (check-in: adcb4665 user: drh tags: is-true-operator)
2018-02-26
21:26
Code simplifications. New test cases. (check-in: 57508518 user: drh tags: is-true-operator)
20:15
Get the "DEFAULT true" and "DEFAULT false" phrases working correctly in CREATE TABLE. (check-in: 8002f87d user: drh tags: is-true-operator)
19:03
Enhance TreeView so that it can display the new IS TRUE expression trees. (check-in: 7e38305e user: drh tags: is-true-operator)
18:49
Refactor for correct NULL handling in the IS TRUE, IS FALSE, IS NOT TRUE, and IS NOT FALSE operators. (check-in: cf2abd59 user: drh tags: is-true-operator)
17:03
More tests pursuant to ticket [36fae083b450e3af857a459e20]. (check-in: c26f236d user: mistachkin tags: trunk)
16:49
Fix heap issue in the shell on Win32 caused by allocator mismatch. (check-in: 7b3a7551 user: mistachkin tags: trunk)
15:31
Merge the fix for determining truth of floating point values from trunk. (check-in: 003dc140 user: drh tags: is-true-operator)
15:27
Always interpret non-zero floating-point values as true even if their integer part is zero. Fix for ticket [36fae083b450e3af857a459e20]. (check-in: a983fa85 user: drh tags: trunk)
07:58
Add extra parameter to zonefileCodecCreate() to indicate whether the new object will be used for mock-encryption or mock-decryption. (check-in: 231832c4 user: dan tags: zonefile)
03:20
Experimental implementation of IS TRUE and IS FALSE operators. All TRUE and FALSE to act like constants if the names do not resolve to a column name. (check-in: 40314bc9 user: drh tags: is-true-operator)
2018-02-24
08:26
Test edge cases in the zonefile module. Fix a broken error message in the same. (check-in: 1764ade2 user: dan tags: zonefile)
2018-02-23
21:01
Fix a problem with handling "k >= ?" constraints in the zonefile module. (check-in: 9a99afaf user: dan tags: zonefile)
19:21
Add test cases and minor fixes for the zonefile module. (check-in: dbbcbf00 user: dan tags: zonefile)
14:09
Fix a problem causing SQLITE_HAVE_LZ4 builds of zonefile to fail unless SQLITE_HAVE_ZLIB is also defined. (check-in: 994aa77d user: dan tags: zonefile)
14:02
Fix a problem with DROP TABLE statements on zonefile virtual tables. (check-in: d2ed6910 user: dan tags: zonefile)
14:00
Fix harmless compiler warnings in the zonefile extension seen with MSVC. (check-in: d2800394 user: mistachkin tags: zonefile)
13:58
Avoid running a test case that requires zstd in non-SQLITE_HAVE_ZSTD builds. (check-in: d716dff4 user: dan tags: zonefile)
13:45
Merge updates from trunk. (check-in: 53f2100a user: mistachkin tags: zonefile)
13:38
Fix harmless compiler warnings in the zipfile extension seen with MSVC. (check-in: 15c587cf user: mistachkin tags: trunk)
13:38
Enable the JSON1 extension when compiling the test fixture with MSVC. (check-in: e9e9f27b user: mistachkin tags: trunk)
2018-02-22
21:06
Add tests cases and fix some minor zonefile problems. (check-in: f4d42162 user: dan tags: zonefile)
18:30
For the "SQLite archive" link in the README.md file, point to the CLI .archive command documentation, not the original "sqlar" website. (check-in: 4290faf5 user: drh tags: trunk)
18:28
Updates to the README.md file. Mention the ability to use SQLite-archives for download. (check-in: ab9a7ae4 user: drh tags: trunk)
16:46
Add an LRU cache of uncompressed frame content to the zonefile virtual table implementation. (check-in: 883e7e75 user: dan tags: zonefile)
2018-02-21
21:15
Modifications to the zonefile module to make it easier to add a cache of uncompressed frame content. (check-in: d9d5cc62 user: dan tags: zonefile)
16:36
Have zonefile store encryption keys in a hash-table instead of a linked list. Add extra tests for key management. (check-in: 3a63ea65 user: dan tags: zonefile)
10:43
In zonefile, change the "file TEXT" column back to "fileid INTEGER". The fileid can be used as a key with the associated zonefile_files table, which contains more information than just the filename. (check-in: 38d23888 user: dan tags: zonefile)
01:48
Remove an unreachable branch in the walIndexPage() logic. (check-in: 4e61a973 user: drh tags: trunk)
01:05
Small performance improvement in sqltie3WalFindFrame(). (check-in: 52013cad user: drh tags: trunk)
00:48
Remove an unnecessary memset(). (check-in: e7b7f588 user: drh tags: trunk)
2018-02-20
22:20
Make the walIndexPage() routine about 3x faster by factoring out the seldom used reallocation logic into a separate subroutine. (check-in: e2b10714 user: drh tags: trunk)
21:00
Add extra code to log details when corruption is detected in the pointer-map structure maintained by the b-tree layer in begin-concurrent transactions. (check-in: 57023371 user: dan tags: begin-concurrent-pnu)
20:57
Update README.md in ext/zonefile. (check-in: a13b2b38 user: dan tags: zonefile)
19:25
Fix a problem with reading the "file" column of a zonefile virtual table. (check-in: d8d0bdcb user: dan tags: zonefile)
18:47
Instead of just the frame number, store frame sizes and offsets in zonefile shadow table %_shadow_idx. (check-in: 56801c46 user: dan tags: zonefile)
17:02
In the speed-check.sh script, make WAL mode the default. Add the --legacy option to do DELETE mode. Continue to use DELETE mode for long-term performance graphs since WAL mode was not always available, but use WAL mode for day-to-day performance measurements. (check-in: cd816138 user: drh tags: trunk)
16:39
Remove a superfluous "#if 1". No logic changes. (check-in: caaffd32 user: drh tags: trunk)
15:23
Optimize calls to sqlite3_mprintf("%z...") so that they attempt to append text onto the end of the existing memory allocation rather than reallocating and copying. (check-in: 4bc8a48e user: drh tags: trunk)
13:46
Remove a lot of the text describing extended format options from the documentation on sqlite3_mprintf() and friends, since that information is now covered by the separate printf.html document. Provide links to that other document. No changes to code. (check-in: 99eec556 user: drh tags: trunk)
2018-02-19
22:46
Enhance the string formatter (used by printf()) so that the width and precision of string substitution operators refer to characters instead of bytes when the alternate-form-2 flag ("!") is used. Also fix the %c substition to always work within unicode, regardless of the alternate-form-2 flag. (check-in: c883c4d3 user: drh tags: trunk)
21:58
Printing a value of 0 using %c terminates the string. (Closed-Leaf check-in: 255612f0 user: drh tags: printf-enhancement)
21:07
Add support for invoking encryption hooks to zonefile. And mock encryption method "xor" for testing. (check-in: 55cf920c user: dan tags: zonefile)
20:41
More test cases for unicode handling in printf. (check-in: ac188211 user: drh tags: printf-enhancement)
20:23
Test cases and a bug fix on the new unicode handling in %c. (check-in: e41d64e9 user: drh tags: printf-enhancement)
18:56
Fix the %c substitution in printf() so that it works with unicode characters. (check-in: c35be1d9 user: drh tags: printf-enhancement)
18:03
Make the alternate-form-2 flag ("!") change the meaning of width and precision from bytes to characters for the %q, %Q, and %w extensions of printf(). (check-in: 391540ac user: drh tags: printf-enhancement)
17:03
In the printf() library, measure width and precision in characters rather than bytes if the "!" (alternate-form-2) flag is present on a %s or %z substitution. (check-in: ca31c663 user: drh tags: printf-enhancement)
16:34
Only try to use the geteuid() interface on unix if HAVE_FCHOWN is defined. This fixes the build for vxWorks, we are told. (check-in: 38f654dc user: drh tags: trunk)
16:28
Add support for the ExtendedHeaderSize header field to zonefile. (check-in: 78267a09 user: dan tags: zonefile)
14:27
Modify the zonefile format in order to avoid depending on the filesize to determine the extent of the final frame. See README.md for details. (check-in: 4dbe0cba user: dan tags: zonefile)
13:53
Fix an assert so that it compares two CellInfo objects field by field instead of using memcmp(). Memcmp() does not work on x86 because of uninitialized padding bytes. (check-in: 88258770 user: drh tags: trunk)
2018-02-18
17:50
Fix a memory leak in the processing of nested row values. This problem has existed every since row values support was added (version 3.15.0, 2016-10-14) but was only just now detected by OSSFuzz. (check-in: 2df6bbf1 user: drh tags: trunk)
00:54
Port mutex enhancments from check-in [f53b8a573b] to the Win32 implementation. (check-in: 74bb7225 user: mistachkin tags: trunk)
2018-02-17
20:22
Add support for "brotli" compression to the zonefile module. (check-in: 3eb25b3f user: dan tags: zonefile)
19:38
Add support for compression types "lz4" and "lz4hc" to the zonefile module. (check-in: bbe5b21f user: dan tags: zonefile)
18:33
Add support for compression methods "zstd" and "zstd_global_dict". (check-in: a993a50b user: dan tags: zonefile)
07:38
Fix a data race causing a tsan complaint with SQLITE_ENABLE_API_ARMOR builds on unix. The race condition is not dangerous in practice, it just upsets tsan. (check-in: f53b8a57 user: dan tags: trunk)
2018-02-15
21:00
Do not allow parameters or schema references inside of WITH clause of triggers and views. This fixes a bug discovered by OSSFuzz and present since common-table-expressions were first added in 2014-02-03. (check-in: b918d4b4 user: drh tags: trunk)
20:37
Add support for zlib compression to the zonefile module. (check-in: 72b8a7ef user: dan tags: zonefile)
20:00
On unix, the "PRAGMA fsync_interval=N" command causes an extra fdatasync() after writing N bytes of content, to force a write-queue flush in the underlying OS. This is an experimental hack that is not expected to land on trunk. (Leaf check-in: b18cc5fe user: drh tags: write-queue-flush-hack)
15:24
Fix another point in zonefile.c so that all files are opened in either "rb" or "wb" mode. (check-in: fb1c2277 user: dan tags: zonefile)
15:17
When calling fopen() in the zonefile extension, use modes "rb" and "wb" instead of "r" and "w". This makes no difference on unix, but is required when accessing binary files on other systems. (check-in: 4bb854dd user: dan tags: zonefile)
03:56
Improve performance of editdist3() by keeping the costs in sorted order. Also add a new regression test to editdist3(). (check-in: dc734c5b user: drh tags: trunk)
03:05
Reduce the number of calls to strncmp() required to run editDist3Core(). (check-in: afd6fbc0 user: drh tags: trunk)
01:03
Fix the --heap, --pagecache, --lookaside and other options to the command-line shell that invoke sqlite3_config() so that they work again. (check-in: 00707f2f user: drh tags: trunk)
2018-02-14
23:27
Add the --readonly option to the ".open" command in the CLI. (check-in: 06870bb1 user: drh tags: trunk)
20:58
Performance optimizations to the editdist3() function in the spellfix extension. (check-in: 70d304dc user: drh tags: trunk)
20:25
Disable assert() in the spellfix extension if not compiled with SQLITE_DEBUG. (check-in: 3c53ee0f user: drh tags: trunk)
15:30
New test cases for the editdist3() function in the spellfix extension. (check-in: 2d3f1f22 user: drh tags: trunk)
14:13
Try to optimize spellfix1 by storing a NULL in the k1 column of %_vocab if it would otherwise have the same value as the word column. (check-in: b76ec7cb user: drh tags: trunk)
2018-02-13
21:16
Fix formatting errors in ext/zonefile/README.md. (check-in: a2221e35 user: dan tags: zonefile)
20:53
Note the fact that zonefile depends on json1 in ext/zonefile/README.md. (check-in: fb27d8f6 user: dan tags: zonefile)
20:08
Fix handling of maxAutoFrameSize parameter. (check-in: d65e5855 user: dan tags: zonefile)
19:13
Improved test cases for the [f484b65f3d6230593c34f] bug. (check-in: 1f300514 user: drh tags: trunk)
19:01
Enhance ext/zonefile/README.md to describe the currently available functionality. (check-in: 100137c7 user: dan tags: zonefile)
18:48
Fix an incorrect table lookup used to find the appropriate search operator for a WHERE clause on a row-value inequality. The incorrect table lookup was causing an incorrect answer for the less-than operator. Fix for ticket [f484b65f3d6230593c34f11] (check-in: f3112e67 user: drh tags: trunk)
18:02
Remove, for now, the "priority" column from the zonefile_files virtual table. (check-in: 8bf5154b user: dan tags: zonefile)
17:33
Pad the 26 byte Zonefile header to 32 bytes so that the ZonefileIndex object is 8-byte aligned. (check-in: fdb6c0c5 user: dan tags: zonefile)
16:30
Remove an unused variable from FTS4. (check-in: 27ea783b user: drh tags: trunk)
16:21
Ensure that multiple updates of the same FTS4 row (i.e. the row with the same rowid) within a single transaction are written to separate segments. Fix for [d6ec09ec]. (check-in: d2a81a37 user: dan tags: trunk)
2018-02-12
20:50
Updates to the speed-check.sh script for improvements to the --vdbeprofile option. (check-in: f89c8f8e user: drh tags: trunk)
20:27
When compiling with VDBE_PROFILE, add the sqlite3NProfileCnt global variable which can be used to measure per-opcode values other than elapse time, if non-zero. (check-in: d44d5936 user: drh tags: trunk)
20:04
Add support for reading simple (no compression, no encryption) zonefile files. (check-in: dba42f0e user: dan tags: zonefile)
15:27
Update test file func6.test so that it works with SQLITE_ENABLE_NULL_TRIM builds. (check-in: e128d72f user: dan tags: trunk)
13:30
Fix a possible infinite loop in VACUUM that can come up when the schema has been carefully corrupted. Problem discovered by OSSFuzz. Test cases in TH3. (check-in: 27754b74 user: drh tags: trunk)
2018-02-10
21:04
Add start of "zonefile" virtual table. (check-in: 0b7bd169 user: dan tags: zonefile)
17:41
Add the start of the "zonefile" extension. (check-in: c125b4c3 user: dan tags: zonefile)
02:31
Fix misplaced testcase() macros from the previous check-in. (check-in: 3aed949a user: drh tags: trunk)
2018-02-09
23:25
Improve the performance of the built-in REPLACE() function in cases where it does many substitutions that make the string larger. OSSFuzz is reporting intermittant timeouts when running a test where it does a REPLACE() on a 930KB random blob. Perhaps this enhancement will fix that. (check-in: fab2c2b0 user: drh tags: trunk)
20:49
Add the zorder.c extension implementing zorder() and unzorder() SQL functions. (check-in: a57a77dc user: drh tags: trunk)
15:42
Make the tests in func6.test more robust against implementation changes. (check-in: b685d323 user: dan tags: trunk)
15:04
Fix a harmless compiler warning. (check-in: a6c31154 user: drh tags: trunk)
2018-02-08
01:00
Enhance sqlite3ErrStr() to include several more error codes. (check-in: ad5d3bdc user: mistachkin tags: trunk)
2018-02-07
18:45
Fix typo in comment. Skip tests added by check-in [4761db83b6] when running on Windows. (check-in: 468a389c user: mistachkin tags: trunk)
18:02
In extensions rtree, fts3 and fts5, ensure that when dynamic buffers are bound to persistent SQL statements using SQLITE_STATIC, the binding is replaced with an SQL NULL before the buffer is freed. Otherwise, a user may obtain a pointer to the persistent statement using sqlite3_next_stmt() and attempt to access the freed buffer using sqlite3_expanded_sql() or similar. (check-in: 2a5f813b user: dan tags: trunk)
16:14
When the final connection disconnects from a wal mode database, check that the database file has not been moved or unlinked before deleting the wal and shm files. (check-in: 4761db83 user: dan tags: trunk)
2018-02-05
21:02
Adjust the previous check-in, which modified the Win32 VFS, so that it works with SQLITE_OMIT_WAL. (check-in: 36c2e67e user: mistachkin tags: trunk)
20:42
Allocation the mutex used by the Win32 VFS only once at initialization, instead of every time it is needed. (check-in: 535ed0ac user: mistachkin tags: trunk)
16:39
Allocation the mutex used by the unix VFS only once at initialization, instead of every time it is needed. (check-in: 5764dc16 user: drh tags: trunk)
13:42
Fix another minor problem in walro2.test. (check-in: ba0631de user: dan tags: trunk)
13:28
Update test file walro2.test to account for systems with a page-size (getpagesize()) larger than 32KB. (check-in: d9e59cfb user: dan tags: trunk)
2018-02-04
20:33
In the CLI, make sure sqlite3_initialize() is called correctly even for non-UTF8 hosts. (check-in: a3591fb5 user: drh tags: trunk)
01:30
Fix harmless compiler warning seen with MSVC. (check-in: 63a91441 user: mistachkin tags: trunk)
01:29
Move variable declaration in zipfile extension to fix MSVC compiler error. (check-in: ac6a3248 user: mistachkin tags: trunk)
2018-02-02
16:46
Enable the ".wheretrace" and ".selecttrace" options in the shell when configure is run using --enable-debug. This mirrors a similar change that has already occurred on trunk. (Leaf check-in: c4f798b2 user: drh tags: branch-3.9.2)
16:28
Remove the "include <io.h>" win32 dependency from the zipfile extension. (check-in: cb3feb3b user: dan tags: trunk)
16:20
Remove the time() dependency from the zipfile extension. Use SQLite VFS methods instead. (check-in: 0702fb56 user: dan tags: trunk)
08:14
In SQLITE_ENABLE_BATCH_ATOMIC_WRITE builds on F2FS file-systems, invoke SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE if an SQLITE_FCNTL_COMMIT_ATOMIC_WRITE call fails. Also, do not use an atomic transaction to create the initial database. This is because if an error occurs while writing to the db file, any changes to the file-size do not seem to be rolled back automatically. The only time this matters is when the file was 0 bytes in size to start with. Cherrypick of [b3122db154]. (check-in: 22a228ed user: dan tags: branch-3.19)
08:08
Update a couple of test scripts so that they work on F2FS file-systems that support atomic transactions. Cherrypick of [49e58e645e]. (check-in: 1b394679 user: dan tags: branch-3.19)
2018-02-01
20:42
Add a few more zipfile tests. No changes to code. (check-in: 3f621545 user: dan tags: trunk)
19:41
Fix a problem triggered when a zipfile virtual table is created and written to within the same transaction. And add other zipfile tests. (check-in: 48f1c556 user: dan tags: trunk)
15:57
New assert() statements to help ensure that no other errors similar to [343634942dd54ab57b7] ever appear in the code. (check-in: 5a70af1e user: drh tags: trunk)
15:19
Fix a memory leak that could follow an IO error in the zipfile extension. And add other tests. (check-in: e6bb7506 user: dan tags: trunk)
01:13
When an index is based on a text representation of a numeric column in the original table, make sure the indexed value uses the canonical text representation of the numeric value in the table. Proposed fix for ticket [343634942dd54ab57b70]. (check-in: 88e2ce91 user: drh tags: trunk)
2018-01-31
20:18
When creating a new archive entry, have zipfile store UTC instead of local time in the legacy MS-DOS format timestamp field. (check-in: b730d187 user: dan tags: trunk)
19:45
Fix a test case in zipfile.test. (Closed-Leaf check-in: 4eb5b24c user: dan tags: zipfile-timestamp-fix)
19:13
When creating a new archive entry, have zipfile store UTC instead of local time in the legacy MS-DOS format timestamp field. (check-in: e2114df1 user: dan tags: zipfile-timestamp-fix)
16:50
Improve the omit-left-join optimization so that it works in some cases when the RHS is subject to a UNIQUE but not NOT NULL constraint. (check-in: 02ba8a7b user: drh tags: trunk)
14:07
Fix a failing assert() in the new code on this branch. (Closed-Leaf check-in: 74d857d1 user: dan tags: omit-left-join-fix)
01:38
Changes to the autoconf tarball so that it does not try to use system() when building on iOS. (check-in: 32ed9c10 user: drh tags: trunk)
2018-01-30
18:33
If a virtual table xColumn method sets an error message using sqlite3_result_error(), use that message in preference to any error message left in the sqlite3_vtab object. (check-in: 71e3b715 user: dan tags: trunk)
17:43
Add tests cases for the zipfile extension. (check-in: 13b786da user: dan tags: trunk)
14:07
Prevent users from creating zipfile() virtual tables without an argument. (check-in: 81fdbe0c user: dan tags: trunk)
2018-01-29
19:47
Add unix-only tests to check that the "unzip" program can unpack archives generated by the zipfile extension. (check-in: 438c5c52 user: dan tags: trunk)
18:41
Add aggregate function zipfile() to the zipfile extension. For composing new zip archives in memory. (check-in: e364eeac user: dan tags: trunk)
17:08
Update the omit-left-join optimization so that it works in some cases when the RHS is subject to a UNIQUE but not NOT NULL constraint. (check-in: 88411a40 user: dan tags: omit-left-join-fix)
16:22
Ensure the "unique-not-null" flag is set for automatic indexes on columns declared with "col UNIQUE NOT NULL" (where the NOT NULL comes after the UNIQUE). (check-in: 8767f7b8 user: dan tags: trunk)
2018-01-27
18:55
Fix missing header comments and other code issues in zipfile.c. (check-in: 6ea8ba31 user: dan tags: trunk)
16:29
If a zipfile virtual table is created with no argument - "CREATE VIRTUAL TABLE zzz USING zipfile()" - accumulate data in memory. Support "SELECT zipfile_blob(z) FROM zzz LIMIT 1" to retrieve a zip archive image. (check-in: e63185ed user: dan tags: trunk)
14:25
Changes to avoid a harmless UB warning from clang. (check-in: 19f5c140 user: drh tags: trunk)
13:55
New test case for ticket [ec32177c99ccac2b1] that works without the STAT4. (check-in: 5259d484 user: drh tags: trunk)
05:40
Proposed fix for the query planner problem of ticket [ec32177c99ccac2b1]. (check-in: eef8cbef user: drh tags: trunk)
03:26
Fix compiler warnings in zipfile.c. (check-in: bed610d9 user: drh tags: trunk)
2018-01-26
22:41
Fix the query planner so that it takes into account dependencies in the arguments to table-valued functions in subexpressions in the WHERE clause. Fix for ticket [80177f0c226ff54f6dd]. (check-in: 7daa6873 user: drh tags: trunk)
18:59
If the argument to table function zipfile() is a blob (not text), assume that it contains a zip file image to interpret, not the name of a file on disk. (check-in: 029ebcd3 user: dan tags: trunk)
18:37
Improve text-to-integer conversion in boundary cases. The sqlite3Atoi64() function always returns the minimum or maximum integer if the magnitude of the text value is too large. Trailing whitespace is now ignored. (check-in: ace0644a user: drh tags: trunk)
2018-01-25
20:50
Reorganize zipfile.c code to make it easier to add support for in-memory zip archive processing. (check-in: 30b92582 user: dan tags: trunk)
01:20
Slightly smaller and faster implementation of OP_If and OP_IfNot. (check-in: 6ab42934 user: drh tags: trunk)
2018-01-24
20:42
When unpacking a sorter record, do so from right to left instead of left to right, since by starting with the right-most column, the work done by OP_Column opcodes is reduced. (check-in: 8055e4f4 user: drh tags: trunk)
18:28
Reorganize spellfix.c to make it easier to edit automatically (e.g. using a script). No changes to functionality. (check-in: 090a64fa user: dan tags: trunk)
16:04
Rearrange fields of the BtCursor object so that it is smaller and requires less initialization, for a small performance improvement. (check-in: 0ddf5292 user: drh tags: trunk)
15:07
Add the normalize.c extension. (check-in: 16ebe558 user: drh tags: trunk)
15:02
Merge changes from trunk. (check-in: 6ef3de81 user: drh tags: memdb)
14:40
Interchange the numeric codes for CURSOR_VALID and CURSOR_INVALID to obtain a small size decrease and performance increase. (check-in: e0f192ea user: drh tags: trunk)
14:39
Adjust the fts3rank.test module so that it works on big-endian systems (hopefully - I don't have a big-endian machine to test the change on.) (check-in: e4766cab user: drh tags: trunk)
13:15
Improved error message output when the btreeinfo.c extension is run in a connection that lacks sqlite_dbpage support. (check-in: 461b0b81 user: drh tags: trunk)
12:14
Prevent a harmless unused variable warning when compiling with SQLITE_OMIT_TRACE. (check-in: 61a44961 user: drh tags: trunk)
11:29
Fix a formatting issue in sqlite3_prepare_v3() documentation. No changes to code. (check-in: 9e6066de user: drh tags: trunk)
11:25
Fix the sqlite3ext.h header file so that it correctly accesses the new sqlite3_value_nochange() and sqlite3_vtab_collation() interfaces. (check-in: 6185d190 user: drh tags: trunk)
06:30
Update a couple of test scripts so that they work on F2FS file-systems that support atomic transactions. (check-in: 49e58e64 user: dan tags: trunk)
01:58
Make the shell functional even if compiled with SQLITE_OMIT_COMPLETE. Omit the sqlite3_complete() call from the fuzzing interface if it is compiled with SQLITE_OMIT_COMPLETE. (check-in: c3e816cc user: drh tags: trunk)
01:02
Invoke the sqlite3_complete() interface from the fuzzer. (check-in: 332bf846 user: drh tags: trunk)
2018-01-23
20:22
Increase the version number to 3.23.0 for the next development cycle. (check-in: b58b60b2 user: drh tags: trunk)
19:24
Remove an unreachable branch from sqlite3SkipAccumulatorLoad(). (check-in: 8b9c8eab user: drh tags: trunk)
17:33
Work around a problem with GCC on 32-bit machines that cause the CAST operator to generate a floating-point result for strings that could be represented as very large integers. (check-in: 1b027319 user: drh tags: trunk)
16:38
Fix a bug causing spurious "sub-select returns N columns expected 1" errors in join queries with a term like "(a, b) IN (SELECT ...)" in the WHERE clause. Ticket [7310e2fb3d046a5f5]. (check-in: 14dfd96f user: dan tags: trunk)
15:26
Fix the modification-time setting logic in the fileio.c extension on Windows so that it works with utf8 filenames. (check-in: f785b904 user: drh tags: trunk)
14:01
In SQLITE_ENABLE_BATCH_ATOMIC_WRITE builds on F2FS file-systems, invoke SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE if an SQLITE_FCNTL_COMMIT_ATOMIC_WRITE call fails. Also, do not use an atomic transaction to create the initial database. This is because if an error occurs while writing to the db file, any changes to the file-size do not seem to be rolled back automatically. The only time this matters is when the file was 0 bytes in size to start with. (check-in: b3122db1 user: dan tags: trunk)
13:30
Fix comment typos. No changes to code. (check-in: 8e5e74c6 user: drh tags: trunk)
07:11
Skip defining WIN32_LEAN_AND_MEAN when it is already defined. (check-in: 195f5323 user: mistachkin tags: trunk)
04:22
Slightly faster implementation of the length() SQL function. (check-in: 9a4199ae user: drh tags: trunk)
03:44
Slightly faster function dispatch in the virtual machine by avoiding unnecessary reinitialization of variables that are already correctly initialized. (check-in: edd4e687 user: drh tags: trunk)
01:56
Enhance the PRAGMA noop_update statement so that the behavior persists across reprepare operations. (Leaf check-in: c25da6de user: drh tags: noop-update-reprepare)
00:17
Simplify one of the compiler warning fixes from the previous check-in. (check-in: 012d7d49 user: mistachkin tags: trunk)
00:05
Fix harmless compiler warnings seen with MSVC. (check-in: 76a11a80 user: mistachkin tags: trunk)
2018-01-22
19:04
Merge all version-3.22.0 changes. (check-in: 27e20d69 user: drh tags: apple-osx)
18:45
Version 3.22.0 (check-in: 0c55d179 user: drh tags: trunk, release, version-3.22.0)
15:45
Avoid unnecessary OOM detection warnings in a debugging routine. (check-in: 395f8ea7 user: drh tags: trunk)
15:20
Fix a test case in walro2.test so that it works with encryption extensions (when each page has a little less usable space available than usual). (check-in: b79521d2 user: dan tags: trunk)
14:49
On the walro2-X.4.2.2 test case, show the size as part of the test output. (check-in: ac5091d7 user: drh tags: trunk)
2018-01-20
15:48
Allow the shell to be built from the configure script with SQLITE_OMIT_VIRTUALTABLE defined. (check-in: 136bf323 user: dan tags: trunk)
2018-01-18
19:00
Use a loop to avoid recursion in the heightOfSelect() function. (check-in: 86de4359 user: dan tags: trunk)
17:46
Check for both zlib.h and -lz before enabling zlib support in the amalgamation configure script. (check-in: 8ecd13a1 user: dan tags: trunk)
17:09
Update the autoconf configure.ac script and Makefile.am templates so that ZLIB is automatically detected and used. (check-in: 41bfb6b8 user: drh tags: trunk)
16:59
Fix sessions module handling of sqlite_stat1 rows with (idx IS NULL). (check-in: 0e916416 user: dan tags: trunk)
16:56
Clarify the handling of the sqlite_stat1 table by legacy versions of the sessions module. (Closed-Leaf check-in: dc7c48cb user: dan tags: sessions-stat1)
16:53
Add comments describing the special sqlite_stat1 handling to sqlite3session.h. (check-in: 4431a325 user: dan tags: sessions-stat1)
16:52
Fix to the documentation for sqlite3_trace_v2(). No changes to code. (check-in: 6fbd0a11 user: drh tags: trunk)
16:42
Fix sessions module conflict handling for the sqlite_stat1 table. (check-in: f05ee74e user: dan tags: sessions-stat1)
15:06
Simplify the sessions preupdate-hook logic for transforming NULL to X'' for column sqlite_stat1.idx. (check-in: 089d7cec user: dan tags: sessions-stat1)
2018-01-17
21:14
Alternative implementation for the internal sqlite3Pow10() utility for MSVC, which is more accurate on that platform. (check-in: 469b96be user: drh tags: trunk)
20:57
Fix a problem in the sessions module with logging sqlite_stat1 rows for which (idx IS NULL) is true. (check-in: 25bf734b user: dan tags: sessions-stat1)
17:38
Fix a problem causing the sessions module to occasionally lose track of rows with composite primary keys when there are two rows with the same text value in the leftmost column of the PK. (check-in: 09aed136 user: dan tags: trunk)
16:11
Fix main.mk so that testfixture can be built either from the amalgamation or from individual source files. No changes to code. (check-in: a8aea925 user: dan tags: trunk)
13:15
Fix harmless compiler warnings, mostly unused parameters for UDFs in the CLI. (check-in: bfbeffab user: drh tags: trunk)
12:58
Omit the single test from zipfile.test that uses json functionality in non-SQLITE_ENABLE_JSON1 builds. (check-in: 6bb2a10f user: dan tags: trunk)
12:57
Update test file fts5fault6.test to account for test tokenizers implemented in Tcl returning SQLITE_ERROR instead of SQLITE_NOMEM following an OOM error. (check-in: c232f642 user: dan tags: trunk)
01:40
Simplifications to winOpenSharedMemory in the Win32 VFS. (check-in: 3e04999d user: mistachkin tags: trunk)
01:26
Corrections to error code handling in os_win.c, pursuant to walfault.test. (check-in: 56819222 user: mistachkin tags: trunk)
01:15
Fix duplicate test names in 'walfault.test'. (check-in: 7274d05f user: mistachkin tags: trunk)
2018-01-16
21:09
Fix a problem causing zipfile to store 0 in place of the CRC32 value for uncompressed files. (check-in: ba44724b user: dan tags: trunk)
21:05
Remove an unused field from the internal definition of the sqlite3_context object. (check-in: 948a26b5 user: drh tags: trunk)
21:00
Fix compiler warning in the FTS5 test interface. (check-in: 2ab4e8d5 user: drh tags: trunk)
20:50
Make the new sqlite3_vtab_collation() interface accessible to loadable extensions. (check-in: f301db3c user: drh tags: trunk)
20:44
Fix a test problem causing an error in fts5fault9.test. (check-in: 8e204811 user: dan tags: trunk)
20:37
Remove the unused SQLITE_CANTOPEN_DIRTYWAL result code. (check-in: 3c786305 user: drh tags: trunk)
20:20
Fix a makefile problem causing -DSQLITE_ENABLE_STMTVTAB builds to fail. (check-in: 7f6e5bdf user: dan tags: trunk)
20:05
Move the ZLIB version announcement in the CLI out of the default banner and put it in the ".version" command. (check-in: 231679d6 user: drh tags: trunk)
19:03
Show version of zlib in use when running the shell tool in interactive mode. (check-in: a8906b52 user: mistachkin tags: trunk)
17:33
Change a cat in zipfile.c from (z_const Bytef*) to just (Bytef*). This allows the module to build with older versions of zlib. (check-in: ac9af91d user: dan tags: trunk)
13:37
Fix a problem causing an infinite loop or other malfunction in some UPDATE statements with an OR term in the WHERE clause. Ticket [47b2581aa9bfecec] (check-in: feb2c2b6 user: dan tags: trunk)
02:38
Disable the ".archive" command tests in shell8.test if the CLI is compiled without ZLIB support. (check-in: ce8bfe6c user: drh tags: trunk)
2018-01-15
21:59
Merge the enhancements associated with the first 3.22.0 beta. (check-in: c9d2ec51 user: drh tags: apple-osx)
19:00
Fix a problem in the zipfile module causing it to generate incorrect checksums. Remove the ability to insert compressed data into a zip archive. (check-in: b0b7d036 user: dan tags: trunk)
15:49
Fix a zipfile problem with extracting zero length files compressed using deflate. (check-in: cf640872 user: dan tags: trunk)
14:32
Fix an error in the setDeviceCharacteristics() procedure for the (unsupported) QNX code in os_unix.c. (check-in: 8151913a user: drh tags: trunk)
2018-01-14
20:12
Avoid excess stack usage when a VALUES clause with lots of rows occurs within a scalar expression. This fixes a problem discovered by OSSFuzz. (check-in: a4fa0581 user: drh tags: trunk)
2018-01-13
23:28
Fix harmless compiler warnings in zipfile.c. (check-in: 8f7a592f user: drh tags: trunk)
19:08
Support UPDATE statements against zipfile virtual tables. (check-in: f2d2a5df user: dan tags: trunk)
14:28
Fully initialize the Mem object for serial-type 10, in case such a serial-type is found in a corrupt database file. (check-in: bd70a07d user: drh tags: trunk)
14:07
Fix a typo in test file crash8.test. (check-in: 4951d91d user: dan tags: branch-3.19)
14:02
Fix various problems in test scripts preventing "make test" from passing on F2FS file-systems with the "atomic-write" feature. (check-in: 6bedc743 user: dan tags: trunk)
14:01
Fix a typo in crash8.test. (Closed-Leaf check-in: c3dc7b8d user: dan tags: f2fs-test-fixes)
13:21
Fix various problems in test scripts preventing "make test" from passing on F2FS file-systems with the "atomic-write" feature. Cherrypick of [56d93d07]. (check-in: 6a296d4d user: dan tags: branch-3.19)
13:07
Fix various problems in test scripts preventing "make test" from passing on F2FS file-systems with the "atomic-write" feature. (check-in: 56d93d07 user: dan tags: f2fs-test-fixes)
02:07
Updates and minor typo fix for the README. (check-in: bb196fcb user: mistachkin tags: trunk)
01:53
Add the new "nochange" APIs to the extension loading mechanism. (check-in: cd7c4269 user: drh tags: trunk)
2018-01-12
23:38
Add the sqlite3_value_nochange() API, usable from within the xUpdate method of a virtual table to discover whether or not a column was unchanged at the SQL level. (check-in: dec3ea4e user: drh tags: trunk)
23:18
Improved comments. Slightly tighter implementation, but no big changes. (Closed-Leaf check-in: a1b3f285 user: drh tags: sqlite3_value_nochange)
21:00
Add the experimental sqlite3_value_nochange() interface usable by xUpdate methods of virtual tables to see if a column has actually changed values. (check-in: 8b7be15e user: drh tags: sqlite3_value_nochange)
19:33
Simplification to the implementation of OP_Insert. (check-in: 6acbdba5 user: drh tags: trunk)
19:20
Fix error handling in sqlite3session_diff() when it is invoked for table "sqlite_stat1". (check-in: 874285e4 user: dan tags: trunk)
18:46
Avoid an unnecessary branch when not using pre-update hooks. (check-in: ec96707e user: drh tags: trunk)
18:03
Fix obsolete comments. No changes to code. (check-in: ec39c99b user: drh tags: trunk)
17:25
Include changes made to the sqlite_stat1 table in changesets generated by the sessions module. sqlite_stat1 entries in such changesets are ignored by legacy clients. (check-in: 20642335 user: dan tags: trunk)
16:44
Experimental change to include changes made to the sqlite_stat1 table in changesets generated by the sessions module. sqlite_stat1 entries in such changesets are ignored by legacy clients. (Closed-Leaf check-in: bd46c442 user: dan tags: sessions-stat1)
14:34
Always use utimes() instead of utimensat() since the latter is not available even on some recent unix systems. (check-in: 30ed7a4b user: drh tags: trunk)
12:02
Add a test to ensure that the sqlite3changeset_apply() function ignores tables that do not have the expected primary keys. (check-in: bf2daf06 user: dan tags: trunk)
00:30
Enable the one-pass optimization for DELETE and UPDATE on RTree. This is parked in a branch because is seems to make no measureable performance difference. (Leaf check-in: 8b8314cb user: drh tags: rtree-one-pass)
2018-01-11
18:15
Add the sqlite3_vtab_nochange() interface. Test cases are in TH3. (check-in: a5d09dfa user: drh tags: trunk)
17:33
Change zipfile to be a WITHOUT ROWID virtual table and table-valued function. (check-in: 931201f6 user: dan tags: trunk)
17:04
Add the sqlite3_vtab_nochange() method which virtual table implementations can use to optimize UPDATEs. (Closed-Leaf check-in: d444b1ff user: drh tags: sqlite3_vtab_nochange)
16:16
Add test cases for running multiple RBU operations within the same process concurrently. (check-in: 407b5ed3 user: dan tags: trunk)
14:50
Minor formatting changes in zipfile.c. No logical code differences. (check-in: 4f68bed3 user: drh tags: trunk)
13:43
Fix typo in comment. No code changes. (check-in: 2c55571b user: drh tags: trunk)
00:38
Update the .help screen in the CLI. Make sure the temporary files for ".open" are not deleted too soon. (check-in: b8d92d8d user: drh tags: trunk)
00:04
Add the built-in edit(VALUE) and edit(VALUE,EDITOR) function to the CLI. (check-in: ef823c47 user: drh tags: trunk)
2018-01-10
23:29
Add the ".once -e" and ".once -x" commands to the CLI, and the ".excel" command that is an alias for ".once -x". (check-in: a6ed5ab9 user: drh tags: trunk)
23:27
Update test cases for the new "usage" for .output. (Closed-Leaf check-in: fbf5e43c user: drh tags: excel-shell-cmd)
22:27
Save and restore the output mode when doing ".once -x" or ".excel". (check-in: f697c164 user: drh tags: excel-shell-cmd)
22:15
An attempt to get ".once -e" working reliably on Windows. (check-in: 9b97f9d2 user: drh tags: excel-shell-cmd)
21:50
Fix a potential SQLITE_MISUSE in the .excel command when no database is open. (check-in: 9b95ff1a user: drh tags: excel-shell-cmd)
21:41
Add support for the ".excel" command (and ".once -e" and ".once -x") in the CLI. (check-in: 23fa7c57 user: drh tags: excel-shell-cmd)
19:50
Fix a harmless compiler warning in zipfile.c (check-in: 60c694c1 user: drh tags: trunk)
19:15
Include RTREE in the default CLI build. (check-in: 6a6a3d49 user: drh tags: trunk)
18:09
Modify the new "--append" option to the .archive so that it takes a filename argument, the same as "--file". (check-in: 58e3b07c user: drh tags: trunk)
17:44
Add the lsmode(MODE) function in the fileio.c extension and use that function in the .archive implementation. Add the --append and --dryrun options to the .archive command and remove the --zip option, making it automatic. (check-in: 38f28029 user: drh tags: trunk)
17:39
Fix minor problems with the new ".archive" command changes. (Closed-Leaf check-in: 612b30c9 user: drh tags: archive-improvements)
17:37
Return an SQLITE_CONSTRAINT error if an attempt is made to insert duplicate entries into a zip archive. (check-in: 1f099b2b user: dan tags: trunk)
17:19
In the fileio.c extension, change the filetype(MODE) function into lsmode(MODE). Use the new lsmode(MODE) function in shell.c. (check-in: 52d12ba9 user: drh tags: archive-improvements)
16:50
Implement the ".ar --create" command using a single "REPLACE INTO sqlar SELECT ... FROM fsdir();" statement. Add the shell_putsnl() SQL function for providing --verbose output. (check-in: 28ab9304 user: drh tags: archive-improvements)
16:30
Have the zipfile module automatically append "/" to directory names that do not already end with such a character. This is required for info-zip compatibility. (check-in: 94bc3c60 user: dan tags: trunk)
15:53
Add the "filetype()" SQL function for interpreting file modes to the fileio.c extension. (check-in: 58c0c74c user: drh tags: archive-improvements)
15:17
The ".ar" command deduces whether or not the target file is a ZIP or SQLAR and does the appropropriate thing. The "-z" option is omitted. The "--append" option is added to open auxiliary databases using apndvfs. (check-in: 430d1a7d user: drh tags: archive-improvements)
14:00
Allow the use of ".ar -t" without specifying an archive file or the "-z" option when the command-line shell is opened on a ZIP archive. (check-in: 9340a2c1 user: drh tags: archive-improvements)
13:58
Tag an unreachable branch using ALWAYS(). (check-in: c42c734f user: drh tags: trunk)
13:44
Checked into the wrong branch. (Closed-Leaf check-in: 55116dc3 user: drh tags: mistake)
13:11
Work on the ".archive" command. (1) Add the --dryrun option. (2) Do not require --file when open on a ZIP archive. (3) Miscellaneous code simplifications. This is an incremental check-in of work in progress. (check-in: a2baada4 user: drh tags: archive-improvements)
11:56
Fix a problem in os_unix.c causing it to return SQLITE_CANTOPEN instead of SQLITE_READONLY_RECOVERY. (check-in: 6a16f554 user: dan tags: trunk)
00:53
Rearrange some routines in shell.c to avoid the need to forward reference a static function. (check-in: fd7f51a1 user: drh tags: trunk)
00:40
Compute the correct column name even if the column identifier is the very last token in the SQL statement. This fixes a problem introduced by check-in [0fdf97efe5df745510c6b] and reported by the community during beta-testing. (check-in: 36b89d72 user: drh tags: trunk)
2018-01-09
22:23
When disconnecting from the 'swarmvtab' extension, close each database prior to invoking the 'openclose' function on it. (check-in: 3e5647cb user: mistachkin tags: trunk)
20:49
Fix harmless compiler warnings. (check-in: 0fb42090 user: mistachkin tags: trunk)
20:44
Return SQLITE_CONSTRAINT if a user attempts to update a zipfile table. (check-in: 64c9ccf6 user: dan tags: trunk)
20:34
In the os_unix.c implementation of xOpen(), do not return SQLITE_READONLY_DIRECTORY in cases where the file cannot be opened for reasons other than a readonly directory, such as the process running out of file descriptors. (check-in: fa8b80bb user: dan tags: trunk)
18:31
Fix a potential crash in sqlite3expert.c caused by a missing sqlite3_reset() call. (check-in: f6355970 user: dan tags: trunk)
15:57
Fix another -fsanitize issue in new shell code. (check-in: 6ee7b54c user: dan tags: trunk)
15:28
Updates to the README.md file for the ext/misc directory. No code changes. (check-in: 6b3f4349 user: drh tags: trunk)
15:25
Fix the shell so that it can be built with SQLITE_OMIT_VIRTUALTABLE. (check-in: 931421a2 user: dan tags: trunk)
14:30
Do not attempt to build the code in ext/expert/sqlite3expert.c if SQLITE_OMIT_VIRTUALTABLE is defined. (check-in: ba967ad2 user: dan tags: trunk)
14:27
Attempt to fix the fileio.c extension so that it builds on MinGW-64. (check-in: a7446d32 user: drh tags: trunk)
10:29
Fix a zipfile problem with adding new directories to an archive. (check-in: 5fed6703 user: dan tags: trunk)
07:16
Fix a problem in zipfile.c found by -fsanitize. (check-in: 4fe697fa user: dan tags: trunk)
02:27
Avoid a compiler warning when building with newer versions of MinGW (check-in: cba0206a user: drh tags: trunk)
00:28
Improve portability of compile-time MinGW detection for the command line shell. (check-in: 4a723614 user: mistachkin tags: trunk)
00:26
Fix harmless compiler warnings. (check-in: 1adf4e60 user: mistachkin tags: trunk)
2018-01-08
20:04
Test cases for sqlite3_normalize(). (Closed-Leaf check-in: 658f4225 user: drh tags: normalize)
19:59
Update the zipfile module so that it matches the documentation. (check-in: 7e7e472f user: dan tags: trunk)
19:29
Special handling of the NULL keyword. Sometimes it is a literal, and sometimes it is a keyword. (check-in: db5d138e user: drh tags: normalize)
19:18
Add IN-operator normalizating and the SQLITE_NORMALIZE_CLI compile-time option for generating a stand-alone program. (check-in: d77dbb39 user: drh tags: normalize)
17:34
Fix problems in the sqlite3expert.c code revealed by -fsanitize. (check-in: 7a93dd78 user: dan tags: trunk)
17:12
Add an "ifcapable trace {}" block to a test in fkey1.test that uses SQL tracing. (check-in: 7182591d user: dan tags: trunk)
17:09
Remove a superfluous define from the 'fileio' extension when compiled for Win32. (check-in: 6dcba669 user: mistachkin tags: trunk)
17:05
Fix a malloc/sqlite3_free mismatch in the shell tool code. (check-in: fe053b2e user: dan tags: trunk)
16:54
First code for an auxiliary function that will normalize an SQL statement. (check-in: 84814aac user: drh tags: normalize)
14:24
Fix compilation of 'sqltclsh.exe' for MSVC. (check-in: abb112d9 user: mistachkin tags: trunk)
2018-01-07
23:28
Avoid the use of utimensat() on older unix platforms. (check-in: 90cb01d8 user: drh tags: trunk)
21:58
Remove the dependency on test_windirent.h from the generated shell.c file. (check-in: 0a50c9e3 user: drh tags: trunk)
20:38
Modify the sqltclsh startup script to look for a properly formatted SQLAR at the end of the executable. Fix the CLI so that it automatically links against appendvfs and so that the --append command-line option works. (check-in: 67c4a8c6 user: drh tags: trunk)
19:52
Improved comments on the sqlar.c and compress.c extensions that describe the differences between the "zlib format" used by SQLAR, the raw deflate format used by ZIP, and the custom format used by compress.c. No changes to code. (check-in: c13415c5 user: drh tags: trunk)
2018-01-06
21:46
The shell detects and opens ZIP archives using the zipfile extension. (check-in: 05c99eb8 user: drh tags: trunk)
19:19
In the shell, include the ".archive" command only if compiling with SQLITE_HAVE_ZLIB. Add ".archive" to the ".help" output. (check-in: 366469f5 user: drh tags: trunk)
15:49
Better whitespace in the "CREATE TABLE sqlar()" statement for the ".ar" command. (check-in: 252ee55a user: drh tags: trunk)
15:46
Improved output from ".schema --indent" when a column definition is followed by a comment. (check-in: 87da7eff user: drh tags: trunk)
14:44
Remove a trailing tab from the Makefile for MSVC. (check-in: 00cc26e3 user: mistachkin tags: trunk)
14:43
Minor tweaks to the Makefile for MSVC. (check-in: 2f6cc5d8 user: mistachkin tags: trunk)
13:42
Add the appendvfs extension and code for the sqltclsh.exe executable. (check-in: b0a43e32 user: drh tags: trunk)
13:33
Fix the appendvfs so that it leaves sqlite3_file->pMethods as NULL if it fails to open. (Closed-Leaf check-in: 46b341e3 user: drh tags: appendvfs)
04:34
Add sqltclsh.exe to the windows makefile. (check-in: a6d5c7c2 user: drh tags: appendvfs)
2018-01-05
21:01
Make sure i64 and u64 typedefs are available throughout shell.c. (check-in: 656fb5aa user: drh tags: trunk)
20:30
Fix the shell.c.in amalgamator script so that it avoids generating redundant typedef statements. (check-in: 6c53c740 user: drh tags: trunk)
20:26
MinGW does not define the S_ISLNK macro; therefore, define it in the shell when needed. (check-in: 73023feb user: mistachkin tags: trunk)
20:13
Skip running the 'zipfile' test if the necessary static package cannot be loaded. (check-in: 5bc816ec user: mistachkin tags: trunk)
20:08
Fix shell compilation with MinGW by including the 'dirent.h' header. (check-in: dfe510b5 user: mistachkin tags: trunk)
19:49
Fix the autoconf makefile so that it builds testfixture correctly. (check-in: fbfe04c0 user: drh tags: trunk)
19:28
Sync up the autoconf Makefile for MSVC. (check-in: da8712bd user: mistachkin tags: trunk)
19:27
The 'releasetest' tool should pass the TCLDIR macro for MSVC to nmake. (check-in: eaa9c0dd user: mistachkin tags: trunk)
19:25
For the MSVC Makefile, the 'sqlite3_checker.exe' target requires the Tcl library. (check-in: 38109a47 user: mistachkin tags: trunk)
19:01
Add the ".ar" command to the command-line shell. (check-in: 148b8aee user: drh tags: trunk)
18:51
Fix a bug introduced by efforts to reduce compiler warnings in check-in [364ac333b030f0] (Closed-Leaf check-in: 1d6cee9a user: drh tags: sqlar-shell-support)
17:40
In the Makefile for MSVC, the default target should not include binaries that link against the Tcl library. (check-in: 5c6d0a1d user: mistachkin tags: sqlar-shell-support)
17:12
More adjustments to MSVC Makefile dependencies for zlib. (check-in: bb650e5d user: mistachkin tags: sqlar-shell-support)
17:10
Fix compiler warnings. (check-in: 19aabccf user: mistachkin tags: sqlar-shell-support)
16:23
Fix missing dependencies for shell.c in all makefiles. (check-in: 45495d3e user: drh tags: sqlar-shell-support)
16:05
In the Makefile for MSVC, only attempt to link against Tcl when it is needed. Also, only compile 'zipfile.c' when use of zlib is enabled. (check-in: a33ad33c user: mistachkin tags: sqlar-shell-support)
16:03
Add some missing #ifdefs for building without zlib. (check-in: c63fb170 user: mistachkin tags: sqlar-shell-support)
14:55
Fix compiler warnings. (check-in: 364ac333 user: drh tags: sqlar-shell-support)
11:34
Fix an LSM problem causing the wrong amount of "auto-work" to be performed under fairly obscure circumstances. (check-in: a4876672 user: dan tags: trunk)
07:57
Fix an LSM crash that could occur if LSM_CONFIG_AUTOFLUSH was set to 0. (check-in: 05346f83 user: dan tags: trunk)
01:22
Revise detection of 'tclsh.exe' in the Makefile for MSVC. (check-in: 45fabd86 user: mistachkin tags: sqlar-shell-support)
01:00
Enhance the 'zlib' build target for MSVC. (check-in: 0bc3b76e user: mistachkin tags: sqlar-shell-support)
00:53
Add missing #ifdef. (check-in: a0e18aea user: mistachkin tags: sqlar-shell-support)
2018-01-04
23:49
In the 'fileio' extension code for Win32, use the FILE_FLAG_BACKUP_SEMANTICS flag when setting the file times, just in case the file is actually a directory. (check-in: 4f344406 user: mistachkin tags: sqlar-shell-support)
22:50
Remove 'timespec' related code from the shell that has no effect and a (now) superfluous 'timespec' typedef from the Win32 dirent header file. (check-in: 57dac995 user: mistachkin tags: sqlar-shell-support)
22:46
Get the shell enhancements compiling with MSVC. (check-in: 335387f9 user: mistachkin tags: sqlar-shell-support)
19:54
Merge in all recent trunk enhancements. (check-in: 406f7918 user: drh tags: sqlar-shell-support)
19:20
Remove the snarky "_supported_" qualifier from the name of the sqlite_offset() SQL function. (check-in: a6eee0fc user: drh tags: trunk)
18:36
Fix problem causing free-list corruption when merging free-lists for two concurrent transactions that have both used page X as an in-memory free-list trunk page, where X lies past the end of the initial database images. (check-in: dc0fc2aa user: dan tags: begin-concurrent-pnu)
16:40
Fix a broken documentation hyperlink. No code changes. (check-in: d91e3f3d user: drh tags: trunk)
2018-01-03
23:54
Fix compiler warnings on Windows. (check-in: 512b8e40 user: drh tags: memdb)
23:40
New test cases and fixes for minor problems. (check-in: e0da2cc3 user: drh tags: memdb)
22:48
Miscellaneous code and comment cleanup. (check-in: fa6069fb user: drh tags: memdb)
19:03
Replace sqlite3_memdb_config() with sqlite3_deserialize(). Remove the "db memdb" command from the TCL interface, replacing it with "db serialize" and "db deserialize". (check-in: 2f6e9df9 user: drh tags: memdb)
16:49
Replace the sqlite3_memdb_ptr() interface with the more general sqlite3_serialize() interface. (check-in: 8cf2ed4e user: drh tags: memdb)
13:20
Simplify the "sqlite3" command in the TCL interface. The filename is now optional. There is a new --memdb option with an argument that is the blob to which the database content should be initialized. (check-in: 47398ae7 user: drh tags: memdb)
12:39
Fix typo in the Makefile for MSVC. (check-in: e5c6ade8 user: mistachkin tags: memdb)
01:47
Add another test case (found by OSSFuzz) for the problem fixed in check-in [2846458a] and described by ticket [dc3f932f5a147771]. No changes to code. (check-in: 4165fae9 user: drh tags: trunk)
01:28
Add support for the "memdb" VFS and the sqlite3_memdb_ptr() and sqlite3_memdb_config() interfaces, to enable an SQLite database to be manipulated as an in-memory object. (check-in: fb2ac2d2 user: drh tags: memdb)
2018-01-02
21:29
Fix code indentation. No logic changes. (check-in: e115f258 user: drh tags: trunk)
19:57
Fix a spurious SQLITE_CORRUPT error that could occur within a COMMIT of a concurrent transaction. (check-in: 50c8952c user: dan tags: begin-concurrent-pnu)
18:11
In the constraint resolution logic, be careful not to cache column values in registers whose initialization might be bypassed by an OP_NoConflict opcode. Fix for ticket [dc3f932f5a147771] reported by OSSFuzz. (check-in: 2846458a user: drh tags: trunk)
16:02
Enhance the memvfs extension so that it can be read/write. (check-in: 04c9197d user: drh tags: trunk)
13:48
Updates to the sqlite3_file_control() documentation. No changes to code. (check-in: 240e32ab user: drh tags: trunk)
12:50
Do not attempt to use pragma_module_list in the command-line shell unless it has been compiled with -DSQLITE_INTROSPECTION_PRAGMAS. (check-in: 39ca5fcd user: drh tags: trunk)
00:04
The ".schema" command in the command-line shell now shows the structure of table-valued functions and eponymous virtual tables if they are named on the ".schema" command line. Example: ".schema sql%" shows the structure of the "sqlite_dbstat" and "sqlite_stmt" virtual tables. (check-in: f80f6651 user: drh tags: trunk)
2018-01-01
21:49
Improved name quoting and escaping in the auxiliary column info section of the ".schema" output for views and virtual tables. (check-in: d64b14e3 user: drh tags: trunk)
21:28
In the output of ".schema", show the column names of virtual tables and views in a separate comment. (check-in: 2234a87f user: drh tags: trunk)
20:11
Minor simplification to the ".schema" logic in the command-line shell. (check-in: add45c47 user: drh tags: trunk)
19:33
Enable the introspection pragmas for command-line shell builds. (check-in: 0b04223f user: drh tags: trunk)
16:59
Experiments with the regexp.c extension, trying to get it to report the exact substring that matches the RE. (Leaf check-in: 3d6fba62 user: drh tags: regexp-span)
2017-12-30
18:32
Have zipfile support DELETE commands. (check-in: 01d4e866 user: dan tags: sqlar-shell-support)
14:26
Rearrange things a bit so that writing to a zipfile does not invert the order of objects it contains. (check-in: f69e8194 user: dan tags: sqlar-shell-support)
2017-12-29
20:19
Update ext/misc/zipfile.c to support creating and adding entries to existing zip archives. (check-in: 2dec2dec user: dan tags: sqlar-shell-support)
17:21
Add support for the sqlite_unsupported_offset() SQL function if and only if compiled using -DSQLITE_ENABLE_OFFSET_SQL_FUNC. Use that definition when compiling the command-line shell. (check-in: 4f1f1f52 user: drh tags: trunk)
16:37
Stricter test cases. (Closed-Leaf check-in: 9406c0a6 user: drh tags: location-function)
15:19
Fix a typo in the MSVC makefile. (check-in: 89e5720a user: drh tags: location-function)
15:04
Change the function name to sqlite_unsupported_offset(X). Only enable the function if compiled with -DSQLITE_ENABLE_OFFSET_SQL_FUNC. The makefiles add that definition to shell builds. (check-in: 7a7f826e user: drh tags: location-function)
14:33
Enhance location(X) so that it works with indexes and WITHOUT ROWID tables. The function might return an offset to the main table or to an index, depending on whether the column X would be loaded from the main table or from the index. (check-in: dd94d6a8 user: drh tags: location-function)
13:35
Merge recent enhancements from trunk. (check-in: 6251e438 user: drh tags: location-function)
12:50
Add test cases for the undocumented behavior of duplicate columns on an INSERT or UPDATE. (check-in: f4349c0c user: drh tags: trunk)
2017-12-27
22:09
The output of sqlite3_trace() now shows each command of a trigger as it is evaluated. This feature involved major changes to the parser, such as removing the ExprSpan object and replacing it with a new mechanism for capturing the original SQL text of phrases in the input SQL. (check-in: 0fdf97ef user: drh tags: trunk)
21:30
Omit all sqlite3_trace() output from the triggers associated with foreign key constraints. (Closed-Leaf check-in: fda08e3d user: drh tags: span-refactor)
21:13
Improve the shell tool ".ar --list --verbose" command. (check-in: b64681a6 user: dan tags: sqlar-shell-support)
20:38
Show the text of individual statements within a trigger, as they execute, as comments in the output from sqlite3_trace() and sqlite3_trace_v2(). (check-in: fe3d2b97 user: drh tags: span-refactor)
19:43
Add and use the internal sqlite3DbSpanDup() interface. (check-in: a8e1545c user: drh tags: span-refactor)
19:27
Merge recent enhancements from trunk. (check-in: 76373091 user: drh tags: span-refactor)
18:54
Have the shell tool ".ar --list" and ".ar --extract" commands support zip files. Currently the "-zip" switch is required. (check-in: a532a0f6 user: dan tags: sqlar-shell-support)
18:19
Enhance the Lemon parser generator so that it creates a faster parser at the cost of slightly larger parser tables. Add the ability to measure coverage of the generated state machine when compiling with the -DYYCONVERGE option. In SQLite, add the SQLITE_TESTCTRL_PARSER_COVERAGE test-control to query the new parser coverage feature. (check-in: 1b22b42e user: drh tags: trunk)
17:36
The previous check-in had an error in the coverage reporting logic. (Closed-Leaf check-in: ec9b19eb user: drh tags: lemon-improvements)
17:14
Change the coverage measurement logic in the lemon-generated parser so that it only checks for coverage of state/lookahead pairs that are valid syntax. It turns out that some states are unreachable if the lookahead is not valid syntax, because the states are only reachable through a shift following a reduce, and the reduce does not happen if the lookahead is a syntax error. (check-in: 9dce4650 user: drh tags: lemon-improvements)
16:13
In the lemon-generated parser, do not report the End-of-input character and the wildcard character as missed coverage. (check-in: 3fe96487 user: drh tags: lemon-improvements)
15:21
In LEMON, fix an off-by-one error that can make the lookahead table one byte too smal. (check-in: 93792bc5 user: drh tags: lemon-improvements)
2017-12-26
20:39
Add new file ext/misc/zipfile.c, containing a virtual table for read-only access to simple zip archives. (check-in: 8e366b99 user: dan tags: sqlar-shell-support)
18:32
Change the lemon-parser coverage report format to report all state/lookahead pairs and indicate on each whether it is hit or missed. (check-in: 86e30fc2 user: drh tags: lemon-improvements)
18:14
Merge bug fixes from trunk. (check-in: d76e1206 user: drh tags: lemon-improvements)
18:04
Add support for measuring and reporting coverage of the parser state machine using the SQLITE_TESTCTRL_PARSER_COVERAGE test-control. (check-in: 1253a872 user: drh tags: lemon-improvements)
14:46
Faster and smaller implementation of sqlite3AtoF() based on a suggestion from Cezary H. Noweta. (check-in: fd2e0e7a user: drh tags: trunk)
14:32
Fix crashes that could occur if SQL NULL values were passed to the built-in FTS5 snippet function. Edit: breaks amalgamation builds. (check-in: 6a790b67 user: dan tags: trunk)
14:30
Add options to speedtest1.c and speed-check.sh for testing performance of floating-point computatations. (check-in: ebfea872 user: dan tags: trunk)
14:12
Add options to speedtest1.c and speed-check.sh for testing performance of floating-point computatations. (Closed-Leaf check-in: b3c61051 user: drh tags: mistake)
14:11
Fix crashes that could occur if SQL NULL values were passed to the built-in FTS5 snippet function. Edit: breaks amalgamation builds. (check-in: 553a3ad3 user: dan tags: mistake)
2017-12-25
13:43
Fix an assertion fault on a syntax error input caused by check-in [6b2ff26c25bb9da3]. Problem discovered by OSSFuzz. (check-in: 90d6e4f1 user: drh tags: trunk)
04:15
Enhance LEMON so that it generates the action table in such a way that no range check is needed on the lookahead table to verify that the next input token is valid. This makes the lookahead table slightly larger (about 120 bytes) but helps the parser to run faster. (check-in: 7eb0198d user: drh tags: lemon-improvements)
00:10
In the LEMON-generated parser, avoid unnecessary tests for the acceptance state. (check-in: fdbb35c5 user: drh tags: lemon-improvements)
2017-12-24
23:38
In the LEMON-generated parser, rearrange the meanings of integer action codes so that reduce actions occur last. This means that the most common case (reduce actions) can be recognized with a single comparison operation, thus speeding up the main parser loop, slightly. (check-in: 7bfe7a36 user: drh tags: lemon-improvements)
18:56
Fix a NULL pointer dereference after a syntax error that can occur as a result of check-in [6b2ff26c25bb9da3] yesterday. This problem was discovered by the OSSFuzz. (check-in: d49afb8f user: drh tags: trunk)
17:06
Improved parser tracing output. (check-in: 25be5750 user: drh tags: lemon-improvements)
17:01
Grammar changes: the sclp non-terminal should always be followed by a scanpt. (check-in: 74a0181f user: drh tags: span-refactor)
14:14
Improved parser tracing output. (check-in: c4951833 user: drh tags: span-refactor)
00:18
Remove the ExprSpan object. Instead, keep track of the test of subphrases in the parse using the "scanpt" non-terminal. (check-in: 3eab7bdc user: drh tags: span-refactor)
2017-12-23
18:40
Merge recent enhancements from trunk. (check-in: edceaccd user: drh tags: appendvfs)
18:34
Merge enhancements from trunk. (check-in: 150f07fe user: drh tags: sqlar-shell-support)
14:39
Simplification to the error handling logic in the extension loader. (check-in: 07c77314 user: drh tags: trunk)
13:55
Improve the error message that comes back when sqlite3_load_extension() fails because the named file exists but is not a valid shared library. (check-in: 05fee1a2 user: drh tags: trunk)
12:33
Move the generation of output column names earlier in the case of a CREATE TABLE AS. This is a fix for ticket [3b4450072511e62] and a continuation of check-in [ade7ddf1998190b2b63] that fixes cases of ticket [de3403bf5ae5f72ed6] that were missed previously. (check-in: 6b2ff26c user: drh tags: trunk)
11:51
Add a SELECTTRACE() macro to indicate when column names are assigned to a SELECT statement. This helps with debugging for tickets like [de3403bf5ae5f72e] and [3b4450072511e621]. (check-in: 8f194008 user: drh tags: trunk)
2017-12-22
19:53
In the sqlite3TreeViewExprList() routine, show the "AS" alias name for each expression in the list, if it exists. (check-in: 5efd854f user: drh tags: trunk)
00:52
Modify the new sqlite3_vtab_collation() interface so that it takes a pointer to the sqlite3_index_info object passed into xBestIndex rather than an sqlite3 connection pointer, which the xBestIndex method might not have access to. (check-in: 5c1fe666 user: drh tags: trunk)
2017-12-21
21:41
Fix SQLITE_DBCONFIG_TRIGGER_EQP so that it works even if SQLITE_DEBUG is not defined. (check-in: afbbfff7 user: drh tags: trunk)
21:02
Add the ".eqp trigger" option to the ".eqp" command in the command-line shell. Implemented using the new SQLITE_DBCONFIG_TRIGGER_EQP control. (check-in: 2c51644a user: drh tags: trunk)
18:55
Add the ".expert" command to the shell tool's ".help" output. (check-in: fc6193af user: dan tags: trunk)
18:23
Change the name of SQLITE_DBCONFIG_FULL_EQP to be SQLITE_DBCONFIG_TRIGGER_EQP (which we can do without breaking compatibility because the former name has not yet appeared in an official release) and streamline its implementation. (check-in: fffc7685 user: drh tags: trunk)
14:46
Add the SQLITE_DBCONFIG_MAX preprocessor macro which will always be equal to the largest SQLITE_DECONFIG value. (check-in: 95d41033 user: drh tags: trunk)
02:17
Add the experimental ".expert" command to the sqlite3.exe shell. (check-in: 0821bae7 user: drh tags: trunk)
2017-12-20
23:46
Lowercase local variable names in the SHA3 extension in order to avoid collisions with macros in termios.h. (check-in: 3ec73711 user: drh tags: trunk)
2017-12-19
18:56
Fix crash in sqlite3_vtab_collation() when called for an IS NOT NULL constraint. (check-in: ad38d2c4 user: dan tags: trunk)
17:42
Experimentally add the SQLite expert functionality to the shell tool. (Closed-Leaf check-in: 51068dba user: dan tags: expert-in-shell)
2017-12-16
20:20
Add an experimental location(X) SQL function that attempt to return the location of the payload within the database for the record that contains column X. location(X) returns NULL if X is not an ordinary table column or if SQLite cannot figure out the location because it is using a covering index. (check-in: 51be9558 user: drh tags: location-function)
19:36
Add the sqlite3_vtab_collation() function, which allows an xBestIndex callback to determine the collation sequence that SQLite will use for a comparison. And the SQLITE_DBCONFIG_FULL_EQP configuration option, which enhances the output of "EXPLAIN QUERY PLAN" so that it includes statements run by triggers. And the code for the sqlite3_expert extension and command line application. (check-in: 4c782c95 user: dan tags: trunk)
19:16
Merge latest trunk changes into this branch. (Closed-Leaf check-in: d5b597b5 user: dan tags: schemalint)
19:11
Do not use the compress() and uncompress() functions in ext/misc/compress.c - they are not quite compatible with the spec. Instead use new functions in ext/misc/sqlar.c. (check-in: 7652b3c2 user: dan tags: sqlar-shell-support)
04:37
Add unnecessary initializations to some local variables in the rtree module to suppress false-positive compiler warnings coming out of MSVC. (check-in: 64487d65 user: drh tags: trunk)
2017-12-15
20:21
Enhance the "swarmvtab" extension. See header comments in ext/misc/unionvtab.c for details. (check-in: 01c17365 user: dan tags: trunk)
12:22
In the LEMON parser generator, provide reduce actions with access to the lookahead token. (check-in: 42af190f user: drh tags: trunk)
2017-12-14
19:24
Fixes to the appendvfs.c extension. Add the "sqltclsh" application that uses appendvfs.c to find its scripts. (check-in: ee248b52 user: drh tags: appendvfs)
19:15
Have the writefile() function optionally set the modification-time of the files it writes or creates. And many small fixes to the new code on this branch. (check-in: 7b51269c user: dan tags: sqlar-shell-support)
16:57
The "apndvfs" VFS shim now appears to be working for both reads and writes. (check-in: 7f7b72d8 user: drh tags: appendvfs)
16:28
Add the ability to write to an appended database. This check-in compiles but is otherwise untested. (check-in: e343c63c user: drh tags: appendvfs)
15:40
Improve error and usage messages output by the shell ".ar" command. (check-in: b9d2d5d9 user: dan tags: sqlar-shell-support)
14:50
Bring in the latest trunk changes. (check-in: 75d85177 user: drh tags: appendvfs)
13:55
Merge latest trunk changes into this branch. (check-in: 803156cb user: dan tags: sqlar-shell-support)
2017-12-13
23:47
In valueFromExpr() only generate a OOM fault if there have been no prior faults. (check-in: 3765aaf7 user: drh tags: trunk)
22:42
Add support for the 'lsm1.c' target in the MSVC makefile. (check-in: 6de21dea user: mistachkin tags: trunk)
20:35
An improved way of generating the SQLITE_READONLY_DIRECTORY error. The error message submitted to sqlite3_log() is still correct this way. (check-in: 1c0aa919 user: drh tags: trunk)
20:17
Add the shell tool ".ar --update" command. (check-in: 825e3c03 user: dan tags: sqlar-shell-support)
20:04
Add support for the "--list" command. And for arguments to the "--extract" command. (check-in: 32c4fa25 user: dan tags: sqlar-shell-support)
20:02
New result code SQLITE_READONLY_DIRECTORY is returned when an attempt is made to write on a database file that is in a read-only directory and hence the journal file could not be created. This situation formerly returned SQLITE_CANTOPEN, which less helpful. (check-in: 3ec73c38 user: drh tags: trunk)
18:01
Correctly invalidate a column cache line when it is overwritten with NULL. Fix for ticket [123c9ba32130a6c9d432]. (check-in: 65754dc3 user: drh tags: trunk)
15:32
Change some LSM code internal typenames from "Blob" and "Pgno" to "LsmBlob" and "LsmPgno". This allows the LSM code to be compiled as a single unit with sqlite3.c. (check-in: 30bf38d5 user: dan tags: trunk)
14:22
Add script to amalgamate all LSM files into "lsm1.c". (check-in: e32b69d7 user: dan tags: trunk)
10:11
Minor enhancement to two assert() statements in the default VFSes. (check-in: 9cede8a8 user: drh tags: trunk)
2017-12-12
20:28
Add tests and fixes for the shell ".ar" command -f option. (check-in: 1a986797 user: dan tags: sqlar-shell-support)
20:04
Add support for parsing options in non-traditional tar form to the ".ar" command. Have writefile() attempt to create any missing path components. And not to throw an exception if it is called to create a directory that already exists. (check-in: 38dbeb1e user: dan tags: sqlar-shell-support)
18:17
Merge latest begin-concurrent changes into this branch. (check-in: 3fde0b4d user: dan tags: begin-concurrent-pnu)
2017-12-11
20:22
Enhance virtual table "fsdir" in ext/misc/fileio.c. Add support for "-C" to the shell command's ".ar c" command. (check-in: 0394889a user: dan tags: sqlar-shell-support)
17:20
Fix a buffer overwrite in fts5 that could occur when processing a prefix query. (check-in: 92fc146b user: dan tags: trunk)
14:02
Abort on an invalid paramater to sqlite3BitvecSet(). (check-in: 163c8709 user: drh tags: begin-concurrent)
2017-12-09
18:28
Add support for -C to ".ar x". (check-in: 8cd70960 user: dan tags: sqlar-shell-support)
17:58
Improve parsing of ".ar" commands. Add new test file for the same. (check-in: 840401cc user: dan tags: sqlar-shell-support)
01:02
Fix a harmless API signature mismatch in the unix VFS. (check-in: bab9de7f user: drh tags: trunk)
2017-12-08
19:37
The query planner tries to avoids using indexes that use unknown collating functions. (check-in: 02013fc1 user: drh tags: trunk)
16:23
Add compile time switch SQLITE_ENABLE_ICU_COLLATIONS. For enabling ICU collations without also enabling the tokenizer, the LIKE operator, the REGEXP operator, or the unicode aware upper()/lower() scalar functions. (check-in: a079f914 user: dan tags: trunk)
14:07
Make sure the bComplex variable in sqlite3DeleteFrom() is initialized when compiling with -DSQLITE_OMIT_TRIGGER. (check-in: e526d0c4 user: drh tags: trunk)
2017-12-07
22:10
When doing a table scan using an index, do not error out if collating functions used by that index are unavailable, since they will not be used. (check-in: bbd69fa6 user: drh tags: trunk)
22:04
Fix typo in comment. No changes to code. (check-in: 95958b60 user: mistachkin tags: trunk)
21:03
Add the ".ar x" command to the shell. For extracting the contents of sqlar archives. (check-in: 0cc699d1 user: dan tags: sqlar-shell-support)
16:51
Fix harmless compiler warnings in the rot13 extension. (check-in: 11347077 user: drh tags: trunk)
15:44
Begin adding support for the sqlar archive format to shell.c. There is no "extract" command so far, only "create". (check-in: c9827a01 user: dan tags: sqlar-shell-support)
13:15
Updates to the main README.md file. (check-in: 6bfafc35 user: drh tags: trunk)
2017-12-06
20:50
Fix an unreachable branch in cases when SQLITE_ENABLE_STAT4 is not defined. (check-in: 6a55bd67 user: drh tags: trunk)
2017-12-05
19:07
For MSVC, simplify default locations for Tcl and ICU by using directories inside 'compat'. (check-in: 8155b5ac user: mistachkin tags: sqlar-shell-support)
18:54
Add support for including zlib in the shell when compiling with MSVC. (check-in: e1838cee user: mistachkin tags: sqlar-shell-support)
18:32
If SQLITE_HAVE_ZLIB is defined at build-time, include the functions in ext/misc/compress.c in the shell. (check-in: 0296286a user: dan tags: sqlar-shell-support)
15:00
Merge latest trunk changes, including the compilation fix for builds that define both SQLITE_ENABLE_MULTITHREADED_CHECKS and SQLITE_ENABLE_API_ARMOUR. (check-in: 2cb5d2a9 user: dan tags: apple-osx)
14:58
Fix a compilation problem when both SQLITE_ENABLE_MULTITHREADED_CHECKS and SQLITE_ENABLE_API_ARMOUR are defined. (check-in: 0342ce51 user: dan tags: trunk)
2017-12-01
18:40
Fix the ".lint fkey-indexes" shell command so that it works with WITHOUT ROWID tables. (check-in: 5771b1d6 user: dan tags: trunk)
2017-11-30
11:21
Fix some minor problems in test scripts. (check-in: 4c551fde user: dan tags: trunk)
07:56
Merge latest trunk changes, including the fixes for test file walprotocol.test. (check-in: b425b998 user: dan tags: apple-osx)
07:55
Update test file walprotocol.test to account for the changes in the wal locking protocol. (check-in: 64e56700 user: dan tags: trunk)
2017-11-29
16:16
Merge latest trunk changes into this branch. (check-in: 373fa21b user: dan tags: schemalint)
2017-11-28
20:43
Fix an assertion fault found by OSSFuzz. (check-in: 75d69987 user: dan tags: trunk)
13:48
Merge the snapshots-always-lock-the-wal-file change into this branch. (check-in: 3ec976e0 user: dan tags: apple-osx)
13:39
Lock the wal file for all snapshot transactions, even if they would not otherwise require this, preventing checkpointers and writers from wrapping the wal file. This means that if one connection has an open snapshot transaction it is guaranteed that a second connection can open a transaction on the same snapshot. (check-in: b81a3149 user: dan tags: trunk)
08:08
Merge latest trunk changes, including the SQLITE_ENABLE_MULTITHREADED_CHECKS feature, into this branch. (check-in: 1fd10349 user: dan tags: apple-osx)
07:52
Add experimental feature to detect threading bugs in apps that use SQLITE_CONFIG_MULTITHREADED. Enabled at compile time using SQLITE_ENABLE_MULTITHREADED_CHECKS. (check-in: 40b598c8 user: dan tags: trunk)
07:47
Use a symbolic constant instead of a literal (-1) to identify a warn-on-contention mutex. (Closed-Leaf check-in: 12a23c0a user: dan tags: multithreaded-checks)
02:47
Add the "PRAGMA table_ipk(TABLE)" command for evaluation purposes. (Leaf check-in: 2494132a user: drh tags: pragma-table-ipk)
00:52
Update tests to deal with SQLITE_FAST_SECURE_DELETE. (check-in: e6b89304 user: drh tags: trunk)
2017-11-27
17:56
Fix a faulty NEVER assert() that could fail for SQLITE_ENABLE_STAT4 builds that use foreign keys. (check-in: 465350e5 user: dan tags: trunk)
2017-11-26
02:14
Fix an CSV output quoting problem in the command-line shell on Windows. (check-in: 6500cdbd user: drh tags: trunk)
2017-11-25
21:09
Fix builds with both SQLITE_ENABLE_MULTITHREADED_CHECKS and SQLITE_THREADSAFE=0 defined. (check-in: 7d0b12fc user: dan tags: multithreaded-checks)
17:51
Add experimental feature to detect threading bugs in apps that use SQLITE_CONFIG_MULTITHREADED. Enabled at compile time using SQLITE_ENABLE_MULTITHREADED_CHECKS. (check-in: a66886ac user: dan tags: multithreaded-checks)
2017-11-24
19:24
Add the "^" syntax from fts3/4 to fts5. (check-in: 24d7058e user: dan tags: trunk)
16:55
Enhance the configure script to detect zLib. (check-in: e3b6e220 user: drh tags: trunk)
2017-11-23
04:45
Fix a problem in the omit-table-from-left-join optimization from check-in [0cd82ee9a8413cf] that was discovered by OSSFuzz. (check-in: b016c28f user: drh tags: trunk)
00:45
Completely disable the skip-ahead-distinct optimization for all but the inner-most loop of a DISTINCT join. Fix for ticket [ef9318757b152e3a26e9592] (check-in: b7595cf2 user: drh tags: trunk)
2017-11-21
23:47
An experimental optimization to DISTINCT that causes an immediate exit of the inner loop of a join following each output row if the inner loop does not contribute any columns to the result set. (Leaf check-in: a33f88ac user: drh tags: distinct-early-out)
23:38
Fix the skip-ahead-distinct optimization on joins for cases there the table in the inner loop of the join does not contribute any columns to the result set. Proposed fix for ticket [ef9318757b152e3a2] (check-in: 2dcef5a9 user: drh tags: trunk)
21:15
Fix typo in the Makefiles for MSVC. (check-in: 17dd2f73 user: mistachkin tags: trunk)
21:14
Fix compilation issue (C99-ism) in the shell seen with MSVC. (check-in: 9cb47430 user: mistachkin tags: trunk)
20:53
Update the omit-table-from-left-join optimization so that it can omit tables from the middle of the join as well as the end. (check-in: 0cd82ee9 user: dan tags: trunk)
19:22
Update the omit-table-from-left-join optimization so that it can omit tables from the middle of the join as well as the end. (Closed-Leaf check-in: 618ca9fe user: dan tags: left-join-optimization)
2017-11-20
15:46
Fix a problem preventing the planner from identifying scans that visit at most one row in cases where that property is guaranteed by a unique, not-null, non-IPK column that is the leftmost in its table. (check-in: 7fdb1e2a user: dan tags: trunk)
15:45
Fix a typo in a test script on this branch. (Closed-Leaf check-in: bff5dcfd user: dan tags: left-join-omit-fix)
14:40
Fix a problem preventing the planner from identifying scans that visit at most one row in cases where that property is guaranteed by a unique, not-null, non-IPK column that is the leftmost in its table. (check-in: 299d7ca5 user: dan tags: left-join-omit-fix)
2017-11-18
18:07
Enhance the log messages produced in some cases if database corruption is encountered by an SQLITE_DEBUG build. (check-in: ee840a76 user: dan tags: trunk)
17:30
Enhance the log messages produced in some cases if database corruption is encountered by an SQLITE_DEBUG build. (Closed-Leaf check-in: 23a31280 user: dan tags: sqlite-corrupt-page)
2017-11-17
21:01
Improved fix for ticket [da78413751863] that does not require disabling the query flattener as was done in [005d5b870625]. This also makes the code generator for vector IN operators a little easier to understand. (check-in: 723f1be3 user: drh tags: trunk)
20:22
Add missing entry for SQLITE_IOERR_VNODE to the switch statement in sqlite3ErrName(). (check-in: e2b3e335 user: dan tags: apple-osx)
20:16
Add an 'extern "C"' wrapper to sqlite3_private.h. (check-in: 97ab1efe user: dan tags: apple-osx)
20:10
Merge test script fixes from trunk into this branch. (check-in: 32f5f461 user: dan tags: apple-osx)
20:07
Add some missing "finish_test" lines to the end of test scripts. (check-in: c21406ab user: dan tags: trunk)
17:32
New assert() statements in the rowvalue IN expression processing. (check-in: 00c32831 user: drh tags: trunk)
15:02
Clarification of comments on sqlite3FindInIndex(). No changes to code. (check-in: 071cabd2 user: drh tags: trunk)
13:23
Merge latest changes from trunk, including the temporary db/ATTACH/master-journal fix. (check-in: 162c7543 user: dan tags: apple-osx)
13:21
Do not count temporary databases that have been attached using ATTACH when figuring out if a master-journal file is required by a transaction. (check-in: 93e012a3 user: dan tags: trunk)
08:20
Avoid creating a master journal if all or all but one of the databases in the transaction is a temp file. (Closed-Leaf check-in: 355d1232 user: dan tags: master-journal-temp-files)
2017-11-16
20:48
In the LSM extension, ensure that empty space on pages is zeroed before they are written to disk. This helps with compressed databases, and stops valgrind complaining about uninitialized bytes and write(). (check-in: 5ffec5db user: dan tags: trunk)
19:17
Merge the latest changes, and the stmtvtab1.test fix, from trunk. (check-in: 85247880 user: drh tags: apple-osx)
19:04
Add a missing "finish_test" to the end of the stmtvtab1.test script. (check-in: e0b5c058 user: drh tags: trunk)
2017-11-15
19:14
Futher improvements to the .testctrl interface in the shell. (check-in: 1ca3b8cc user: drh tags: trunk)
17:07
UI improvements on the .testctrl dot-command in the shell. (check-in: 5d66219c user: drh tags: trunk)
16:29
Merge all the latest changes from trunk. (check-in: 1a1a73b8 user: drh tags: appendvfs)
2017-11-14
23:48
In the parse tree, combine LIMIT and OFFSET into a single expression rooted on a TK_LIMIT node, for a small code size reduction and performance increase, and a reduction in code complexity. (check-in: 3925facd user: drh tags: trunk)
21:06
Fix a typo that prevented successful builds on macs. (check-in: adf83060 user: drh tags: apple-osx)
20:36
Merge the patch that enables reading a read-only WAL-mode database, without any special query parameters, as long as the -shm and -wal files are on disk. (check-in: 8c2a769c user: drh tags: apple-osx)
20:06
Merge changes from trunk. This fixes the SQLITE_ENABLE_UPDATE_DELETE_LIMIT functionality so that it works with views and WITHOUT ROWID tables. (check-in: d90e5f34 user: dan tags: begin-concurrent)
20:00
Merge all changes from trunk prior to the read-only WAL enhancement. (check-in: 1754faef user: drh tags: apple-osx)
19:34
Add the ability to read from read-only WAL-mode database files as long as the -wal and -shm files are present on disk. (check-in: 00ec95fc user: drh tags: trunk)
17:06
Fix the SQLITE_ENABLE_UPDATE_DELETE_LIMIT functionality so that it works with views and WITHOUT ROWID tables. (check-in: dae4a97a user: dan tags: trunk)
03:42
Improvement to a comment. No changes to code. (Closed-Leaf check-in: 486949fc user: drh tags: readonly-wal-recovery)
2017-11-13
05:51
Remove some branches in walTryBeginRead() that were added by check-in [ce5d13c2de] but became unreachable with the addition of logic in check-in [18b26843] that enabled read-only clients to parse the WAL file into a heap-memory WAL-index, thus guaranteeing that the WAL-index header is always available. (check-in: 9c6b38b9 user: drh tags: readonly-wal-recovery)
2017-11-11
20:11
In wal.c: improved comments, new assert() and testcase() macros, and replace some magic numbers with appropriate symbolic constants. (check-in: 13ec8a77 user: drh tags: readonly-wal-recovery)
13:30
Further comment improvements in wal.c. No code changes. (check-in: 34638800 user: drh tags: readonly-wal-recovery)
2017-11-10
20:13
Omit some extra code from non-SQLITE_ENABLE_UPDATE_DELETE_LIMIT builds. (Closed-Leaf check-in: 72be33f9 user: dan tags: update-delete-limit-fix)
20:00
Improved comments and variable names in the read-only WAL logic. (check-in: d3c25740 user: drh tags: readonly-wal-recovery)
17:47
Add further tests for the code on this branch. (check-in: f8c4e33f user: dan tags: update-delete-limit-fix)
16:14
Fix a problem involving "DELETE/UPDATE...LIMIT" statements that use an INDEXED BY clause. (check-in: 09f94c2c user: dan tags: update-delete-limit-fix)
15:42
Fix a problem with (DELETE...LIMIT) statements against WITHOUT ROWID tables with a single column PK. (check-in: 35477a3d user: dan tags: update-delete-limit-fix)
12:41
Fix harmless compiler warning seen with MSVC. (check-in: 3711ef23 user: mistachkin tags: trunk)
2017-11-09
23:24
Avoid superfluous SHM unlock call in the Win32 VFS. (check-in: 5a384be6 user: mistachkin tags: readonly-wal-recovery)
22:25
Cleanup superfluous whitespace changes. (check-in: a2908e2c user: mistachkin tags: readonly-wal-recovery)
22:23
Revise and vastly simplify the Win32 SHM file locking semantics, allowing all new tests to pass. (check-in: d0997b0f user: mistachkin tags: readonly-wal-recovery)
20:37
Add an assert() in the Win32 VFS. (check-in: 22e58330 user: mistachkin tags: readonly-wal-recovery)
20:34
Enhance walro2.test to better ensure that readonly_shm clients are not using invalid *-shm files. (check-in: ff630b66 user: dan tags: readonly-wal-recovery)
20:02
Get read-only SHM file tests passing on Win32. (check-in: abef0535 user: mistachkin tags: readonly-wal-recovery)
19:53
Add SQLITE_ENABLE_UPDATE_DELETE_LIMIT for views and WITHOUT ROWID tables. (check-in: 584b88aa user: dan tags: update-delete-limit-fix)
18:53
Further corrections to read-only SHM file handling on Win32. (check-in: 43c31170 user: mistachkin tags: readonly-wal-recovery)
18:21
Corrections to Win32 lock detection for SHM files. (check-in: 3a91be97 user: mistachkin tags: readonly-wal-recovery)
17:29
Corrections to the Win32 porting changes on this branch. (check-in: 0b26a5a2 user: mistachkin tags: readonly-wal-recovery)
17:29
Make it possible to use OSTRACE for multi-process testing. (check-in: 0a7d416c user: mistachkin tags: readonly-wal-recovery)
16:30
Initial work on porting the changes on this branch to Win32. (check-in: 3738bfd0 user: mistachkin tags: readonly-wal-recovery)
03:55
Disallow ORDER BY and LIMIT on UPDATE and DELETE of views and WITHOUT ROWID tables. This is a temporary fix for ticket [d4beea1633f1b88f] until a better solution can be found. (check-in: 62fe56b5 user: drh tags: trunk)
2017-11-08
19:26
Extra comments on the sqlite3OsShmMap() call in walBeginUnlocked(). No changes to code. (check-in: 033ee92b user: drh tags: readonly-wal-recovery)
17:51
Turns out that SQLITE_READONLY_CANTLOCK is an historical name that must be preserved. So make a new SQLITE_READLOCK_CANTINIT name instead. (check-in: 04974a8b user: drh tags: readonly-wal-recovery)
17:32
Change the name of SQLITE_READONLY_CANTLOCK to SQLITE_READONLY_CANTINIT. (check-in: 6d7f94fa user: drh tags: readonly-wal-recovery)
11:14
Fix a problem causing LSM to add unnecessary padding to empty segments in compressed databases. (check-in: 1bc2d046 user: dan tags: trunk)
02:50
Improved comments used for documentation of sqlite3_vfs. No changes to code. (check-in: db8f22d0 user: drh tags: trunk)
2017-11-07
21:25
Update an assert in wal.c. (check-in: 94527b89 user: dan tags: readonly-wal-recovery)
21:15
Handle the race condition that may occur if another process connects and then checkpoints and truncates the wal file while a readonly-shm client is building its heap-memory wal-index. (check-in: 5a6703fc user: dan tags: readonly-wal-recovery)
19:02
Fix handling of partial indexes in checkindex.c (sqlite3_checker). (check-in: 31932a9e user: dan tags: trunk)
18:20
Fix a problem causing an INDEXED BY specifying an unusable partial index to be mishandled. (check-in: 292a0408 user: dan tags: trunk)
16:54
Add the --trace option to the sqlite3_checker utility program. (check-in: dc217b7c user: drh tags: trunk)
16:23
Enhance the checkindex.c virtual table so that it will output the index_name and after_key parameters. Also add a new diagnostic output column named scanner_sql which shows the SQL statement used to implement the current index scan. (check-in: 32e2520c user: drh tags: trunk)
15:43
On unix, if the *-shm file cannot be opened for read/write access, open it read-only and proceed as if the readonly_shm=1 URI option were specified. (check-in: ba718754 user: dan tags: readonly-wal-recovery)
09:08
Add fault-injection tests for the code on this branch. (check-in: a7d949fb user: dan tags: readonly-wal-recovery)
2017-11-06
20:02
Merge latest trunk changes into this branch. (check-in: 7f217eda user: dan tags: begin-concurrent)
19:49
Add further test cases for the new code on this branch. And a couple of fixes. (check-in: 71af9acb user: dan tags: readonly-wal-recovery)
10:04
Allow "BEGIN CONCURRENT" transactions to modify the temp schema. (check-in: 0fb6d91c user: dan tags: begin-concurrent)
09:34
Fix a harmless compiler warning from Xcode 9.1. (check-in: 66d98310 user: drh tags: trunk)
2017-11-04
21:06
Add further tests for the code added on this branch. (check-in: a6716fcd user: dan tags: readonly-wal-recovery)
18:10
In cases where a readonly_shm client cannot take the DMS lock on the *-shm file, have it parse the wal file and create a wal-index to access it in heap memory. (check-in: 18b26843 user: dan tags: readonly-wal-recovery)
08:53
Fix an LSM problem with read-only connections and compression (not compression-factory) callbacks. (check-in: 51ee5188 user: dan tags: trunk)
2017-11-03
19:34
Fix some comments in new code on this branch. No changes to code. (Closed-Leaf check-in: cbec1bfe user: dan tags: fcntl_shm_read)
17:51
Merge latest trunk changes with this branch. (check-in: 585e0a09 user: dan tags: fcntl_shm_read)
17:17
Allow readonly_shm connections to access the *-shm file using read() even if it is unable to take a DMS lock. (check-in: 9b0d5c4f user: dan tags: fcntl_shm_read)
08:46
The extensions functions in spellfix are all deterministic. (check-in: 29ec855e user: drh tags: trunk)
06:45
Fix harmless compiler warnings. (check-in: d088c5a3 user: mistachkin tags: trunk)
2017-11-02
18:57
Fix test cases in wal2.test broken by the locking change in the previous commit. (check-in: f569c351 user: dan tags: readonly-wal-recovery)
11:12
Avoid locking shm-lock WAL_READ_LOCK(0) during recovery. Doing this allows recovery to proceed while a readonly_shm connection in unlocked mode has an ongoing read transaction. (check-in: 5190d84a user: dan tags: readonly-wal-recovery)
2017-11-01
20:59
If a readonly_shm connection cannot map the *-shm file because no other process is holding the DMS lock, have it read from the database file only, ignoring any content in the wal file. (check-in: ce5d13c2 user: dan tags: readonly-wal-recovery)
19:58
Fix harmless compiler warnings in sqlite3_checker.exe (check-in: 491f867b user: drh tags: trunk)
19:50
Make sure the JSON1 extension is available to sqlite3_checker.exe (check-in: a946a8ed user: drh tags: trunk)
19:44
Add the checkindex.c extension and the sqlite3_checker utility program used for doing live validation of large databases. (check-in: 0c5d18a0 user: drh tags: trunk)
19:30
Fix the SQLITE_NoopUpdate #define so that it occurs under the correct conditions. (check-in: bdf791f9 user: drh tags: begin-concurrent-pnu)
19:22
Adjust page numbers in the ext/repair/test/checkfreelist01.test module due to the fact that the pending-byte page is no longer shifted down to a low-numbered page but is in its rightful place. (Closed-Leaf check-in: c1641aff user: drh tags: checkindex)
18:48
The "PRAGMA noop_update" command now requires SQLITE_ENABLE_NOOP_UPDATE and no longer requires SQLITE_DEBUG. (check-in: 81baf67c user: drh tags: begin-concurrent-pnu)
18:31
Add the "sqlite3_imposter DB SCHEMA ROOT SQL" command to sqlite3_checker. Use it to fix the checkindex01.test module. There are still errors reported by the checkfreelist01.test module. (check-in: 0593a2ba user: drh tags: checkindex)
18:05
Move the test scripts for checkfreelist and checkindex over into the ext/repair/test directory. Run them now using the sqlite3_checker utility with the --test option. Some tests are currently failing due to an incomplete port. This is an incremental check-in. (check-in: 17f8d5e1 user: drh tags: checkindex)
13:09
Minor cleanup in checkindex.c. Add progress displays when checking a single index in the top-level TCL script for sqlite3_checker. (check-in: 3ca31cc3 user: drh tags: checkindex)
07:06
Merge latest trunk changes into this branch. (check-in: 985bfc99 user: dan tags: readonly-wal-recovery)
06:59
Fix a race condition in os_unix.c that might allow a client to use a *-shm file corrupted by a power failure if another client fails between locking the *-shm file and truncating it to zero bytes. (check-in: d655bfab user: dan tags: readonly-wal-recovery)
01:05
When sqlite3_checker finds a problem, show the row key as part of the error message, not the row index number. (check-in: 6ffe917d user: drh tags: checkindex)
01:01
Actually perform index checks when running sqlite3_checker (check-in: 54530020 user: drh tags: checkindex)
00:10
Begin putting functionality into the sqlite3_checker binary. (check-in: e82e883b user: drh tags: checkindex)
2017-10-31
18:15
Merge all recent enhancements from trunk. (check-in: 24adf90f user: drh tags: checkindex)
18:09
Add the checkfreelist extension to the sqlite3_checker binary. (check-in: 0c22f0d6 user: drh tags: checkindex)
15:55
Fix an error in the Makefile.msc for the sqlite3_checker.exe target. (check-in: 49d0c6f1 user: drh tags: checkindex)
15:49
Add build infrastructure for the sqlite3_checker command-line utility. (check-in: 429e3c3c user: drh tags: checkindex)
14:56
Update the built procedures for the sqlite3_analyzer utility to allow it to be linked with an external sqlite3.o library. Automatically detect a missing dbstat extension and report the compile-time error. (check-in: bb39744f user: drh tags: trunk)
12:20
Fix redundancies in the makefiles that resulted from moving shell.c over to shell.c.in. (check-in: bf09fa68 user: drh tags: trunk)
12:06
Fix a minor comment typo. No changes to code. (check-in: 5f79e6d9 user: drh tags: trunk)
12:01
Fix a couple of issues in incremental_index_check to do with CREATE INDEX statements that contain embedded SQL comments. (check-in: 2aef4181 user: dan tags: checkindex)
03:40
Remove unnecessary NEVER() and ALWAYS() conditionals. (check-in: 1c80c75d user: drh tags: trunk)
2017-10-30
23:25
Add the showshm utility program for printing out the shm header in a human-readable format. (check-in: f6304fd1 user: drh tags: trunk)
20:44
Clarify some comments describing the WAL index file. No changes to code. (check-in: 3be3aad9 user: drh tags: trunk)
19:38
Add support for indexes on expressions to incremental_index_check. (check-in: 8c1c701f user: dan tags: checkindex)
18:49
Improve the performance of the LIKE operator by using strcspn() to aid wildcard matching. (check-in: 37284d4e user: drh tags: trunk)
18:26
Speed up wildcard searches in LIKE using strchr() (Closed-Leaf check-in: 4d336d74 user: drh tags: like-compare-opt)
17:05
In checkindex.c, use C code instead of SQL/group_concat() to compose various SQL clauses. This is to make it easier to support indexes on expressions. (check-in: 940606b3 user: dan tags: checkindex)
08:04
Fix an issue in incremental_index_check with indexes that use non-default collation sequences. (check-in: 3ebb2351 user: dan tags: checkindex)
2017-10-28
20:54
Increase the version number for the next release - which is still months away but there have been significant query planner enhancements since the previous release. (check-in: 457eedfa user: drh tags: trunk)
20:51
Reactivate query flattening when the result set of the outer query has no function calls or subqueries. This is a partial reversal of check-in [c9104b59]. Co-routines are still preferred if the outer query has a complex result set, but for simple results sets, query flattening is used. Check-in [4464f40ccd7] is completely backed out due to this change. (check-in: d17ef7d1 user: drh tags: trunk)
20:31
Fix "after" parameter handling in the incremental_index_check code. (check-in: c40c3c62 user: dan tags: checkindex)
12:20
Add test cases from OSSFuzz to prevent a regression in co-routine processing. (check-in: 689743d8 user: drh tags: trunk)
2017-10-27
23:28
I was a little concerned about this check-in. Though I could not generate a failure myself, I thought it was risky. I checked it in for further testing. Then, overnight, OSSFuzz found a failure case for me. So the change is now moved out into a deadend branch. Was: Use OP_SCopy rather than OP_Copy to transfer results from a co-routine to its consumer. This undoes an earlier fix for ticket [98825a79ce] by check-in [ec6a06246e] because that problem no longer occurs due to WHERE clause push-down. (Closed-Leaf check-in: 0926df09 user: drh tags: mistake)
20:53
Add the start of the "incremental_index_check" virtual table in ext/repair/checkindex.c. For incremental verification of index contents. (check-in: d5b9dada user: dan tags: checkindex)
18:24
Fix a Pager ref-count leak in the sqlite_dbpage virtual table. (check-in: c063bb04 user: drh tags: trunk)
17:09
Handle the Ctrl-C event for the shell on Win32. (check-in: c8aaf371 user: mistachkin tags: trunk)
12:27
Additional test case demonstrating the ability to access structure elements using quoted names in the JSON1 extension. (check-in: 8d3cc928 user: drh tags: trunk)
2017-10-26
20:04
Enhance the min/max optimization so that it works with indexes on expressions. (check-in: 6caec908 user: drh tags: trunk)
18:43
Extra ".selecttrace" output following aggregate analysis. No changes to production builds. (check-in: 6fbf74ab user: drh tags: trunk)
17:34
Fix an error in the previous commit on this branch. (check-in: f71dfee0 user: dan tags: readonly-wal-recovery)
17:05
Instead of extra locks, use F_GETLK to ensure that readonly_shm clients cannot connect to a wal-mode database if there are no writers. (check-in: 5492f457 user: dan tags: readonly-wal-recovery)
15:21
Fix a bug causing "make amalgmation-autoconf" to create an invalid package if either the current or parent directory contains a file named install.sh or install-sh. (check-in: e1faa785 user: dan tags: trunk)
2017-10-25
23:28
Use extra locks to prevent a readonly_shm=1 process from connecting to a WAL-mode database if there are no writers. (check-in: 35d97908 user: drh tags: readonly-wal-recovery)
19:18
Fix the sqlite3_dbpage virtual table so that it can read and write from any attached database. (check-in: d4f893e1 user: drh tags: trunk)
18:17
Add tests cases and fix minor issues in the rtreecheck() function. (check-in: d6130cd2 user: dan tags: trunk)
18:01
Add SQL scalar function rtreecheck() to the rtree module. For running checks to ensure the shadow tables used by an rtree virtual table are internally consistent. (check-in: 7d264980 user: mistachkin tags: trunk)
18:00
Fix compilation issue (C99-ism) seen with MSVC. (Closed-Leaf check-in: 61870b42 user: mistachkin tags: rtree-integrity-check)
16:38
Add SQL scalar function rtreecheck() to the rtree module. For running checks to ensure the shadow tables used by an rtree virtual table are internally consistent. (check-in: dde0bb3e user: dan tags: rtree-integrity-check)
16:14
Do not reference the ioctl() system call in the unix backend unless it is actually needed by the Batch Atomic Write extension. This should allow the build to work on VxWorks. (check-in: adfa7ed2 user: drh tags: trunk)
01:34
Add the sqlite_btreeinfo eponymous-only table for introspecting the schema and estimating the sizes of various btrees. (check-in: 1e30f477 user: drh tags: trunk)
2017-10-24
21:17
Force the autoconf makefile for MSVC to always use the 'find.exe' included with Windows. (check-in: b76bffd3 user: mistachkin tags: trunk)
19:12
Merge all enhancements and fixes from the 3.21.0 release. (check-in: 13be3a44 user: drh tags: apple-osx)
19:05
Merge all of the fixes from the 3.21.0 release. (check-in: 5ab662b4 user: drh tags: trunk)
18:55
Version 3.21.0 (Leaf check-in: 1a584e49 user: drh tags: release, branch-3.21, version-3.21.0)
17:28
Fix a problem in the incr-blob code causing a new cursor to be opened for every sqlite3_blob_reopen() call. (check-in: 41ef34a1 user: dan tags: branch-3.21)
2017-10-23
21:24
On the amalgamation package, enable the sqlite_dbpage virtual table so that the .dbinfo command works in the CLI. (check-in: 54b90b4f user: drh tags: branch-3.21)
20:20
Merge trunk fixes to swarmvtabfault.test and the lsm extension into this branch. No changes to core SQLite code. (check-in: f632b870 user: dan tags: branch-3.21)
20:17
In the 'swarmvtabfault' test module, make sure to close the database handle prior to raising an error from the 'not found' callback script. (check-in: f317037b user: mistachkin tags: trunk)
17:36
Cleanup a test database file prior to using it. (check-in: e1bf5e1d user: mistachkin tags: trunk)
16:34
Updates to test procedures so that they all work with encryption. No changes to the core SQLite code. (check-in: 04813307 user: drh tags: branch-3.21)
16:03
Avoid passing a NULL value as the second argument to memcpy(). (check-in: 58e5bb49 user: dan tags: branch-3.21)
11:48
In lsm (not SQLite), avoid opening the *-shm file before the database file is locked. Otherwise, there is a race condition whereby a connection in another process process may unlink() it while it is still in use. (check-in: c8b8b9b5 user: dan tags: trunk)
07:53
Fix minor test script problems revealed by releasetest.tcl. (check-in: c333ee7e user: dan tags: branch-3.21)
07:52
Fix minor test script problems revealed by releasetest.tcl. (check-in: 15e87d9b user: dan tags: trunk)
2017-10-22
08:03
Fix test cases in dbpage.test so that they work with SQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: 9474f061 user: dan tags: branch-3.21)
08:02
Fix test cases in dbpage.test so that they work with SQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: 0fcf1e61 user: dan tags: trunk)
07:58
Avoid running tests that use sqlite_dbpage with SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 6dde8d61 user: dan tags: branch-3.21)
07:57
Avoid running tests that use sqlite_dbpage with SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 7bd20a20 user: dan tags: trunk)
2017-10-21
17:17
Merge all the enhancements and bug fixes from trunk, since none are destablizing. Call this the second beta. (check-in: fb3ee1b7 user: drh tags: branch-3.21)
14:17
Catch and avoid a 16-bit integer overflow on the number of columns in a common table expression. This fixes a problem found by OSS-Fuzz. The test case is in TH3. (check-in: 6ee8cb6a user: drh tags: trunk)
13:29
Remove unnecessary "#if SQLITE_MAX_COLUMN". SQLITE_MAX_COLUMN is always defined. (check-in: 6ec82acd user: drh tags: trunk)
12:59
Initial implementation of the appendvfs extension. Untested. (check-in: 063a03a3 user: drh tags: appendvfs)
2017-10-19
15:17
Take extra care to avoid an OOB read caused by a corrupt b-tree page. This fixes a problem detected by Natalie Silvanovich of Google Project Zero. (check-in: 04925dee user: dan tags: trunk)
2017-10-18
15:02
Avoid using snprintf as a member variable of a struct in sqlite3ext.h. This causes problems on OSX. Similar to fix [a1fd3aa8]. (check-in: cd0471ca user: dan tags: trunk)
14:29
Avoid using snprintf as a member variable of a struct in sqlite3ext.h. This causes problems on OSX. (Closed-Leaf check-in: b066d5a6 user: dan tags: sqlite3ext-fix)
2017-10-17
18:33
The source code files generated for the 'sqlite3-all.c' target should not have Windows line-endings. (check-in: 6a08c434 user: mistachkin tags: trunk)
13:44
Fix the ".check" command of the command-line shell to return 1 (error) rather than 2 (exit) on a test failure. (check-in: e2af0cc6 user: drh tags: trunk)
2017-10-16
11:50
Improved comments, including a typo fix, on the whereLoopCheaperProperSubset() function. (check-in: 700a3c69 user: drh tags: trunk)
2017-10-15
22:16
In the query planner, do not consider index X to be a proper subset of index Y if X is a covering index but Y is not. (check-in: ee31c043 user: drh tags: trunk)
2017-10-14
19:58
Updates to the Makefiles for MSVC. Cherrypick of [ac8786f3f9f35cb6]. (check-in: 92eb721f user: mistachkin tags: branch-3.21)
19:54
Updates to the Makefiles for MSVC. (check-in: ac8786f3 user: mistachkin tags: trunk)
2017-10-13
20:14
Improved ability to generate stand-alone program using TCL and SQLite by compiling with -DTCLSH_INIT_PROC=name to cause the TCL interpreter to be initialized using procedure name(). Both sqlite3_analyzer and testfixture are now built this way. (check-in: d65d1f29 user: drh tags: trunk)
18:58
Add the tcl/mkccode.tcl script used to construct a single C-language source fiel for programs that combine C-code, SQLite, and TCL. Use this script to construct the sqlite3_analyzer program. (check-in: 298a3fdd user: drh tags: trunk)
16:24
Fix main.mk to name the win32 executable "sqlite3_expert.exe", not "sqlite3_expert". (check-in: e38571d5 user: dan tags: schemalint)
16:19
Move a bunch of unrelated test code out of tclsqlite.c and into test_*.c files. There is still some test code in tclsqlite.c, but the amount is greatly reduced. (check-in: a9c4bc88 user: drh tags: trunk)
16:01
The db_use_legacy_prepare command no longer exists. Use the undocumented -use-legacy-prepare option to DB version instead. (Closed-Leaf check-in: ea2fa9ab user: drh tags: tclsqlite-cleanup)
15:56
When compiling with SQLITE_TEST, extra options are available on the "DB version" command for controlling the internal state of the SqliteDb object, for testing purposes. (check-in: bf86478d user: drh tags: tclsqlite-cleanup)
15:06
Move some test logic out of tclsqlite.c and into auxiliary test_*.c files. This is a work in progress. (check-in: 95b7687f user: drh tags: tclsqlite-cleanup)
14:20
Update main.mk to build the sqlite3_expert program with -DSQLITE_THREADSAFE=0 and -DSQLITE_OMIT_LOAD_EXTENSION. To minimize dependencies. (check-in: 4c68ad7d user: dan tags: schemalint)
2017-10-12
20:37
Add the sqlite_dbpage virtual table (enabled using SQLITE_ENABLE_DBPAGE_VTAB). Make that virtual table and dbstat available to the command-line shell. (check-in: eaeeb09d user: drh tags: trunk)
20:24
Fix the EXPLAIN processing so that it returns SQLITE_ERROR on an OOM, as it should. (check-in: 4ec63ef2 user: drh tags: schemalint)
19:50
Create the new ext/repair folder and move checkfreelist.c there. Remove checkfreelist.c from the command-line shell (undoing check-in [48418f2e]). (Closed-Leaf check-in: dfdebd12 user: drh tags: dbpage)
15:28
Add the experimental "sqlite_expert" extension. Used to find index definitions that might help with specified SQL queries. (Later:) Parked on a dead-end branch due to an assertion fault in TH3. We will merge again after the bug is fixed. (Closed-Leaf check-in: d1ef9eab user: dan tags: withdrawn)
14:18
Fix a harmless compiler warning about an unused parameter. (check-in: de20133d user: drh tags: branch-3.21)
14:13
Update this branch to match latest trunk. (check-in: d325da6c user: dan tags: schemalint)
14:13
Fix the "snapshot-tarball" makefile target, which was broken by the shell.c change of check-in [36acc0a9]. (check-in: c643ace2 user: drh tags: branch-3.21)
14:03
Merge fixes from trunk. All changes are on makefiles and test scripts. There are no core code changes. (check-in: 1fb87a0c user: drh tags: branch-3.21)
13:47
The src/shell.c file is now generated from src/shell.c.in, so remove shell.c from version control and update the makefiles to build it automatically. (check-in: 36acc0a9 user: drh tags: trunk)
13:21
Merge fixes from the 3.21 branch. (check-in: 29292169 user: drh tags: trunk)
11:33
Fix a potential crash that may follow an OOM or other system error in the shell tool. (check-in: c36761e1 user: dan tags: trunk)
11:13
Update some test cases to work with SQLITE_OMIT_VIRTUALTABLE and DEFAULT_AUTOVACUUM builds. (check-in: 4b68f424 user: dan tags: trunk)
10:28
Make sure the tableColumnList() routine of the command-line shell does not cause a null-pointer dereference in an error condition. (check-in: 5d0ceb8d user: drh tags: branch-3.21)
01:24
Merge fixes from the 3.21 branch. (check-in: 18d4654f user: drh tags: dbpage)
01:19
Fix a typo in a numeric constant in an assert() - a bug that has been present in the code since check-in [79e22b95038] on 2010-03-30. (check-in: f0a2724f user: drh tags: branch-3.21)
2017-10-11
20:27
Add test file mmapwarm.test. With tests for the sqlite3_mmap_warm() extension. (check-in: 5c4980ef user: dan tags: trunk)
20:26
Merge latest trunk changes with this branch. (check-in: 2719cf5c user: dan tags: schemalint)
20:10
Change some internal details to bring this branch closer to the code on trunk. (check-in: 58e42cfd user: dan tags: schemalint)
18:26
Add the checkfreelist extension to the command-line shell. (check-in: 48418f2e user: drh tags: dbpage)
18:21
Check that the leaf count on each freelist trunk page is in range as part of checkfreelist processing. (check-in: 4e894062 user: dan tags: dbpage)
18:00
Add new extension "checkfreelist", which uses sqlite_dbpage to check that there are no invalid entries on the database free-list. (check-in: 21930ef5 user: dan tags: dbpage)
17:51
Convert the implementation of the ".dbstat" dot-command of the command-line shell to use the sqlite_dbpage table. (check-in: 497409e1 user: drh tags: dbpage)
17:50
Make JSON1 defines consistent in the makefiles for MSVC. (check-in: 31eee0e4 user: mistachkin tags: branch-3.21)
17:25
Enable JSON by default in the Windows command-line shell sqlite3.exe. (check-in: 79c96121 user: drh tags: branch-3.21)
17:13
Enable sqlite_dbpage and dbstat virtual tables in the shell, by default. (check-in: 01bf856c user: drh tags: dbpage)
15:02
Get writes working on the sqlite_dbpage virtual table. Add a few test cases. (check-in: a8b264d8 user: drh tags: dbpage)
13:48
Initial implementation of the "sqlite_dbpage" virtual table. Currently it is read-only and has a place-holder xBestIndex. (check-in: c2c1d656 user: drh tags: dbpage)
12:20
In the speed-check.sh test script, allow an additional test-name argument which becomes the comparison baseline, in place of "trunk". (check-in: 0245adff user: drh tags: trunk)
11:12
Create a branch for the 3.21.0 release. Development continues on trunk. (check-in: 0f160a8a user: drh tags: branch-3.21)
2017-10-10
20:11
Add new extension "bgckpt" in ext/misc/bgckpt.c. For experimenting with running wal2 mode checkpoints in a background thread. (check-in: 63955442 user: dan tags: wal2)
13:37
DROP TABLE now works for WITHOUT ROWID tables and the SQLITE_OMIT_AUTOVACUUM compile-time option. Fix for ticket [e651b1341861d6] (check-in: b8c1b5a5 user: drh tags: trunk)
2017-10-09
19:50
Merge latest trunk changes with this branch. (check-in: d218d815 user: dan tags: wal2)
19:49
Add a header comment to wal.c describing the differences between wal and wal2 mode. (check-in: 9c80cd20 user: dan tags: wal2)
2017-10-08
02:22
Fix harmless compiler warnings in FTS5 seen with MSVC. (check-in: 5594a121 user: mistachkin tags: trunk)
2017-10-07
23:58
Fix harmless compiler warning seen with MSVC. (check-in: 39d920d1 user: mistachkin tags: trunk)
23:35
Revise variable declaration moved in the previous check-in so sqlite3VdbeReset() is consistent with sqlite3VdbeRewind(). (check-in: 63d1b425 user: mistachkin tags: trunk)
23:31
Fix C99-style variable declaration issue seen with older versions of MSVC. (check-in: 14b181e8 user: mistachkin tags: trunk)
19:55
Ignore the *-wal2 file if the *-wal file is zero bytes in size. (check-in: f7360fad user: dan tags: wal2)
13:37
Check in test file wal2simple.test. (check-in: 8932b2f1 user: dan tags: wal2)
2017-10-06
18:00
Add tests for the example fts3 "rank" function that appears in the documentation. (check-in: 702b137a user: dan tags: trunk)
14:25
Merge latest trunk changes into this branch. (check-in: 7e435178 user: dan tags: wal2)
14:08
Fix a bug in recovering wal2 mode databases introduced by the previous commit. (check-in: 9e1502e1 user: dan tags: wal2)
13:43
Fix frame overwriting in wal2 mode. (check-in: a4b02bc9 user: dan tags: wal2)
2017-10-05
20:57
Fix compiler warnings that come up with SQLITE_OMIT_WAL. (check-in: 8ca0fa8d user: drh tags: trunk)
20:02
Fix a problem building with SQLITE_OMIT_WAL defined. (check-in: 373b0ace user: dan tags: trunk)
19:12
Fix the command-line shell so that the ".schema --indent" command does a better job of dealing with \r\n in the middle of a CREATE statement in the schema. (check-in: 4258fb57 user: drh tags: trunk)
18:14
Fix test case failures on this branch. (check-in: 16decc13 user: dan tags: wal2)
11:29
Disable the delta checksum verification in RBU by default. Reenable it using -DRBU_ENABLE_DELTA_CKSUM, if desired. (check-in: d22c99b6 user: drh tags: trunk)
2017-10-04
20:57
Add experimental mode that uses two wal files. Activated using "PRAGMA journal_mode = wal2". (check-in: e2fc5c81 user: dan tags: wal2)
18:26
Updates to requirements marks. (check-in: 40964a4e user: drh tags: trunk)
17:05
Update the speedtest1 program so that it prints the output of "PRAGMA compile_options" if the -stats option is specified. (check-in: 7c69f8f1 user: dan tags: trunk)
16:35
Fix typos in session extension header comments. No changes to code. (check-in: 182ec9d6 user: mistachkin tags: trunk)
14:13
New test cases for ticket [b899b6042f97f5] derived from a bug report on the mailing list from Wout Mertens. (check-in: ef94ea06 user: drh tags: trunk)
12:08
Amend recent changes to busy.test to avoid failing with SQLITE_ENABLE_STAT4 builds. (check-in: 9ff49441 user: dan tags: trunk)
12:06
Turn restriction 20 on the query flattener into an assert since the situation restricted can no longer occur because of the more aggressive use of co-routines. (check-in: 4464f40c user: drh tags: trunk)
10:39
Add tests to verify that the busy-handler is invoked correctly when processing "PRAGMA optimize" and ANALYZE commands. (check-in: fb83c3d8 user: dan tags: trunk)
05:59
Remove a redundant restriction from the query flattener. (check-in: 66629b2a user: drh tags: trunk)
02:30
Fix a minor typo in the query flattener header comment. No code changes. (check-in: d050dc60 user: drh tags: trunk)
2017-10-03
19:53
Simplify the computation of types on columns of a view. (check-in: 772b0db1 user: drh tags: trunk)
18:35
Do not enable SELECT tracing with -DSQLITE_DEBUG. Require the -DSQLITE_ENABLE_SELECTTRACE compile-time option to enable SELECT tracing. (check-in: f5c39583 user: drh tags: trunk)
17:29
Add some OK_IF_ALWAYS_TRUE() marks on optimization branches in select.c. (check-in: 1dd82808 user: drh tags: trunk)
17:17
Remove an unused variable from sqlite3Insert() and fix harmless compiler warnings associated with -DSQLITE_MUTATION_TEST. (check-in: 7be760e9 user: drh tags: trunk)
16:57
Fix the sqlite3_column_decltype() interface to return the correct datatype when the value comes through a CTE. (check-in: 966438bd user: drh tags: trunk)
14:24
The simplification to sqlite3SelectExpand() in last night's [3a4ffb21] check-in was not completely correct. This adjustment is needed for correct OOM handling in some configurations. (check-in: c5ad5e16 user: drh tags: trunk)
03:24
Simplification to the logic that computes column type names. Update: Does not work in all configurations. (Closed-Leaf check-in: f10ece96 user: drh tags: does-not-work)
03:01
Do not compute column and row size estimates for the transient Table objects associated with the result set of a SELECT statement, since those estimates are never used for anything constructive. (check-in: e4342fd4 user: drh tags: trunk)
2017-10-02
23:50
Mark a single branch within sqlite3SelectExpand() as an optimization. (check-in: 3a4ffb21 user: drh tags: trunk)
23:30
Simplification to sqlite3SelectPrep() for improved testability. (check-in: 5bf2ccb9 user: drh tags: trunk)
21:29
Add the OK_IF_ALWAYS_TRUE() and OK_IF_ALWAYS_FALSE() macros for marking conditionals that improve performance but do not change the outcome. (check-in: 6035c9b2 user: drh tags: trunk)
13:20
Avoid using lookaside memory for persistent virtual table structures. (check-in: d815f255 user: drh tags: trunk)
02:52
The query planner now always prefers to implement a FROM-clause subquery using a co-routine rather than flattening the subquery into the outer query. (check-in: c9104b59 user: drh tags: trunk)
02:32
Improvements to a comment in lempar.c. No code changes. (check-in: 8000d230 user: drh tags: trunk)
2017-09-30
11:47
More details in the header comment of pushDownWhereTerms(). No changes to code. (Closed-Leaf check-in: 92848623 user: drh tags: prefer-coroutine-sort-subquery)
10:50
Make sure the SQLITE_Stat34 optimization switch is always 0x800, a value which is hard-coded in the TH3 test suite. (check-in: 6aed4ea3 user: drh tags: prefer-coroutine-sort-subquery)
01:25
Fix unreachable conditionals and revise a testcase that was made obsolete by the changes on this branch. (check-in: 71f0adf7 user: drh tags: prefer-coroutine-sort-subquery)
2017-09-29
22:13
Always render a subquery that is not part of a join as a co-routine. (check-in: 6b1651d7 user: drh tags: prefer-coroutine-sort-subquery)
16:08
Merge the query flattener comment improvements from trunk. (check-in: f62cd4d9 user: drh tags: prefer-coroutine-sort-subquery)
16:07
Clean up the comments on the query flattener to more clearly and accurately express the conditions under which the flattener is able to run. (check-in: 0840f9f8 user: drh tags: trunk)
14:31
Merge changes from trunk. (check-in: 06f432fb user: drh tags: prefer-coroutine-sort-subquery)
12:44
Make sure the 6th parameter to the authorizer callback for view subqueries has the correct view name. (check-in: 2a45bbc9 user: drh tags: trunk)
12:12
Better names for subqueries in EXPLAIN comments. (check-in: 04ef40a8 user: drh tags: trunk)
2017-09-28
20:06
Do not flatten subqueries that contain an ORDER BY or GROUP BY clause and can be implemented using a co-routine. (check-in: 042d655d user: drh tags: prefer-coroutine-sort-subquery)
17:29
Remove the (undocumented) query-planner control that prevents a "SELECT ALL" subquery in FROM clause from being implemented as a co-routine. This control was added by [a29e117d7ec], where it was called a "stop-gap". (check-in: ff2f5a31 user: drh tags: trunk)
16:56
Fix over-length source code lines in select.c. No logic changes. (check-in: fd3267ef user: drh tags: trunk)
13:47
Fix an issue introduced by check-in [4cd2a9672c59] (2017-03-03) that could allow a negative value in the 3rd parameter to memmove() when defragmentPage() is called on a btree page with a corrupted freeblock list. The corruption is now detected early and results in an SQLITE_CORRUPT return before the memmove() is reached. (check-in: 5b9ae693 user: drh tags: trunk)
01:58
Add new routines to simplify dealing with collating sequences in expressions: sqlite3ExprNNCollSeq() and sqlite3ExprCollSeqMatch(). (check-in: 490e488e user: drh tags: trunk)
01:09
Indexes on expressions with a COLLATE clause are able to satisfy an ORDER BY with the same COLLATE clause. (check-in: 04130018 user: drh tags: trunk)
00:01
In two places, change the magic number -1 to its proper symbol XN_ROWID. (check-in: 80277d2f user: drh tags: trunk)
2017-09-27
16:51
Disable tests for the LIKE optimization when ICU is enabled, since the LIKE optimization only works for the built-in LIKE operator and ICU overrides the built-in. (check-in: f5ef2e1b user: drh tags: trunk)
2017-09-25
09:37
Add an extra snapshot related test case. (check-in: 24a95e14 user: dan tags: trunk)
2017-09-23
07:46
Experimental change so that snapshot transactions always lock the wal file - preventing writers or truncate-checkpointers from wrapping it. (Closed-Leaf check-in: d71eeaab user: dan tags: snapshots-lock-wal)
2017-09-22
20:18
Merge in all the trunk enhancements of the previous 7 months. The LIKE optimization has stopped working when there is an ESCAPE - that problem will be addressed in a subsequent check-in. (Leaf check-in: 8d2a1cca user: drh tags: est_count_pragma)
16:23
Use the updated Win32 VFS semantics for winOpen from check-in [5d03c738e9] for WinRT, et al, as well. (check-in: 2c03d8b8 user: mistachkin tags: trunk)
12:52
Partial backout of check-in [e0af9a904076]. It turns out we do need some extra space at the end of the record blob as an overrun area to use when decoding a maliciously malformed record. (check-in: 403b88a8 user: drh tags: trunk)
11:09
Cherrypick [ec37ad6d08] into this branch. With this patch, if SQLITE_SHARED_MAPPING is defined at build-time SQLite will use a single memory mapping for multiple connections to the same database file within a single process. (check-in: c7a5880d user: dan tags: begin-concurrent)
10:49
Merge latest trunk changes into this branch. (check-in: 307b802e user: dan tags: begin-concurrent)
00:24
Update the configure script so that it looks for tclsh8.7 ahead of tclsh8.6. (check-in: 0a12915b user: drh tags: trunk)
2017-09-21
20:43
In the Windows VFS, when trying to open a database file read/write, if it fails check to see if the file exists and is read-only and immediately fall back to a read-only open attempt, rather than running the AV retry loop. (check-in: 5d03c738 user: drh tags: trunk)
20:03
In the Windows VFS, do not emit an SQLITE_CANTOPEN error log message when falling back from SQLITE_OPEN_READWRITE to SQLITE_OPEN_READONLY. Wait until the open fails completely. (check-in: fa3f5bcc user: drh tags: trunk)
19:08
Fix harmless UB in the ICU extension. (check-in: 68e9a840 user: drh tags: trunk)
14:03
The sqlite3_snapshot_describe() interface useful for debugging snapshot logic. (Leaf check-in: 3fbfa9a8 user: drh tags: sqlite3_snapshot_describe)
13:11
Fix a potential use of an uninitialized pointer in RTree following an OOM error. (check-in: fd4ec0cd user: drh tags: trunk)
10:24
Fix a bug in tool/mksourceid.c: The mksourceid.c program was incorrectly including the "# Remove this line" line of the Fossil-generated "manifest" file in the SHA3 hash. That means that all SQLITE_SOURCE_IDs for trunk versions going back to check-in [30966d56] (2017-08-22) are incorrect. (check-in: 65765222 user: drh tags: trunk)
01:04
Revert one performance improvement changes from check-in [3b3e32d4cd07] as it was causing a reference to an uninitialized value. (check-in: f8b1c64d user: drh tags: trunk)
00:49
Fix the rendering of the P4_INTARRAY argument to the OP_IntegrityCk opcode in the output of EXPLAIN. (check-in: adc12c83 user: drh tags: trunk)
2017-09-20
18:47
Size and performance optimization on sqlite3VdbeMemGrow(). (check-in: 4b3f7eac user: drh tags: trunk)
18:07
The BLOB returned by sqlite3VdbeMemFromBtree() does not need to be zero-terminated. (check-in: e0af9a90 user: drh tags: trunk)
17:49
Small size and performance optimization in the bytecode engine. (check-in: 3b3e32d4 user: drh tags: trunk)
10:47
Improved resolution of large integer values in "CAST(x AS NUMERIC)". (check-in: 7f2bd4ff user: drh tags: trunk)
09:09
Updates to the "lemon.html" document received from Andy Goth. (check-in: 5b2002f3 user: drh tags: trunk)
2017-09-18
18:17
Add the sqlite3_mmap_warm() function as an extension in the ext/misc/mmapwarm.c source file. (check-in: 1b2de414 user: drh tags: trunk)
18:08
Fix a typo in the MSVC makefile. (Closed-Leaf check-in: 3235835b user: drh tags: mmap-warm)
16:28
Add extension "mmapwarm.c". Provides function sqlite3_mmap_warm(), used to "warm up" the memory mapping used by SQLite in mmap mode to access db file content. (check-in: d4a30b91 user: dan tags: mmap-warm)
13:16
Minor simplification of error message generation during compound query code generation. (check-in: a9447193 user: drh tags: trunk)
09:40
The out-of-bounds read on recovery fix of check-in [378afa16381a222a] caused problems for some corner-case error conditions. This alternative fix appears to work better. (check-in: 74f399d8 user: drh tags: trunk)
08:51
Merge latest trunk changes with this branch. (Leaf check-in: 2e573350 user: dan tags: shared-mapping-hack)
00:18
Fix the CSV virtual table extension so that it works when the default character is unsigned. (check-in: 42f07775 user: drh tags: trunk)
2017-09-17
19:45
Do not make the assumption (as check-in [4da49a95c0f07] incorrectly did) that the ExprList returned by sqlite3ExprListDup() would never be passed into sqlite3ExprListAppend(). Include a new test case that shows this sometimes does happen. (check-in: 29227d00 user: drh tags: trunk)
2017-09-16
20:58
Simplify the sqlite3VdbeGet() routine. Smaller, faster, and easier to maintain. (check-in: 5dbb255a user: drh tags: trunk)
2017-09-15
17:40
Remove an unnecessary parameter from selectInnerLoop(). (check-in: dd95887f user: drh tags: trunk)
15:38
Improved the header-comment documentation on sqlite3ExprCodeExprList(). No changes to code. (check-in: 5dc3ecb5 user: drh tags: trunk)
15:17
Optimization to the ExprList object to make it slightly smaller and faster. (check-in: 4da49a95 user: drh tags: trunk)
14:36
Fix a harmless comment typo. No changes to code. (check-in: f7f0bf1d user: drh tags: trunk)
2017-09-14
21:12
Add another test case for the problem fixed by the previous commit. (check-in: 1a7e0b61 user: dan tags: trunk)
20:41
Avoid an out-of-bounds read that can be caused by a specially constructed journal file. (check-in: cf5bf42c user: dan tags: trunk)
02:36
Avoid an out-of-bounds read on a recovery attempt using a carefully crafted database and rollback journal with mismatched page sizes. The test case for this is in TH3. (check-in: 378afa16 user: drh tags: trunk)
2017-09-13
20:20
Test case update due to PRAGMA integrity_check enhancements in [8525c30c]. No changes to code. (check-in: 43c6023b user: drh tags: trunk)
18:38
Experimental sqlite3_stmt_retryable() interface. (Leaf check-in: ebada072 user: drh tags: sqlite3_stmt_retryable)
12:55
Disable FTS3 matchinfo() tests that assume a littleEndian platform when running on bigEndian. (check-in: 87ccdf9c user: drh tags: trunk)
00:33
Improvements to PRAGMA integrity_check for better detection of malformed records. Integrity_check now avoids returning SQLITE_CORRUPT on a corrupt record. Also includes microoptimizations that I stumbled over while working on integrity_check. (check-in: 8525c30c user: drh tags: trunk)
00:13
PRAGMA integrity_check returns SQLITE_OK even if it encounters corruption while scanning indexes. (Closed-Leaf check-in: 81f62e99 user: drh tags: improved-integrity-check)
00:01
Fix test script comment. No changes to code. (check-in: a5a19492 user: mistachkin tags: trunk)
2017-09-12
23:58
Remove use of the rand_s() function (added by [139081bef9f63c3e]) as it appears to cause issues with some third-party DLLs. (check-in: 3a2793aa user: mistachkin tags: trunk)
20:09
Add the highly-experimental "PRAGMA noop_update=TRUE" command. (check-in: afe45271 user: drh tags: begin-concurrent-pnu)
18:49
Add the highly-experimental "PRAGMA noop_update=TRUE" command. (Leaf check-in: de2e3717 user: drh tags: pragma-noop-update)
18:11
Merge the mutex-free PRNG change into this branch. (check-in: 8b1fc4b9 user: dan tags: shared-mapping-hack)
18:03
Hack to have multiple connections to a single file share a single memory mapping of the databse file. (check-in: ec37ad6d user: dan tags: shared-mapping-hack)
15:05
Fix an error in [b22cdd67] that can cause a negative infinity to be (rarely) reported as a positive infinity. (check-in: 9780b23c user: drh tags: trunk)
13:27
Changes to (hopefully) get the build working with recent Intel compilers. (check-in: b22cdd67 user: drh tags: trunk)
00:24
Make sure all connections are closed in the pragma.test script. Test change only - no changes to code. (check-in: d7b7f038 user: drh tags: trunk)
2017-09-11
23:46
New test case for ticket [b899b6042f97f52d]. (check-in: 9d91ee5e user: drh tags: trunk)
20:54
Add support for new operators in virtual tables: !=, IS, IS NOT, IS NULL, and NOTNULL. (check-in: 3b7dbe9d user: drh tags: trunk)
19:47
Refactor names of constants and functions associated with the auxiliary operators for xBestIndex. (Closed-Leaf check-in: 0fb992af user: drh tags: vtab-extra-ops)
18:37
Minor adjustments to indentation and spacing for clarity. No changes to code. (check-in: d3153abd user: drh tags: vtab-extra-ops)
08:53
Add tests to check that affinities work with != operators on virtual table column values. No changes to code. (check-in: 8d24e080 user: dan tags: vtab-extra-ops)
2017-09-10
01:06
Simplifications to the PRAGMA integrity_check code generator. (check-in: 99b9140c user: drh tags: improved-integrity-check)
2017-09-09
22:46
Simplification and performance improvement to sqlite3_reset(). (check-in: b6425d01 user: drh tags: improved-integrity-check)
20:38
Improved detection of malformed records by PRAGMA integrity_check. (check-in: 8fa923ca user: drh tags: improved-integrity-check)
19:41
Enhance the vtab interface to handle IS, !=, IS NOT, IS NULL and IS NOT NULL constraints. (check-in: 34c8e952 user: dan tags: vtab-extra-ops)
08:03
Use a mutex-free PRNG for the random() and randomblob() SQL functions and for the randomness used during checkpoint operations. (Leaf check-in: e63d1a7c user: drh tags: mutex-free-randomness)
06:10
Merge trunk enhancements (check-in: 6a0b9d9d user: drh tags: apple-osx)
00:51
Fix harmless compiler warnings seen with MSVC. (check-in: faa22e29 user: mistachkin tags: trunk)
2017-09-08
17:48
Have the header comment for sqlite3Checkpoint() mention TRUNCATE along with the other three checkpoint types. No changes to code. (check-in: e1e3ca7e user: dan tags: trunk)
2017-09-07
09:56
Prevent a possible crash when trying to recover using a carefully corrupted \ and truncated rollback journal. (Test case in TH3) (check-in: 02828d71 user: drh tags: trunk)
2017-09-05
20:16
Update "PRAGMA integrity_check" to detect inconsistencies between a single record's header and body. (check-in: 9e393a0e user: dan tags: trunk)
17:23
Fix a comment describing the xRowid method of the "series" virtual table. No code changes. (check-in: 868cd196 user: dan tags: trunk)
16:24
Add experimental API sqlite3rbu_temp_size_limit(). For limiting the amount of temporary disk space RBU uses. (check-in: 7fdd6298 user: dan tags: trunk)
2017-09-04
19:31
Use the SQLITE_CORRUPT_BKPT return code in a couple more places. (check-in: 72d22c22 user: mistachkin tags: trunk)
18:44
Add the 'mksourceid' executable to the clean target for MSVC. (check-in: 77854694 user: mistachkin tags: trunk)
00:33
Proposed fix for ticket [b899b6042f97f5] (check-in: c7f9f47b user: drh tags: trunk)
00:19
Fix recent test cases in test/indexepxr2.test so that they work even without SQLITE_ENABLE_STAT4 and SQLITE_ENABLE_JSON1. (check-in: 03f3cc03 user: drh tags: trunk)
2017-09-01
14:50
Add the new sqlite3PagerUnrefPageOne() pager method to deal with the special case of unreferencing page1. (check-in: b2e2100c user: drh tags: trunk)
12:57
Remove an obsolete optimization in pcache that due to more recent changes was recently making the code a little slower. (check-in: c4e7e175 user: drh tags: trunk)
12:18
Small size and performance improvement in pcacheManageDirtyList() by not zeroing the PgHdr.pDirtyNext and PgHdr.pDirtyPrev pointers for PgHdr objects that are not on the dirty list. (check-in: 919863b1 user: drh tags: trunk)
2017-08-31
21:11
Clarify the documentation about "protected" versus "unprotected" sqlite3_value objects. No changes to code. (check-in: 4094a341 user: drh tags: trunk)
2017-08-30
13:21
Remove unnecessary "__declspec(dllexport)" qualifiers from generated file shell.c. (check-in: bcc20be5 user: dan tags: trunk)
04:44
Small performance optimization in pcache1. (check-in: ffd437da user: drh tags: trunk)
2017-08-29
20:21
Faster memory allocation from lookaside by not trying to keep track of the number of outstanding allocations, and rather computing that value only when requested. (check-in: a06263f1 user: drh tags: trunk)
17:52
Add a Tcl script to run the performance tests described in README-server-edition.html. (check-in: 1b3df8ff user: dan tags: server-process-edition)
2017-08-28
17:32
Add the --enable-update-limit option to the ./configure script. (Leaf check-in: f545db6c user: drh tags: begin-concurrent-branch-3.19)
17:30
Avoid unnecessary mutexes in the pcache1 implementation in the common case where no auxiliary page cache memory is configured. (check-in: 5cd9ff87 user: drh tags: begin-concurrent-branch-3.19)
17:26
Remove the rarely-used scratch memory allocator. This makes the code smaller, faster, and easier to maintain. In place of the scratch allocator, add the SQLITE_CONFIG_SMALL_MALLOC configuration option that provides a hint to SQLite that large memory allocations should be avoided. (check-in: cc440400 user: drh tags: begin-concurrent-branch-3.19)
17:19
Merge recent enhancements from trunk. (check-in: d53108e7 user: drh tags: begin-concurrent)
17:00
Add the --enable-update-limit option to the ./configure script. (check-in: 64a8ae68 user: drh tags: trunk)
16:11
Avoid unnecessary mutexes in the pcache1 implementation in the common case where no auxiliary page cache memory is configured. (check-in: 1ba051e3 user: drh tags: trunk)
15:51
Remove the rarely-used scratch memory allocator. This makes the code smaller, faster, and easier to maintain. In place of the scratch allocator, add the SQLITE_CONFIG_SMALL_MALLOC configuration option that provides a hint to SQLite that large memory allocations should be avoided. (check-in: 54b00024 user: drh tags: trunk)
14:33
Backport changes to shell.c into shell.c.in. (check-in: 2348045f user: drh tags: trunk)
11:12
Fix the ".dump", ".schema", and ".fullschema" commands of the command-line shell so that they work even if PRAGMA empty_result_callbacks is enabled. Fix for ticket [02f0f4c54f281]. (check-in: cf0d3715 user: drh tags: trunk)
2017-08-27
10:55
Instrumentation and changes in an effort to reduce thread contention. (Leaf check-in: c93298d5 user: drh tags: reduced-thread-contention)
2017-08-25
19:51
Fix a few over-length source code lines. No functional changes. (check-in: 1783c54c user: drh tags: trunk)
15:43
Size and performance optimization for sqlite3Init(). (check-in: 776d9128 user: drh tags: trunk)
13:34
Small performance optimization in sqlite3WhereBegin(). (check-in: 39f708d1 user: drh tags: trunk)
13:02
Convert a branch made unreachable by [59560d07] into an assert(). (check-in: 2738b8db user: drh tags: trunk)
11:44
Improve the internal mechanism used to keep track of what kind of syncing to do for WAL transaction commits and checkpoint operations. Use the checkpoint-style of syncing to sync the header of a new or restarted WAL file. (check-in: e8d23afe user: drh tags: trunk)
09:17
Avoid returning duplicate rows in experimental pragmas "pragma_list", "module_list" and "function_list". (check-in: b79cc8dc user: dan tags: trunk)
01:14
Update the mechanism used to keep track of what kind of syncing to do for WAL transaction commits and checkpoint operations. Use the checkpoint-style of syncing to sync the header of a new or restarted WAL file. (Closed-Leaf check-in: bf65dae8 user: drh tags: wal-sync-refactor)
2017-08-24
20:54
Fix an incorrect hyperlink in a comment. (check-in: 25292b9a user: drh tags: trunk)
16:21
Version 3.20.1 (Leaf check-in: 8d3a7ea6 user: drh tags: release, branch-3.20, version-3.20.1)
15:43
Fixes to documentation about SQLITE_OPEN_URI. (check-in: 7ec72314 user: drh tags: trunk)
14:08
Increase the version number to 3.20.1. (check-in: 70338c7c user: drh tags: branch-3.20)
14:04
Make sure the sqlite3_result_pointer() interface does not leave a VM register in an inconsistent state. Fix for ticket [7486aa54b968e9b5]. Test cases are in TH3. (check-in: abc7adfd user: drh tags: branch-3.20)
13:55
Make sure the sqlite3_result_pointer() interface does not leave a VM register in an inconsistent state. Fix for ticket [7486aa54b968e9b5]. Test cases are in TH3. (check-in: d2f9230c user: drh tags: trunk)
10:10
Test BEGIN CONCURRENT transactions that consist entirely of read-only statements. (check-in: c3fe1f4b user: dan tags: begin-concurrent)
2017-08-23
23:09
Performance optimization to pageFindSlot() in the b-tree layer. (check-in: 59560d07 user: drh tags: trunk)
20:36
Size and performance optimization to dropCell() and freeSpace(). (check-in: bc1ec123 user: drh tags: trunk)
14:45
Smaller and faster implementation of the fillInCell() routine. (check-in: 77074990 user: drh tags: trunk)
2017-08-22
21:23
Update documentation to make it clear that SQLITE_SOURCE_ID and sqlite3_sourceid() might changes if the source code is edited. (check-in: e69c0c87 user: drh tags: trunk)
21:07
Less dramatic changes to the source-id following an edit. Modify the way that the amalgamation is constructed to give it the opportunity to detect changes and modify the source-id. (check-in: 564c7340 user: drh tags: trunk)
19:54
Modify the SQLITE_SOURCE_ID if the source code has changed in any way since the previous check-in. (check-in: 515d6a83 user: drh tags: trunk)
19:49
Trying again to get out-of-tree builds to work correctly. (Closed-Leaf check-in: a1b3337e user: drh tags: mksourceid)
19:44
mksourceid still does not work right. (Leaf check-in: ca5dcb4a user: drh tags: mistake)
19:43
Attempting to fix the source-id generator so that it works for out-of-tree builds. (check-in: 5a037ac2 user: drh tags: mksourceid)
19:19
Add the "mksourceid" program to the build process. That program changes the SQLITE_SOURCE_ID if the source tree has been modified in any way. (check-in: d4c05e04 user: drh tags: mksourceid)
15:21
Fix error tests in seldom-used compile-time branches of the unix backend. (check-in: 885c2b44 user: drh tags: trunk)
2017-08-21
02:20
Remove an unnecessary conditional. (check-in: 56d19f9f user: drh tags: trunk)
02:05
Minor optimization to sqlite3VdbeMemSetStr(). (check-in: 6538ef7b user: drh tags: trunk)
2017-08-19
20:38
Space and size optimization to the printf implementation. (check-in: d01d2cff user: drh tags: trunk)
15:50
Ensure that write-locks on pages are dropped at the end of each write transaction, even if there is still a read transaction open. (check-in: 2dd36ade user: dan tags: server-process-edition)
2017-08-18
22:30
Another size and performance optimization to readDbPage(). This time we eliminate some unnecessary local variables. (check-in: 745bc8de user: drh tags: trunk)
21:14
Size and performance optimization the readDbPage() routine in the pager. (check-in: ca9e1875 user: drh tags: trunk)
19:28
Version 3.19.4 (check-in: 605907e7 user: drh tags: release, version-3.19.4, branch-3.19)
18:55
Add tests to this branch. (check-in: abb6e076 user: dan tags: server-process-edition)
16:09
For the unix VFS, avoid an unnecessary stat() system call prior to opening any file in the common case where there are no unused file descriptors. (check-in: 3075cfa0 user: drh tags: trunk)
16:04
Do not search for locks to clear when connecting to a db in multi-process mode unless it looks like the previous user of the client-id crashed. (check-in: 66fb9e1c user: dan tags: server-process-edition)
14:34
Combine the OP_CreateTable and OP_CreateIndex opcodes of the bytecode engine into a single OP_CreateBtree opcode. This simplifies the implementation and makes the bytecode programs clearer. (check-in: eb1202b5 user: drh tags: trunk)
08:29
Only use indexes on expressions to optimize ORDER BY and GROUP BY if the collation sequence matches. Possible fix for [e20dd54a]. (check-in: 37e19008 user: dan tags: trunk)
2017-08-17
20:53
Use the __builtin_clzll() function of gcc to improve the performance and reduce the size of the sqlite3LogEst() routine. (check-in: a42a438c user: drh tags: trunk)
19:32
Add support for crash recovery in multi-process mode. And add test cases for the same. (check-in: a8115f95 user: dan tags: server-process-edition)
19:23
Small optimization in the Expr tree walker. (check-in: 264a5e1b user: drh tags: trunk)
18:54
Size optimization in the authorizer error message generation logic. (check-in: 0367a4d5 user: drh tags: trunk)
18:23
In sqlite3ViewGetColumnNames(), return the number of errors, not an error code. (check-in: f13682ea user: drh tags: trunk)
18:17
The RTREE extension should return SQLITE_CORRUPT_VTAB, not just SQLITE_CORRUPT when it encounters incorrectly formatted shadow tables. (check-in: 0712f057 user: drh tags: trunk)
14:47
Remove an unnecessary branch from the [be436a7f4587ce517ddc] fix. (check-in: fb6ca99b user: drh tags: trunk)
14:12
Add test cases for ticket [be436a7f4587ce517] using virtual table modules fts5 and rtree. (check-in: 2101b420 user: dan tags: trunk)
02:26
Defer schema resets when the query planner is running. Proposed fix for ticket [be436a7f4587ce517]. (check-in: a7bc7752 user: drh tags: trunk)
2017-08-16
19:20
Avoid a test for CURTYPE_BTREE in sqlite3VdbeCursorMoveto() in order to reduce the size and improve the performance of OP_Column. (check-in: f078deb2 user: drh tags: trunk)
17:06
Update this branch with the latest changes from trunk. (check-in: 380a7b7a user: dan tags: server-process-edition)
16:52
Enhance this branch to support page-level-locking (without MVCC) for multi-process deployments. (check-in: 04e0cb57 user: dan tags: server-process-edition)
14:16
Remove an unnecessary local variable from OP_Column, for a small size reduction and performance increase. (check-in: 39543903 user: drh tags: trunk)
11:04
Performance improvement in the OP_Column opcode. (check-in: dc98a92f user: drh tags: trunk)
2017-08-15
14:14
Small size and performance improvement in the OP_Column opcode. (check-in: 2cf3f3de user: drh tags: trunk)
03:46
Btree optimization: New field BtCursor.pPage that points to the current page, saving a single pointer dereference on each access. (check-in: 373b71d1 user: drh tags: trunk)
01:07
Fix a problem allowing a conflicting transaction to be committed in the case where more than one 32KB shared-memory page has been written to since the transaction was started. (check-in: 346a710d user: drh tags: begin-concurrent-branch-3.19)
2017-08-14
23:53
Minor size and performance optimization to sqlite3BtreeCloseCursor(). (check-in: 16969338 user: drh tags: trunk)
18:13
Change the internal btree routine moveToRoot() to return SQLITE_EMPTY if the table is empty or if it has pgnoRoot==0. This simplifies the callers, making them smaller and faster. The SQLITE_EMPTY result code is intercepted and changed into SQLITE_OK before surfacing in an API. (check-in: 240d5714 user: drh tags: trunk)
17:03
Fix harmless indentation error. (check-in: 25e92baa user: drh tags: trunk)
14:53
Sometimes a TK_COLUMN Expr node can have Expr.pTab==0 if it is a reference to an expression column in an index on an expression. Fix for ticket [aa98619ad08ddcab]. (check-in: d0da791b user: drh tags: trunk)
07:16
Remove code for PLL support in wal mode from this branch. (check-in: 8e1b28ed user: dan tags: server-process-edition)
06:55
Update this branch with latest trunk changes. (check-in: bc2498d6 user: dan tags: server-process-edition)
01:33
Properly dequote column names in tables constructed by an aggregate SELECT. (check-in: 7e0d3e9c user: drh tags: trunk)
2017-08-12
18:31
Add new test file fts5vocab2.test. (check-in: 02174842 user: dan tags: trunk)
14:06
Add a more rigorous test case for the bug fixed by the previous commit on this branch. (check-in: 42560723 user: dan tags: begin-concurrent)
02:16
Update the speed-check.sh test script to append log output to the end of the cout-NAME.txt file. (check-in: 14d262d6 user: drh tags: trunk)
02:01
Remove the zBase field from the StrAccum object. Resulting code is slightly smaller and faster. (check-in: 6e52fa5f user: drh tags: trunk)
01:09
Size and performance micro-optimization on sqlite3SrcListIndexedBy(). (check-in: 28a5aec1 user: drh tags: trunk)
2017-08-11
21:16
Fix a problem allowing a conflicting transaction to be committed in the case where more than one 32KB shared-memory page has been written to since the transaction was started. (check-in: 38dd9b50 user: dan tags: begin-concurrent)
20:22
Add another PAGERTRACE() macro to show when pages are added to Pager.pAllRead. No impact on production builds. (check-in: 11054cf5 user: drh tags: begin-concurrent)
19:31
Add a PAGERTRACE() macro to log when frames are written into the WAL file. This is for analysis only and is a no-op for production builds. (check-in: 39f39e3d user: drh tags: begin-concurrent)
19:16
Merge the latest enhancements from trunk. (check-in: 47e71695 user: drh tags: begin-concurrent)
18:59
Fix compiler warnings that arise if the PAGERTRACE macro is turned on. This changes does not affect production builds. (check-in: 831156a4 user: drh tags: trunk)
18:55
Improved comments in the header of the LSM1 vtab module. No code changes. (check-in: aa49926d user: drh tags: trunk)
13:51
New test cases for LSM1. (check-in: cb0c49cb user: drh tags: trunk)
12:49
Convert the LSM1 virtual table to be WITHOUT ROWID and get UPDATE and DELETE operations working on it. (check-in: 2164031b user: drh tags: trunk)
03:47
Simplification to the like optimization logic. Remove unnecessary branches. (check-in: 9466d952 user: drh tags: trunk)
2017-08-10
20:43
Allow WITHOUT ROWID virtual tables to be writable as long as they have exactly one column as their PRIMARY KEY. (check-in: c601d128 user: drh tags: trunk)
20:36
Add the "instance" type to the fts5vocab virtual table module. For direct access to the contents of the fts5 term index. (check-in: 34a7bd71 user: dan tags: trunk)
19:12
Fix a typo in csv01.test introduced by the previous commit. (Closed-Leaf check-in: f38ff718 user: dan tags: writable-vtab-without-rowid)
19:10
Add extra tests to this branch. (check-in: b0e3b88a user: dan tags: writable-vtab-without-rowid)
17:53
Test case for writing to a WITHOUT ROWID virtual table. The TCLVAR virtual table is modified to add a "fullname" column which is the primary key, and to accept update operations against the primary key. (check-in: 6997e00c user: drh tags: writable-vtab-without-rowid)
15:19
Experimental changes that allow a WITHOUT ROWID virtual table to be writable as long as it has only a single-column PRIMARY KEY. (check-in: ab9ee4c1 user: drh tags: writable-vtab-without-rowid)
03:27
Add a first draft of the "vtablog" extensions that implements a generic virtual table useful for experimentation using the command-line shell. (check-in: e49279e6 user: drh tags: trunk)
2017-08-09
22:55
Preserve the error code from xConnect or xCreate methods in virtual table implementations when they are encountered during parsing. (check-in: dcdf0913 user: drh tags: trunk)
20:35
Add experimental sqlite3_open_v2() flag SQLITE_OPEN_REUSE_SCHEMA. For sharing identical in-memory schema objects between connections. (check-in: a6256980 user: dan tags: reuse-schema)
19:27
Various bug fixes for the new LSM1 virtual table design. (check-in: 94434a25 user: drh tags: trunk)
18:40
Work toward redesigning the interface to the LSM1 virtual table. (check-in: 313df946 user: drh tags: trunk)
2017-08-08
21:40
The identifier "vsnprintf" appears to be a reserved word in recent versions of XCode, so avoid using it as a structure field. (check-in: 795eede3 user: drh tags: trunk)
21:30
Fix a faulty signed/unsigned character comparison in the LIKE optimization logic. (check-in: f4a4b149 user: drh tags: trunk)
20:03
Enhance the CSV virtual table extension so that it accepts the last row of the CSV file even if the last row omits the closing \n, as long as the last row has a full set of columns. (check-in: 537e3be2 user: drh tags: trunk)
2017-08-07
19:12
Avoid casting a value larger than 2^31 to a (size_t) or (SIZE_T) on systems where it is a 32-bit type. (check-in: b26d7a1c user: dan tags: trunk)
19:06
On Windows, avoid casting a value larger than 2^31 to a (SIZE_T) on systems where it is a 32-bit type. (Leaf check-in: f08d63b4 user: mistachkin tags: mmap-size-limit)
18:54
Fix a problem with handling SQLITE_FCNTL_MMAP_SIZE requests with a negative parameter in os_unix.c. (check-in: 4249fcf7 user: dan tags: mmap-size-limit)
18:27
Update bigmmap.test to account for builds that use "-DSQLITE_MAX_MMAP_SIZE=<integer-constant>LL". (check-in: 7c8b6f1c user: dan tags: mmap-size-limit)
18:13
Avoid casting a value larger than 2^31 to a (size_t) on systems where it is a 32-bit type. (check-in: 46c3085d user: dan tags: mmap-size-limit)
17:28
Fix an out-of-order test number. (check-in: 38f30091 user: mistachkin tags: trunk)
17:14
Add new test file "bigmmap.test". For testing builds with -DSQLITE_MAX_MMAP_SIZE > 2GB. (check-in: 17447062 user: dan tags: trunk)
14:15
Update this branch with latest trunk changes. (check-in: 17bc7ded user: dan tags: server-process-edition)
14:06
Fix a bug on this branch involving mmap mode and readonly transactions. (check-in: 355c594e user: dan tags: server-process-edition)
2017-08-05
16:15
Fix a segfault in swarmvtab that could occur if there was an error in the SQL statement passed to the constructor. Add other test cases. (check-in: 6ce8b7ca user: dan tags: trunk)
15:49
Microoptimization in pcache1.c makes the code slightly smaller and faster. (check-in: 422cd9f3 user: drh tags: trunk)
15:30
Fix memory leak in swarmvtab. (check-in: 002a9c7b user: dan tags: trunk)
2017-08-04
20:27
Add the swarm virtual table to the existing union virtual table module. (check-in: 0f6f6f03 user: drh tags: trunk)
20:15
Add the optional non-found-callback to the swarm-vtab. (Closed-Leaf check-in: a94e2f60 user: drh tags: union-vtab)
17:39
Add further test cases for swarmvtab. And minor code changes. (check-in: 0f82d3b9 user: dan tags: union-vtab)
16:16
Add test cases and associated fixes for swarmvtab. (check-in: 7ae20eac user: dan tags: union-vtab)
08:24
Add SQLITE_API qualifiers to public API functions in header file sqlite3rbu.h. (check-in: e11e6eb1 user: dan tags: trunk)
08:23
Update script tool/mksqlite3c.tcl to avoid duplicating the SQLITE_API qualifier when copying sqlite3rbu.h into the amalgamation. (Closed-Leaf check-in: 61ab112f user: dan tags: sqlite3rbu.h-fix)
2017-08-03
20:13
Modify swarmvtab to use a separate database connection for each database file. (check-in: 1f05ad29 user: dan tags: union-vtab)
15:50
Add SQLITE_API qualifiers to public API functions in header file sqlite3rbu.h. (check-in: d8637bad user: dan tags: sqlite3rbu.h-fix)
15:43
Fix some problems in RBU test cases. Also update RBU source code to better handle the trivial case where an RBU update is applied to a database zero pages in size. (check-in: 7676b39b user: dan tags: trunk)
00:29
Optimization to the comparison opcodes in the byte-code engine. (check-in: 654935c7 user: drh tags: trunk)
2017-08-02
22:43
In the KeyInfo object, refactor the nField and nXField elements into nKeyField and nAllField, which are more useful and run a little faster. (check-in: aea5990e user: drh tags: trunk)
19:59
Enhance the code in unionvtab.c to also provide the "swarmvtab" virtual table module. There are still several problems on this branch. (check-in: 03d94388 user: dan tags: union-vtab)
19:04
Avoid redundant calls to sqlite3ApiExit() in sqlite3_step(). (check-in: 527974d4 user: drh tags: trunk)
18:28
Only attempt to invoke WAL callbacks when a transaction has committed. (check-in: bcc6dacb user: drh tags: trunk)
18:27
Minor optimization on clearCell() (check-in: f3c39c29 user: drh tags: trunk)
15:50
Optimizations associated with error handling in btree cursors. (check-in: 49ba54e2 user: drh tags: trunk)
12:38
Remove unused token codes. (check-in: c45078c0 user: drh tags: trunk)
11:36
Rearrange some of the added token codes for a very slight size decrease and performance increase. (check-in: cb3742f5 user: drh tags: trunk)
11:04
Rearrange integer token values in the parser and logic in the resolveP2Values() routine for a small size reduction and performance increase. (check-in: 1cad2926 user: drh tags: trunk)
03:21
Show which opcodes are jumps in the comments when generating the opcodes.h header file. (check-in: eef643a3 user: drh tags: trunk)
03:21
Add the "%token" control to the lemon parser. Not currently used by SQLite. (check-in: a6e4c5ae user: drh tags: trunk)
02:46
Faster implementation of resolveP2Values(). (check-in: 82e46fe0 user: drh tags: trunk)
2017-08-01
20:59
Slightly smaller and faster by allocating Parser objects on the stack. (check-in: 436a89b9 user: drh tags: trunk)
19:53
Split the OP_Last opcode into OP_Last and OP_SeekEnd. Use OP_SeekEnd to position a cursor prior to appending. Ticket [cb91bf4290c211d]. (check-in: 3e02474c user: drh tags: trunk)
14:16
Take advantage of atomic-write capabilities in the F2FS filesystem when the database is stored on such a filesystem. This is a compile-time option activated using SQLITE_ENABLE_BATCH_ATOMIC_WRITE. (check-in: 24190b22 user: drh tags: trunk)
13:54
Merge recent enhancements from trunk. (check-in: aafe1fec user: drh tags: begin-concurrent)
13:24
Version 3.20.0 (check-in: 9501e22d user: drh tags: release, branch-3.20, version-3.20.0)
00:20
Allow ATTACH and DETACH inside of a transaction. (check-in: 95e8f316 user: drh tags: trunk)
2017-07-31
20:06
TclKit batch tool updates for MSVC. Cherrypick of [bcec155e0d6c6b17] and [0c77935cf9949099]. (check-in: 96ff1675 user: mistachkin tags: branch-3.20)
19:55
Add documentation file ./README-server-edition.html. (check-in: fbc4f4ad user: dan tags: server-process-edition)
19:39
Recognize 'AMD64' as 'x64' in the TclKit batch tool for MSVC. (check-in: 0c77935c user: mistachkin tags: trunk)
19:34
Sync up the MSVC autoconf makefile. (check-in: 44cebc6e user: drh tags: branch-3.20)
19:26
Sync up the MSVC autoconf makefile. (check-in: b3b89f4f user: mistachkin tags: trunk)
17:51
Fix a windows-compatibility issue in the recently added schema6.test script. (check-in: 14e6c302 user: drh tags: trunk)
17:40
More consistent column names. Cherry-pick of [09834279] and [0c38dde45] as a fix for ticket [de3403bf5ae]. (check-in: be0e24a0 user: drh tags: branch-3.20)
17:06
Prevent OSSFuzz from using debugging pragmas that are disabled in default builds and which generate lots of excess output. (check-in: cdc6494c user: drh tags: trunk)
16:42
Move the generation of output column names earlier, to right after name resolution and before query transformations such as flattening. This prevents the names from getting mangled by query transformations, and obviates hacks in the query flattener that attempt to work around the name mangling. The resulting code is smaller and faster and gives more consistent output. Fix to ticket [de3403bf5ae5f72ed]. (check-in: ade7ddf1 user: drh tags: trunk)
13:22
Use batch atomic writes when running on a recent F2FS filesystem, if compiled with SQLITE_ENABLE_BATCH_ATOMIC_WRITE. (check-in: 2dd0c77d user: drh tags: branch-3.19)
13:11
Move the generation of output column names earlier, to right after name resolution and before query transformations such as flattening. This prevents the names from getting mangled by query transformations, and obviates hacks in the query flattener that attempt to work around the name mangling. The resulting code is smaller and faster and gives more consistent output. This is a fix for ticket [de3403bf5ae5f72ed] and a cherry-pick of check-in [09834279aeca3bda] (check-in: 499942b3 user: drh tags: branch-3.19)
12:19
Correctly handle an "INTEGER PRIMARY KEY UNIQUE" column in a WITHOUT ROWID table. This is a fix for ticket [bc115541132dad136], cherry-picked from check-in [5216bfb73f1a49bdd8] (check-in: 322a2ede user: drh tags: branch-3.19)
12:07
Increase the version number to 3.19.4 (check-in: b77f297d user: drh tags: branch-3.19)
12:04
Merge further enhancements to the batch-atomic-write subsystem. (Leaf check-in: 4be4265d user: drh tags: batch-atomic-write-3.19)
2017-07-30
20:30
Correctly handle an "INTEGER PRIMARY KEY UNIQUE" column in a WITHOUT ROWID table. This is a fix for ticket [bc115541132dad136] cherry-picked from [5216bfb73f1a49bdd]. (check-in: 5c8cb1ff user: drh tags: branch-3.20)
19:50
Add the schema6.test module for demonstrating schemas that generate identical and different content. (check-in: ac1da06a user: drh tags: trunk)
18:40
Correctly handle an "INTEGER PRIMARY KEY UNIQUE" column in a WITHOUT ROWID table. This is a fix for ticket [bc115541132dad136], a problem discovered by OSSFuzz. (check-in: 5216bfb7 user: drh tags: trunk)
2017-07-29
17:10
Merge latest trunk changes with this branch. (check-in: b42c8779 user: dan tags: server-process-edition)
17:02
New test cases for column name generation interacting with the query flattener. (Closed-Leaf check-in: 0c38dde4 user: drh tags: early-column-names)
17:01
Update test program "tserver" to use a native pthreads mutex/condition variable to efficiently manage wal file checkpoints without the wal file growing indefinitely. (check-in: 8299bdb7 user: dan tags: server-process-edition)
16:01
Move the generation of output column names earlier, to right after name resolution and before query transformations such as flattening. This prevents the names from getting mangled by query transformations, and obviates hacks in the query flattener that attempt to work around the name mangling. The resulting code is smaller and faster and gives more consistent output. This is an alternative fix to ticket [de3403bf5ae5f72ed]. (check-in: 09834279 user: drh tags: early-column-names)
14:56
Use the subquery column name, not the original SQL statement text, as the added AS clause in the query flattener. (Closed-Leaf check-in: 5df7f0e6 user: drh tags: flattener-column-names)
03:33
In the query flattener, only add AS clauses to output columns of the outer query that are copied directly from the inner query. Formerly, all columns of the outer query received an AS clause if they did not have one already. This is a proposed fix for ticket [de3403bf5ae5f72]. (check-in: 439cc5c5 user: drh tags: flattener-column-names)
2017-07-28
22:22
Update Tcl version used by the TclKit batch tool for MSVC. (check-in: bcec155e user: mistachkin tags: trunk)
22:13
Fix harmless compiler warning. (check-in: 3286e1a0 user: mistachkin tags: trunk)
21:02
Reduce the number of mallocs required of writers in server mode. (check-in: 60953997 user: dan tags: server-process-edition)
20:49
Disable the writecrash.test module on Windows. (Leaf check-in: 4c0520d4 user: drh tags: batch-atomic-write)
18:16
More precise determination of when an in-memory journal needs to be spilled to disk. (check-in: 6a505bdd user: drh tags: batch-atomic-write)
13:18
Add new extended error codes for the atomic write file-controls. (check-in: 94a20047 user: drh tags: batch-atomic-write)
12:20
Fix a punctuation typo in the documentation for sqlite3_step(). No changes to code. (check-in: c965b757 user: drh tags: branch-3.20)
11:05
Add new test file test/atomic.test. (check-in: f9213e48 user: dan tags: batch-atomic-write)
02:02
Backport of all batch-atomic-write changes through check-in [67bad7fb9b] (check-in: def55027 user: drh tags: batch-atomic-write-3.19)
01:53
Add the SQLITE_ENABLE_BATCH_ATOMIC_WRITE macro to ctime.c (check-in: 67bad7fb user: drh tags: batch-atomic-write)
00:45
Release candidate 3 for 3.20.0 (check-in: d891a2a0 user: drh tags: branch-3.20)
2017-07-27
20:24
Enhance the like optimization so that it works with an ESCAPE clause. (check-in: f5d330f4 user: drh tags: trunk)
19:59
Increase the version number to 3.21.0 in anticipation for changes to go into the next release. (check-in: 0645f25c user: drh tags: trunk)
18:49
Merge the pointer-passing interface changes from the 3.20 branch. (check-in: c63903a4 user: drh tags: trunk)
18:43
Simplified documentation for the pointer passing interface. (check-in: 2dfcd9a8 user: drh tags: branch-3.20)
18:34
Do not set device-capabilities flags SEQUENTIAL or SAFE_APPEND for f2fs file-systems. (check-in: 4477e60c user: dan tags: batch-atomic-write)
17:45
Add destructor functions for the pointer argument (NB: not the type string) to the sqlite3_bind_pointer() and sqlite3_result_pointer() interfaces. Use this new capability to resolve a pointer leak in the custom geometry function mechanism of the RTREE extension. (check-in: 5a2340b8 user: drh tags: branch-3.20)
16:42
In sqlite3_bind_pointer(), invoke the destructor if the bind index is out of range, like sqlite3_bind_blob() does. (Closed-Leaf check-in: d6684d2a user: drh tags: pointer-with-destructor)
15:53
Improved implementation of the destructor on pointer-passing interfaces. (check-in: 601ad679 user: drh tags: pointer-with-destructor)
14:04
A demonstration of how FTS3 cursor pointers can be passed from the MATCH operator to the snippet() function securely and opaquely without having to use the sqlite3_result_pointer() and sqlite3_value_pointer() interfaces. (Closed-Leaf check-in: 49cf31da user: drh tags: pass-pointer-as-blob)
03:48
Add a destructor argument to sqlite3_bind_pointer() and sqlite3_result_pointer(). (check-in: 3d9e841f user: drh tags: pointer-with-destructor)
00:27
Do now allow the geometry object in the right operand of a MATCH operator in the RTREE extension to be inpersonated by a BLOB literal. (check-in: 24c9cd46 user: drh tags: branch-3.19)
2017-07-26
19:59
Add the new sqlite3.mDbFlags field. Factor out bits of sqlite3.flags that do not interact with PRAGMA statements into sqlite3.mDbFlags. (check-in: 3808a00f user: drh tags: trunk)
18:26
Allow ATTACH and DETACH to occur inside of a transaction. (Closed-Leaf check-in: ac1fd6be user: drh tags: attach-in-trans)
10:04
Fix a comment on the UnpackedRecord.r1 and UnpackedRecord.r2 fields. No changes to code. (check-in: 622b1089 user: drh tags: trunk)
2017-07-25
15:12
Release candidate 2 for 3.20.0. (check-in: f39cb76b user: drh tags: branch-3.20)
01:34
Fix a bug in the deterministic date/time function logic that can only appear with STAT3 or STAT4. (check-in: 1ca707a4 user: drh tags: trunk)
2017-07-24
20:01
Do not attempt to run test file unionvtabfault.test with SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 1a632a9a user: dan tags: trunk)
19:43
Update this branch with latest changes from trunk. (check-in: d0719ad7 user: dan tags: server-process-edition)
19:25
Do not attempt to run test file unionvtab.test with SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 9a5a3d60 user: dan tags: trunk)
19:23
Only open a db in server-mode if there is a directory named "db-journal" in the file-system and the VFS is an exclusive locking VFS. (check-in: e77d29f6 user: dan tags: server-process-edition)
17:37
Handle a real OOM condition when incrblob2.test is run on a low-memory machine. (check-in: f483d06a user: drh tags: trunk)
15:29
Additional documentation on sqlite3_bind_pointer() and sqlite3_result_pointer(). No changes to code. (check-in: b1572d4e user: drh tags: trunk)
14:44
Compiler warning fix associated with date/time functions. (check-in: a98f07d9 user: drh tags: trunk)
2017-07-22
20:12
Add a test for the outcome of a process crash within an xWrite VFS method call. (check-in: eb871800 user: dan tags: batch-atomic-write)
16:58
Add the "atomic-batch-write" permutation to permutations.test. This permutation fails if not run on a file-system that supports atomic-batch-writes. (check-in: 9f1b83fa user: dan tags: batch-atomic-write)
16:32
Keep batch-atomic-writes turned on for journal_mode=MEMORY, but turn them off for synchronous=OFF. Refuse to compile with both SQLITE_MMAP_READWRITE and SQLITE_ENABLE_BATCH_ATOMIC_WRITE. Fix up some comments in the commit logic. (check-in: 2e80e19e user: drh tags: batch-atomic-write)
16:00
Omit unused batch-atomic-write code if SQLITE_ENABLE_BATCH_ATOMIC_WRITE is not defined. (check-in: a89b62c4 user: drh tags: batch-atomic-write)
2017-07-21
21:06
Use ioctl(F2FS_IOC_GET_FEATURES) to determine whether or not atomic batch writes are available. (check-in: 532bbf1f user: dan tags: batch-atomic-write)
20:31
Remove stray (and incomplete) comment from a test file. No changes to code. (check-in: 8de20fc7 user: mistachkin tags: trunk)
20:29
Fix typo in comment. No changes to code. (check-in: 65ec077b user: mistachkin tags: batch-atomic-write)
14:49
Additional documentation on the new VFS interface. No changes to code. (check-in: 83077ec8 user: drh tags: batch-atomic-write)
07:56
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. This changes is a cherry-pick of [f0f49224] via [69906880cee] and is ultimately inspired by check-in [72de49f2]. (check-in: 8201f4e1 user: drh tags: branch-3.18)
07:45
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. This changes is a cherry-pick of [f0f49224] with version-specific edits. That check-in was inspired by check-in [72de49f2]. (check-in: 69906880 user: drh tags: branch-3.9.2)
04:08
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. This is a cherry-pick of [f0f49224] which was in turn inspired by [72de49f2]. (Leaf check-in: 5a3022e0 user: drh tags: branch-3.8.10)
03:23
Add new interfaces sqlite3_result_pointer(), and sqlite3_value_pointer() and use them to transfer the eponymous FTS3 column pointer to the snippet() and offsets() routines. This is a cherry-pick of [f0f492245e95], which is in turn inspired by check-in [72de49f2]. (Leaf check-in: a66a5b39 user: drh tags: branch-3.8.6)
2017-07-20
21:18
Add the documentation text for the new VFS interfaces used by batch-atomic writes. (check-in: 5e944eea user: drh tags: batch-atomic-write)
21:01
Transform two #ifdef statements into #if statements. (check-in: f2c6b584 user: drh tags: batch-atomic-write)
21:00
Split SQLITE_ENABLE_ATOMIC_WRITE into two options - the original and SQLITE_ENABLE_BATCH_ATOMIC_WRITE. (check-in: 7eb9bf2c user: dan tags: batch-atomic-write)
20:49
Fix a harmless typo, but one that would show up in the documentation if not fixed. (check-in: e4b1dd36 user: drh tags: trunk)
19:49
Add support for F2FS atomic writes. Untested at this point. (check-in: 416973ed user: dan tags: batch-atomic-write)
19:28
Minor fix to the concurrent.test module so that it works on windows. (check-in: 58553d61 user: drh tags: begin-concurrent)
19:08
Fix compiler warnings. (check-in: 44c760d1 user: drh tags: begin-concurrent)
18:56
Fix a faulty #ifdef on the previous check-in (check-in: 7355e742 user: drh tags: begin-concurrent)
18:28
Get the build working with SQLITE_OMIT_CONCURRENT. (check-in: a29401e9 user: drh tags: begin-concurrent)
17:47
Merge all the latest trunk enhancements. (check-in: 213c61cb user: drh tags: begin-concurrent)
16:55
Experimental API sqlite3_stmt_refresh() to force a prepared statement to recompile if it needs to due to a schema change or other factor. (Leaf check-in: 10556ee4 user: drh tags: sqlite3_stmt_refresh)
15:08
Enhance the built-in date/time functions so that they can be used in CHECK constraints, in the WHERE clause or partial indexes, and index expressions, provided that none of the non-deterministic keywords ("now", "localtime", "utc") are used as arguments. (check-in: a90c062d user: drh tags: trunk)
14:36
New test cases for date/time functions in indexes on expressions, in the WHERE clause of partial indexes, and in CHECK constraints. (Closed-Leaf check-in: b7f70c7f user: drh tags: index-on-date-func)
13:17
Combine the Parse.ckBase and Parse.iSelfTab fields into just Parse.iSelfTab. This fixes a problem with date/time functions in check-constraints. Add some test cases for date/time functions in index expressions and check constraints. (check-in: 22eda098 user: drh tags: index-on-date-func)
2017-07-19
19:48
Allow indexes to be created on date/time functions as long as the 'now' date and the 'localtime' and 'utc' modifiers are not used. (check-in: 0a5e1c04 user: drh tags: index-on-date-func)
18:54
Merge latest trunk changes with this branch. (check-in: be0df0a6 user: dan tags: server-process-edition)
18:01
Remove some 'breakpoint' commands in test files. (check-in: d14fc621 user: mistachkin tags: trunk)
17:12
Create "pure" versions of the date/time functions that omit the 'now' feature and are therefore deterministic and usable in an index. (Closed-Leaf check-in: 55791928 user: drh tags: pure-date-functions)
11:52
Add further tests to unionvtab.test. (check-in: c93284cd user: dan tags: trunk)
11:20
Add VFS interfaces needed to make use of batch atomic write capabilities in the underlying filesystem. (check-in: 929bc46b user: drh tags: batch-atomic-write)
2017-07-18
21:19
Fix a crash in unionvtab caused by a misconfiguration. Add other test cases for the same. (check-in: 255d6b99 user: dan tags: trunk)
20:59
Fix shell.c.in so that it aligns with shell.c. (check-in: 505fdc8f user: drh tags: trunk)
20:49
Add test cases and fix minor error-handling issues in unionvtab.c. (check-in: deadaad2 user: dan tags: trunk)
20:30
Fix duplicate test name. No changes to code. (check-in: 47b80ecc user: mistachkin tags: trunk)
20:28
Fix another harmless compiler warning. Get the MSVC makefile working with unionvtab. (check-in: d49639c2 user: drh tags: trunk)
20:22
Suppress harmless compiler warnings in union-vtab. (check-in: 4d147a1e user: drh tags: trunk)
20:17
Remove an unused variable from unionvtab.c. (check-in: a447fdf1 user: dan tags: trunk)
20:03
Improve the readability of the unionvtab code. (check-in: 5bcf0f86 user: dan tags: trunk)
19:51
Have unionvtab support constraints on the column that corresponds to the INTEGER PRIMARY KEY field of the underlying source tables in the same way as rowid. (check-in: 4a6c416f user: dan tags: trunk)
18:50
Add test cases to unionvtab.test. (check-in: 6c9128e1 user: dan tags: trunk)
18:19
Add the union-vtab extension - still experimental and under active development. (check-in: 948f9504 user: drh tags: trunk)
17:34
Do not use the flattening optimization for a sub-query on the RHS of a LEFT JOIN if that subquery reads data from a virtual table. Because it prevents the planner from creating an automatic index on the results of the sub-query, the flattening optimization sometimes slows things down in this case. (check-in: 9dbae1df user: dan tags: trunk)
17:13
Avoid creating an automatic index on the RHS of a LEFT JOIN to optimize an IS term. Fix for [ce68383b]. (check-in: d2f0b2e8 user: dan tags: trunk)
14:41
Change the default command-line shell history depth to 2000 lines. (check-in: 0b69aa7e user: drh tags: trunk)
2017-07-17
21:03
Add test cases to test/unionvtab.test. (Closed-Leaf check-in: f2c4a584 user: dan tags: union-vtab)
20:25
Enhance error detection and fix other issues in unionvtab code. (check-in: 9c3f1b9a user: dan tags: union-vtab)
20:21
Merge all the latest fixes and enhancements from trunk. (check-in: e181225d user: drh tags: apple-osx)
18:45
Merge all changes from branch-3.20. Improvements to the fts5() extension interface. Work around a gcc/valgrind bug in the sqlite3_value_pointer() interface. (check-in: e0aca7d2 user: drh tags: trunk)
17:46
Interchange to branches within an "if" statement in sqlite3_value_pointer() in order to work around a bug in gcc. (Closed-Leaf check-in: 8a606e4a user: drh tags: branch-3.20)
15:38
Improved the interface to the fts5() extension mechanism for enhanced security. (check-in: bc78235f user: drh tags: branch-3.20)
13:37
Merge the pointer-type enhancement from the 3.20 branch. (check-in: 9e8e1c4a user: drh tags: trunk)
12:41
Comment changes clarifying details of the pointer-type parameter. No changes to code. (check-in: e4579e50 user: drh tags: branch-3.20)
12:27
Add the pointer-type parameter to sqlite3_bind_pointer(), sqlite3_result_pointer(), and sqlite3_value_pointer(). The pointer type is a static string that must match (according to strcmp()) or else the pointer is passed as a NULL. This is a security measure to prevent crossing pointers between different extensions. (check-in: e1196567 user: drh tags: branch-3.20)
11:39
Improve the sqlite3_result_pointer() interface so that it cannot be faked using sqlite3_result_null() and sqlite3_result_subtype(). (Closed-Leaf check-in: c13264d5 user: drh tags: pointer-types)
09:30
Use integer handles for fts3 cursors for a small performance improvement. (Closed-Leaf check-in: f4f7196b user: dan tags: union-vtab, fts3-int-cursor)
00:40
Add an experimental "pointer type" parameter to sqlite3_bind_pointer(), sqlite3_result_pointer(), and sqlite3_value_pointer(). The pointer type is a string that must compare equal using strcmp() or else the pointer comes through as a NULL. (check-in: 211cce04 user: drh tags: pointer-types)
2017-07-15
20:48
Add the "unionvtab" virtual table extension in ext/misc/unionvtab.c. (check-in: 62a86aa6 user: dan tags: union-vtab)
20:44
Merge the fix for ticket [a4e06e75a9ab61a12] from trunk. (check-in: b64d64c8 user: drh tags: branch-3.20)
20:33
Fix a register allocation problem in PRAGMA integrity_check that caused the same register to be used for two different purposes on the first ATTACHed database if the schema for the ATTACHed database was noticable more complex than the schema for the first database. Fix for ticket [a4e06e75a9ab61a1]. (check-in: 253945d4 user: drh tags: trunk)
20:25
Fix a missing \n at the end of a comment causing a line to be too long. No code changes. (check-in: 687bd478 user: drh tags: trunk)
17:57
Enhance the showstat4 utility program to show the full precision of floating point values in sqlite_stat4 tables. (check-in: 5ec37c62 user: drh tags: trunk)
13:49
Minor change to one of the command-line shell test scripts to make that script compatible with Tcl 8.5. (check-in: 47cf83a0 user: drh tags: branch-3.20)
13:35
First release candidate for version 3.20.0. (check-in: 035a86ec user: drh tags: branch-3.20)
10:44
Add new interfaces sqlite3_bind_pointer(), sqlite3_result_pointer(), and sqlite3_value_pointer() used to safely move pointer values through SQL without exposing underlying memory address information. (Leaf check-in: d6a44b35 user: drh tags: branch-3.17)
08:02
Fix another minor problem in test file like.test. (check-in: 0953e746 user: dan tags: trunk)
06:35
Fix test problems causing the "prepare" permutation test to fail. (check-in: b61cc5a0 user: dan tags: trunk)
2017-07-14
20:53
Fix test problems with stmtvtab1.test under some permutations. (check-in: ad6699d4 user: dan tags: trunk)
19:52
Fix a typo in a comment used to generate documentation. No code changes. (check-in: 65f9f29c user: drh tags: trunk)
19:47
Identify requirements text in the SQLITE_DBCONFIG_ENABLE_QPSG documentation. Add some implementation marks for SQLITE_DBCONFIG_MAINDBNAME requirements. No code changes. (check-in: ab165dcf user: drh tags: trunk)
19:22
Add requirements marks for some of the new features in the 3.20 release. (check-in: 26423867 user: drh tags: trunk)
19:12
Tweak Makefile.in so that testfixture can be built with the --disable-amalgamation configure switch. (check-in: 394c6f4f user: dan tags: trunk)
17:50
Modify mkopcodeh.tcl so that it can handle "same as" opcodes with values larger than the total number of opcodes. (check-in: 1eb56fe0 user: dan tags: trunk)
15:57
In the LSM1 virtual table, dequote the filename before opening the file. (check-in: 6ed4ef03 user: drh tags: trunk)
15:45
Changes to the LSM1 Tcl tests to make things work on Win32. (check-in: 7dc5e70e user: mistachkin tags: trunk)
15:42
Include a hint in the header comment of the LSM1 makefile about how to set the LSMOPTS variable. (check-in: b5e3b264 user: drh tags: trunk)
15:32
Update the Makefile for LSM1 so that the LSMOPTS can be set prior to including the Makefile, in order to add platform arguments such as -fPIC. (check-in: fe319bcd user: drh tags: trunk)
15:18
Fix a typo in the header comment to the remember extension. No code changes. (check-in: 604b9664 user: drh tags: trunk)
15:14
Change the name of the STMT virtual table to SQLITE_STMT. Also remove the first column of that virtual table, which was a pointer leak. (check-in: 1bc4e934 user: drh tags: trunk)
13:24
Minor updates to requirements marks and documention. No changes to code. (check-in: 8f6dd5e2 user: drh tags: trunk)
11:40
Add very simple tcl tests for the lsm1 extension. (check-in: 5e0a9793 user: dan tags: trunk)
08:15
Add simple tests for "PRAGMA freelist_format". (check-in: 98a36f4c user: dan tags: server-process-edition)
04:16
Minor tweaks to documentation. No code changes. (check-in: d8cd0434 user: drh tags: trunk)
00:28
Fix harmless compiler warnings in the readline tab-completion logic of the command-line shell. (check-in: 271ca4ac user: drh tags: trunk)
2017-07-13
22:39
Improved documentation for the new sqlite3_bind_pointer() interface and its cousins. (check-in: 889968bd user: drh tags: trunk)
22:03
Improvements to the documentation for SQLITE_PREPARE_PERSISTENT. No code changes. (check-in: 26577814 user: drh tags: trunk)
21:06
Make the freelist format a separate feature from the page-level locking. Freelist format is now configure using "PRAGMA freelist_format". (check-in: dcc40797 user: dan tags: server-process-edition)
20:11
Fix documentation typo. No changes to code. (check-in: 9319f7b7 user: drh tags: trunk)
19:11
Update header comments on the carray() and remember() extensions to bring out the fact that the pointer arguments must be bound using sqlite3_bind_pointer(). (check-in: 55f53965 user: drh tags: trunk)
18:09
Add new interfaces sqlite3_bind_pointer(), sqlite3_result_pointer(), and sqlite3_value_pointer() used to safely move pointer values through SQL without exposing underlying memory address information. (check-in: 72de49f2 user: drh tags: trunk)
17:56
Fix an incorrect type signature for the loadable extension pointer for sqlite3_result_pointer(). (Closed-Leaf check-in: 0bd7875b user: drh tags: bind-pointer)
17:54
Add the three new pointer interfaces to the loadable extension mechanism. Update sqlite3_value_subtype() documentation to remove the statement about it not being used internally. (check-in: e5a51803 user: drh tags: bind-pointer)
17:48
Update the FTS3 extension to use sqlite3_result_pointer() and sqlite3_value_pointer() for passing FTS3 cursor objects from the table into functions such as snippet(). (check-in: 0fa2e170 user: drh tags: bind-pointer)
17:34
Merge the latest changes from trunk. (check-in: a54be6e0 user: drh tags: bind-pointer)
2017-07-12
20:43
Smaller and faster implementation for vdbeFreeOpArray() and freeP4(). (check-in: 0c805935 user: drh tags: trunk)
18:05
Fix harmless compiler warnings about incomplete structure initializers. (check-in: 604c11d1 user: drh tags: trunk)
17:26
Remove unnecessary EP_Leaf settings on the Expr object. (check-in: f951c8b7 user: drh tags: trunk)
17:08
The EP_Resolved flag on the Expr object is not required for correctness nor performance, so remove it. (check-in: 54f55d3b user: drh tags: trunk)
14:10
Clarification and simplification and result column naming logic. (check-in: 68824a43 user: drh tags: trunk)
14:03
Fix a problem in an lsmtest test case caused by writing data in "text" mode instead of "binary". (check-in: 3e56a79a user: dan tags: trunk)
12:19
Compile cleanly with SQLITE_OMIT_UTF16. (check-in: 783100b8 user: drh tags: trunk)
2017-07-11
20:36
In lsm, attempt to unmap the database file before truncating it when disconnecting. A mapped file may not be truncated on win32. (check-in: 39069941 user: dan tags: trunk)
19:55
Simplify the way in which the database file is truncated when the last connection disconnects. Also ignore the error code from the xTruncate call - as truncating a database file is always optional. (check-in: b0a49d90 user: dan tags: trunk)
18:38
Add SQL function usleep() to test program tserver.c. (check-in: 8cbe8f2b user: dan tags: server-process-edition)
18:11
Fix harmless compiler warnings in the core. (check-in: 55e93f25 user: drh tags: trunk)
17:54
Make win32GetTimeOfDay() in the lsm1 test code more portable. (check-in: 2fe3a843 user: mistachkin tags: trunk)
17:28
Enabled the new sqlite3_prepare_v3() and sqlite3_prepare16_v3() interfaces for loadable extensions. (check-in: b9debd62 user: drh tags: trunk)
17:06
Fix a whitespace alignment issue in lsm1. (check-in: a8e651e0 user: mistachkin tags: trunk)
16:47
Fix a bug causing readonly mvcc connections to read the wrong cache entry in some cases. (check-in: b6157267 user: dan tags: server-process-edition)
16:46
Fix more harmless compiler warnings in lsm1, seen with MSVC 2015. (check-in: 0f1307f1 user: mistachkin tags: trunk)
16:36
Fix harmless compiler warnings seen with MSVC for lsm1. (check-in: cf6da4a5 user: mistachkin tags: trunk)
13:59
Add support for tab-completion (using the ext/misc/completion.c virtual table) to the command-line shell. (check-in: 95cd1d9f user: drh tags: trunk)
13:34
Change the src/shell.c file so that it is generated from a new script at tool/mkshellc.tcl and the template file src/shell.c.in, and automatically includes the extensions it needs out of ext/misc. (check-in: 17e0bb12 user: drh tags: trunk)
02:53
Fix a backup2 test case so that it works on FreeBSD. (check-in: 724819b4 user: drh tags: trunk)
02:05
Add the "phase" output column on the COMPLETION table-valued function, for debugging. Improved comments on the implementation. (check-in: 0e213555 user: drh tags: trunk)
01:38
The COMPLETION virtual table now looks at the names of databases, tables, and columns in addition to SQL keywords. (check-in: 1cc97711 user: drh tags: trunk)
00:09
Incomplete implementation of the COMPLETION table-valued function. So far it only works for SQL keywords. (check-in: caefbc72 user: drh tags: trunk)
2017-07-10
21:32
Fix harmless compiler warnings in lsmtest. (check-in: bd8a1fb9 user: mistachkin tags: trunk)
20:39
Fix errors in comments in the STMT virtual table. No code changes. (check-in: 9a8f045d user: drh tags: trunk)
20:33
Minor cleanup and refactoring of the Win32 VFS for lsm1. (check-in: bf7eda67 user: mistachkin tags: trunk)
19:54
Another spelling error in the README.md file. (check-in: 05129374 user: drh tags: trunk)
19:08
Spelling error in README.md (check-in: 12bc47c5 user: drh tags: trunk)
19:07
Yet another typo in README.md (check-in: 75c9327b user: drh tags: trunk)
19:05
Fix another README.md typo. (check-in: 20b1f0ef user: drh tags: trunk)
19:03
Fix an obsolete statement about Lemon in the README.md file. (check-in: 4f6ce7a3 user: drh tags: trunk)
18:57
Cleanup header usage in lsmtest for files that require _O_BINARY. (check-in: f3a6a64e user: mistachkin tags: trunk)
18:52
Updates to the repository README.md file. (check-in: 7bfd3ab7 user: drh tags: trunk)
18:33
In LSM, avoid calling the VFS xTestLock method to test for a lock that conflicts with one held by the same process. The results of such a call are considered undefined (since they are different under win32 and posix). (check-in: a82a9bea user: dan tags: trunk)
18:04
Add the "--newlines" option to the ".dump" command in the shell to disable the newline escaping mechanism. (check-in: bde431b1 user: drh tags: trunk)
17:00
When multiple constraints need to be evaluated for a row, do any constraints that involve correlated subqueries last. Hence, the priority is index-covered constraints first, correlated subquery constraints last, and all others in the middle. This is a follow-on and improvement to the push-down optimization of check-in [d7bb79ed]. (check-in: c4cb9048 user: drh tags: trunk)
16:38
Additional debugging Noop-comment in the constraint generator when wheretrace is enabled. (Closed-Leaf check-in: 0ca7474f user: drh tags: defer-where-subqueries)
15:26
Small performance optimization in sqlite3WhereExprUsage(). (check-in: 38edc677 user: drh tags: defer-where-subqueries)
15:17
Fix another problem on this branch. (check-in: a4fc9811 user: dan tags: defer-where-subqueries)
14:39
Fix a problem causing non-covered WHERE terms to be evaluated before covered WHERE terms. (check-in: 7d3cb39f user: dan tags: defer-where-subqueries)
14:33
When testing non-indexed WHERE constraints, test those that involve correlated sub-queries last of all. This increases the chances of not having to run the sub-query at all. (check-in: 1f9c1f35 user: dan tags: defer-where-subqueries)
13:24
For sqlite3TreeView() debugging output, show the Expr.flags field on scalar subqueries. (check-in: dc857a96 user: drh tags: trunk)
12:07
Update error message text for standard error codes to better describe the latest usage of those error codes. Modify sqlite3_open_v2() so that it does return a valid sqlite3 object in the event of SQLITE_MISUSE due to bad open flags, so that sqlite3_errmsg() does not report "out of memory" in that case. (check-in: f27b6370 user: drh tags: trunk)
11:17
Remove the error message text from disused error codes such as SQLITE_EMPTY and SQLITE_FORMAT. (check-in: 871752f2 user: drh tags: trunk)
2017-07-09
18:55
Always make "column%d" column-names 1-based, never 0-based. (check-in: 70096c50 user: drh tags: trunk)
00:30
Make sure the columns of a VALUES() clause are named "column%d" even if the VALUES() clause is a subquery in the FROM clause of an outer query. (check-in: acf3b9cc user: drh tags: trunk)
2017-07-08
22:30
Add the --icc, --gcc7, and --orm options to the speed-check.sh test script. (check-in: 70dae08a user: drh tags: trunk)
20:46
Support read-only MVCC transactions in server-mode. Started using "BEGIN READONLY". (check-in: 5a043aa8 user: dan tags: server-process-edition)
18:27
Disable compiler intrinsics when using the Intel C Compiler. (Leaf check-in: dbb59f61 user: drh tags: icc-fix)
2017-07-07
22:58
Merge in all the latest trunk enhancements. (check-in: 7f48f6ab user: drh tags: apple-osx)
22:47
Basic test cases for PRAGMA secure_delete=FAST. (check-in: 0c246017 user: drh tags: trunk)
22:39
Fix test cases in wal2.test due to the fact that Darwin checks to see if the SHM file is writable before attempting to open in read/write. (check-in: 6b618b18 user: drh tags: apple-osx)
21:20
Fix comment in the Win32 VFS for lsm1. (check-in: 12a421bc user: mistachkin tags: trunk)
21:15
For lsmtest, use a more portable means of setting open() files to binary. (check-in: aea6e0ff user: mistachkin tags: trunk)
20:35
Adjust copy_file() lsmtest function so it works properly for locked database files on Win32. (check-in: 54a38555 user: mistachkin tags: trunk)
20:33
Avoid even trying to open a SHM file read/write in WAL mode if we know that the file is read-only. This avoids scare security log messages. (check-in: d9d92781 user: drh tags: apple-osx)
20:06
Add the "PRAGMA secure_delete=FAST" option, which overwrites most deleted content without increasing the amount of I/O. Deleted content might persist on the free page list, however. And extra CPU cycles are used for zeroing, of course. (check-in: 38978ce6 user: drh tags: trunk)
19:43
Change the error message text for SQLITE_ERROR to omit the part about "missing database" as that meaning is now obsolete (since approx SQLite 2.0). (check-in: 732f90d6 user: drh tags: trunk)
19:22
Fix typos in Win32 VFS for lsm1. (check-in: 0961ec87 user: mistachkin tags: trunk)
19:12
Fix the memcpy calls in the lsmWin32OsShmMap function for lsm1. (check-in: aa4890b9 user: mistachkin tags: trunk)
19:02
Enhance the MSVC makefile 'clean' target to handle lsm1. (check-in: 2d6faebc user: mistachkin tags: trunk)
18:31
Add support for LSM_DEBUG to the MSVC makefile for lsm1. (check-in: 277a7fed user: mistachkin tags: trunk)
18:06
In the command-line shell, when running ".schema" give a sensible error when the database file is locked. (check-in: cc329eb8 user: drh tags: trunk)
17:57
Fix the usleep() macro in the Win32 test code for lsm1. (check-in: 63599fa5 user: mistachkin tags: trunk)
17:43
Add new PRAGMAs: "function_list", "module_list", and "pragma_list". All are enclosed within #ifdef SQLITE_INTROSPECTION_PRAGMAS. The compile-time option is not on ctime.c yet, since these are still experimental and one can always test "PRAGMA pragma_list" and see whether or not it returns an empty set. (check-in: e0b6ae92 user: drh tags: trunk)
17:33
Add the "Pragma_list" pragma. Put all three pragmas created on this branch inside of #ifdef SQLITE_INTROSPECTION_PRAGMAS. (Closed-Leaf check-in: 2f3c3781 user: drh tags: list-pragmas)
16:46
Improve clarity in the Win32 VFS for lsm1. (check-in: 9c7a9e80 user: mistachkin tags: trunk)
16:40
Merge latest trunk changes with this branch. (check-in: 216c757f user: dan tags: server-process-edition)
16:29
Add support for LSM_DEBUG_MEM to the MSVC makefile for lsm1. (check-in: 3340de83 user: mistachkin tags: trunk)
16:27
Remove a block from the Win32 VFS for lsm1 that is now superfluous. (check-in: 5f726f28 user: dan tags: trunk)
16:12
Have this branch maintain an in-memory hash-table of old pages for read-only MVCC clients. There is no way to access it yet. (check-in: a3a9a2e1 user: dan tags: server-process-edition)
16:09
In lsmtest, use an empty string instead of ":memory:" when requesting a temporary database from SQLite. This prevents other test code from trying to unlink() ":memory:", which fails on win32. (check-in: 281ad505 user: dan tags: trunk)
16:07
Remove a block from the Win32 VFS for lsm1 that is now superfluous. (check-in: db4a4140 user: mistachkin tags: trunk)
16:06
Memory reallocation fix for the Win32 VFS for lsm1. (check-in: 5a3140e4 user: mistachkin tags: trunk)
16:00
Enhance the sqlite3VdbeMultiLoad() interface to automatically generate the OP_ResultRow opcode on PRAGMA implementations, for a small reduction in the library footprint. (check-in: c46f0f07 user: drh tags: trunk)
15:43
Add new pragmas: "function_list" and "module_list" (check-in: e5f01d7f user: drh tags: list-pragmas)
14:54
Fix an obsolete comment on the sqlite3_namelist() function implementation. (Closed-Leaf check-in: f4229857 user: drh tags: experimental-namelist)
14:26
Merge recent enhancements from trunk. (check-in: 73d0fc02 user: drh tags: bind-pointer)
13:59
Exploit the fact that Expr.pRight and Expr.x are never used at the same time for a small performance gain. (check-in: aacbb9a4 user: drh tags: trunk)
12:58
More efficient and compact implementation of walkExpr(). (check-in: 115d4b83 user: drh tags: trunk)
12:43
More aggressive use of EP_Leaf on expression nodes, to help prune searches. (check-in: c1a1d68c user: drh tags: trunk)
11:49
Very slightly smaller and faster sqlite3WalkSelect(). (check-in: 9bc65635 user: drh tags: trunk)
2017-07-06
22:43
Small adjustment to main.mk that facilitates giving non-standard compile-time options to the shell. (check-in: 7c7d53a9 user: drh tags: trunk)
22:40
Always load the schema before starting tab-completion. (check-in: 907fd3aa user: drh tags: experimental-namelist)
20:08
Tab-completion now also works using readline/editline. (check-in: c906739f user: drh tags: experimental-namelist)
19:26
Use the sqlite3_namelist() interface to implement simple tab-completion using linenoise. (check-in: 5cc7b0e2 user: drh tags: experimental-namelist)
18:52
Change the sqlite3_namelist() interface to return a pointer to an array of pointers to strings, and to avoid duplicates. (check-in: 70291110 user: drh tags: experimental-namelist)
18:25
The sqlite3_namelist() routine now works for all name types. (check-in: e41d6217 user: drh tags: experimental-namelist)
17:36
Initial implementation of a highly experimental interface for listing all keywords and symbolic names for an SQLite database connection. (check-in: 04ef6783 user: drh tags: experimental-namelist)
16:33
Change the (machine-generated) keywordhash.h file to increase the scope of the tables used for keyword matching, so that the tables are accessible to functions other then keywordCode(). (check-in: c5ed5ebd user: drh tags: trunk)
13:51
More compact implementation of the typeof() SQL function. (check-in: efb4aab0 user: drh tags: trunk)
13:23
Avoid unnecessary upper-to-lower case conversion for function names when registering the built-in functions. (check-in: 06269257 user: drh tags: trunk)
03:06
Small size reduction in findCollSeqEntry(). (check-in: 55ecd303 user: drh tags: trunk)
02:49
Avoid unnecessary calls to sqlite3GetCollSeq() for a small performance gain. (check-in: 503ba172 user: drh tags: trunk)
01:28
Slightly more compact implementation of the byte-code generator for the COMMIT and ROLLBACK commands. (check-in: 4da663d9 user: drh tags: trunk)
01:02
Small performance increase in sqlite3SrcListAppend(). (check-in: 7b2623f1 user: drh tags: trunk)
2017-07-05
23:33
Make the hash table implementation a little smaller and faster. (check-in: f762f1ef user: drh tags: trunk)
18:48
Have fts3 virtual table cursors free internal resources when they reach EOF, instead of waiting until the xClose method is called. (check-in: b6b14ab6 user: dan tags: trunk)
14:29
Fix a problem in lsmtest causing one test to fail for multi-threaded LSM connections. (check-in: 2bce64c8 user: dan tags: trunk)
2017-07-04
19:34
Add the count-of-view optimization when compiled using SQLITE_COUNTOFVIEW_OPTIMIZATION. (check-in: d1ba2002 user: drh tags: trunk)
19:23
Fix further OOM handling cases in LSM. (check-in: ca757c86 user: dan tags: trunk)
17:25
Fix a couple of problems in handling OOM conditions within LSM. (check-in: 989a5c17 user: dan tags: trunk)
12:50
Fix a problem in the lempar.c Lemon template for YYSTACKDEPTH<=0 introduced by check-in [36e54cd8b1fb37] (check-in: 268a40f4 user: drh tags: trunk)
2017-07-03
21:09
Fix compiler warnings in LSM1, especially in the test logic. (check-in: 9bd3be92 user: drh tags: trunk)
20:19
Fix a bug in lsm queries on levels undergoing incremental an merge that contain range-delete markers. (check-in: b2c24879 user: dan tags: trunk)
17:37
Attempt to improve documentation on sqlite3_column_ and sqlite3_value_ interfaces. (check-in: 9111ac69 user: drh tags: trunk)
09:00
Add more tests for LSM log file recovery. Fix a problem in recovering log files that contain range deletes. (check-in: e34eafd4 user: dan tags: trunk)
2017-07-01
20:59
Fix a memory management problem in lsm log recovery code. (check-in: dd55af30 user: dan tags: trunk)
15:21
Enhance the RTree module to detect node truncation early and report an error. (check-in: 66de6f4a user: drh tags: trunk)
2017-06-30
23:46
Update the carray() and remember() extension functions so that they user the new sqlite3_value_pointer() interface. (check-in: a99fa94d user: drh tags: bind-pointer)
23:09
Add APIs for binding pointers that can be used by app-defined functions. (check-in: d9f4a831 user: drh tags: bind-pointer)
20:11
Improved documentation for sqlite3_value_type(). (check-in: 0db20efe user: drh tags: trunk)
19:22
Add some assert() statements in the Win32 interface for lsm1. (check-in: d076d58f user: mistachkin tags: trunk)
18:12
Fix some minor typos in lsm1. (check-in: 0ef777d7 user: mistachkin tags: trunk)
11:44
Avoid constantly freeing and reallocing small internal buffers associated with LSM cursors. Instead, allow them to persist for the lifetime of the cursor if they are LSM_SEGMENTPTR_FREE_THRESHOLD (default 1024) bytes or smaller. This change is based on research by Martijn Blaauw. (check-in: bacfe8cb user: dan tags: trunk)
2017-06-29
21:33
In the command-line shell, add the -quote option to start up in quote mode. Enhance the ".mode" command so that it reports the current output mode if given no arguments. (check-in: 5e3f9ea5 user: drh tags: trunk)
21:11
Remove the ".explain" command from the ".help" output of the command-line shell, though keep the implementation around for backwards compatibility. (check-in: 7782c04e user: drh tags: trunk)
20:31
Some simple tests for the STMT virtual table. (check-in: a26e17ee user: drh tags: trunk)
20:23
Avoid reading or writing the 32 locking bytes at the end of the first meta-page of an LSM database. (check-in: 3ed6877f user: dan tags: trunk)
20:13
Avoid reading or writing the 32 locking bytes at the end of the first meta-page of an LSM database. (Closed-Leaf check-in: 2b5df3e8 user: dan tags: lsm-metapage-fix)
19:08
Fix issues in the POSIX and Win32 interfaces for lsm1. (check-in: 38ec4141 user: mistachkin tags: trunk)
17:27
Edit comments in sqlite.h.in used for generating documentation, to improve the description of the new sqlite3_prepare_v3() interfaces, and other miscellaneous cleanup. No changes to executable code. (check-in: 284707a7 user: drh tags: trunk)
16:51
More updates to the Win32 interface for lsm1. (check-in: cae64769 user: mistachkin tags: trunk)
15:57
Correct typo in the Win32 interface for lsm1. (check-in: 1b4facb1 user: mistachkin tags: trunk)
15:24
Add interfaces sqlite3_prepare_v3() and sqlite3_prepare16_v3() with the extra prepFlags argument. Add the SQLITE_PREPARE_PERSISTENT option as one bit in that argument. Use the new option in FTS3, FTS5, and RTREE. (check-in: 03977248 user: drh tags: trunk)
15:13
Further corrections to the Win32 interface for lsm1. (check-in: 4df6e247 user: mistachkin tags: trunk)
14:33
Rename the "stmts" virtual table to just "stmt" without the final "s". (check-in: adfdb801 user: drh tags: trunk)
14:17
A couple fixes for the Win32 interface for lsm1. (check-in: ebbd98e9 user: mistachkin tags: trunk)
13:41
Add the stmts virtual table to testfixture builds. Add new compile-time options SQLITE_ENABLE_QPSG and SQLITE_ENABLE_STMTSVTAB to ctime.c (check-in: 60c62829 user: drh tags: trunk)
13:35
Compilation fix for lsm1 using MSVC. (check-in: b7794cc5 user: mistachkin tags: trunk)
13:19
Add the LSM1 extension. (check-in: 824e8327 user: drh tags: trunk)
13:13
Add the "stmts" virtual table to the amalgamation, activated when compiled using -DSQLITE_ENABLE_STMTSVTAB. Add the SQLITE_STMTSTATUS_REPREPARE and SQLITE_STMTSTATUS_RUN statistics outputs from sqlite3_stmt_status() and add corresponding columns to the stmts virtual table. Change the numeric value of SQLITE_STMTSTATUS_MEMUSED to get it out of the way of counter values. (check-in: 88976ae3 user: drh tags: trunk)
12:59
The query planner examines the values of bound parameters to help determine if a partial index is usable. Reprepares may happen if the bindings change. This behavior is disabled by the QPSG setting. (check-in: c322bfa2 user: drh tags: trunk)
12:54
Implement xUnlink, xShmMap, and xShmUnmap for lsm1 on Win32. (Closed-Leaf check-in: 680cc064 user: mistachkin tags: lsm-vtab)
12:49
Add the SQLITE_STMTSTATUS_REPREPARE and SQLITE_STMTSTATUS_RUN options to sqlite3_stmt_status(). Use this for two new columns in the stmts virtual table. (Closed-Leaf check-in: b0b0c8f8 user: drh tags: stmts-vtab)
01:23
Fix the exprCompareVariable() routine so that it works for non-UTF8 text. (Closed-Leaf check-in: 25acd965 user: drh tags: partial-index-variables)
00:20
Implement xRemap for lsm1 on Win32. Also, zero file handle when closing it. (check-in: 93c9aa7d user: mistachkin tags: lsm-vtab)
2017-06-28
21:47
Alternative implementation of exprCompareVariable(). (check-in: b959c629 user: drh tags: partial-index-variables)
21:36
Implement xLock and xTestLock for lsm1 on Win32. (check-in: 9112117d user: mistachkin tags: lsm-vtab)
20:21
Merge tserver fixes with this branch. (check-in: 58a0aab8 user: dan tags: server-process-edition)
20:12
Fix bugs in test program tserver.c. (Leaf check-in: 093b9108 user: dan tags: server-edition)
18:25
Make the query planners use of partial indexes based on bound variables responsive to the SQLITE_DBCONFIG_ENABLE_QPSG setting. (check-in: a934dd14 user: drh tags: partial-index-variables)
18:07
Merge the in the latest enhancements from trunk. (check-in: 8f63c586 user: drh tags: partial-index-variables)
17:29
Instead of the new sqlite3_prepare_v3() interface, provide the SQLITE_DBCONFIG_PREPARE_FLAGS interface which sets the flags on the single next call to sqlite3_prepare_v2() or its cousins. (Closed-Leaf check-in: 942c3ef8 user: drh tags: dbconfig-prepare-flags)
15:56
Incorporate recent trunk changes. (Closed-Leaf check-in: 62b8269b user: drh tags: prepare_v3)
15:47
Build the "stmts" virtual table into the amalgamation. It is active only when compiled using SQLITE_ENABLE_STMTSVTAB. That option is supplied to the command-line shell. (check-in: 0ff057d8 user: drh tags: stmts-vtab)
15:17
Fix harmless compiler warnings in the CSV extension. (check-in: f02a5459 user: drh tags: trunk)
15:01
Faster parser stack overflow detection. (check-in: 36e54cd8 user: drh tags: trunk)
14:26
Minor tweak to the SQL grammar to make the parser tables a few bytes smaller. (check-in: cc4810b2 user: drh tags: trunk)
13:47
In the lemon-generated parser, store the number of symbols on the RHS of each rule as a negative number and add it to the stack pointer, rather than storing the value as a positive and subtracting it. This makes the parser faster. (check-in: b362f0d8 user: drh tags: trunk)
11:56
In the lemon-generated parser, automatically promote SHIFTREDUCE actions on nonterminal systems to pure REDUCE actions, for a performance enhancement. (check-in: c46d94a8 user: drh tags: trunk)
01:21
Simplify error handling logic in sqlite3_exec() to save about 40 bytes. (check-in: 6480916c user: drh tags: trunk)
01:12
Minor code simplification in the ALTER TABLE logic. (check-in: bfc4e7f3 user: drh tags: trunk)
00:55
Avoid an unnecessary call to sqlite3XPrintf() in the code generator, for a performance improvement. (check-in: 29d6ceb3 user: drh tags: trunk)
2017-06-27
23:36
Add SQLITE_DBCONFIG_ENABLE_QPSG that forces the query planner stability guarantee. This is the fix for ticket [b9f010107724c] (check-in: b82efd2a user: drh tags: trunk)
22:33
Improve a local variable name. (check-in: d0f6973d user: mistachkin tags: lsm-vtab)
22:27
Initial work on porting lsmtest to Win32. (check-in: 7e669d9b user: mistachkin tags: lsm-vtab)
20:23
Support clients within a single process only. (check-in: dfa9a4d5 user: dan tags: server-process-edition)
18:15
Implement xFullpath for lsm1 on Win32. (check-in: dbe9c8aa user: mistachkin tags: lsm-vtab)
16:48
Merge latest trunk changes with this branch. (check-in: 2b095406 user: dan tags: apple-osx)
16:39
Fix a virtual table problem that can occur when the vtab is on the RHS of a LEFT JOIN and there is a MATCH constraint in the ON clause, or when the vtab is in a sub-query that is the RHS of a LEFT JOIN and there is a MATCH constraint in the WHERE clause of the sub-query. (check-in: 87b38166 user: dan tags: trunk)
06:28
Minor corrections to the previous check-in. (check-in: e1cf8a78 user: mistachkin tags: lsm-vtab)
05:59
Work in progress porting lsm1 to Win32. (check-in: 2017636e user: mistachkin tags: lsm-vtab)
2017-06-26
21:08
Add the -withoutnulls option to the "db eval" method in the TCL interface. (check-in: 18f0616e user: drh tags: trunk)
18:42
The ".import" command of the shell, and the csv virtual table extension both ignore a single UTF-8 BOM at the beginning of their input. (check-in: 7c15d762 user: drh tags: trunk)
16:13
Add the "-unsetnull 1" option to the "sqlite3" command in the TCL interface. (Closed-Leaf check-in: cbe441b2 user: drh tags: unsetnull-option)
14:46
Make sure sqlite3VdbeSetVarmask() is never invoked when QPSG is enabled. (Closed-Leaf check-in: ebcfa73e user: drh tags: enable-QPSG)
13:57
Add the SQLITE_DBCONFIG_ENABLE_QPSG option to activate the query planner stability guarantee. This involves refactoring the sqlite3.flags bitvector to carve out a free bit to use. (check-in: 7076e828 user: drh tags: enable-QPSG)
11:46
Remove an invalid assert() from lsm test code. (check-in: ca8a7e99 user: dan tags: lsm-vtab)
08:24
Fix another problem with multi-threaded mode in the LSM test code. (check-in: 461ced77 user: dan tags: lsm-vtab)
07:31
Update a test case to reflect the fact that the lsm blocksize is configured in KiB. And defaults to 1024, not 2048. (check-in: d7015475 user: dan tags: lsm-vtab)
06:53
Fix some compiler warnings in lsm_file.c. (check-in: 23f16382 user: dan tags: lsm-vtab)
2017-06-24
19:21
Disable shell tests for the .schema command if virtual tables are not available. (check-in: c8186874 user: drh tags: trunk)
18:10
Consider the values bound to SQL variables when determining whether or not a partial index may be used. (check-in: 7b59c353 user: dan tags: partial-index-variables)
16:35
Make sure the config.h header is included by ctime.c, if that header exists. (check-in: c2ea6293 user: drh tags: trunk)
16:03
Query planner tuning: When deciding between two plans with the same cost, bias the selection toward the one that does not use the sorter. (check-in: f0ec36d4 user: drh tags: trunk)
13:31
Make sure enough memory is allocated for pathological quoting cases when computing a quoted table name in the command-line shell. (check-in: 0583b84a user: drh tags: trunk)
2017-06-23
21:05
Merge all recent trunk enhancements into the apple-osx branch. (check-in: 53b14a38 user: drh tags: apple-osx)
15:47
When generating individual loops for each ORed term of an OR scan, move any constant WHERE expressions outside of the loop, as is done for top-level loops. (check-in: 712267c9 user: dan tags: trunk)
2017-06-22
16:51
When generating individual loops for each ORed term of an OR scan, move any constant WHERE expressions outside of the loop, as is done for top-level loops. (Closed-Leaf check-in: e4a022be user: dan tags: or-optimization)
2017-06-21
01:36
Enable pragma virtual tables for the integrity_check, quick_check, and foreign_key_check pragmas. (check-in: 118f7bb3 user: drh tags: trunk)
2017-06-20
19:20
Ensure that test tool "tserver" finalizes all statements before attempting to close a database handle. (check-in: d8568aac user: dan tags: server-edition)
18:19
Rename the azCompileOpt global constant to avoid a harmless compiler warning about a name conflict with a local variable. (check-in: 94e420ec user: drh tags: trunk)
17:43
Ensure that the query planner knows that any column of a flattened LEFT JOIN can be NULL even if that column is labeled with "NOT NULL". Fix for ticket [892fc34f173e99d8]. (check-in: 48346268 user: dan tags: trunk)
2017-06-19
11:44
Experimental "PRAGMA secure_delete=FAST" pragma. The intent is to overwrite deleted content with zeros without increasing the amount of disk I/O. (Closed-Leaf check-in: f1682f0f user: drh tags: fast-secure-delete)
2017-06-17
19:06
Avoid adding an artifical "LIMIT 1" on scalar subqueries that do not need it. This seems like a pointless optimization as it makes minimal run-time difference but does increase code complexity. Parked on a branch for historical reference. (Leaf check-in: c21628e9 user: drh tags: subquery-limit-opt)
18:49
Fix a missing comma in the previous check-in. (check-in: f3db02f4 user: drh tags: trunk)
17:55
Rework the code in ctime.c a bit to report on more compile time options. And to only output configuration options passed in to SQLite, not the default values of #define symbols set automatically. Also generate the large array in ctime.c using new script tool/mkctime.tcl, instead of entering it manually. (check-in: 9a443397 user: dan tags: trunk)
17:29
Ensure that the value of the THREADSAFE symbol is always included when reporting compile time options, even if it was not explicitly configured. (Closed-Leaf check-in: 95141c64 user: dan tags: ctime-refactor)
16:39
Add extra test cases for sqlite3changeset_apply() and ALTER TABLE ADD COLUMN. (check-in: 603838fc user: dan tags: trunk)
09:59
Version 3.18.2 (check-in: 036ebf72 user: drh tags: release, branch-3.18, version-3.18.2)
00:39
When building an ephemeral table of integers, do not assume that the table does not already contain N if the insert cursor points to N-1. Fix for ticket [61fe9745]. Also increase the version number to 3.18.2. This is the release candidate. (check-in: e1b71029 user: drh tags: branch-3.18)
2017-06-16
19:51
Rework the code in ctime.c a bit to report on more compile time options. And to only output configuration options passed in to SQLite, not the default values of #define symbols set automatically. Also generate the large array in ctime.c using new script tool/mkctime.tcl, instead of entering it manually. (check-in: bc1951d6 user: dan tags: ctime-refactor)
18:31
Minor refactoring change to clarify how ATTACH works. No functional changes. (check-in: 3944a32e user: drh tags: trunk)
13:43
Prevent pagesize changes on VACUUM in encrypted databases even when running the VACUUM on an attached database. (check-in: 11693849 user: drh tags: trunk)
13:41
Version 3.18.1 (check-in: 77bb4623 user: drh tags: release, branch-3.18, version-3.18.1)
12:15
An unintentional fork was created due to a typo when creating branch-3.18. This check-in resolves the fork and is the 3.18.1 release candidate. (check-in: 20e5ffb1 user: drh tags: branch-3.18)
2017-06-15
16:56
Move the "shell_add_schema()" SQL function used by the ".schema" command of the command-line shell to a different spot in the shell.c source file so that it is not in the middle of an unrelated module. (check-in: 254617a1 user: drh tags: trunk)
16:45
Fix typo and improve the wording of the description of "Metadata" in the output of the sqlite3_analyzer tool. (check-in: ca1ff707 user: drh tags: trunk)
15:06
Merge the latest changes from trunk. (check-in: 60105c22 user: drh tags: lsm-vtab)
13:07
Fix harmless compiler warnings in the shell.c file (check-in: 9afd7a2f user: drh tags: trunk)
12:50
Improvements to the ".tables" command in the command-line shell so that it shows the name of all schemas if the name is anything other than "main". (check-in: c7f778b7 user: drh tags: trunk)
12:21
In the command-line shell, enhance the ".schema" command show that it shows the schema for ATTACH-ed databases in addition to "main". (check-in: 48e08628 user: drh tags: trunk)
07:47
Increase the version number to 3.18.1. (check-in: 4be2eba8 user: drh tags: branch-3.18)
00:52
Enhance the sqlite3_analyzer.exe utility so that it computes and shows the number of bytes of metadata on btree pages and per table and index entry. (check-in: 43ad41ef user: drh tags: trunk)
2017-06-13
16:52
Fix sqlite3rbu_close() so that the pzErrmsg parameter may be passed NULL. (check-in: c433672d user: dan tags: trunk)
04:31
Fix the processing of double-negatives in WHERE clause constraints with STAT4. Ticket [cfa2c908f2182] (check-in: 35b34bdf user: drh tags: trunk)
2017-06-12
23:44
Ensure pointer map entries are always added when a row that does use overflow pages replaces one that does not in an auto-vacuum database. Fix for [fda22108]. (check-in: 30c50f0e user: drh tags: branch-3.18)
2017-06-11
20:17
Fix an off-by-one error that messes up the display of loop codes in the ".wheretrace" debugging output for queries with more than 62 candidate loops when SQLITE_ENABLE_WHERETRACE is on. (check-in: 0bbdaf28 user: drh tags: trunk)
19:51
When reusing a materialized view, make sure the estimated number of output rows is correctly initialized to avoid confusing the query planner. (check-in: 87aceb41 user: drh tags: trunk)
19:40
Fix the sessiondiff test module so that it does not run if the session extension is not enabled. (check-in: 8f92b7a6 user: drh tags: trunk)
18:26
Fix a potential null-pointer deference following OOM introduced by check-in [e39795d7] (unreleased). (check-in: a2f77285 user: drh tags: trunk)
2017-06-10
17:23
Remove sqlite3_log() and abort() calls added to this branch to debug the pointer-map problem ([fda22108]). (check-in: 79544fc2 user: dan tags: begin-concurrent)
2017-06-09
15:14
Merge enhancements and fixes from trunk. (check-in: 3fd050c3 user: drh tags: prepare_v3)
11:43
Update the documentation to make it clear that the table name parameter to sqlite3_table_column_metadata() may not be NULL. (check-in: 2881ab1e user: drh tags: trunk)
02:27
Adjust the implementation of the ".selftest" feature of the shell to avoid using the deprecated sqlite3_get_table() interface. (check-in: 3168e2c9 user: drh tags: trunk)
2017-06-08
16:23
Update the recent auto-vacuum fix so that it works for the in-memory pointer-map structure used by this branch. (check-in: 8e311a6d user: dan tags: begin-concurrent)
16:10
Merge 3.19.3 changes with this branch. (check-in: e2d38d51 user: dan tags: begin-concurrent)
15:54
Merge changes for version 3.19.0 with this branch. (check-in: 0f59bb94 user: dan tags: begin-concurrent)
14:41
Merge the auto_vacuum bug fix and all other changes from the 3.19.3 release. (check-in: 93f32dd2 user: drh tags: apple-osx)
14:35
Add a testcase() to confirm that an OOM on sqlite3DbStrNDup() is handled correctly in trigger.c. (check-in: 343e5599 user: drh tags: trunk)
14:26
Version 3.19.3 (check-in: 0ee482a1 user: drh tags: release, version-3.19.3, branch-3.19)
11:32
Fix an issue with OPT_FEATURE_FLAGS in configure.ac. (check-in: 97b5c4a5 user: drh tags: branch-3.19)
11:27
Increase the version number to 3.19.3. (check-in: 903fff53 user: drh tags: branch-3.19)
11:26
Ensure pointer map entries are always added when a row that does use overflow pages replaces one that does not in an auto-vacuum database. Fix for [fda22108]. (check-in: 9478106c user: drh tags: branch-3.19)
11:14
Ensure pointer map entries are always added when a row that does use overflow pages replaces one that does not in an auto-vacuum database. Fix for [fda22108]. (check-in: b30dfba8 user: dan tags: trunk)
2017-06-07
22:32
In SQLITE_DEBUG mode, attempt to log the page number of the database that contained the problem when SQLITE_CORRUPT errors are seen. (check-in: e39795d7 user: drh tags: trunk)
19:46
Fix another lsmtest build problem. Add the "-trans BOOLEAN" option to "lsmtest speed2". (check-in: 61853bc1 user: dan tags: lsm-vtab)
16:25
Merge in trunk enhancements. (check-in: f8bbb608 user: drh tags: prepare_v3)
15:55
Add too/tserver.c - the implementation of a simple multi-threaded server designed for interactive testing of concurrency between connections used by different threads of the same process. (check-in: 05b4fc43 user: dan tags: server-edition)
10:55
Cause the ANALYZE command to build sqlite_stat1 table entries for empty tables with the assumption that such tables really contain 10 elements. This gives better query plans for tables that are truely empty, but is likely to cause problems in legacy systems, so the change is kept off trunk. Some TCL tests fail on this check-in due to the new stat1 entries. (Leaf check-in: c81f260c user: drh tags: analyze-empty-tables)
2017-06-06
18:20
Add the SQLITE_DEFAULT_ROWEST compile-time option for changing the estimated number of rows in tables that lack sqlite_stat1 entries. (check-in: 234ede26 user: drh tags: trunk)
16:14
Fix a threading problem in lsm test code. (check-in: 501238b9 user: dan tags: lsm-vtab)
2017-06-05
19:20
Fix a subtle bug in the remember UDF of the kvtest.exe utility program. (check-in: 9eea3670 user: drh tags: trunk)
16:33
Fix a bug in test_fs.c that occurs when the first component of a path contains a GLOB or LIKE escape character. (check-in: 73c70590 user: dan tags: trunk)
13:28
For the kvtest utility, add the --vacuum option to "kvtest stat" and also run PRAGMA integrity_check with "kvtest stat". (check-in: f3c25df4 user: drh tags: trunk)
12:29
Fix the column width deduction logic in the command-line shell to account for multi-byte utf8 characters. (check-in: ed0842c1 user: drh tags: trunk)
10:31
Omit some of the fstree tests in vtabH if the PWD contains LIKE wildcards. (check-in: ead29f9c user: drh tags: trunk)
2017-06-03
20:09
Initialize a variable to zero to prevent an (incorrect) compiler warning of it potentially being uninitialized. (check-in: 65182ce0 user: drh tags: trunk)
19:16
Fix the SQLITE_PTR_TO_INT macro so that works on recent versions of LLVM on Macs. (check-in: c4089ffb user: drh tags: trunk)
18:27
Remove unused header file from kvtest. (check-in: dd7e043f user: drh tags: trunk)
17:24
In kvtest, add the ability to work with a hierarchy of files on disk, in addition to having all files in the same directory. (check-in: f568f666 user: drh tags: trunk)
15:17
Add the --nocheckpoint and --multitrans options to kvtest. (check-in: 5828633c user: drh tags: trunk)
2017-06-02
23:44
Merge all recent trunk enhancements. (check-in: 1d23294d user: drh tags: lsm-vtab)
23:32
Add the --fsync flag to kvtest, and document the --nosync flag. (check-in: 7fdc78a6 user: drh tags: trunk)
19:31
Work toward enhancing kvtest to measure write performance. (check-in: fc73e7d2 user: drh tags: trunk)
15:44
Change the name of the OP_Seek opcode into OP_DeferredSeek for better clarity of function. No functional code changes. (check-in: ab33d299 user: drh tags: trunk)
13:16
Fix a typo in the header comment of the "series.c" virtual table extension. (check-in: d637feb4 user: drh tags: trunk)
09:31
Extend even further the logging designed to find problems in the pointer-map structure. Call abort() to dump a core as soon as such a problem is seen. (check-in: f131677d user: dan tags: begin-concurrent)
2017-06-01
16:13
Add test code for LSM to the ext/lsm1/lsm-test directory. (check-in: bb7436e8 user: dan tags: lsm-vtab)
01:53
Add a comment to the Lemon documentation regarding the security of the lemon.exe command-line tool. (check-in: 4c2458c1 user: drh tags: trunk)
00:54
Add interfaces sqlite3_prepare_v3() and sqlite3_prepare16_v3() with the extra prepFlags argument. Add the SQLITE_PREPARE_PERSISTENT option as one bit in that argument. (check-in: 4a25c588 user: drh tags: prepare_v3)
2017-05-31
17:30
Add the SQLITE_STMTSTATUS_MEMUSED opcode to sqlite3_stmt_status() for finding the heap memory usage by a single prepared statement. (check-in: c26cf978 user: drh tags: trunk)
17:06
Generate extra log messages in response to irregularites in the pointer-map used by "BEGIN CONCURRENT" transactions. (check-in: f7e3e2bc user: dan tags: begin-concurrent)
16:21
Add the SQLITE_STMTSTATUS_MEMUSED option for sqlite3_stmt_status() that reports the amount of heap memory used for a single prepared statement. (Closed-Leaf check-in: b57d5104 user: drh tags: stmtstatus-memused)
16:09
Add the experimental "stmts" virtual table for introspection of prepared statements. (check-in: cb4c5c66 user: drh tags: trunk)
13:45
Avoid allocating excess memory to the KeyInfo objects. (check-in: df785943 user: drh tags: trunk)
13:27
Remove a completely unnecessary memset() from the INSERT code generator. (check-in: 7d58836b user: drh tags: trunk)
11:24
Very small performance increase in sqlite3VdbeSetNumCols(). (check-in: 8885b446 user: drh tags: trunk)
03:20
Reorder fields in the PgHdr object for a performance increase. (check-in: 326e63d7 user: drh tags: trunk)
02:58
Avoid unnecessary memory zeroing during expression list allocation. (check-in: de28e651 user: drh tags: trunk)
00:49
Size and performance optimizations to sqlite3ResolveExprNames(). (check-in: af8c0fed user: drh tags: trunk)
2017-05-30
18:34
Change sqlite3BtreeNext() and sqlite3BtreePrevious() so that they return SQLITE_DONE if they have already reached the end (or beginning) of the table. This gives a performance increase and size reduction. (check-in: e972a386 user: drh tags: trunk)
18:14
Omit a test of codepoint 0x202F (non-break narrow space) from the fts3 ICU tests. Different versions of ICU apparently handle this obscure codepoint slightly differently. (check-in: 69ae6889 user: dan tags: trunk)
2017-05-29
22:44
More efficient error handling and reset in the binding mechanism. (check-in: 9a3e3b34 user: drh tags: trunk)
19:23
Instead of a root page number, log the object (table or index) name if a page level locking conflict is detected. (check-in: 9ad846e5 user: dan tags: begin-concurrent)
17:59
Omit unnecessary fstat() calls for determining the database file size, resulting in smaller and faster code. (check-in: dd61c736 user: drh tags: trunk)
17:43
Fix an issue with OPT_FEATURE_FLAGS in configure.ac. (check-in: 43ce3bd3 user: drh tags: trunk)
16:45
Avoid unnecessary fstat() calls to determine the database size when transitioning into a read transaction on a rollback-mode database. (Closed-Leaf check-in: 6c3476b5 user: drh tags: io-opt)
14:57
Avoid unnecessary calls to fstat() to determine the database file size. (check-in: c733a1de user: drh tags: io-opt)
14:30
Fix a typo in a comment. No code changes. (check-in: cb29b838 user: drh tags: trunk)
14:27
Enhance the log messages emitted when a page conflict is detected. (check-in: 92618492 user: dan tags: begin-concurrent)
14:26
Optimizations to the Walker object and its methods to make the code a little smaller and to help it run a little faster. (check-in: 6854a34e user: drh tags: trunk)
13:09
Correctly initialize the iSelectId of FROM clause terms that are a self join of a reused materialized subquery. Without this, the EXPLAIN QUERY PLAN output for the query will identify the subquery using the uninitialized (and arbitrary) iSelectId. (check-in: 43c9ae37 user: drh tags: trunk)
03:48
Improve shell help text for the '.open' command. (check-in: 7cc940a9 user: mistachkin tags: trunk)
2017-05-27
22:42
Smaller and faster vdbeSorterCompareText(). (check-in: 542dc4c5 user: drh tags: trunk)
18:05
Add debugging functions btreePageOriginFile() and btreePageOriginOffset(). (Leaf check-in: 214d238a user: dan tags: btree-debug)
2017-05-26
18:18
Adjust the bitvec related sqlite3_log messages added by [9527089b]. (check-in: a7e0e7a4 user: dan tags: begin-concurrent)
16:51
Add extra test cases for deferred page allocation. (check-in: 9df01957 user: dan tags: begin-concurrent)
16:15
Fix a problem with deferred page allocation in transactions that revert page allocations by savepoint rollbacks. (check-in: a4a3bbe6 user: dan tags: begin-concurrent)
2017-05-25
21:35
Small performance increase and size decrease in the btreeInitPage() routine. (check-in: 6f415833 user: drh tags: trunk)
21:02
Fix a problem with the deferred page allocation on this branch that could occur when the database file is just slightly smaller than the PENDING_BYTE page offset. (check-in: 47a7dd92 user: dan tags: begin-concurrent)
17:36
Merge all fixes from the 3.19.2 release. (check-in: 12964240 user: drh tags: apple-osx)
17:27
Merge the LEFT JOIN query flattener fixes from 3.19.2. (check-in: 6513e4a1 user: drh tags: trunk)
16:50
Version 3.19.2 (check-in: edb4e819 user: drh tags: release, branch-3.19, version-3.19.2)
11:39
The SQLITE_EXTRA_IFNULLROW compile-time option causes OP_IfNullRow opcodes to be issued for references to the right-hand side table of *any* flattened join, not just LEFT JOINs. This puts extra stress on the OP_IfNUllRow opcodes for testing purposes. (check-in: 1a074c8a user: drh tags: branch-3.19)
00:28
The TK_IF_NULL_ROW expression node must be treated as a variable that references the table Expr.iTable. Proposed fix for ticket [7fde638e94287d2c]. (check-in: b30a364a user: drh tags: branch-3.19)
00:12
Increase the version number to 3.19.2 since ticket [7fde638e94287d2] is going to necessitate another patch release. (check-in: c315727a user: drh tags: branch-3.19)
00:08
The TK_IF_NULL_ROW expression node must be treated as a variable that references the table Expr.iTable. Proposed fix for ticket [7fde638e94287d2c]. (check-in: 77fc2301 user: drh tags: trunk)
2017-05-24
15:32
Fix harmless compiler warnings in FTS5. (check-in: 57a60e95 user: mistachkin tags: trunk)
13:08
Version 3.19.1 (check-in: f6d7b988 user: drh tags: release, branch-3.19, version-3.19.1)
04:18
Fix a problem in STAT4 equality estimation for multi-column indexes introduced by check-in [3e0590dee0e68cc1599]. (check-in: cfb0d9e0 user: drh tags: trunk)
2017-05-23
20:00
Remove the msvc.h header file from the autoconf tarball. (check-in: 84996aef user: drh tags: trunk)
19:35
Do not use strcpy() in the (obsolete) amatch extension. In releasetest.tcl, run Apple tests using -Os instead of -O1 (check-in: 4440e420 user: drh tags: trunk)
19:23
Add experimental new API sqlite3_wal_info(). (check-in: 5b9d498f user: dan tags: begin-concurrent)
15:33
Disable the LEFT JOIN flattening optimization for aggregate queries, as it does not currently work. Further fix for ticket [cad1ab4cb7b0fc344]. (check-in: 05ada741 user: drh tags: branch-3.19)
15:21
Disable the LEFT JOIN flattening optimization for aggregate queries, as it does not currently work. Further fix for ticket [cad1ab4cb7b0fc344]. (check-in: 44b21e35 user: drh tags: trunk)
12:44
Ensure that the expression rewriter inside the query flattener decends into the substructure of the TK_IF_NULL_ROW operator. This is a continuation of the fix for ticket [cad1ab4cb7b0fc344]. (check-in: 28d2902d user: drh tags: branch-3.19)
12:36
Ensure that the expression rewriter inside the query flattener decends into the substructure of the TK_IF_NULL_ROW operator. This is a continuation of the fix for ticket [cad1ab4cb7b0fc344]. (check-in: 941d8142 user: drh tags: trunk)
01:35
Change the version number to 3.19.1. (check-in: 16656b8f user: drh tags: branch-3.19)
01:30
Remove a surplus semicolon, which was harmless on gcc and clang but caused compile-time errors on msvc. This only comes up using the encryption extension. (check-in: 4510d55d user: drh tags: branch-3.19)
01:29
When flattening a query, make sure iTable attribute of TK_IF_NULL_ROW operators (that result from a prior flattening of a LEFT JOIN) are updated correctly. Fix for ticket [cad1ab4cb7b0fc344]. (check-in: 919d36e6 user: drh tags: branch-3.19)
01:21
When flattening a query, make sure iTable attribute of TK_IF_NULL_ROW operators (that result from a prior flattening of a LEFT JOIN) are updated correctly. Fix for ticket [cad1ab4cb7b0fc344]. (check-in: 92c17850 user: drh tags: trunk)
00:32
Remove a surplus semicolon, which was harmless on gcc and clang but caused compile-time errors on msvc. This only comes up using the encryption extension. (check-in: 987a2b55 user: drh tags: trunk)
2017-05-22
19:24
Pull in all changes from the 3.19.0 release. (check-in: bbd2d0e1 user: drh tags: apple-osx)
18:09
Fix incompatibilities between the "sqldiff --changeset" command and the sessions module. Specifically, allow sessions to process changesets containing tables with zero operations on them and have sqldiff output the expected output for tables with multi-column primary keys. (check-in: 0bb23c48 user: dan tags: trunk)
18:00
Add the ".cd" command to the command-line shell. (check-in: 5fe28e15 user: drh tags: trunk)
17:39
Increase the version number to 3.20 for the next release cycle. (check-in: ab471f61 user: drh tags: trunk)
14:04
Merge the last-minute 3.19.0 changes into trunk. (check-in: e6ba2a93 user: drh tags: trunk)
13:58
Version 3.19.0 (check-in: 28a94eb2 user: drh tags: release, branch-3.19, version-3.19.0)
13:06
Include the "msvc.h" header file in the amalgamation tarball. (check-in: 3dd6fe53 user: drh tags: branch-3.19)
08:04
Fix a case where NULL was being passed to memcmp() following an OOM. This is probably not a real problem, as the number-of-bytes parameter was passed 0 in this case, but it was causing a santizer complaint. (check-in: 3ea2bad2 user: dan tags: trunk)
08:01
Add code to this branch to emit a log message after each cumulative second that the WRITER lock has been held. (check-in: a726d981 user: dan tags: server-edition)
00:45
When planning a query using sorting, resolve ties in the solver by selecting loop plans with the smaller unsorted cost. (check-in: f261678c user: drh tags: trunk)
2017-05-19
23:04
Prevent a possible NULL pointer dereference in the OP_Found opcode that can follow an OOM error. Problem found by OSS-Fuzz. (check-in: 50ad60de user: drh tags: branch-3.19)
22:51
Prevent a possible NULL pointer dereference in the OP_Found opcode that can follow an OOM error. Problem found by OSS-Fuzz. (check-in: c2de178f user: drh tags: trunk)
20:55
Improved comments on one routine in the query planner. Improved diagnostic output for ".wheretrace". No production code changes. (check-in: 946b87a5 user: drh tags: trunk)
20:47
Fix a documentation typo. No changes to code. (check-in: 68942a4f user: drh tags: trunk)
20:46
Branch for the 3.19 release. (check-in: f2b829ec user: drh tags: branch-3.19)
19:57
Invoke sqlite3_log() in response to irregularities surrounding the Pager.pAllRead bit-vector. (check-in: 9527089b user: dan tags: begin-concurrent)
12:32
Fix some problems in fts5 code detected by -fsanitize=undefined. (check-in: 35f72104 user: dan tags: trunk)
2017-05-18
20:47
Fix a problem on this branch causing some page-level read-locks to be omitted. (check-in: 0eed1521 user: dan tags: begin-concurrent)
18:17
Fix a documentation typo. No changes to code. (Closed-Leaf check-in: cfa4aa20 user: drh tags: doc-type)
2017-05-16
09:49
Update the tool/warnings.sh script to automatically use the right options on OpenBSD. (check-in: 7940bff3 user: dan tags: trunk)
2017-05-15
19:32
Avoid writer starvation by adding a RESERVED state to page locks. (check-in: 9b7f8024 user: dan tags: server-edition)
17:56
Merge changes from trunk. (check-in: 6e0f64ab user: drh tags: schemalint)
17:34
Merge the latest changes from trunk. (check-in: 14ea8400 user: drh tags: begin-concurrent)
15:12
Fix the build so that it works again with SQLITE_OMIT_SUBQUERY. (check-in: bb0d9281 user: drh tags: trunk)
15:05
Improvements to the omittest.tcl script. (check-in: 0f05d7e9 user: drh tags: trunk)
2017-05-13
19:07
Avoid running recovery while there is another read/write client. (check-in: a38858a2 user: dan tags: server-edition)
2017-05-12
18:52
Require exclusive access to the db to wrap the wal file. Have "PRAGMA wal_checkpoint = restart" block for this. (check-in: cbf44ed9 user: dan tags: server-edition)
14:05
Make sure the 'sqlite3changegroup_*' functions are included in the SQLITE_APICALL handling. (check-in: a123cb93 user: mistachkin tags: trunk)
2017-05-11
19:09
Add another test case for the new authorizer functionality. (check-in: 339df63f user: dan tags: trunk)
18:49
Merge recent enhancements from trunk. (check-in: b55c0f14 user: drh tags: apple-osx)
18:42
Enhance the json_extract() function to reuse parses of the same JSON when the function appears multiple times in the same query. (check-in: 3ba9e7ab user: drh tags: trunk)
18:14
Do not save the state of an fts5 merge operation mid-way through an input term, even if no previous entry for that term has caused any output. Doing so may corrupt the FTS index. (check-in: 9a2de4f0 user: dan tags: trunk)
16:49
Cache the JSON parse used by json_extract(). (Closed-Leaf check-in: 44ca6c2c user: drh tags: auxdata-cache)
15:20
Negative N values in sqlite3_get_auxdata() and sqlite3_set_auxdata() can be used to access an auxiliary data cache over all functions in a single prepared statement. (check-in: ff530675 user: drh tags: auxdata-cache)
13:43
New requirements marks and documentation for the authorizer. (check-in: 3980ea09 user: drh tags: trunk)
12:27
Improvements to the sqlite3_set_authorizer() documentation. (check-in: 47629b19 user: drh tags: trunk)
12:05
Change the SQLITE_READ authorization call for unreferenced tables to use an empty string for the column name, as this is less likely to impact legacy authorization callbacks that assume column names are always non-NULL. (check-in: 4139953a user: drh tags: trunk)
2017-05-10
19:42
Rename fields of the internal AuxData object to make them unique and easier to search for. (check-in: 2be9850c user: drh tags: trunk)
16:33
Improved documentation for the SQLITE_READ authorizer callback. No code changes. (check-in: 92c5ea70 user: drh tags: trunk)
16:18
Fix a problem causing a lock to be held past the end of a transaction. Use a blocking lock to take the read-lock on page 1 taken by all transactions. (check-in: 2584df3d user: dan tags: server-edition)
16:12
Invoke the SQLITE_READ authorizer callback with a NULL column name for any table referenced by a query but from when no columns are extracted. (check-in: 92ab1f72 user: drh tags: trunk)
13:46
Use a blocking call to obtain the wal-mode WRITER lock in some cases. (check-in: 4464ca1d user: dan tags: server-edition)
13:36
Fix a couple of test scripts so that they work with -DSQLITE_DISABLE_FTS4_DEFERRED builds. (check-in: 30018d31 user: dan tags: trunk)
12:58
Avoid unnecessary codec operations on in-memory subjournals. (check-in: 199b2a84 user: drh tags: trunk)
12:49
Do not invoke codec macros for in-memory subjournals. (Closed-Leaf check-in: d2bb0066 user: drh tags: codecless-inmemory-subjournal)
2017-05-09
16:32
Fix a problem with wrapping the log file in server mode. (check-in: 270b7d1e user: dan tags: server-edition)
2017-05-08
20:15
Add some support for wal mode to the hack on this branch. (check-in: b733afc1 user: dan tags: server-edition)
18:29
Do not invoke codec macros when reading or writing an in-memory sub-journal. (check-in: 2c145ee6 user: dan tags: codecless-inmemory-subjournal)
2017-05-06
18:09
Fix an obscure assertion fault that can follow an OOM. The problem was introduced by check-in [a1cf44763277b6c7]. (check-in: 04e7e565 user: drh tags: trunk)
17:12
Fix requirements marks and harmless compiler warnings. (check-in: 198ff4c0 user: drh tags: trunk)
16:04
Update this branch with latest trunk changes. (check-in: ed6bad67 user: dan tags: server-edition)
2017-05-04
14:02
Remove the tool/schemalint.tcl script. And related Makefile entries. It is superseded by sqlite3_expert. (check-in: 269bf52e user: dan tags: schemalint)
11:13
Fix a collision of the "B0" identifier name between the termios.h header file and the SHA3 implementation in the shell. (check-in: b9a58dac user: drh tags: trunk)
2017-05-03
19:36
Remove the unused "sqlite3_stack_used" TCL command from the test harness. (check-in: e24b7382 user: drh tags: trunk)
17:44
Fix the sqlite3GetInt32() function so that it correctly returns 0 on a zero-length input string. (check-in: 05eba9e3 user: drh tags: trunk)
15:54
Always enable URI filenames when compiling with SQLITE_HAS_CODEC. Also allow plaintext keys using the key= query parameter. (check-in: 31a51b4d user: drh tags: trunk)
13:05
Fix a harmless compiler warning on Windows. (check-in: 593e5dd0 user: drh tags: schemalint)
12:50
Get sqlite3_expert building on Windows. (check-in: d8254047 user: drh tags: schemalint)
12:15
In sqlite3expert.c, do not copy the schema for virtual tables. Updates to makefiles to make building easier. (check-in: da15752d user: drh tags: schemalint)
2017-05-02
20:42
In the sqlite3_expert command-line tool, allow two-dash options. Do not accept the database name if it begins with "-". (check-in: af7d1596 user: drh tags: schemalint)
19:45
Merge the latest enhancements from trunk. (check-in: a7dcf6a7 user: drh tags: schemalint)
18:00
Fix the fts3EvalAverageDocsize() routine so that it returns errors from sqlite3_reset() rather than always returning SQLITE_OK. (check-in: 430f539c user: drh tags: trunk)
17:54
Reuse the same materialization of a view when that view appears in a query more than once, such as in a self-join. (check-in: 9e35c89d user: drh tags: trunk)
16:55
Move terms of the HAVING clause that reference only columns in the GROUP BY clause over to the WHERE clause, resulting in a faster query plan. (check-in: 47cbb471 user: drh tags: trunk)
16:46
Additional comments on the sqlite3ExprIsConstantOrGroupBy() routine. No code changes. (Closed-Leaf check-in: 8424492e user: drh tags: having-where-optimization)
01:30
Fix typo in comment. No changes to code. (check-in: 6674814a user: mistachkin tags: trunk)
2017-05-01
20:07
Update this branch with latest trunk changes. (check-in: 83b1e163 user: dan tags: server-edition)
19:53
Remove an unnecessary branch. (check-in: a3317959 user: drh tags: having-where-optimization)
18:24
Enhance "PRAGMA integrity_check" to detect duplicate rowids within a leaf page. (check-in: adcad37b user: dan tags: trunk)
18:12
Clear the BTCF_ValidNKey flag set if a cursor is moved by sqlite3BtreeInsert(). Fix for [f68dc596c4]. (check-in: a6727eef user: dan tags: trunk)
17:04
Futher bug fixes to the function that determines when a materialized view can be reused. (Closed-Leaf check-in: c64fe3a1 user: drh tags: materialized-view-reuse)
16:37
Minor bug fixes and performance enhancement. (check-in: b2aae559 user: drh tags: materialized-view-reuse)
15:15
Initial implementation of an optimization that attempts to reuse the same materialization of a view on a self-join of the view. (check-in: 478c34b9 user: drh tags: materialized-view-reuse)
14:25
Update this branch with latest trunk changes. (check-in: 11f4761c user: dan tags: schemalint)
14:09
Add extra tests for the optimization on this branch. (check-in: 4921cd95 user: dan tags: having-where-optimization)
2017-04-29
20:53
Automatically transfer terms from the HAVING clause to the WHERE clause of an aggregate query in cases where the result of evaluating the term depends only one one or more of the GROUP BY expressions (and on no other inputs). (check-in: 5375a3ce user: dan tags: having-where-optimization)
19:29
Add a single testcase() macro to the subquery processing logic. (check-in: 4e1df76e user: drh tags: trunk)
18:02
Improvements to opcode documentation in the bytecode engine. No changes to code. (check-in: e54c9f8d user: drh tags: trunk)
15:48
Avoid reading the file-size before page 1 is read-locked. (check-in: f6b025bf user: dan tags: server-edition)
15:27
Evaluate WHERE clause terms that reference only the index before evaluating terms that require the table, and thereby avoid seeking the table row if index terms are false. This is called the "push-down" optimization in the MySQL world, we are told. (check-in: d7bb79ed user: drh tags: trunk)
14:56
Minor size and performance improvements to the push-down optimization. (Closed-Leaf check-in: 91dfb61a user: drh tags: pushdown-optimization)
2017-04-28
19:59
Within a loop that uses a non-covering index test, test non-indexed terms that can be tested without seeking the main table cursor before those that cannot. (check-in: afe68f0a user: dan tags: pushdown-optimization)
17:32
Fix various bugs revealed by running performance tests. (check-in: a40b42c4 user: dan tags: server-edition)
14:09
Add a missing releasePage() call to the server-mode free-list management code. (check-in: a5a08548 user: dan tags: server-edition)
10:20
Use a different free-list format for server-mode databases in order to reduce contention. (check-in: 778e8a10 user: dan tags: server-edition)
2017-04-27
14:12
Do not write master journal filenames into server-mode journal files. Use SQLITE_MUTEX_STATIC_APP1 to protect critical sections in server.c. (check-in: 3144ae40 user: dan tags: server-edition)
13:05
If possible, delete the journal file when a database connection is closed. (check-in: d5b5326d user: dan tags: server-edition)
2017-04-26
20:45
Experimental implementation of pessimistic page-level locking based on rollback mode. (check-in: 64ecf7c7 user: dan tags: server-edition)
17:21
Add new test file cachespill.test. (check-in: 2d0b6431 user: dan tags: trunk)
14:34
Replace <fts5.h> with "fts5.h" in test file fts5_test_tok.c. (check-in: 63d9ca5c user: dan tags: trunk)
04:32
Fix a subtle bug in Lemon discovered and reported on the mailing list by Kelvin Sherlock, who also suggested the correct fix. (check-in: 304689f8 user: drh tags: trunk)
2017-04-24
16:14
Bring in all the latest enhancements from trunk. (check-in: 031feebc user: drh tags: apple-osx)
14:16
When building an ephemeral table of integers, do not assume that the table does not already contain N if the insert cursor points to N-1. Fix for ticket [61fe9745]. (check-in: 1c1b0862 user: dan tags: trunk)
2017-04-22
00:20
Fix an assertion fault found by OSSFuzz. (check-in: e39769f4 user: drh tags: trunk)
2017-04-21
19:58
Another minor formatting fix. (check-in: 9fa2ce3c user: dan tags: schemalint)
19:56
Fix formatting errors in the previous commit. (check-in: da9a2e5a user: dan tags: schemalint)
19:53
Update the README.md file in the ext/expert/ directory. (check-in: 3b2ff4e0 user: dan tags: schemalint)
17:03
Remove a NEVER macro for a condition that may be true as of [a47efb7c]. Problem reported by OSSFuzz. (check-in: bdc50d8d user: dan tags: trunk)
16:04
Fix an FTS5 bug that could cause a prefix-query without a prefix-index on a database that contains delete-markers to return extra, non-matching, rows. (check-in: 840042cb user: dan tags: trunk)
2017-04-20
17:35
Merge latest trunk changes into this branch. (check-in: b1533bc4 user: dan tags: schemalint)
17:03
Avoid creating a temp table in the user database in the sqlite3_expert code. (check-in: 4e366996 user: dan tags: schemalint)
16:43
Speed this branch up a bit by filtering before the virtual table layer when sampling user data. (Closed-Leaf check-in: 8e57c313 user: dan tags: schemalint-failure)
16:18
Avoid adding INTEGER PRIMARY KEY columns to candidate indexes. (check-in: 4577fea5 user: dan tags: schemalint)
16:08
Avoid creating a temp table in the user database in the sqlite3_expert code. Trouble is, this makes sampling for stat1 data much slower. (check-in: c62e3582 user: dan tags: schemalint-failure)
09:54
Add an option to generate stat1 data based on a subset of the user database table contents to sqlite3_expert. (check-in: c69c3e21 user: dan tags: schemalint)
2017-04-19
13:25
Further improvements to coverage of fts3 module. (check-in: 6b21d0fd user: dan tags: trunk)
07:33
Further modifications and test cases to improve test coverage of fts3. (check-in: ea8a0d2c user: dan tags: trunk)
2017-04-18
20:10
Have sqlite3_expert_analyze() populate the sqlite_stat1 table before running queries through the planner for the second time. (check-in: a157fcfd user: dan tags: schemalint)
13:50
Use sqlite3_table_column_metadata() instead of a SELECT statement to check for the existence of a %_stat table in fts3. This leads to smaller and easier to test code. (check-in: dc2a4802 user: dan tags: trunk)
11:20
Improved optimizations of views as the right operand of a LEFT JOIN. (check-in: 41c27bc0 user: drh tags: trunk)
09:04
Fix sqlite3_expert handling of triggers on views. (check-in: ff4976da user: dan tags: schemalint)
05:49
Refactor the fts3ColumnMethod() function so that all branches can be covered. (check-in: e47fdb49 user: dan tags: trunk)
2017-04-17
23:23
Defer checking for null in the comparison operators, since that is an uncommon case. (check-in: 56845256 user: drh tags: trunk)
20:50
Do not allow a Mem object to be both NULL and some other type at the same time. (check-in: e698db19 user: drh tags: trunk)
18:42
Consolidate two branches of code in the "PRAGMA foreign_key_check" implementation. (check-in: 69f51f83 user: dan tags: trunk)
18:02
Fix a problem in "PRAGMA foreign_key_check" in handling a WITHOUT ROWID child table with an INTEGER PRIMARY KEY parent key. Also, if an FK violation is detected in a WITHOUT ROWID child table, do not try to read and return the rowid. The second column returned by "PRAGMA foreign_key_check" in this case (WITHOUT ROWID child table) is now always set to NULL. (check-in: 690870bd user: dan tags: trunk)
17:03
Add support for analyzing trigger programs to the sqlite3_expert code. (check-in: 159e8022 user: dan tags: schemalint)
16:07
Further improvements to test coverage in fts3. (check-in: 352413ee user: dan tags: trunk)
13:38
Improve coverage of code in fts3. (check-in: 1a08a836 user: dan tags: trunk)
13:18
Fix the ".column" output mode in the command-line shell so that it correctly counts and formats multi-byte UTF characters. (check-in: f508aff8 user: drh tags: trunk)
2017-04-16
22:41
In the showwal command-line tool, for unix builds, if the auxiliary argument is of the form "Ntruncate" where "N" is a frame number, then truncate the WAL file after the N-th frame. (check-in: 90015df3 user: drh tags: trunk)
22:08
Add the anycollseq.c loadable extension in etc/misc (check-in: d7b9813c user: drh tags: trunk)
2017-04-15
16:52
Fix problems with handling constraints on the rowid column in sqlite3expert.c. (check-in: 2e630879 user: dan tags: schemalint)
15:47
Merge latest trunk changes into this branch. (check-in: 2d0c458e user: dan tags: schemalint)
14:30
Add header comment for sqlite3_vtab_collation(). (check-in: d238694c user: dan tags: schemalint)
14:16
Fix memory leaks in the code on this branch. Make use of the sqlite3_index_constraint.usage field. Do not try to handle ORDER BY terms with explicit COLLATE clauses - they don't get passed to the vtab layer anyway. (check-in: 0cd75a87 user: dan tags: schemalint)
11:53
In the skip-ahead-distinct optimization, fix a bug in the logic that determines when to invoke the optimization based on sqlite_stat1 statistics. (check-in: 89f9e436 user: drh tags: trunk)
2017-04-14
22:41
Fix to the decision logic for when to use the skip-ahead-distinct optimization. (Closed-Leaf check-in: e50fd489 user: drh tags: skip-ahead-distinct)
19:46
Remove end-of-line whitespace from lemon.c. (check-in: d78355c8 user: drh tags: trunk)
19:44
Fix some left-over K&R-C constructs in lemon.c. No changes to the core. (check-in: a5379905 user: drh tags: trunk)
19:41
Modify the code in ext/expert/ to use the vtab interface instead of sqlite3_whereinfo_hook(). Remove sqlite3_whereinfo_hook(). (check-in: 3bb65850 user: dan tags: schemalint)
19:03
Add the TK_IF_NULL_ROW opcode to deal with non-NULL result columns in the result set of a view or subquery on the RHS of a LEFT JOIN that gets flattened. (Closed-Leaf check-in: 3a5860d8 user: drh tags: left-join-view)
17:30
When doing a DISTINCT query using an index, try to use the index to skip ahead to the next distinct element, rather than doing a full scan of the index. (This is the "skip-ahead-distinct" optimization.) (check-in: f489b5bb user: drh tags: trunk)
17:18
An initial attempt to optimize VIEWs that occur as the right operand of a LEFT JOIN. This particular check-in does not work correctly because it does not deal with the case of columns in the VIEW that return non-NULL even when all columns in the table of the VIEW are NULL because of the LEFT JOIN. (check-in: 1838a59c user: drh tags: left-join-view)
14:50
Make USE_FULLWARN=1 the default for MSVC and fix harmless compiler warnings. (check-in: 6bf67376 user: mistachkin tags: trunk)
14:02
Enhance the sqlite3TreeView() display for Expr objects so that it shows the iRightJoinTable value for Expr nodes that have the EP_FromJoin property. (check-in: 5159cb8f user: drh tags: trunk)
12:39
Simplify the interface to the subst() routines that are part of the query flattener by collecting common parameters into the SubstContext object and passing around a pointer to that object. (check-in: e651074b user: drh tags: trunk)
12:27
Remove an incorrect ALWAYS(). (check-in: f956f6ae user: drh tags: trunk)
00:45
Fix a couple of unreachable branches. (check-in: 1aa0ea8d user: drh tags: skip-ahead-distinct)
2017-04-13
21:29
Fix the skip-ahead-distinct optimization so that it works with indexes that have repeated columns with different collating sequences. (check-in: ce1e2b88 user: drh tags: skip-ahead-distinct)
19:48
Simplification of the skip-ahead-distinct logic. There is still an issue with handling COLLATE. (check-in: 57c5173b user: drh tags: skip-ahead-distinct)
18:33
New test cases and minor fixes for the optimization on this branch. (check-in: 70ac9ea1 user: dan tags: skip-ahead-distinct)
16:19
Update this branch with latest changes from trunk. (check-in: 5fcd840c user: dan tags: schemalint)
15:51
Reinstate the SQLITE_API qualifier on the sqlite3_delete_database() method in test_delete.c. Accidentally removed by the previous commit. (check-in: 59c70108 user: dan tags: trunk)
15:36
Update the code in test_delete.c to use the "win32" VFS if SQLITE_OS_WIN is defined. (check-in: fa9bb7b7 user: dan tags: trunk)
13:01
Only use the skip-ahead-distinct optimization if the index has been analyzed and we know that a skip-head is likely to skip over at least 11 rows. The magic number 11 was determined by experimentation. (check-in: 0cf16dec user: drh tags: skip-ahead-distinct)
09:45
Allow a user column name to be used on the LHS of a MATCH operator in FTS5. (check-in: 6f54ffd1 user: dan tags: trunk)
01:19
Forward port the skip-ahead-distinct branch which was abandoned for some reason that I do not recall. This port should have been achived by a merge of trunk into the previous head of skip-ahead-distinct, but that did not work. So I had to manually "rebase" the changes. (check-in: 132339a1 user: drh tags: skip-ahead-distinct)
00:12
Fix a regression caused by the fix for ticket [6c9b5514077fed34551f98e64c09a1] - control characters allowed in JSON. (check-in: 8e7b6118 user: drh tags: trunk)
2017-04-12
17:50
Update fts5 to support "<colset> : ( <expr> )" for column filtering, as well as "<colset> : NEAR(...)" and "<colset> : <phrase>". (check-in: c847543f user: dan tags: trunk)
17:38
Improved \n and \r escapes in the ext/misc/dbdump.c utility function. The implementation of dbdump.c now matches the implementation in the CLI. (check-in: f2643315 user: drh tags: trunk)
2017-04-11
20:48
Avoid updating unaffected indexes on a table as part of an UPDATE that requires foreign key processing in some cases. (check-in: 7aae5c0f user: dan tags: trunk)
19:58
Avoid updating unaffected indexes on a table as part of an UPDATE that requires foreign key processing in some cases. (Closed-Leaf check-in: 477bea9e user: dan tags: fkey-optimization)
19:00
Update this branch with latest trunk changes. (check-in: 0f66a093 user: dan tags: schemalint)
18:55
Limit the depth of recursion for valid JSON in the JSON1 extension in order to avoid using excess stack space in the recursive descent parser. Fix for ticket [981329adeef51011052667a9]. (check-in: 1f68c184 user: drh tags: trunk)
18:29
Fix a formatting issue in the output of the sqlite3_expert program. (check-in: cc8c3581 user: dan tags: schemalint)
18:06
Smaller and faster implementation of exprMightBeIndexed(). (check-in: 76cd611d user: drh tags: trunk)
17:43
Add header comments to the API functions in sqlite3expert.h. Include a list of all candidate indexes in the report output by the sqlite3_expert program. (check-in: 0c45c5eb user: dan tags: schemalint)
16:44
Very slight smaller and faster sqlite3SelectNew() (check-in: 4143650c user: drh tags: trunk)
12:20
Add an ALWAYS() around an unreachable condition in sqlite3VdbeMemGrow(). (check-in: 0f3eb61f user: drh tags: trunk)
11:52
Fix a segfault that could occur if an indexed expression was used in a comparison operation within the result-set of a SELECT statement. (check-in: d6bb7c42 user: dan tags: trunk)
01:30
When evaluating a query that uses an index on an expression, try to use the expression values read directly from the index rather than reevaluating the expression. (check-in: a47efb7c user: drh tags: trunk)
01:01
Improved comments. Fix a problem when an indexed expression is used in an ORDER BY clause. (Closed-Leaf check-in: c59eaf2b user: drh tags: covering-index-on-expr)
2017-04-10
23:42
Merge changes from trunk. (check-in: 8978465f user: drh tags: covering-index-on-expr)
20:51
Smaller and faster vdbeFreeOpArray() (check-in: e052436d user: drh tags: trunk)
20:27
Slightly smaller and faster sqlite3VdbeMemGrow(). (check-in: efd1702a user: drh tags: trunk)
20:00
Add ext/expert/README.md. (check-in: 9318f1b9 user: dan tags: schemalint)
16:13
Changes to allow the code in sqlite3expert.c to be tested directly (via the API in sqlite3expert.h) instead of by invoking the sqlite3_expert application. Fix memory leaks and other problems. (check-in: 5dd98317 user: dan tags: schemalint)
12:31
Add a new JSON test case to verify that all control characters are escaped in the json_quote() function. (check-in: 6ee12221 user: drh tags: trunk)
12:25
Change the JSON extension so that it disallows control characters inside of strings. Fix for ticket [6c9b5514077fed34551f98e64c09a10dc2fc8e16]. (check-in: 475d8f82 user: drh tags: trunk)
2017-04-09
19:23
Do not expose the name of the internal Mem object in the public interface defined by sqlite3.h. (check-in: 19dd753f user: drh tags: trunk)
08:38
Fix the -file option on the sqlite3_expert program. (check-in: 0857c48e user: dan tags: schemalint)
2017-04-08
19:00
Merge latest trunk with this branch. (check-in: e051e8f2 user: dan tags: schemalint)
18:56
Rename shell6.test to expert1.test. Have it invoke the sqlite3_expert binary if it is present. (check-in: be0deff9 user: dan tags: schemalint)
18:24
Merge all recent changes from trunk. (check-in: c23ef5e2 user: drh tags: apple-osx)
18:18
Disallow leading zeros on numeric constants in JSON. Fix for ticket [b93be8729a895a528e2] (check-in: 204e72f0 user: drh tags: trunk)
17:41
Use hash tables instead of in-memory database tables for a few purposes in sqlite3expert.c. (check-in: bf10e68d user: dan tags: schemalint)
14:11
Expand on the comment above OP_Destroy to explain why it throws an error if there are any active reader VMs. (check-in: b9a8c2b9 user: dan tags: trunk)
13:52
Have the rtree module close any open blob-handle within the xSavepoint method. This prevents such an open blob handle from interfering with DROP TABLE operations. (check-in: fa4416ad user: dan tags: trunk)
13:42
Fix the quoting mechanism for ".dump" so that it is not applied for the ".mode quote" output. (check-in: 78c1e903 user: drh tags: trunk)
09:12
Have fts5 close any open blob-handle when a new savepoint is opened. This ensures that fts5 does not prevent DROP TABLE statements (which always open a savepoint) from succeeding. (check-in: a921ada8 user: dan tags: trunk)
01:09
Make sure the RTree sqlite3_blob handle is reset prior to renaming the table. (check-in: 1cdae2db user: drh tags: trunk)
00:55
Fix the ".dump" command so that it works with ".headers on". Also fix the display of ".mode insert" with ".headers on". (check-in: a6ce57ee user: drh tags: trunk)
00:25
Merge the latest trunk changes. (check-in: dd16439e user: drh tags: apple-osx)
2017-04-07
20:20
Use replace() instead of char() to quote newline and return characters in strings in the output of .dump, to avoid excess expression complexity. (check-in: 73073529 user: drh tags: trunk)
20:14
Refactor code to suggest indexes from the shell tool into an extension in ext/expert. Unfinished. (check-in: 305e19f9 user: dan tags: schemalint)
19:52
Remove an unused token type. (check-in: 13a42223 user: drh tags: covering-index-on-expr)
19:41
Proof of concept for the ability to use the expression columns in an index on expressions in place of equivalent expressions in the result set or in the WHERE clause. This check-in compiles but is mostly untested. (check-in: a52ef2ad user: drh tags: covering-index-on-expr)
11:45
Use replace() instead of char() to quote newline and return characters in strings in the output of .dump, to avoid excess expression complexity. (Closed-Leaf check-in: 4c2b5729 user: drh tags: shell-fix)
2017-04-06
18:44
Changes to allow indexes to be recommended for queries on SQL views. (check-in: 0884ff1d user: dan tags: schemalint)
14:56
Fix the ".lint fkey" shell command for cases where the child key is also an INTEGER PRIMARY KEY. (check-in: 48826b22 user: dan tags: trunk)
12:06
Fix the ".lint fkey" shell tool command so that it works for foreign keys that refer implicitly to primary key columns with non-BINARY default collation sequences. (check-in: 327eff25 user: dan tags: trunk)
2017-04-05
13:44
Remove a confusing and pointless sentence from the documentation for the sqlite3_interrupt() interface. (check-in: c5f1a2b6 user: drh tags: trunk)
12:39
Split off sqlite3DbFreeNN() from sqlite3DbFree() and use it in cases where we know that the argument to be freed is never NULL. (check-in: ad90e8bb user: drh tags: trunk)
11:57
Save a few bytes and a few CPU cycles in sqlite3ExprListDelete() routine. (check-in: 9e6c9391 user: drh tags: trunk)
11:49
Remove a conditional made unreachable by the previous ExprList enhancement. (check-in: a1cf4476 user: drh tags: trunk)
11:32
Combine the ExprList_item objects and the ExprList wrapper into a single memory allocation, for improved performance and reduced footprint. (check-in: 2b6560ad user: drh tags: trunk)
10:54
Attempt to remove bash-isms from configure.ac. Use -O0 with --enable-debug. (check-in: 71ed35cc user: drh tags: trunk)
2017-04-04
19:58
Fix a problem causing "PRAGMA integrity_check" to disable the xfer optimization for subsequent VACUUM operations on tables with one or more CHECK constraints. This could result in VACUUM producing slightly larger database files. (check-in: e5bb7db5 user: dan tags: trunk)
17:50
Add some support for OR terms to sqlite3_whereinfo_hook(). (check-in: 5cd07000 user: dan tags: schemalint)
04:23
Add the sqlite3_whereinfo_hook() API - an experimental API replacing the DBCONFIG_WHEREINFO hack on this branch. (check-in: a54aef35 user: dan tags: schemalint)
2017-04-03
14:07
Avoid an unnecessary call to sqlite3WhereGetMask() inside of whereShortCut(). (check-in: 5c11f430 user: drh tags: trunk)
13:59
Do not attempt to run sync2.test with SQLITE_DISABLE_DIRSYNC builds. (check-in: 658f08ce user: dan tags: trunk)
13:33
Force a schema load prior to "PRAGMA optimize". (check-in: 86897c24 user: drh tags: trunk)
13:17
Fix typos in the documentation for OP_Column. (check-in: 777b43e6 user: drh tags: trunk)
12:04
Slightly smaller and faster implementation for vdbeSorterCompareInt(). (check-in: 84fa069c user: drh tags: trunk)
2017-04-01
20:44
Remove an unnecessary setting of the Mem.enc field for the output of the OP_Record opcode, for a performance improvement and size reduction. (check-in: e6e36b28 user: drh tags: trunk)
20:14
Minor performance enhancements to the OP_Affinity opcode. (check-in: c45cd3b9 user: drh tags: trunk)
19:45
Remove an unnecessary clearing of the Vdbe.iCurrentTime value. (check-in: fcd2acdd user: drh tags: trunk)
11:59
Faster implementation for sqlite3VdbeIntValue() and sqlite3VdbeRealValue(). (check-in: 8698df60 user: drh tags: trunk)
11:40
Remove unused fields from the BtCursor object. (check-in: 1c0d82e0 user: drh tags: trunk)
00:20
Save a 78 bytes of code space and a million CPU cycles in speedtest1 by storing the cell index for the leaf page in the BtCursor object in its own field (BtCursor.ix), rather than as an entry in the BtCursor.aiIdx array. (check-in: 2452f061 user: drh tags: trunk)
2017-03-31
11:20
Merge latest trunk into this branch. (check-in: cb721d0b user: dan tags: schemalint)
08:00
Update shell6.test to account for the fact that tests are now run in a separate directory. (check-in: 1e3622de user: dan tags: schemalint)
2017-03-30
20:35
Merge changes from the 3.18.0 release. (check-in: 785c37d9 user: drh tags: begin-concurrent)
20:26
Merge all changes from the 3.18.0 release. (check-in: ed28f15e user: drh tags: apple-osx)
17:13
Declare the Lemon-generated parser object as itself. (Duh) (check-in: c8000e94 user: drh tags: trunk)
16:51
Increase the version number for the next development cycle. (check-in: 9e550ccc user: drh tags: trunk)
16:37
Ensure that the stack space used to hold the Lemon-generated parser object is always 8-byte aligned. (check-in: 1279de0b user: drh tags: trunk)
2017-03-29
23:22
When compiling with MSVC, disable extra SELECT/WHERE tracing for dynamically built shells. (check-in: a6891942 user: mistachkin tags: trunk)
18:03
Avoid unnecessary blob handle invalidation when changes are made to an unrelated table. (check-in: 4a01880b user: drh tags: trunk)
17:06
Slightly smaller and faster implementation of pcache1InitBulk(). (check-in: 06c2b685 user: drh tags: trunk)
16:55
Fix some tests in malloc5.test to account for the sqlite3_release_memory() change in the previous commit. (check-in: d336858d user: dan tags: trunk)
15:18
Fix the sqlite3_release_memory() interface so that it works even if SQLITE_DEFAULT_PCACHE_INITSZ is non-zero. (check-in: 5d902b7f user: drh tags: trunk)
2017-03-28
18:48
Version 3.18.0 (check-in: 424a0d38 user: drh tags: release, branch-3.18, version-3.18.0)
2017-03-25
19:16
Add the new sqlite3_set_last_insert_rowid() interface to the extension loader thunk. (check-in: 8469fc0d user: drh tags: trunk)
18:31
Do not run tests for ".dump --preserve-rowids" when testing SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 55df410b user: dan tags: trunk)
18:15
Disable the new --preserve-rowids option on the CLI ".dump" command if compiled with SQLITE_OMIT_VIRTUALTABLE. (check-in: bd5bbe4e user: drh tags: trunk)
18:03
Make the default value for SQLITE_DEFAULT_SYNCHRONOUS a simple integer literal, so that it does not show up goofy in the output of "PRAGMA compile_options;". (check-in: 833ab321 user: drh tags: trunk)
12:08
Fix two harmless compiler warnings. (check-in: 32be9c3f user: drh tags: trunk)
2017-03-24
19:45
Fix a harmless compiler warning in the JSON1 extension. (check-in: c2c3dd84 user: drh tags: trunk)
18:38
Previous check-in was not correct. This is a better fix for the OP_Once problem of ticket [06796225f59c057cd120f1]. (check-in: 8194dd28 user: drh tags: trunk)
17:59
Fix the OP_Once opcode so that it works correctly for recursive triggers. Ticket [06796225f59c057cd120f1]. (check-in: 25560145 user: drh tags: trunk)
15:09
Merge all recent enhancements from trunk. (check-in: fd5676fe user: drh tags: begin-concurrent)
13:31
Add the RFC-7396 Appendix A test cases for json_patch(). (check-in: c5441d2d user: drh tags: trunk)
12:35
Fix an error in the new json_patch() routine discovered by Ralf Junker. (check-in: 9d535041 user: drh tags: trunk)
2017-03-23
23:44
Add the json_patch() SQL function to the JSON1 extension. (check-in: 47608848 user: drh tags: trunk)
20:33
Change the name of the json_merge_patch() function to just json_patch(). (Closed-Leaf check-in: 04d41004 user: drh tags: json_mergepatch)
19:51
Improvement to the amalgamation configure.ac file contributed by Bob Friesenhahn. (check-in: bf28a55d user: drh tags: trunk)
17:22
Do not run test file autoanalyze1.test if OMIT_VIRTUALTABLE is defined. (check-in: e1d06a57 user: dan tags: trunk)
17:03
Remove an invalid assert() statement failing when VACUUMing a database that contains an index on a column explicitly declared "COLLATE BINARY". (check-in: 9f2e04d3 user: dan tags: trunk)
12:56
Avoid redundant edits in the json_merge_patch() function. (check-in: 4a8e6437 user: drh tags: json_mergepatch)
00:46
Fix harmless compiler warnings in the new json_merge_patch() logic. (check-in: 5d2cf5a2 user: drh tags: json_mergepatch)
00:13
Various fixes to the json_merge_patch() function. (check-in: f49fd255 user: drh tags: json_mergepatch)
2017-03-22
21:45
Change the name of the new function to "json_merge_patch()". (check-in: 53bf70f3 user: drh tags: json_mergepatch)
21:24
Initial implementation of the json_mergepatch(A,B) SQL function. (check-in: a2674440 user: drh tags: json_mergepatch)
12:51
Fix harmless compiler warnings in the shell. (check-in: a7868297 user: drh tags: trunk)
2017-03-21
20:17
New simplified memory initialization for MacOS. (check-in: 055b36f1 user: drh tags: trunk)
18:56
Fix an incorrect assert in the ANALYZE logic for STAT4 on WITHOUT ROWID tables. (check-in: ad741976 user: drh tags: trunk)
17:19
Add short script ext/fts3/tool/fts3cov.sh. To help measure test-coverage of fts3 source code. (check-in: ee9588e8 user: dan tags: trunk)
10:45
Do not run sync2.test as part of the "inmemory_journal" permutation. (check-in: 9f680bc7 user: dan tags: trunk)
2017-03-20
22:58
Add the --native-malloc option to fuzzcheck. Fix ossfuzz.c and fuzzcheck.c so that they both deallocate the temp_store_directory before closing. (check-in: 0dd18ec8 user: drh tags: trunk)
20:42
Fix the fuzzcheck program so that it can create new databases again. (check-in: 021e8874 user: drh tags: trunk)
19:35
Avoid passing NULL as the second argument to memcpy() in fts3. (check-in: 49b93d97 user: dan tags: trunk)
19:26
Avoid a technically undefined right-shift of a signed value in rtree.c. (check-in: a144875f user: dan tags: trunk)
18:53
Fix some problems in fts3 found by address-sanitizer. (check-in: 16a8e84f user: dan tags: trunk)
16:34
Avoid the possibility of signed integer overflow with oversized precisions in %d conversions in the printf() implementation. (check-in: ef3a7c87 user: drh tags: trunk)
16:06
Do not run sync2.test as part of the "journaltest" permutation, as it uses "PRAGMA synchronous = off". (check-in: 285005a9 user: dan tags: trunk)
15:29
Ensure that a "--" prefix is added to sqlite3_trace_v2() output for nested SQL statements. (check-in: 673a7b67 user: drh tags: trunk)
15:11
Only run sync2.test on unix, as it depends on instrumentation in os_unix.c. (check-in: ecb9321e user: dan tags: trunk)
14:44
Fix the check.test script so that it works on Windows. (check-in: 8822eb5d user: drh tags: trunk)
13:03
Documentation fix: SQLITE_SOURCE_ID is a now a SHA3-256 hash. (check-in: 2aa22509 user: drh tags: trunk)
2017-03-18
13:59
Only do the specialized MacOS single-core zone_malloc initialization if compiled with the SQLITE_MIGHT_BE_SINGLE_CORE flag. This avoids a (harmless) warning about OSAtomicCompareAndSwapPtrBarrier() being deprecated. (check-in: 4e6a03d9 user: drh tags: trunk)
2017-03-17
23:08
Fix an error in the newly revised documentation for SQLITE_LIMIT_VDBE_OP. No changes to code. (check-in: f4cf8635 user: drh tags: trunk)
22:51
Set a reasonable limit on the number of opcodes in a prepared statement for ossfuzz.c. This should prevent timeouts in OSS-Fuzz when it generates totally unreasonable queries. (check-in: f74899ed user: drh tags: trunk)
22:50
Begin enforcing the SQLITE_LIMIT_VDBE_OP. The documentation warned that this day might come. (check-in: ef591461 user: drh tags: trunk)
14:59
Add the --show-errors and --show-max-delay command-line options to the ossshell test program. (check-in: 626bdca9 user: drh tags: trunk)
14:15
Fix the Makefile.in so that it builds the ossshell test program correctly. (check-in: 36f5602e user: drh tags: trunk)
13:59
Fix a buffer overread in debugging routine sqlite3VdbeMemPrettyPrint(). Problem discovered by OSS-Fuzz. (check-in: f336fba7 user: dan tags: trunk)
03:21
Fix a problem in the enhanced PRAGMA integrity_check where it verifies CHECK constraints: Do not be confused by the reuse of the Table.pCheck field by VIEWs with named columns. Problem discovered by OSS-Fuzz. (check-in: 019dd3d5 user: drh tags: trunk)
2017-03-16
18:55
If the user has not set it explicitly, set the "PRAGMA synchronous" setting to SQLITE_DEFAULT_SYNCHRONOUS when a database connection changes from wal to rollback journal mode. (check-in: 5c604479 user: dan tags: trunk)
18:54
Fix a typo causing the build to fail if SQLITE_DEFAULT_SYNCHRONOUS==SQLITE_DEFAULT_WAL_SYNCHRONOUS. (Closed-Leaf check-in: df39adea user: dan tags: default-synchronous-fix)
18:14
If the user has not set it explicitly, set the "PRAGMA synchronous" setting to SQLITE_DEFAULT_SYNCHRONOUS when a database connection changes from wal to rollback journal mode. (check-in: 78030c0f user: dan tags: default-synchronous-fix)
14:28
Simplified OOM detection in the instr() SQL function. (check-in: 6d85eb57 user: drh tags: trunk)
13:30
Fix an uninitialized variable reference in the text generator for "PRAGMA vdbe_trace=ON" output. Problem discovered by OSS-Fuzz. (check-in: e3d48716 user: drh tags: trunk)
13:14
Fix a problem in the "showdb" utility that prevents it from correctly decoding cells with no content beyond the record header. (check-in: eb7680a1 user: drh tags: trunk)
12:11
Fix a crash that could follow an OOM condition in the instr() SQL function. Problem discovered by OSS-Fuzz. (check-in: 6e59e903 user: dan tags: trunk)
2017-03-15
20:27
Updates to README files under the ext/ hierarchy. No changes to code. (check-in: 029bc5d2 user: drh tags: trunk)
19:11
Add the "Obtaining The Code" subsection in the top-level README.md file. No changes to code. (check-in: b1b1aa8b user: drh tags: trunk)
14:20
Mention the ".selftest" command in the ".help" output of the CLI. (check-in: 37f766db user: drh tags: trunk)
14:04
Make "PRAGMA temp.synchronous=N" a no-op to ensure that the TEMP schema always has synchronous=OFF. This fixes an issue discovered by OSS-Fuzz. (check-in: bcf6bb08 user: drh tags: trunk)
13:47
Improved header comment on the shathree.c extension. No changes to code. (check-in: 84f2e3d5 user: drh tags: trunk)
2017-03-14
15:27
Updates to the MSVC makefiles. (check-in: 1e4b9e7c user: mistachkin tags: trunk)
2017-03-13
22:10
Add the dbdump.c extension that implements functionality similar to the ".dump" command of the CLI, though in a separate library. (check-in: 2b9980a2 user: drh tags: trunk)
22:02
Add dbdump.exe to the MSVC makefile. (Closed-Leaf check-in: 59241a50 user: drh tags: dbdump)
21:49
Fixes to the dump logic. All appears to be working in preliminary tests. (check-in: 007b11e3 user: drh tags: dbdump)
21:26
First draft of the complete dbdump.c library. (check-in: 84ea4fcc user: drh tags: dbdump)
19:26
Infrastructure for an extension C-library to implement sqlite3_db_dump() and a corresponding "dbdump" command-line utility - both of which do the same work as the ".dump" command of the CLI. (check-in: 74c5ace4 user: drh tags: dbdump)
18:31
Merge all recent changes from trunk. (check-in: 3d04b2cd user: drh tags: apple-osx)
18:24
In the output of the ".dump" command in the CLI, quote newline and carriage-return characters using the char() function, so that they do not get eaten by end-of-line processing logic in the OS or in other command-line utilities and/or libraries. (check-in: 68f6dc7a user: drh tags: trunk)
17:37
Fix the sqlite3TreeViewSelect() routine so that it works with a null pointer to the Select object. (check-in: 9034cf7e user: drh tags: trunk)
14:30
Fix a segfault that could occur following an OOM error in the flattenSubquery() routine. (check-in: c6dda3f7 user: dan tags: trunk)
13:45
In the OSSFuzz test module, invoke the progress handler much more frequently so that timeouts are detected punctually even if the test script is running opcodes that individually take a long time (for example, an OP_Function opcode that invokes "randomblob(1.5e6)"). (check-in: f3b6959c user: drh tags: trunk)
2017-03-12
20:28
Fix a possible NULL pointer dereference in following an OOM error in sqlite3ExprIsInteger(). Problem found by OSS-Fuzz. (check-in: 5ec655e8 user: drh tags: trunk)
19:39
Remove an obsolete assert() in the IN operator code generation. (check-in: 18bf6aca user: drh tags: trunk)
2017-03-11
13:02
Make sure the translateColumnToCopy() routine in the query planner does not try to access an array that failed to be fully allocated due to a prior OOM. This fixes an issue discovered by OSSFuzz. (check-in: 3299a261 user: drh tags: trunk)
01:56
The output of the ".dump" command in the CLI quotes newline and carriage-return characters using "char(10)" and "char(13)". (Closed-Leaf check-in: 8b2954dd user: drh tags: string-quoting-dump)
00:46
Increase the number of significant digits in floating point literals on ".dump" output from the shell. (check-in: 7359fcac user: drh tags: trunk)
2017-03-10
18:36
Remove the rbu_round_trip.tcl script. It is now part of project "test-dbs". (check-in: b5bf2957 user: dan tags: trunk)
17:03
Fix an error in the SQLITE_MAX_MEMORY implementation resulting from a bad merge. Update the OSSFuzz interface so that it times out after running the byte-code engine for 10 seconds. (check-in: f8560c60 user: drh tags: trunk)
16:22
Add the -DSQLITE_MAX_MEMORY=N compile-time option. The default is no limit. (check-in: eabd4ef4 user: drh tags: trunk)
15:55
Add the SQLITE_MAX_MEMORY compile-time option that provides a hard upper bound on the amount of memory that SQLite will use, per process. (Closed-Leaf check-in: 77dfe2ab user: drh tags: max-memory-option)
14:36
Enhance the ".stats" dot-command in the CLI to use sqlite3_status64() instead of sqlite3_status(). (check-in: 118f5c05 user: drh tags: trunk)
01:05
Improvements to ".selftest --init". Tests are number in increments of 10 starting with 100. The tests are generated inside a SAVEPOINT. Errors are reported during test generation. Tests can be appended to existing tests. Add a test case to verify the schema. (check-in: b044b152 user: drh tags: trunk)
2017-03-09
22:00
Remove the test/dbselftest.c program. In its place, add the ".selftest" command to the CLI. The new CLI version is .selftest is slightly different in that it uses SHA3 hashing instead of SHA1, so the new is subtly incompatible with the old. (check-in: f4fcd46f user: drh tags: trunk)
18:13
Fix the ".dump" command to correctly extract tail data from corrupt WITHOUT ROWID tables. (check-in: 6c627e50 user: drh tags: trunk)
16:32
Add the --recovery-mode option to the CLI ".dump" command. This involves enhancing the "PRAGMA reverse_unordered_selects" command to accept a "TOGGLE" option. Recovery mode used to be always on. Now it is opt-in. Not sure this is the correct approach. Also not sure if TOGGLE is a good feature to have on boolean PRAGMA statements. (Closed-Leaf check-in: 5dc82a15 user: drh tags: dump-recovery)
13:50
Begin moving separate boolean variables in the ShellState object of the CLI into the shellFlgs bitmask. (check-in: 50eec5d9 user: drh tags: trunk)
2017-03-08
23:29
Refactor the output logic in the CLI. Not sure we want to go this way. Just saving the work for historical reference, or in case I decide to come back to it. (Leaf check-in: aacac906 user: drh tags: shell-print-refactor)
18:37
Merge recent enhancements from trunk, including the --preserve-rowids option to .dump and the .sha3sum commands of the CLI. (check-in: 9b439173 user: drh tags: apple-osx)
18:06
Make sure the database connection is open prior to running the ".sha3sum" command. (check-in: 2ea300fb user: drh tags: trunk)
17:56
In the ".sha3sum" command, if there is a LIKE pattern, show the hashes for each table separately. Without a LIKE pattern, show a single hash over the entire database. (check-in: 30f87883 user: drh tags: trunk)
16:10
Add the ".sha3sum" command to the CLI - used to compute a cryptographic hash of the content of a database file or of individual tables with in that file. (check-in: fc663799 user: drh tags: trunk)
15:03
Improved comments explaining the sha3_query() format. Fix a performance #ifdef error in the sha3 implementation. (check-in: 54ef7abd user: drh tags: trunk)
13:50
Add the shathree.c extension for implementing SHA3() and SHA3_QUERY() SQL functions. (check-in: f7ca9193 user: drh tags: trunk)
12:25
In the CLI, avoid unnecessary identifier quoting in the ".dump" output. Also add new ".dump" test cases. (check-in: de65f907 user: drh tags: trunk)
11:44
Add the --preserve-rowids option to the ".dump" command in the CLI. (check-in: c60aee24 user: drh tags: trunk)
2017-03-07
20:03
Add test script ext/rbu/rbu_round_trip.tcl. Uses "dbselftest" to test that "rbu" and "sqldiff" work together. (check-in: 961e79da user: dan tags: trunk)
14:47
Before beginning an incremental checkpoint in RBU, sync the directory containing the target database file. This ensures that the new directory entry created by renaming the *-oal file to *-wal is synced to disk. Cherrypick of [915a9a28]. (Leaf check-in: 694fe0b2 user: dan tags: version-3.17.0-rbu-fixes)
14:46
Fix another RBU case similar to the previous. This one for systems where the sector-size is larger than the page-size. Cherrypick of [4012bb3a]. (check-in: 59a11b7f user: dan tags: version-3.17.0-rbu-fixes)
14:45
When saving the state of an RBU update in the incremental-checkpoint phase, sync the database file. Otherwise, if a power failure occurs and the RBU update resumed following system recovery, the database may become corrupt. Cherrypick of [edee6a80]. (check-in: 811a5599 user: dan tags: version-3.17.0-rbu-fixes)
14:38
Performance optimization in the tokenizer/parser loop. (check-in: 2cb71583 user: drh tags: trunk)
12:18
Minor comment typo fixes. No changes to code. (check-in: 01cd9fb1 user: drh tags: trunk)
03:40
More size and speed improvements in the expression name resolver. (check-in: e0a3d39f user: drh tags: trunk)
03:25
Small size reduction and performance increase in the name resolver routine for expressions. (check-in: 1a3554e1 user: drh tags: trunk)
2017-03-06
23:51
Make the default MASK argument for "PRAGMA optimize" be 0xfffe, to allow for future expansion of up to 14 new default-on optimizations. (check-in: 73019a8b user: drh tags: trunk)
20:44
Fix a typo in a comment. No changes to code. (check-in: ec529bf1 user: drh tags: trunk)
20:00
Merge all pending 3.18 enhancements from trunk. (check-in: 1650c3f4 user: drh tags: apple-osx)
17:33
Add an initial implementation of the "PRAGMA optimize" command. (check-in: 137aeb2b user: drh tags: trunk)
11:39
Merge updates from trunk. (Closed-Leaf check-in: 5f7fc79a user: drh tags: auto-analyze)
2017-03-03
21:51
If a reprepare is needed after binding to a variable with a number larger than 32, set only the high-order bit of the Vdbe.expmask rather than setting all bits. This could potentially result in fewer false-positive reprepares. (check-in: 45797fee user: drh tags: trunk)
21:36
Remove an redundant function call from the date/time function implementation. (check-in: 4a04c48a user: drh tags: trunk)
20:43
Fix another corner-case for the 'start of ...' modifier in the date/time functions. Related to ticket [6097cb92745327a1]. (check-in: 8831f439 user: drh tags: trunk)
20:02
Fix a case introduced by [4cd2a967] where a corrupt database could cause a buffer overwrite. (check-in: 5d0455fe user: dan tags: trunk)
16:51
Before beginning an incremental checkpoint in RBU, sync the directory containing the target database file. This ensures that the new directory entry created by renaming the *-oal file to *-wal is synced to disk. (check-in: 915a9a28 user: dan tags: trunk)
2017-03-02
23:40
Fix a bug in the 'start of ...' date/time modifiers when they follow a julian day number. Fix for ticket [6097cb92745327a1]. (check-in: 081dbcfb user: drh tags: trunk)
16:56
Fix another RBU case similar to the previous. This one for systems where the sector-size is larger than the page-size. (check-in: 4012bb3a user: dan tags: trunk)
14:51
When saving the state of an RBU update in the incremental-checkpoint phase, sync the database file. Otherwise, if a power failure occurs and the RBU update resumed following system recovery, the database may become corrupt. (check-in: edee6a80 user: dan tags: trunk)
14:17
Add an optional bitmask of allowed optimizations on the "PRAGMA optimize" command. The 0x01 bit is Debug Mode. (check-in: a35388ee user: drh tags: auto-analyze)
13:22
Merge recent trunk enhancements. (check-in: c60cdb47 user: drh tags: auto-analyze)
13:13
Make sure the Vdbe.expmask value is set correctly in sqlite3VdbeSwap(). This fixes a problem introduced by [a8fd7052]. (check-in: 29f54b89 user: drh tags: trunk)
2017-03-01
11:30
Fix a use-after-free problem in the shell tool code that could occur if an SQL statement were executed after an ".open" command with invalid options. (check-in: ac760db0 user: dan tags: trunk)
2017-02-27
17:16
Make PATH handling more robust in the batch tools for MSVC. (check-in: 23a8917e user: mistachkin tags: trunk)
17:06
Improve performance of fts5 writes by writing the "averages" record once at the end of each transaction instead of every time the table is updated. (check-in: 2b210d69 user: dan tags: trunk)
16:15
Add an sqlite3_set_last_insert_rowid() method. Use it to work around fts4 and fts5 modifying the last-insert-rowid unintuitively from within commit processing. (check-in: 952a3906 user: dan tags: trunk)
14:52
Add an sqlite3_set_last_insert_rowid() method. Use it to work around fts4 and fts5 modifying the last-insert-rowid unintuitively from within commit processing. (Closed-Leaf check-in: fe41bb56 user: dan tags: set-last-insert-rowid)
12:23
Remove references to special handling in virtual table methods from the documentation for sqlite3_last_insert_rowid(). (check-in: 660f9569 user: dan tags: trunk)
2017-02-25
20:57
Add an 'extern "C"' block to header file sqlite3userauth.h. (check-in: ffd61fb4 user: dan tags: trunk)
17:47
Optimize defragmentPage() in the case where the page contains either one or two free-blocks and a small number of fragmented bytes. (check-in: 4cd2a967 user: dan tags: trunk)
16:24
Tweak the code on this branch to detect b-tree page corruption in the same cases as the trunk. (Closed-Leaf check-in: f9863b39 user: dan tags: defragmentpage-opt)
2017-02-24
19:58
Optimize defragmentPage() in the case where the page contains either one or two free-blocks and a small number of fragmented bytes. (check-in: 202b1c02 user: dan tags: defragmentpage-opt)
2017-02-23
16:30
Save a few bytes and a few cycles by setting Vdbe.expmask to zero for statements prepared using legacy interface sqlite3_prepare(). (check-in: a8fd7052 user: dan tags: trunk)
02:15
Add two NEVER() operators in the sqlite3BtreeRowCountEst() routine. (check-in: 7a959f6d user: drh tags: auto-analyze)
00:58
Do a single OP_Expire at the very end of "PRAGMA optimize", and omit the OP_Expire on ANALYZE commands invoked by the pragma. (check-in: 188300a3 user: drh tags: auto-analyze)
2017-02-22
20:24
Change the name of the analyze_as_needed pragma to "optimize". Enhance the comment (which will become documentation, assuming these changes land on trunk) to explain that the optimize pragma is likely to be enhanced in various ways in future releases and that applications should not depend upon the current behavior. (check-in: 9fced545 user: drh tags: auto-analyze)
19:49
Merge integrity_check and other improvements from trunk. (check-in: fe073905 user: drh tags: auto-analyze)
19:41
Move a branch condition in analyze.c inside an #ifdef SQLITE_ENABLE_STAT4 block. (check-in: d6afd98d user: dan tags: trunk)
19:27
Improve the performance of ANALYZE when SQLITE_ENABLE_STAT4 is defined. (check-in: 737a8244 user: dan tags: trunk)
18:53
Improvements to PRAGMA integrity_check. Verify CHECK constraints. Verify NOT NULL constraints even on table that lack indexes. Verify CHECK and NOT NULL constraints with PRAGMA quick_check. (check-in: aa02bd3c user: drh tags: trunk)
18:04
Cleanup and simplification of the output row count limit control of PRAGMA integrity_check. (Closed-Leaf check-in: 5af7d72e user: drh tags: integrity-check-improvements)
15:11
Fix integrity_check so that it verifies NOT NULL constraints even for tables that have no indexes. Enhance quick_check so that it verifies NOT NULL and CHECK constraints. (check-in: 5264844b user: drh tags: integrity-check-improvements)
14:15
Enhance "PRAGMA integrity_check" so that it verifies CHECK constraints. (check-in: 549bae08 user: drh tags: integrity-check-improvements)
2017-02-21
21:24
In sqlite3VdbeHalt(), return as soon as possible if Vdbe.magic!=VDBE_MAGIC_RUN. This makes sqlite3_reset() slightly faster in some cases. (check-in: 80adc0cb user: dan tags: trunk)
17:52
Fix an FTS5 problem that could cause a crash when certain queries were interrupted using sqlite3_interrupt(). (check-in: e400909f user: dan tags: trunk)
15:27
Very small enhancement to dispatch speed for SQL functions. (check-in: 3c3228ed user: drh tags: trunk)
14:04
The VDBE cycle counts for the sqlite3_progress_handler() callback are now cumulative. Leftovers from the previous statement are applied to the next statement. (Leaf check-in: 7a62fc6a user: drh tags: cumulative-progress-count)
13:29
Proof of concept for a "PRAGMA vdbe_cycle_limit=N" command. When N>0, invoke sqlite3_interrupt() whenever any byte code program uses more than N virtual machine cycles. (Leaf check-in: 9626b41e user: drh tags: vdbe_cycle_limit)
2017-02-20
23:32
Correct a harmless typo in the previous check-in. (check-in: 1589db01 user: mistachkin tags: trunk)
19:13
Avoid unsigned integer overflows for SQLITE_WIN32_HEAP_INIT_SIZE when the Win32 heap subsystem is used with very large values of SQLITE_DEFAULT_CACHE_SIZE and/or SQLITE_DEFAULT_PAGE_SIZE. (check-in: 96b6a98e user: mistachkin tags: trunk)
14:30
Small grammar simplification. (check-in: 0d8a868a user: drh tags: trunk)
13:11
Merge fixes from trunk. (check-in: ff213f2e user: drh tags: auto-analyze)
2017-02-18
22:52
Updated comments. No code changes. (check-in: e842ad39 user: drh tags: auto-analyze)
20:05
Add an optimization to OP_Column to speed up sequential OP_Column instructions that read earlier fields from the same cursor. Attempt to reorder OP_Column opcodes so as to take advantage of this. (Leaf check-in: c1adf959 user: dan tags: sort-column-opcodes)
15:58
Add the OP_SqlExec opcode and use it to implement "PRAGMA analyze_as_needed", invoking ANALYZE subcommands as necessary. This simplifies the implementation. (check-in: d386015f user: drh tags: auto-analyze)
13:47
Add the SQLITE_BUG_COMPATIBLE_20160819 compile-time option to omit the error message when an unrecognized argument is provided to the VACUUM command. (check-in: 49181427 user: drh tags: trunk)
02:42
Fix errors in the table resize detection. (check-in: 4229caec user: drh tags: auto-analyze)
02:19
In the analyze_as_needed pragma, avoid running unnecessary OP_LoadAnalysis and OP_Expire opcodes. Make the analyze_as_needed pragma responsive to the schema name. (check-in: 882599a4 user: drh tags: auto-analyze)
2017-02-17
23:52
Fix the #endif location for an #ifndef SQLITE_UNTESTABLE macro in the command-line shell. (check-in: 8cc9d74c user: drh tags: trunk)
21:23
Increase the estimated cost of sorting when sorting wide results sets, to account for the extra storage space and I/O required for the external sort. (Leaf check-in: 38298ef9 user: drh tags: apple-increased-sorting-cost)
19:24
The analyze_as_needed pragma now responds to table size growth and will automatically rerun the analysis after each 10x size increase. (check-in: bfbdd074 user: drh tags: auto-analyze)
16:26
Add the "PRAGMA analyze_as_needed" command. (check-in: e93db237 user: drh tags: auto-analyze)
15:26
Set the TF_StatsUsed flag on tables when the query planner outcome is affected by the sqlite_stat1 data. Also, change the column names of the "PRAGMA stats" command so that they are not keywords. (check-in: fb2b8ae8 user: drh tags: auto-analyze)
13:38
Enhance the Index and Table objects so that they remember if their stats come from the sqlite_stat1 table. Make the "PRAGMA stats" an SQLITE_DEBUG only pragma. Add the flags column to "PRAGMA stats". These are all preliminary steps toward a "PRAGMA analyze_ifneeded;" feature. (check-in: 85026c8e user: drh tags: auto-analyze)
02:07
Merge fixes from trunk. (Leaf check-in: 662e8ccf user: drh tags: increased-sorting-cost)
02:04
Fix a test case that was made to fail by the LIKE optimization enhancement in check-in [158290c0ab] but which went unnoticed because test builds were running with ICU enabled and ICU disables the LIKE optimization. (check-in: 218b2bbb user: drh tags: trunk)
01:43
Enable the ".wheretrace" and ".selecttrace" extensions in the command-line shell when compiled on Windows using DEBUG=3 or higher. Fix a harmless warning in the shell that comes up when compiled this way. (check-in: 8a03be1d user: drh tags: trunk)
2017-02-16
21:29
Increase the estimated cost of sorting when sorting wide results sets, to account for the extra storage space and I/O required for the external sort. (check-in: aa0703e5 user: drh tags: increased-sorting-cost)
20:52
Change the name of WhereInfo.pDistinctSet to pResultSet, since it is now used for more than just DISTINCT processing. (check-in: 9fc5cd50 user: drh tags: trunk)
17:18
Change two MallocZero() calls into MallocRaw() to avoid unnecessary memset(). (check-in: ff5e733c user: drh tags: trunk)
16:26
Fix a comment on a field of the ExprList object. No changes to code. (check-in: bb8e2642 user: drh tags: trunk)
15:57
Increase Table.tabFlags from 8 to 32 bits. (check-in: 7e14044c user: drh tags: trunk)
15:06
Remove two redundant initializations from the virtual table logic. (check-in: 6bd82b95 user: drh tags: trunk)
14:48
Always use the IsVirtual() macro to determine if a Table object is a virtual table. Slightly smaller and faster code. (check-in: 6affb1c8 user: drh tags: trunk)
14:02
Merge recent enhancements from trunk. (check-in: 325ccfa9 user: drh tags: est_count_pragma)
2017-02-15
22:36
Query planner optimization to detect empty tables in a join early and bail out without doing excess work. (check-in: 58797e9b user: drh tags: trunk)
18:30
Minor enhancement to mutex tracing on Win32. (check-in: 830b9235 user: mistachkin tags: trunk)
17:47
simple test cases for carray_asc. (Leaf check-in: 1d4759c1 user: drh tags: carray_asc)
16:11
Add the companion "carray_asc" table-valued function to the carray extension. (check-in: a2b4f60b user: drh tags: carray_asc)
16:04
Bummer. Checked this in as a branch off of the wrong branch.... Was: Add the companion "carray_asc" table-valued function to the carray extension. (Closed-Leaf check-in: 396b9d99 user: drh tags: mistake)
15:11
Remove the CLANG_VERSION macro, since we have learned that version numbers in clang are "marketing" and are inconsistent and unreliable. Builds using clang will still use the GCC_VERSION macro since clang works hard to be gcc compatible. (check-in: 8d3f485d user: drh tags: branch-3.17)
15:09
Remove the CLANG_VERSION macro, since we have learned that version numbers in clang are "marketing" and are inconsistent and unreliable. Builds using clang will still use the GCC_VERSION macro since clang works hard to be gcc compatible. (check-in: 810d2932 user: drh tags: trunk)
04:16
Further reforms to Tcl_*Alloc() usage. (check-in: ee1e6896 user: mistachkin tags: trunk)
01:39
In the blob test code, avoid crashing on low-memory systems by using Tcl_AttemptAlloc(). (check-in: 1d267757 user: mistachkin tags: trunk)
01:02
Make SQLITE_GET_MUTEX_TIME a proper noop on non-Win32/non-POSIX. (Leaf check-in: 4ca2b2f8 user: mistachkin tags: mutexDbg2)
00:52
Another compilation fix for POSIX. (check-in: 82ef47ea user: mistachkin tags: mutexDbg2)
00:45
Make fine time granularity work on POSIX. (check-in: 79057716 user: mistachkin tags: mutexDbg2)
00:02
Compilation fix for POSIX. (check-in: 9964ad24 user: mistachkin tags: mutexDbg2)
2017-02-14
23:58
Experimental enhancements to mutex debugging. (check-in: 80481754 user: mistachkin tags: mutexDbg2)
21:47
Clarification of the help text for the command-line shell. (check-in: ca4f1e49 user: drh tags: trunk)
20:00
Enable the SQLITE_ENABLE_NULL_TRIM option for WITHOUT ROWID tables. (check-in: 54836270 user: drh tags: trunk)
16:30
More realistic lengths of string values in speedtest1 with --testset orm. (check-in: e4731fd6 user: drh tags: trunk)
15:58
Fix a testcase number on the ORM testset of speedtest1. (check-in: 58b2f911 user: drh tags: trunk)
15:57
Add the new "--testset orm" to the speedtest1 utility. (check-in: 1836adc1 user: drh tags: trunk)
2017-02-13
16:17
Merge all changes up through the 3.17.0 release. (check-in: 1913a758 user: drh tags: apple-osx)
16:02
Version 3.17.0 (check-in: ada05cfa user: drh tags: release, version-3.17.0, branch-3.17)
13:35
Change all legacy instances of "#if SQLITE_DEBUG" to "#ifdef SQLITE_DEBUG" for consistency. (check-in: 670f10b2 user: drh tags: trunk)
13:26
Fix typos in using the MSVC_VERSION macro. (check-in: f3b65926 user: drh tags: trunk)
13:20
Avoid a duplication #define in FTS5 (check-in: c447441c user: drh tags: trunk)
11:35
Fix typos in using the MSVC_VERSION macro. (check-in: 25ebadd0 user: drh tags: branch-3.17)
2017-02-11
15:02
Ensure that indexed expressions with collating sequences are handled correctly. Fix for ticket [eb703ba7b50c1a5] backported from trunk. (check-in: b2e49ae3 user: drh tags: branch-3.17)
14:59
Fix indexes on expressions so that they can be actually used with a COLLATE clause. (check-in: e464b919 user: drh tags: trunk)
13:51
Ensure that indexed expressions with collating sequences are handled correctly. Proposed fix for ticket [eb703ba7b50c1a5]. (check-in: 9689d04b user: drh tags: trunk)
2017-02-10
21:40
Bump the version number up to 3.18.0. (check-in: 7520c238 user: drh tags: trunk)
21:37
Enhance the LIKE optimization so that it works for arbitrary expressions on the LHS as long as the pattern on the RHS does not begin with a digit or a minus sign. (check-in: 158290c0 user: drh tags: trunk)
19:38
Add the "," flag to printf(). (check-in: 064445b1 user: drh tags: trunk)
17:38
Version 3.17.0 release candidate (check-in: ad867e87 user: drh tags: branch-3.17)
2017-02-09
17:12
Cleanup the usage of the SQLITE_DISABLE_INTRINSIC compile-time option. Remove the SQLITE_RUNTIME_BYTEORDER compile-time option. Use -DSQLITE_BYTEORDER=0 instead. Fix a bug in R-Tree that occurs when compiling on a known little-endian machine without the use of intrinsic byteswapping functions. (check-in: 798fb9d7 user: drh tags: trunk)
2017-02-08
19:12
Avoid preparing a SELECT statement each time an UPDATE or DELETE by docid is executed against an fts3 table. (check-in: 1afec575 user: dan tags: trunk)
19:10
Avoid preparing a SELECT statement each time an UPDATE or DELETE by docid is executed against an fts3 table. (Leaf check-in: 9962c10a user: dan tags: fts3-seekstmt-cache)
18:13
Typo fixes in comment. No changes to code. (check-in: c09dd5c0 user: mistachkin tags: trunk)
16:55
Merge the 3.17.0beta changes from trunk. (check-in: 92dbd875 user: drh tags: apple-osx)
16:01
Always invoke the xRoundup() method of the memory allocator before calling xMalloc(). (check-in: 77b470b0 user: drh tags: trunk)
12:18
Round up the size of all memory allocations to a multiple of 8 bytes when using the system memory allocator. (check-in: c46e06fa user: drh tags: trunk)
2017-02-07
21:44
When generating the hash on the sqlite_master table in dbselftest, use an ORDER BY clause, since the sqlite_master table is reordered by VACUUM. (check-in: c8bfd99b user: drh tags: trunk)
21:09
MSVC makefile enhancments for several command line tools and the session extensions. (check-in: fc1dfe87 user: mistachkin tags: trunk)
21:00
Fix harmless compiler warnings in dbfuzz. (check-in: 61242267 user: drh tags: trunk)
20:57
Fix harmless compiler warnings in kvtest.c (check-in: db6b3993 user: drh tags: trunk)
20:51
The dbselftest utility now generates hashes in the selftest table with --init. It also accepts multiple database files on the command-line. (check-in: e68829c9 user: drh tags: trunk)
19:36
Omit fts5fault1.test from the inmemory_journal permutation. (check-in: cb1e83f9 user: dan tags: trunk)
19:23
Update a test parameter in malloc5.test to account for the increase in default lookaside buffer size. (check-in: be82d5ae user: dan tags: trunk)
17:36
Add the initial version of the "dbselftest" utility program. (check-in: 1fcac836 user: drh tags: trunk)
16:15
Update an error message in corruptC.test. (check-in: 722e57fe user: dan tags: trunk)
14:45
Fix a build problem affecting non-amalgamation rtree builds. (check-in: bb7f445b user: dan tags: trunk)
14:22
Fix a test case to account for the fact that sqlite3_blob_reopen() now returns SQLITE_IOERR_NOMEM instead of SQLITE_NOMEM if an OOM occurs in the VFS layer. (check-in: e11cc523 user: dan tags: trunk)
13:51
Fix SQLITE_BYTEORDER #defines in R-Tree when compiled separately from the amalgamation. (check-in: a136609c user: drh tags: trunk)
12:58
Make the cellMargin() routine of R-Tree slightly smaller and faster while also fixing a harmless compiler warning. (check-in: 07fe6228 user: drh tags: trunk)
03:44
Back out [ec8ff892ac] which is causing missed OOM errors on some tests. (check-in: 0611770d user: drh tags: trunk)
00:55
Fix a minor typo in a comment in R-Tree. No changes to code. (check-in: f77ee9e9 user: drh tags: trunk)
2017-02-06
16:52
Remove a small amount of unnecessary code from R-Tree. (check-in: e5aea894 user: drh tags: trunk)
15:27
Add the "max-limits" utility program to the tools/ subdirectory. (check-in: c54173b6 user: drh tags: trunk)
07:37
Fix a bug in kvtest causing "init --variance 0" runs to generate single byte blob values only. (check-in: 6b0276f9 user: dan tags: trunk)
01:19
Remove incorrect testcase() macros from R-Tree. (check-in: 853a58a7 user: drh tags: trunk)
2017-02-04
20:15
Simplification to the error handling to extension loading in sqlite3_open(). (check-in: ec8ff892 user: drh tags: trunk)
17:33
Allow sqlite3session_apply() to apply changesets to tables that have been extended using ALTER TABLE ADD COLUMN. (check-in: b20ff81f user: dan tags: trunk)
15:29
Merge recent trunk enhancements. (check-in: 6c3f0902 user: drh tags: apple-osx)
14:30
Merge the latest trunk changes, especially the RTREE enhancement to use sqlite3_blob objects. (Leaf check-in: 61bd2a88 user: drh tags: sqlite3_blob_reset)
14:24
In RTREE, use an sqlite3_blob object rather than an sqlite3_stmt object for reading content out of the %_node shadow table. (check-in: 97ccf3e4 user: drh tags: trunk)
13:12
Close sqlite3_blob objects on xSync rather than waiting until xCommit. (Closed-Leaf check-in: 95ee745f user: drh tags: rtree-blob-agressive-release)
2017-02-03
20:54
Improved performance and stack usage when processing VALUES clauses with a very large number of rows. (check-in: 5706d470 user: drh tags: trunk)
19:16
Avoid a performance problem when very large "VALUES(..), (..), (..)" terms are used in queries. (Closed-Leaf check-in: f5306ad6 user: dan tags: recursive-selectdup)
15:16
Improved tests for the carray() table-valued function. (check-in: 83a099f1 user: drh tags: trunk)
14:44
Modify the sqlite3SelectDup() routine to avoid recursing on Select.pPrior. (check-in: a7674ead user: dan tags: recursive-selectdup)
00:07
Merge in the sqlite3_blob_reset() interface. (Closed-Leaf check-in: e9c94a1f user: drh tags: rtree-sqlite3_blob)
2017-02-02
23:57
Add the sqlite3_blob_reset() interface. Enhance the behavior of sqlite3_blob objects so that they can go active again after encountering an error by rerunning sqlite3_blob_reopen(). More work needed on the documentation. (check-in: 53b77838 user: drh tags: sqlite3_blob_reset)
20:32
Ensure that all cursors have their positions saved prior to rolling back a savepoint. (check-in: 8e03a8e9 user: drh tags: trunk)
19:24
Fix issues in the sha1 extension seen with MSVC. (check-in: 5a0da77c user: mistachkin tags: trunk)
16:30
Remove the unused pReadNode prepared statement from each RTREE object. (check-in: e51dc0ec user: drh tags: rtree-sqlite3_blob)
16:08
Fix a potential uninitialized (though harmless) variable in RTREE. (check-in: a1c74e09 user: drh tags: rtree-sqlite3_blob)
15:35
The sqlite3_blob_close() interface can cause recursive invocations of nodeBlobReset() in RTREE. Make sure that does not cause problems. (check-in: 88333441 user: drh tags: rtree-sqlite3_blob)
14:40
Change RTREE so that the sqlite3_blob object is closed whenever the cursor count drops to zero and there is not a pending write transaction. (check-in: 9bb4eafe user: drh tags: rtree-sqlite3_blob)
02:28
Use the sqlite3_blob interface for reading values from the %_node shadow table in RTREE. This is a work in progress. There are still some minor problems. (check-in: fc4917d7 user: drh tags: rtree-sqlite3_blob)
00:46
This is an experimental patch that ensures that all cursors have their position saved prior to starting a ROLLBACK TO. (Closed-Leaf check-in: 01d97e5b user: drh tags: savepoint-rollback)
2017-02-01
23:06
Fix harmless compiler warnings seen with MSVC. (check-in: 0c66cf0f user: mistachkin tags: trunk)
23:03
Backout the change in [02f6293f27] as it causes MSVC to complain. (check-in: aaae74d0 user: mistachkin tags: trunk)
22:59
Fix C99-style variable declaration issue seen with older versions of MSVC. (check-in: 54d28546 user: mistachkin tags: trunk)
22:43
Fix harmless compiler warnings seen with MSVC. (Closed-Leaf check-in: 997f765b user: mistachkin tags: msvcWarn)
22:32
Add an option to the MSVC makefile to enable treating warnings as errors. (check-in: 6a378c29 user: mistachkin tags: trunk)
17:08
Unwind the RTREE dimension loop inside of rtreeCallbackConstraint(). (check-in: 4854ea9c user: drh tags: trunk)
16:41
Completely unroll the dimension loop inside of cellArea() in RTREE. (check-in: 3c4c0126 user: drh tags: trunk)
15:49
Precompute the nDim2 value in the Rtree object and use that to make loops over coordinates faster. (check-in: f1f3c8cc user: drh tags: trunk)
15:24
Use compiler intrinsic functions (when available) for byteswapping in RTREE. (check-in: 82fcd54a user: drh tags: trunk)
15:19
Fix the build by making the OPFLAG_ISNOOP macro available unconditionally. (check-in: 510933cb user: drh tags: trunk)
14:19
Update the documentation comment in sqlite.h.in for sqlite3_preupdate_hook(). (check-in: 7f857020 user: dan tags: trunk)
14:10
Changes so that the pre-update hook and the sessions module work with WITHOUT ROWID tables. (check-in: 964bdc27 user: dan tags: trunk)
02:25
More RTREE performance optimizations related to decoding values. (check-in: c5395e74 user: drh tags: trunk)
01:34
Improved comments on the statGet() implementation in ANALYZE. No changes to code. (check-in: 9663eea2 user: drh tags: trunk)
2017-01-31
21:22
R-TREE optimization: unwrap the coordinate decode loop in rtreeCallbackConstraint(). (check-in: 0bf7b518 user: drh tags: trunk)
19:10
Very small performance improvements and size reductions in sqlite3VdbeExec() and blobSeekToRow(). (check-in: 85dddf2b user: drh tags: trunk)
19:02
Simplifications to blobSeekToRow(). (Closed-Leaf check-in: 495ea824 user: drh tags: micro-optimizations)
17:31
Add a speed-test program for the sessions module. (Closed-Leaf check-in: 25f1275f user: dan tags: preupdate-without-rowid)
16:49
Remove a C99-style comment. Fixes to the kvtest-speed.sh script. (check-in: 91eb6b62 user: drh tags: micro-optimizations)
16:43
Remove another unnecessary local variable initialization from sqlite3VdbeExec() (check-in: 2361b03b user: drh tags: micro-optimizations)
16:34
Remove an unnecessary initialization of the pOp variable in sqlite3VdbeExec(). (check-in: 02f6293f user: drh tags: micro-optimizations)
15:29
Add the "stat" command to kvtest.c. Also add the --variance option to the "init" command. Add the tool/kvtest-speed.sh script used for doing performance testing on key/value access patterns. (check-in: b63deed6 user: drh tags: trunk)
15:27
Fix a typo in a comment. (check-in: bd22bf9c user: drh tags: trunk)
14:08
Merge latest trunk with this branch. (check-in: 4a592abb user: dan tags: preupdate-without-rowid)
12:41
Further minor enhancement and size reduction in sqlite3ExprAssignVarNumber(). (check-in: eacfdcf2 user: drh tags: trunk)
03:52
Performance optimization in sqlite3ExprAssignVarNumber(). (check-in: 5987ca1f user: drh tags: trunk)
2017-01-30
19:44
Experimental change to invoke the preupdate hook when WITHOUT ROWID tables are written. (check-in: 856f8604 user: dan tags: preupdate-without-rowid)
11:38
Fix building with SQLITE_OMIT_FOREIGN_KEY defined. (check-in: e93d2c49 user: dan tags: trunk)
2017-01-28
20:46
In the amalgamation, allocate the parser engine object from stack rather than from heap, for improved performance. This only happens in the amalgamation, since otherwise the sqlite3RunParser() routine does not know the object size. (check-in: 4fe879d4 user: drh tags: trunk)
19:53
Fix a couple comment typos. No changes to code. (check-in: 2a2e7d86 user: mistachkin tags: trunk)
19:45
Avoid redundant table b-tree cursor seeks in UPDATE statements that use the two-pass strategy. (check-in: dc555b10 user: dan tags: trunk)
15:26
Updates to the sqlite3_blob documentation. No changes to code. (check-in: 426b440a user: drh tags: trunk)
13:40
In the speed-check.sh script, automatically invoke "fossil test-diff --tk" on the cachegrind output against trunk, if not generating a trunk run. (check-in: aa1ab371 user: drh tags: trunk)
06:50
Fix a typo in the docs for sqlite3_update_hook(). (check-in: 7c029655 user: dan tags: trunk)
2017-01-27
19:27
Add the sha1.c loadable extension that implements the sha1() and sha1_query() SQL functions. (check-in: 24e77c1c user: drh tags: trunk)
17:02
Fix a problem causing the pre-update hook to be invoked by DROP TABLE statements. (check-in: fbb6bf1b user: dan tags: trunk)
16:39
Merge all recent trunk enhancements into the apple-osx branch. (check-in: 0e14fe1b user: drh tags: apple-osx)
16:24
Merge all recent enhancements from trunk. (check-in: fe86ff54 user: drh tags: est_count_pragma)
13:14
Alternative ICU fix (compare to check-in [50e60cb4]) that avoids casting integers to pointers. (check-in: d9752c8f user: drh tags: trunk)
01:52
In the command-line shell, enhance the ".mode" command so that it restores the default column and row separators for modes "line", "list", "column", and "tcl". (check-in: 58f02e6e user: drh tags: trunk)
01:25
Another micro-optimization in accessPayload(). Slightly smaller and faster. (check-in: c012619b user: drh tags: trunk)
01:13
Performance optimization in accessPayload(). (check-in: ebb1fd98 user: drh tags: trunk)
00:31
Simplify the accessPayload() routine so that it always populates the overflow page cache. In the one case where populating the page cache can lead to problems, simply invalidate the cache as soon as accessPayload() returns. This simplification reduces code size and helps accessPayload() to run a little faster. This backs out the eOp==2 mode of accessPayload() added by check-in [da59198505]. (check-in: 68e7a8c6 user: drh tags: trunk)
2017-01-26
21:30
Remove an unreachable branch in the error handling logic for sqlite3BtreePayloadChecked(). (check-in: 293bf3ed user: drh tags: trunk)
18:00
Improvement to the OP_Permutation opcode to prevent it from using CPU cycles for initialization in prepared statements that do not use that opcode. (check-in: b4a98f65 user: drh tags: trunk)
17:26
Remove the obsolete lastRowid cache from the sqlite3VdbeExec() for a size reduction and performance improvement. (check-in: b4803184 user: drh tags: trunk)
17:11
Performance optimization in sqlite3VdbeCloseStatement(). (check-in: 1e96e5ec user: drh tags: trunk)
16:54
Performance optimization to sqlite3_blob_read(). (check-in: 7459f4b7 user: drh tags: trunk)
16:27
Minor simplification and performance optimization for Direct Overflow Read. (check-in: 3e96d6ef user: drh tags: trunk)
02:26
Make SQLITE_DIRECT_OVERFLOW_READ work for in WAL mode as long as the page being read is not in the the -wal file. (check-in: 9879be18 user: drh tags: trunk)
01:54
Enhancements to the kvtest utility program. Add the --jmode option. Improved output formatting. (check-in: 62a4851c user: drh tags: trunk)
00:58
Modify the ICU extension to use a static initializer, as VC++ complains about a dynamic initialization. Maybe the dynamic structure initialization is a GCC extension. This fixes a problem identified on the SQLite mailing list by Ziemowit Laski. (check-in: 50e60cb4 user: drh tags: trunk)
2017-01-25
20:55
Trim NULL values off the end of records when the SQLITE_ENABLE_NULL_TRIM compile-time option is used. Increase the size of the P5 operand to 16 bits. Fix a problem with short records in the sessions extension. (check-in: 4801bd59 user: drh tags: trunk)
18:53
Fix another pre-update hook issue, this time in sqlite3preupdate_old(). (Closed-Leaf check-in: c7651d21 user: dan tags: trim-nulls)
18:12
Fix a test script problem in exclusive2.test causing it to fail on this branch. (check-in: f66614dc user: dan tags: trim-nulls)
17:44
Fix a problem with the pre-update hook on this branch. (check-in: 6fc4fbfa user: dan tags: trim-nulls)
14:58
Experimental enhancement to automatically trim NULL values from the end of records, for a reduced disk footprint. This change also involves increasing the P5 operand from 8 to 16 bits. (check-in: 118ded40 user: drh tags: trim-nulls)
14:38
Ensure that sqlite3_blob_reopen() correctly handles short rows. Fix for ticket [e6e962d6b0f06f46e]. (check-in: 8cd1a445 user: drh tags: trunk)
13:54
Fix SQLITEINT_H macro usage in two extensions. (check-in: 0803390c user: drh tags: trunk)
04:41
Ensure that sqlite3_blob_reopen() correctly handles short rows. Proposed fix for ticket [e6e962d6b0f06f46e]. Further testing needed. (Closed-Leaf check-in: 57d8dad3 user: drh tags: blob_reopen-fix)
2017-01-23
21:12
Experimental changes to permit a VFS to directly override the initial page size. (Leaf check-in: 64131724 user: mistachkin tags: pagePerSector)
19:11
Document the --mmap option in the --help screen for kvtest. Enhance kvtest so that numeric arguments can have suffixes like "K" or "M". Add kvtest to the unix makefiles. (check-in: 175bda87 user: drh tags: trunk)
18:40
Add the --mmap option to the kvtest utility program. (check-in: 4948f7e6 user: drh tags: trunk)
16:56
Optimization: Try to avoid unnecessary btree searching when repositioning a cursor to the next row. (check-in: ee793d30 user: drh tags: trunk)
15:58
Add the missing SQLITE_API symbol to test_delete.c (it is not added automatically as this file is not part of the amalgamation). (check-in: 7a4f512d user: dan tags: trunk)
07:06
Fix a problem preventing FTS5 from correctly passing the FTS5_TOKENIZE_PREFIX flag to custom tokenizer implementations. (check-in: 03c60134 user: dan tags: trunk)
2017-01-22
16:34
Fix an uninitialized variable in the command-line shell. (check-in: 06b8001a user: drh tags: trunk)
02:04
Fixes to documentation comments in the public header file. (check-in: 772dcb08 user: mistachkin tags: trunk)
00:11
Fix an initialized variable in kvtest. (check-in: ed62c5a6 user: drh tags: trunk)
2017-01-21
21:47
A better implementation of the moveto-neighbor optimization that checks for nearby rows on adjacent pages. (Closed-Leaf check-in: 2c4ecb85 user: drh tags: btree-moveto-neighbor)
16:54
B-tree optimization: When seeking on a rowid table that has already been positioned, check to see if the new row happens to be the next row on the same leaf page. That is a reasonably common case, and if it is true it avoids a full binary search. (check-in: 8e5cfb20 user: drh tags: btree-moveto-neighbor)
16:27
Change sqlite3_blob_reopen() to call sqlite3VdbeExec() directly rather than going through sqlite3_step(). Performance enhancement. (check-in: 347df3c1 user: drh tags: trunk)
16:21
Fix problems in the previous commit. (Leaf check-in: 74ad80eb user: dan tags: trigger-trace)
15:58
Add extra (somewhat inefficient) trace callbacks for triggers if SQLITE_TRACE_TRIGGER is defined. (check-in: ffda1d1e user: dan tags: trigger-trace)
15:55
In the kvtest.c test utility, reuse the buffer into which blobs are read, rather than reallocating it for each row. This is a closer match to how other test programs work, and thus provides a better comparison. (check-in: 0d1ad13a user: drh tags: trunk)
15:30
A proof-of-concept for running sqlite3_blob_open() without using OP_Column when operating on a pure key/value table. This demo does not include any corrupt database checking. Uses about 3% fewer CPU cycles on a key/value performance test. (Leaf check-in: 4cda3b30 user: drh tags: kv-access-opt-demo)
14:11
Remove an unnecessary sqlite3_bind_int64() call from sqlite3_blob_open(). Also other minor refactoring of the sqlite3_blob implementation. (check-in: 9d197a53 user: drh tags: trunk)
2017-01-20
20:43
Minor performance optimization and size reduction to the accessPayload() routine in btree.c. (check-in: 264e5c10 user: drh tags: trunk)
16:47
Fix a typo in the help message for kvtest. (check-in: 8971d98f user: dan tags: trunk)
16:46
Add option "--stats" to test program kvtest. Specifying --stats causes kvtest to output information similar to the shell tool option of the same name. (check-in: 90291327 user: dan tags: trunk)
16:09
Get the "--testset rtree" option working on speedtest1. Add the --rtree, --lookaside, and --clang options to the speed-check.sh script. (check-in: 87b640c8 user: drh tags: trunk)
00:40
Minor performance optimizations to sqlite3_blob_open() and sqlite3_blob_reopen(). (check-in: 52a61967 user: drh tags: trunk)
2017-01-19
21:20
If compiled with SQLITE_INLINE_MEMCPY, all memcpy() calls are replaced with in-line code. With that change, cachegrind shows which memcpy() calls are taking the most time. This is a performance-measurement hack only and is not for production use. (check-in: 9ed38521 user: drh tags: trunk)
18:20
In the 'vtshim' extension, avoid accessing freed memory when handling errors from xCreate/xConnect. (check-in: ffd559af user: mistachkin tags: trunk)
12:07
Add a prototype of the sqlite3_kv_reset() interface. (Leaf check-in: 088c5903 user: drh tags: sqlite3_kv)
11:52
Add test cases for the instrumentation on this branch. Fix some OOM handling issues in the same. (Leaf check-in: 50ca94b9 user: dan tags: transaction-pages)
2017-01-18
23:12
For Windows 8.x and higher, require the SQLITE_WIN32_WIN8_SECTOR_SIZE compile-time option in order to enable sector size determination. (Leaf check-in: 47beb55c user: mistachkin tags: winSectorSize)
22:47
In the 'windirent' test module, use a macro for the hidden/system attribute checking. (check-in: a84a08d0 user: mistachkin tags: trunk)
22:19
Remove superfluous option to Tcl 'lsort' in the vtabH test file. (check-in: b92cc6e5 user: mistachkin tags: trunk)
22:16
Make the vtabH-3.1 test more portable and robust. (check-in: d3c91c1f user: mistachkin tags: trunk)
22:16
Fix handling of initial hidden and/or system files in the opendir() implementation for Windows. No changes to non-test code. (check-in: 26dd42b4 user: mistachkin tags: trunk)
20:14
Add temporary code to record and report on the set of b-tree pages read and written by the current transaction. This is likely still buggy. (check-in: 2a8f6c89 user: dan tags: transaction-pages)
19:54
Begin fleshing out the key/value accessor implementation. This is an incremental check-in. (check-in: 02d60e19 user: drh tags: sqlite3_kv)
19:36
Improve and update comments. (check-in: 2dc16d34 user: mistachkin tags: winSectorSize)
19:06
Minimize the requested permissions when opening the volume on Windows 7 and Vista. (check-in: 8d429a59 user: mistachkin tags: winSectorSize)
17:20
Baseline interface definition for the experimental sqlite3_kv accessor object. (check-in: a435841e user: drh tags: sqlite3_kv)
01:11
Add runtime version checking for winSectorSize. (check-in: cb9d1ab3 user: mistachkin tags: winSectorSize)
00:27
When determining sector sizes on Windows 7 and Vista, make sure the target file is on the same volume as corresponding root directory. (check-in: de699ead user: mistachkin tags: winSectorSize)
2017-01-17
10:41
Fix a problem that could cause a spurious SQLITE_NOMEM error when attempting to resume an RBU operation if the previous client failed right after completing the incremental checkpoint. Also a "cannot vacuum wal db" error that could occur when resuming an RBU vacuum if an error (OOM or IO error) occurs during the incremental checkpoint. (check-in: 681d96eb user: dan tags: trunk)
00:10
Disable intrinsic functions for Windows using Clang, due to reports of linkage errors. This causes a 0.6% performance reduction. We will want to revisit this change in the future. (check-in: 7fd560c6 user: drh tags: trunk)
2017-01-16
18:10
Back out check-in [0b3174e0b1364c] and replace it with a better fix for \ticket [91e2e8ba6ff2e2] - a fix that does not cause the problem identified by ticket [7ffd1ca1d2ad4ec]. Add new test cases for both tickets. (check-in: 9b64af7b user: drh tags: trunk)
16:43
Back out check-in [0b3174e0b1364c] and replace it with a better fix for ticket [91e2e8ba6ff2e2] - a fix that does not cause the problem identified by ticket [7ffd1ca1d2ad4ec]. (Closed-Leaf check-in: 06136652 user: drh tags: automatic-index-affinity)
16:01
Add test cases for tickets [91e2e8ba6ff2e2] and [7ffd1ca1d2ad4ec]. (check-in: 9d0dfe0b user: drh tags: automatic-index-affinity)
11:54
An example showing how to improve performance of sqlite3VdbeSerialPut() using the GCC intrinsic function __builtin_bswap64(). (Leaf check-in: e42ed9b4 user: drh tags: builtin-bswap64)
2017-01-13
22:21
Merge updates from trunk. (check-in: 8b42b8e3 user: mistachkin tags: winSectorSize)
18:24
Fix a problem preventing resumption of RBU operations after recovering from a process or system failure that occurs during the incremental-checkpoint phase. (check-in: 97914266 user: dan tags: trunk)
12:53
Fix the build for SQLITE_ENABLE_MEMORY_MANAGEMENT. (check-in: 8c85b8fd user: drh tags: trunk)
2017-01-12
23:37
Attempt to detect physical sector sizes on Windows Vista and higher. (check-in: 6e388423 user: mistachkin tags: winSectorSize)
19:10
Remove a branch that is probably unreachable, and which adds no value. (check-in: 9acc7238 user: drh tags: trunk)
16:21
Fix harmless compiler warnings in the UPDATE code generator. (check-in: 385db266 user: drh tags: trunk)
16:14
Remove an unnecessary corruption test from the btree balancer. If corruption is present, it will be found harmlessly by later tests. (check-in: bddf3956 user: drh tags: trunk)
15:19
Test case macros to show that the previous check-in is well tested. (Leaf check-in: bd8b977a user: drh tags: extra-testcase-macros)
15:11
Improved detection of cells that extend into the reserved space at the end of the page while adjusting overflow page pointers during autovacuum. (check-in: 8097712c user: drh tags: trunk)
11:52
Remove invalid test case from cursorhints2.test (check-in: 163cc1b2 user: drh tags: trunk)
11:50
Make sure Tcl_AppendResult() always has a NULL-pointer argument at the end. (check-in: c07aef6f user: drh tags: trunk)
2017-01-11
21:03
Changes to allow some multi-row UPDATE statements to avoid the two-pass approach. (check-in: 7ae6104a user: dan tags: trunk)
20:10
Fix a problem causing the pre-update hook to be passed an incorrect rowid value in some single-pass multi-row updates. (Closed-Leaf check-in: 62257eb5 user: dan tags: onepass-update)
19:03
Fix a problem with single-pass multi-row UPDATE statements that invoke REPLACE conflict handling. (check-in: 0a2b8e1b user: dan tags: onepass-update)
16:52
Attempt to detect physical sector sizes on Windows 8 and higher. (check-in: 381fd34b user: mistachkin tags: winSectorSize)
15:42
Fix a problem preventing UPDATE statements that use a range-scan on the PK index of a WITHOUT ROWID table from using a one-pass strategy. (check-in: cab86c90 user: dan tags: onepass-update)
14:15
In the STAT4 computations, ensure that the aAvgEq values do not go negative. (check-in: f58f75b5 user: drh tags: trunk)
2017-01-10
20:04
Changes to allow some multi-row UPDATE statements to avoid the two-pass approach. (check-in: 46db23cc user: dan tags: onepass-update)
17:37
Add a test case for ticket [25e335f802dd]. (check-in: e500c15a user: dan tags: trunk)
17:33
Throw an error if the ON clause of a LEFT JOIN references tables to the right of the ON clause. Fix for ticket [25e335f802dd]. (check-in: c92ecff2 user: drh tags: trunk)
16:09
Avoid unnecessary calls to the xRoundup() method of the memory allocator when the soft heap limit is not set. (check-in: 4209b89e user: drh tags: trunk)
15:08
Fix a potential assertion fault discovered by OSS-Fuzz. (check-in: 71c03b59 user: drh tags: trunk)
2017-01-09
20:57
Merge latest changes from trunk, and also move the perf-counter into the inner loop of sqlite3BtreeMovetoUnpacked(). (Leaf check-in: ff9eab95 user: drh tags: vdbe-aux-perf)
19:55
Remove a redundant assignment statement. (check-in: a5fa0965 user: drh tags: trunk)
19:27
Performance optimization and size reduction in the OP_Variable opcode. (check-in: 237aa974 user: drh tags: trunk)
18:22
Fix typo in a comment. No changes to code. (check-in: d38fd229 user: mistachkin tags: trunk)
18:20
Try to move OP_Concat operations outside the inner loop. This turns out to make things very slightly slower, at least in speedtest1.c. (Closed-Leaf check-in: 8a90f691 user: drh tags: failed-optimization)
15:44
Modify the OP_RowData opcode so that when P3!=0 it is allowed to hold an ephemeral copy of the content. This avoids unnecessary memcpy() operations in the xfer-optimization and VACUUM. (check-in: 6e106acd user: drh tags: trunk)
13:43
Add the SQLITE_UINT64_TYPE compile-time option. (check-in: a5fe03bc user: drh tags: trunk)
07:00
Merge the "changebatch" functionality into this branch. (check-in: 50fb1eb3 user: dan tags: begin-concurrent)
06:53
Disable the optimization from [8cb8516d] (omit TableLock instructions for non-sharable databases) on this branch. This branch uses the TableLock instructions to ensure that the db schema is not written from within a BEGIN CONCURRENT transaction. (check-in: c8ca3e0a user: dan tags: begin-concurrent)
06:33
Upgrade this branch to 3.16 plus the various fixes that appeared after its release. (check-in: d0e212d0 user: dan tags: begin-concurrent)
2017-01-07
14:47
Improvements to the iIdxNoSeek optimization of sqlite3GenerateRowDelete() so that it is automatically disabled for BEFORE triggers but works in all other cases. (check-in: 3178ec4c user: drh tags: trunk)
14:26
Critical fix to the previous check-in so that it works when there are BEFORE triggers that move the cursor before the OP_Delete has a chance to be applied. (check-in: db2c0960 user: drh tags: trunk)
03:26
Avoid an unnecessary btree seek while deleting an index entry due to a conflict on a REPLACE operation. (check-in: f0495c51 user: drh tags: trunk)
00:56
Avoid duplicate b-tree searches in the duplicate row detector used to implement DISTINCT. (check-in: d577dda0 user: drh tags: trunk)
00:42
This hack illustrates how to use the VDBE_PROFILE mechanism to show which bytecode operators are using resources other than time. In this case, the number of loops through the binary search code in sqlite3BtreeMovetoUnpacked() is measured, for the purpose of helping to identify unnecessary btree searches. (check-in: 746b1836 user: drh tags: vdbe-aux-perf)
2017-01-06
17:01
Merge the changes for version 3.16.2. (check-in: c59c8880 user: drh tags: apple-osx)
16:32
Version 3.16.2 (Leaf check-in: a65a6289 user: drh tags: release, branch-3.16, version-3.16.2)
13:53
Clarify the documentation on sqlite3_column_count(). (check-in: 01b4cb26 user: dan tags: branch-3.16)
13:52
Ensure that "PRAGMA case_sensitive_like" and "PRAGMA shrink_memory" set the number of output columns to 0 (as they are statements that return no data). (check-in: 4a97ba4e user: dan tags: branch-3.16)
13:49
Ensure that "PRAGMA case_sensitive_like" and "PRAGMA shrink_memory" set the number of output columns to 0 (as they are statements that return no data). (check-in: 6696cd18 user: dan tags: trunk)
11:56
Improve handling of corrupt databases in fts5. (check-in: b0726941 user: dan tags: branch-3.16)
11:55
Improve handling of corrupt data in fts5. (check-in: 609ac1c7 user: dan tags: trunk)
01:09
Clarify the documentation on sqlite3_column_count(). (check-in: 9ea0badd user: drh tags: trunk)
00:02
Remove several non-portable tests for the deprecated temp_store_directory PRAGMA. (check-in: 28d87789 user: mistachkin tags: trunk)
2017-01-05
20:01
Ensure that sqlite3_column_count() returns 0 for the "set" mode of "get/set" PRAGMA statements that do not return a value in that case (e.g. page_size, cache_size, auto_vacuum). (check-in: e745da6b user: dan tags: branch-3.16)
20:00
Ensure that sqlite3_column_count() returns 0 for the "set" mode of "get/set" PRAGMA statements that do not return a value in that case (e.g. page_size, cache_size, auto_vacuum). (check-in: 2f57939a user: dan tags: trunk)
19:32
Ensure that sqlite3_column_count() returns 0 for the "set" mode of "get/set" PRAGMA statements that do not return a value in that case (e.g. page_size, cache_size, auto_vacuum). (Closed-Leaf check-in: 5c05d8ec user: dan tags: pragma-columncount-fix)
17:27
Version 3.16.2 second release candidate (check-in: 285c5a54 user: drh tags: branch-3.16)
17:25
Fix handling the case where a sub-query in a FROM clause is itself a UNION ALL, and one side of that UNION ALL is a query on a view that includes an ORDER BY. Fix for ticket [190c2507]. (check-in: ec1e85a6 user: dan tags: branch-3.16)
17:23
Fix handling the case where a sub-query in a FROM clause is itself a UNION ALL, and one side of that UNION ALL is a query on a view that includes an ORDER BY. Fix for ticket [190c2507]. (check-in: 590ca83b user: dan tags: trunk)
15:50
Version 3.16.2 release candidate (check-in: 9d8ffe13 user: drh tags: branch-3.16)
14:05
Increase the version number to 3.16.2 (check-in: 9592cbcf user: drh tags: branch-3.16)
13:56
Fix problems in trigger and foreign key handling when doing REPLACE on a WITHOUT ROWID table that has no secondary indexes. Fix for ticket [30027b613b4]. (check-in: 8a788594 user: drh tags: branch-3.16)
13:52
Ensure that the sqlite3_value_text() interface returns a buffer that is long enough to hold the complete string plus the zero terminator even when the input is a zeroblob. Fix for a problem detected by OSS-Fuzz. (check-in: ca185808 user: drh tags: branch-3.16)
13:50
Fix problems in trigger and foreign key handling when doing REPLACE on a WITHOUT ROWID table that has no secondary indexes. Fix for ticket [30027b613b4]. (check-in: 571f166e user: drh tags: trunk)
07:58
Ensure that the sqlite3_value_text() interface returns a buffer that is long enough to hold the complete string plus the zero terminator even when the input is a zeroblob. Fix for a problem detected by OSS-Fuzz. (check-in: 2dc7eeb5 user: drh tags: trunk)
06:57
Fix some problems with foreign key processing within REPLACE ops on WITHOUT ROWID tables with no triggers or auxiliary indexes. (Closed-Leaf check-in: c1220b1a user: dan tags: replace-fix)
2017-01-04
22:02
Improved the comment on the block of code the provides the performance optimization originally added by check-in [925840cfdb]. The original check-in omitted condition 4, which was the cause of bug [30027b613b]. (check-in: c6506b82 user: drh tags: replace-fix)
20:13
Possible fix for [30027b61]. There may still be problems surrounding foreign key processing. (check-in: 71ccb1f4 user: dan tags: replace-fix)
14:53
Adjust filename creation in test_sqllog.c so that it uses leading zeros on counters, so that files appear in order when sorted lexicographically. (check-in: 8d670973 user: drh tags: trunk)
13:09
Performance enhancements in the printf implementation. (check-in: 82e4001b user: drh tags: trunk)
04:18
Factor constant functions out of the inner loop since they are more expensive than the extra OP_Copy needed to move the result into place. (check-in: 80ad317f user: drh tags: trunk)
04:10
Clean up the implementation of constant function factorization. (Closed-Leaf check-in: 2ab997e4 user: drh tags: factor-constant-funcs)
01:07
Attempt to factor out constant functions from the interior of table scans, since functions can often be expensive to compute. (check-in: 62e9270a user: drh tags: factor-constant-funcs)
00:26
Changes to the printf implementation for better performance. (Closed-Leaf check-in: acdb8f6f user: drh tags: printf-optimization)
2017-01-03
21:57
Use compiler intrinsic functions for signed integer math when overflow detection is needed. (check-in: d3ac32a6 user: drh tags: trunk)
21:50
Back out the use of __sync_fetch_and_sub() as it does not appear to work. (Closed-Leaf check-in: 4c2efd42 user: drh tags: gnu-safe-math)
21:03
Fix a typo in a comment. (check-in: ae087123 user: drh tags: gnu-safe-math)
20:20
Merge changes from the 3.16.1 release (check-in: dcbec226 user: drh tags: apple-osx)
20:01
Use the CLANG_VERSION macro to control clang-specific features. (check-in: f8ebeec2 user: drh tags: gnu-safe-math)
18:27
Version 3.16.1 (check-in: 979f0439 user: drh tags: release, version-3.16.1, branch-3.16)
18:05
Use the GCC built-in __sync_fetch_and_sub() to make the sqlite3StatusDown() routine atomic, and thereby avoid some mutexing. (check-in: f69ce75b user: drh tags: gnu-safe-math)
17:33
Make use of the __buildin_OP_overflow() functions from GCC when doing 64-bit signed integer arithmetic. (check-in: 82cbebb8 user: drh tags: gnu-safe-math)
16:03
Bump the version number up to 3.16.1. (check-in: a60b60d6 user: drh tags: branch-3.16)
15:59
Defer size checking on row-value assignments for when the RHS is a SELECT until after the "*" wildcards have been expanded. (check-in: 5c892938 user: drh tags: branch-3.16)
15:57
Fix the row-values in UPDATE statements within TRIGGER problem identified by ticket [8c9458e7]. (check-in: bf984e98 user: drh tags: branch-3.16)
14:45
Add the experimental affinity() SQL function when SQLITE_DEBUG is defined. (check-in: bed0eaa5 user: drh tags: trunk)
14:39
Put the affinity() function implementation inside of #ifdef SQLITE_DEBUG. (Closed-Leaf check-in: f778f58a user: drh tags: affinity-sql-func)
14:30
Merge all the latest changes from trunk. (check-in: c27cd8a8 user: drh tags: affinity-sql-func)
13:45
Defer size checking on row-value assignments for when the RHS is a SELECT until after the "*" wildcards have been expanded. (check-in: 36944be6 user: drh tags: trunk)
11:59
Fix a typo on a comment. No code changes. (check-in: abc27b60 user: drh tags: trunk)
08:11
Add test cases for the fix in [f12ed3ce]. No problems discovered. (check-in: 548532fd user: dan tags: trunk)
02:58
Improvements to the way vector assignment size checking is done. Size checks when the RHS is a SELECT are deferred until after "*" wildcards are expanded. (Closed-Leaf check-in: 696219b1 user: drh tags: vector-size-check)
01:24
Fix the row-values in UPDATE statements within TRIGGER problem identified by ticket [8c9458e7]. (check-in: f12ed3ce user: drh tags: trunk)
00:27
Improved assert()s on the sqlite3ExprListDup() logic for TK_SELECT_COLUMN. (Closed-Leaf check-in: 14da99d4 user: drh tags: rowvalue-update-trigger)
2017-01-02
23:43
Test cases for the row-value UPDATE TRIGGER fix. (check-in: b9b96437 user: drh tags: rowvalue-update-trigger)
23:18
Put an ALWAYS() on an unreachable branch in the sqlite3ExprListDup() routine. (check-in: 2caaaab5 user: drh tags: rowvalue-update-trigger)
22:36
Proposed fix for the row-value TRIGGER UPDATE problem described in ticket [8c9458e7]. (check-in: 61a442ea user: drh tags: rowvalue-update-trigger)
19:10
Increase the version number to 3.17.0 for the next release cycle. (check-in: 16415b5a user: drh tags: trunk)
19:02
Provide the SQLITE_DEFAULT_LOOKASIDE compile-time option and make it's default value be 1200,100 (raised from 512,125 in the latest release). (check-in: 584da48f user: drh tags: trunk)
18:40
Change SQLITE_DEFAULT_PCACHE_INITSZ from 100 to 20, which is experimentally determined to be slightly faster. (check-in: 12d9493c user: drh tags: trunk)
18:19
Avoid unnecessary calls to sqlite3BtreeEnterAll() and sqlite3BtreeLeaveAll() when no btree is using shared-cache. (check-in: cfb31582 user: drh tags: trunk)
12:20
Add the --all option to the wordcount test program. Fix the speedtest1 test program so that it builds on MSVC and so that the --lookaside 0 0 option works. (check-in: cb338f36 user: drh tags: trunk)
11:57
Version 3.16.0 (check-in: 04ac0b75 user: drh tags: trunk, release, version-3.16.0)
2017-01-01
12:44
Detect row-value comparison size mismatches even when the size of one operand is obscured by an unexpanded subquery. (check-in: 2c4d167c user: drh tags: trunk)
2016-12-31
21:55
Add the --help and --all options to the wordcount test utility. (Closed-Leaf check-in: 18baeadf user: drh tags: wordcount-enhancement)
18:37
In speedtest1.c, make the "--lookaside 0 0" option completely disable lookaside. (Closed-Leaf check-in: 52b99bcb user: drh tags: speedtest1)
14:33
Minor #include change to speedtest1.c so that it will compile under MSVC. (check-in: 8c28fde0 user: drh tags: speedtest1)
2016-12-30
17:40
Fix a crash that could occur following an OOM in the group_concat() function if the second argument is an SQLITE_BLOB value. (check-in: 14d855d2 user: dan tags: trunk)
15:16
Strengthen the defense against OOM in the instr() SQL function. (check-in: a0971e71 user: drh tags: trunk)
14:25
Add a test to ensure that the app-defined pcache xFetch() method is never passed a key of zero. (check-in: 0bdbe49c user: drh tags: trunk)
14:15
Avoid passing NULL pointers to memcmp() or memcpy(), even when the "number-of-bytes" argument is passed 0. (check-in: 56ff72ab user: dan tags: trunk)
13:55
Clarify the expectations for the behavior of the xFetch method on the sqlite3_pcache_methods object for the case when the key is zero. (Closed-Leaf check-in: b0810ac1 user: drh tags: pcache1-zero-page)
13:40
Improved detection of zero page numbers in the page cache. (check-in: 5550e815 user: drh tags: pcache1-zero-page)
12:10
Fix a harmless compiler warning in fuzzcheck.c (check-in: 2842bc60 user: drh tags: trunk)
12:06
Disable the pagerAcquireMapPage() routine if memory-mapped I/O is disabled. This fixes a harmless compiler warning on OpenBSD. (check-in: 3e25ba6e user: drh tags: trunk)
00:09
Encode a 64-bit integer literal in date.c as a constant expression so that it works on older compilers. Also fix a harmless compiler warning in vdbe.c. (check-in: f57952ba user: drh tags: trunk)
2016-12-29
19:48
Fix harmless compiler warnings in the command-line shell and in Lemon. (check-in: afcdc4a6 user: drh tags: trunk)
17:25
In kvtest.c, use stat() instead of fseek()/ftell() to determine the size of a BLOB to be read directly from disk. This makes the pile-of-files database more competative against SQLite. (check-in: a7dca29f user: drh tags: trunk)
16:58
Add the kvtest.c test program used to show that it is many times faster to read thumbnail and similar BLOBs out of an SQLite database than it is to read them as separate files from the filesystem. (check-in: 8074d59c user: drh tags: trunk)
16:49
Add more detail to the header command to further explain how to compile and use the kvtest.c utility. (Closed-Leaf check-in: 55d29839 user: drh tags: kvtest)
16:18
Fix kvtest.c so that it compiles using MSVC. (check-in: e2bbeae7 user: drh tags: kvtest)
15:26
In kvtest.c: do not show the --cache-size setting on fopen() runs. Show progress for the (potentially slow) "export" command. (check-in: b0f58d24 user: drh tags: kvtest)
14:44
Improvements to the kvtest.c utility. Added the --cache-size option. Additional reporting of version and settings at the end of "./kvtest run". (check-in: f6fcac6a user: drh tags: kvtest)
03:57
Add the kvtest.c test program for measuring key/value read performance under various scenarios. (check-in: 489e0787 user: drh tags: kvtest)
2016-12-27
15:59
Do not allow the nockpt.test module to run under the inmemory_journal permutation. (check-in: a6af06f1 user: drh tags: trunk)
13:33
Allow sqlite3_interrupt() to be invoked on a database connection that is in the process of being closed even if SQLITE_ENABLE_API_ARMOR is defined. (check-in: 7854bee2 user: drh tags: trunk)
12:45
Adjust a corruption test case to accommodate the sqlite3BtreeInsert() optimization of check-in [0b86fbca66]. (check-in: 4cb0945f user: drh tags: trunk)
12:35
Disable new test modules nockpt.test and interrupt2.test for incompatible permutations. Add a CORRUPT_DB term to an assert() in vdbe.c. (check-in: a54e619e user: drh tags: trunk)
12:08
Avoid a potential (harmless) signed integer overflow in memory usage accounting when calling sqlite3_realloc() to reduce the size of an allocation. (check-in: 2d71cbdf user: drh tags: trunk)
02:43
Minor changes to make some newer test cases work under more compile-time options. (check-in: 382eea36 user: drh tags: trunk)
2016-12-26
12:25
During fuzz testing with the fuzzcheck utility program, impose a record length limit of 100MB and a limit on the length of LIKE strings of 50 bytes. (check-in: edc9db41 user: drh tags: trunk)
12:14
Enable ossfuzz.c to build even if SQLITE_OMIT_PROGRESS_CALLBACK is defined. (check-in: a37c00dc user: drh tags: trunk)
01:41
Remove an incorrect ALWAYS() macro from balance_nonroot(), which could result in corrupt databases if it were optimized out. This ALWAYS was added only two weeks ago (check-in [f9f2e23bbd68a]) and has never appeared in an official release. (check-in: e447b23c user: drh tags: trunk)
00:18
Add the built-in affinity() SQL function. (check-in: 57e40e1c user: drh tags: affinity-sql-func)
00:15
Enhance the fuzztest utility with the --prng-seed option. Always reseed the PRNG prior to each test. (check-in: 8c5187f6 user: drh tags: trunk)
2016-12-24
21:32
Combine the implementations of the ".tables" and ".indexes" commands in the command-line shell. The ".indexes" command now puts the indexes in multiple columns, just like ".tables" and shows all indexes in all attached databases. (check-in: def29333 user: drh tags: trunk)
19:37
The schema name "main" is always an acceptable alias for the primary database even if the primary database is renamed using SQLITE_DBCONFIG_MAINDBNAME. (check-in: 2f481b85 user: drh tags: trunk)
18:18
Change the output format of the ".databases" command in the command-line shell so that it shows the schema name, a colon, and the corresponding filename. (check-in: 8558512e user: drh tags: trunk)
18:04
In the command-line shell, improve the formatting to the ".databases" command and on the ".tables" command, only show the schema prefix for databases past the first ("main") database. (check-in: c0d5626e user: drh tags: trunk)
2016-12-23
16:05
Fill in missing opcode documentation entries for OP_SorterNext and OP_SorterSort. (check-in: 2940661b user: drh tags: trunk)
13:54
Use the VList object to capture the mapping between SQL parameter names and variable numbers in a single memory allocation. (check-in: 99fddf2e user: drh tags: trunk)
13:52
Add check to prevent a VList from growing after pointers to labels have been taken. (Closed-Leaf check-in: aa23d7ea user: drh tags: VList)
13:30
Fix the VList object so that it actually works. (check-in: 9dcd8569 user: drh tags: VList)
03:59
Use the VList object to replace Parse.azVar for tracking the mapping between SQL parameter names and parameter numbers. There is a performance improvement, though there are still a few hiccups in the current code. (check-in: 68ecafa1 user: drh tags: VList)
2016-12-22
14:53
Fix harmless compiler warnings. (check-in: fa86db2f user: drh tags: trunk)
2016-12-21
21:26
Change the default lookaside configuration from 500 slots of 128 bytes each to 125 slots of 512 bytes each. This uses the same amount of memory (64,000 bytes) but seems to perform much better in test applications. (check-in: 52a12e47 user: drh tags: trunk)
19:45
Simplifications to the way UnpackedRecord objects are allocated. Smaller and faster code that also fixes a subtle (currently unreachable) bug. (check-in: f7ab01f2 user: drh tags: trunk)
2016-12-18
17:42
Change the OP_IfNotZero opcode so that it decrements register P1 by 1 rather than the value in P3, and so that it only decrements if originally positive. This avoids decrementing the smallest 64-bit signed integer. (check-in: 165c0446 user: drh tags: trunk)
2016-12-17
21:07
Refinements to the new dbfuzz test program. (check-in: 50325abe user: drh tags: trunk)
20:27
Enhance fuzzershell.c to read and execute SQL commands in the autoexec table of the database under test. Add the dbfuzz.c test program combining selected features of fuzzershell.c and fuzzcheck.c. (check-in: ef6e071a user: drh tags: trunk)
08:18
Fix a problem in the shell tools readfile() command causing blobs to be truncated at the first embedded 0x00 byte in release builds, or an assert() to fail in a debug build. (check-in: 8dedd6ad user: dan tags: trunk)
2016-12-16
21:29
Merge recent enhancements from trunk, and especially the pragma-as-vtab change. (check-in: 4b1e7804 user: drh tags: apple-osx)
21:15
Merge the pragma-as-vtab enhancement from trunk. (check-in: 89250777 user: drh tags: est_count_pragma)
21:02
Fix a potential memory leak following an OOM error in the pragma processing. (check-in: 396ab8f8 user: drh tags: est_count_pragma)
18:43
Add the ".lint fkey-indexes" command to the command-line shell. (check-in: 94689e3b user: drh tags: trunk)
18:41
Fix minor issues with the ".lint" command implemention in the shell and the shell help text related to ".lint". (Closed-Leaf check-in: 1268dc77 user: drh tags: fkey-missing-indexes)
18:14
Built-in PRAGMA statements without side-effects can be invoked as table-valued functions by prefixing their name with "pragma_". (check-in: d66ec5cf user: drh tags: trunk)
17:28
Change ".fkey_missing_indexes" to ".lint fkey-indexes". (check-in: ee621ade user: dan tags: fkey-missing-indexes)
16:49
Experimental merge of the est_count_pragma and the pragma-as-vtab branches. (Closed-Leaf check-in: 4b73ee33 user: drh tags: est-count-pragma-vtab)
16:44
Update .fkey_missing_indexes to use the built-in pragma vtabs. (check-in: 3ab05987 user: dan tags: fkey-missing-indexes)
16:13
Merge the pragma-as-vtab change into this branch. (check-in: 4ba45e72 user: dan tags: fkey-missing-indexes)
15:57
Merge recent trunk enhancements. (check-in: 74a0ca1f user: drh tags: est_count_pragma)
15:05
Fix a problem causing the planner to generate sub-optimal plans for some queries that use recursive WITH sub-queries with LIMIT clauses. (check-in: 053a149c user: dan tags: trunk)
04:20
Fix an error in the way the "schema" argument to some pragma virtual tables is handled. (Closed-Leaf check-in: 546821e2 user: drh tags: pragma-as-vtab)
02:31
Simplifications to facilitate full test coverage. (check-in: 01afc515 user: drh tags: pragma-as-vtab)
02:14
Minor bug fixes and enhancements to the pragma eponymous virtual tables. (check-in: 3f8f4615 user: drh tags: pragma-as-vtab)
01:09
Merge enhancements from trunk, and especially the ability to use temp.sqlite_master as an alias for sqlite_temp_master. (check-in: 994a4401 user: drh tags: pragma-as-vtab)
01:00
All temp.sqlite_master to be used as an alias for sqlite_temp_master. (check-in: 8d646905 user: drh tags: trunk)
2016-12-15
21:33
Fix the cost estimation in the BestIndex method of the eponymous pragma virtual table implementation. (check-in: 7126807a user: drh tags: pragma-as-vtab)
21:11
The pragma as eponymous virtual table mechanism now appears to work. (check-in: 2c274a1a user: drh tags: pragma-as-vtab)
20:59
Code to automatically create eponymous virtual tables for read-only pragmas. Compiles, but does not yet work. (check-in: 988a61e8 user: drh tags: pragma-as-vtab)
18:59
Do exponential rather than linear expansion of the SrcList.a array when appending new elements, to reduce the number of malloc() calls. (check-in: 4e374912 user: drh tags: trunk)
16:01
Do more pragma processing from tables rather than in-line code. (Closed-Leaf check-in: a88ca352 user: drh tags: table-driven-pragma)
06:01
Add the -groupbyparent option to the ".fkey_missing_indexes" command. (check-in: 976c51b4 user: dan tags: fkey-missing-indexes)
2016-12-14
19:28
Add the experimental ".fkey_missing_indexes" command to the shell tool. To identify indexes that should be created on child keys if FK processing is to be enabled. (check-in: 7df23aca user: dan tags: fkey-missing-indexes)
14:07
Refactor the Table.nRef field as Table.nTabRef for easier grepping. (check-in: 9cae4c2e user: drh tags: trunk)
13:54
Increase the size of the reference count on Table objects to 32 bits. (check-in: d08b72c3 user: drh tags: trunk)
11:39
Fix the configure makefile to align it with the manual makefile. Unsaved changes from the previous check-in. (check-in: 00a184b6 user: drh tags: trunk)
11:23
Adjust the unix makefiles so that "make test" runs fuzzcheck prior to even attempting to build the other test programs. (check-in: bb48f7a5 user: drh tags: trunk)
11:14
Three times faster sqlite3SrcListAppend() in the common case by avoiding the call to sqlite3SrcListEnlarge() for the first allocation. (check-in: 0ea2762f user: drh tags: trunk)
10:30
Fix the optimization that prevents writing freelist pages to the journal. (check-in: 6aa9b265 user: drh tags: trunk)
2016-12-13
23:22
In the command-line shell, in the output of the ".dump", ".schema", and ".fullschema" commands, convert CREATE TABLE statements that appear to come from shadow tables into CREATE TABLE IF NOT EXISTS statements. (check-in: c7021960 user: drh tags: trunk)
20:30
Fix harmless compiler warnings. (check-in: ed2c9f37 user: drh tags: trunk)
18:47
Convert sqlite3PagerGet() into a pointer-dispatched virtual method. This makes it about 25% faster. (check-in: 7f88bb44 user: drh tags: trunk)
18:34
In the pager, avoid checking for the illegal page number 0 except when creating a new page. (Closed-Leaf check-in: dee20ba9 user: drh tags: pager-get-method)
16:57
Fix a problem causing SQLite to return false "foreign key violation" errors when there is a partial (i.e. WHERE constrained) UNIQUE index on the parent key columns. This bug did not cause SQLite to allow illegal data to be inserted into the database, only to reject legal operations. (check-in: 850877d1 user: dan tags: trunk)
15:53
Further refinements to the virtual method implementation of sqlite3PagerGet(). (check-in: 67df4446 user: drh tags: pager-get-method)
14:32
Make the sqlite3PagerGet() interface into a virtual method, with different implementations based on the current state of the pager. This gives a small performance increase by avoiding unnecessary branches inside the various methods. (check-in: df5bb90d user: drh tags: pager-get-method)
2016-12-12
23:24
Add the --mmap option to the speedtest1 program and to the speed-check.sh script that is frequently used to run speedtest1. (check-in: 1a636d5e user: drh tags: trunk)
18:12
Remove unnecessary MemPage initialization resets in the autovacuum ptrmap processing. (check-in: 1b36fbb9 user: drh tags: trunk)
16:15
Merge all the latest performance enhancements from trunk. (check-in: a24f805b user: drh tags: apple-osx)
16:08
Faster operation for large in-memory databases. (check-in: 9675518b user: drh tags: trunk)
12:58
Merge recent enhancements from trunk. (check-in: dc006e08 user: drh tags: est_count_pragma)
11:05
Performance optimization in sqlite3PagerWrite(). (check-in: d4dff10a user: drh tags: trunk)
01:53
Updates to the tokenizer for EBCDIC. No changes for standard builds. (check-in: 4fc6580f user: drh tags: trunk)
01:30
Size and performance optimization in btreeInitPage() in the freeblock validation step. (check-in: 57deb1b4 user: drh tags: trunk)
00:58
Change the order of comparison for divider cell overflow in balance non-root to avoid a (harmless) reference to an uninitialized variable. (check-in: f9f2e23b user: drh tags: trunk)
2016-12-10
13:12
Avoid an unnecessary memset() in the sqlite3BtreeInsert() routine. (check-in: 35ecd4eb user: drh tags: trunk)
12:58
Reorder the fields in the VdbeCursor object so that those that need to be bulk zeroed on allocation are grouped at the beginning, and the memset() only runs over those fields that really need it. (check-in: 8165f88b user: drh tags: trunk)
04:06
Avoid signed integer overflow when dealing with a LIMIT and OFFSET whose sum exceeds the maximum integer value. (check-in: c9bdf7ad user: drh tags: trunk)
00:14
In balance_nonroot, try to combine dropCell/insertCell combinations for the dividers into a cell overwrites. This results in a very small (0.05%) performance gain which is probably not worth the added complexity. (Closed-Leaf check-in: 478627c9 user: drh tags: failed-dropCell-opt)
2016-12-09
19:42
When doing the sqlite3BtreeInsert() overwrite optimization, make sure the memcpy() does not extend off the end of the page. (check-in: 684ef458 user: drh tags: trunk)
18:09
Additional comments and an assert on the sqlite3BtreeInsert() overwrite optimization. (check-in: c1f0ae9d user: drh tags: trunk)
17:32
In sqlite3BtreeInsert() when replacing a re-existing row, try to overwrite the cell directly rather than deallocate and reallocate the cell. (check-in: 0b86fbca user: drh tags: trunk)
16:12
Fix an fts5 bug that could cause a crash following an OOM error or sqlite3_interrupt() interrupt. (check-in: 0ea3ece9 user: dan tags: trunk)
16:02
Avoid unnecessary zeroing of fields in the MemPage object that are going to be reinitialized before use anyhow. A smaller and faster binary results. (check-in: 01ada3d1 user: drh tags: trunk)
00:15
Fix an obscure problem in range estimation with STAT4. (check-in: 1f16c9a7 user: drh tags: trunk)
2016-12-08
23:52
Fix the showstat4 utility program so that is displays strings using standard SQL notation (single quotes) rather than C-style notation. (check-in: 92998e4a user: drh tags: trunk)
19:04
Fix a minor error in the cg_anno.tcl script causing the cycles-per-file counts to be miscomputed. (check-in: b26df26e user: drh tags: trunk)
18:36
Update the tool/cg_anno.tcl script to give a summary of cycle counts by canonical source file name. (check-in: 254a83bf user: drh tags: trunk)
01:38
More changes to take advantage of the sqlite3VdbeAppendP4() method. (check-in: 83bc5e40 user: drh tags: trunk)
2016-12-07
21:35
Add the sqlite3VdbeAppendP4() method for adding P4 content to the most recently coded instruction. (check-in: 28883e8f user: drh tags: trunk)
20:22
The use P4_DYNAMIC in place of the P4_MPRINTF operand type. (check-in: 3954f837 user: drh tags: trunk)
20:09
Performance optimization for sqlite3VdbeAddOp4(). (check-in: 04716c90 user: drh tags: trunk)
17:06
Put the SQLITE_UNTESTABLE compile-time option in the correct order for PRAGMA compile_options. (check-in: 24574a15 user: drh tags: trunk)
15:49
Rename the SQLITE_OMIT_BUILTIN_TEST compile-time option to SQLITE_UNTESTABLE. (check-in: f3608187 user: drh tags: trunk)
15:38
Prevent the flattening or where-term push-down optimizations from obscuring misuses of SQL row values that can lead to crashes or assert() failures. (check-in: 433d16ff user: dan tags: trunk)
13:49
Always honor the sqlite3.dbOptFlags bitmask, regardless of compile-time options. Continuing fix for ticket [da78413751863]. (check-in: afab1663 user: drh tags: trunk)
07:46
Merge latest trunk changes into this branch. (Leaf check-in: 391344d8 user: dan tags: changebatch)
2016-12-06
22:47
Performance improvement and size reduction in the Expr node allocator function sqlite3PExpr(). (check-in: 2a81763e user: drh tags: trunk)
19:33
Add missing nul-terminator to a Tcl_AppendResult() call in tclsqlite.c. (check-in: 0820f8b3 user: dan tags: trunk)
17:59
In the LEMON parser-generator, fix the stack overflow processing so that it correct invokes the destructor on the top-level of the parse stack. (check-in: e8247065 user: drh tags: trunk)
2016-12-05
20:16
Fix a harmless redundant local variable declaration in the date/time function logic. (check-in: b4bc40d1 user: drh tags: trunk)
20:06
Work around a bug in the definition of "ino_t" on some versions of Android. (check-in: 8df492c1 user: drh tags: trunk)
2016-12-02
19:07
Simplify the date/time function logic for improved rebustness and also to decrease the size of the binary. (check-in: 6e144735 user: drh tags: trunk)
17:08
Extend the valid range of 'unixepoch' dates from JulianDay 0 through 9999-12-31. (check-in: 768c9859 user: drh tags: trunk)
14:15
Fix a potential integer overflow during out-of-bound date computations. (Closed-Leaf check-in: 3c58b173 user: drh tags: date-overflow-fix)
02:19
Test cases for the improved LIKE/GLOB matcher. (check-in: 0bdb7ae1 user: drh tags: trunk)
2016-12-01
19:58
Avoid clearing the EP_FromJoin flag from terms in ON clauses when flattening sub-selects. Possible fix for [2df0107b]. (check-in: a427c405 user: dan tags: trunk)
19:38
Avoid clearing the EP_FromJoin flag from terms in ON clauses when flattening sub-selects. Possible fix for [2df0107b]. (Closed-Leaf check-in: 8bed4cd5 user: dan tags: left-join-fix)
18:57
Performance improvement for GLOB and LIKE matching for patterns with two or more multi-character wildcards ("*" or "%"). (check-in: 2df0ebf9 user: drh tags: trunk)
18:49
Faster version of patternCompare() that uses new return values rather than an extra parameter to communicate wildcard information back up to parent searches. (Closed-Leaf check-in: a1e2b6ce user: drh tags: pattern-compare-optimization)
17:34
Modify the patternCompare() function (used for GLOB, LIKE) to better handle patterns containing multiple wildcard characters ("*", "%"). (check-in: c5e5614d user: dan tags: pattern-compare-optimization)
2016-11-30
16:54
Add the remember(V,PTR) extension function which copies an SQL value into an application variable. (check-in: d2d30914 user: drh tags: trunk)
16:39
Merge all the latest changes from trunk. (check-in: 7ca58a07 user: drh tags: est_count_pragma)
14:47
Fix then handling of the (oversized) integer literal -0x8000000000000000. (check-in: 3816bb41 user: drh tags: trunk)
05:08
Change the OP_DecrJumpZero opcode back to its old behavior of always decrementing, except top the decrementing when it reaches the largest negative number. (check-in: 9d0d8c2e user: drh tags: trunk)
04:07
More improvements to boundary cases in the date/time functions, flowing out of branch coverage testing. (check-in: 1218005a user: drh tags: trunk)
01:05
Prevent a warning about integer overflow when using a very large negative LIMIT. (check-in: 96106d56 user: drh tags: trunk)
00:48
Further changes to the date/time functions to suppress harmless signed integer overflow warnings that could have occurred when doing out-of-range date calculations which, according to the docs, give undefined results. (check-in: dc453b34 user: drh tags: trunk)
2016-11-29
20:39
The documentation says that the built-in date-time functions give undefined results for dates before 0000-01-01 and after 9999-12-31. Change the actually implementation so that the answer given is really NULL. This also avoids unnecessary hand-wringing over an signed integer overflow that might otherwise occur when processing out-of-bound dates. (check-in: d410a839 user: drh tags: trunk)
2016-11-28
21:22
Fix broken hyperlinks to the sqlite3_snapshot objection definition in the documentation. No changes to code. (check-in: 9021f687 user: drh tags: trunk)
19:13
Version 3.15.2 (Leaf check-in: bbd85d23 user: drh tags: release, version-3.15.2, branch-3.15)
14:52
Simplify some code in fts5_expr.c. Add some extra test cases for the same. (check-in: 7cc2d60d user: dan tags: trunk)
2016-11-26
20:44
Merge all recent trunk changes, and especially the new sqlite3_snapshot_recover() interface. (check-in: 41a3af54 user: drh tags: apple-osx)
20:12
Update test case for opening SHM files read/write on a read-only connection so that they are only attempted on Darwin with SQLITE_ENABLE_PRESIST_WAL. (check-in: d6a7bf80 user: drh tags: apple-osx)
19:44
Add the sqlite3_snapshot_recover() interface and related functionality. (check-in: b70c85ce user: drh tags: trunk)
2016-11-25
20:20
Clarification of the behavior of sqlite3_stmt_readonly() on BEGIN IMMEDIATE statements. The is comment changes only - no changes to code. (check-in: a4205a83 user: drh tags: trunk)
19:32
Remove the OP_RowKey opcode. Use OP_RowData in its place. (check-in: 6ac7b07a user: drh tags: trunk)
19:18
Refactor the sqlite3BtreeKey() and sqlite3BtreeData() internal interfaces into sqlite3BtreePayload() and sqlite3BtreePayloadChecked(), respectively. This is a continuation of the optimization started by check-in [2d831074cf]. The result is a slightly smaller and faster binary. (check-in: 49ebc219 user: drh tags: trunk)
17:03
Small performance increase and size reduction in the OP_Column opcode. (check-in: a9498407 user: drh tags: trunk)
15:47
Performance enhancement to sqlite3_snprintf(). (check-in: c53dca7f user: drh tags: trunk)
15:11
Performance improvement in sqlite3StrAccumFinish() for the common case where no memory allocation is required. (check-in: b6acf5d4 user: drh tags: trunk)
14:30
Add a comment to help clarify the EP_FromJoin hack in exprCodeBetween(). (check-in: 6df7c574 user: drh tags: trunk)
2016-11-24
13:42
Fix a test case in vacuum5.test so that it works with the in-memory journal permutation. Cherrypick of [81c86401]. (check-in: e31d646a user: dan tags: branch-3.15)
2016-11-23
23:18
Fix the error message for invalid ".mode" arguments in the command-line shell, so that it mentions the new "quote" mode. (check-in: 9a603a18 user: drh tags: trunk)
21:33
Updates makefiles and build scripts on windows to used Tcl 8.6. (check-in: f693850a user: drh tags: branch-3.15)
21:14
Update the version number to 3.15.2. (check-in: 86dc74cb user: drh tags: branch-3.15)
21:13
Code constant vector components outside of any loops in CASE and BETWEEN expressions. Fix for [1a684656]. (check-in: 4c6efe60 user: drh tags: branch-3.15)
21:08
Prevent a possible use-after-free bug in the query optimizer. (check-in: 661b4506 user: drh tags: branch-3.15)
21:01
Disable the query flattener optimization for SELECT statements that are on the RHS of vector IN operators. This is a hack that fixes the bug described in ticket [da7841375186386c]. A better solution that does not disable the query flattener is needed, but this will server for the time being. (check-in: 27438fb4 user: drh tags: branch-3.15)
20:44
Fix a potential use-after-free error during parsing of malformed CREATE TABLE statement. (check-in: 0f956597 user: drh tags: branch-3.15)
20:37
Fix an fts5 problem causing a crash in phrase queries where the first token of the phrase matches one or more rows but some other token within the phrase matches zero. (check-in: 4efd331e user: drh tags: branch-3.15)
20:31
Fix OOM error reporting in the json1_group_object() SQL function. Remove an unreachable branch from the JSON1 logic. (check-in: 6492e57e user: drh tags: branch-3.15)
20:24
Fix the JSON1 extension so that the JSON validator correctly rejects malformed backslash escapes within string literals. (check-in: 7c466283 user: drh tags: branch-3.15)
20:19
Avoid a crash that can occur after an obscure OOM in the built-in INSTR() function. (check-in: 8a55b8e1 user: drh tags: branch-3.15)
20:12
Mark the ICU extension functions as deterministic. (check-in: 8fd2fcce user: drh tags: branch-3.15)
19:43
Handle some obscure "row value misused" cases that could cause segfaults or assertion failures. (check-in: 794763fd user: drh tags: branch-3.15)
19:40
Take care not to try to generate code for the ATTACH and DETACH commands if there were syntax errors during parsing. Fix for ticket [2f1b168ab4d4844] (check-in: f8cf7ff1 user: drh tags: branch-3.15)
19:31
Code constant vector components outside of any loops in CASE and BETWEEN expressions. Fix for [1a684656]. (check-in: c08aff13 user: dan tags: trunk)
14:19
Correctly display the names of SQL functions in the VDBE_PROFILE output. (check-in: 161192f1 user: drh tags: trunk)
2016-11-22
22:23
Merge bug fixes and enhancements from trunk. (Closed-Leaf check-in: e2c4bdf5 user: drh tags: serializable-snapshot)
21:11
Enclose the sqlite3WalSnapshotRecover() routine within (check-in: e7be3183 user: drh tags: serializable-snapshot)
20:29
Add a new requirement mark for CAST expressions. (check-in: bee2859b user: drh tags: trunk)
19:15
Update requirement marks to reflect changes in wording in the documentation. No changes to code. (check-in: f5ac98ef user: drh tags: trunk)
01:26
Remove unnecessary OP_Close opcodes for a size reduction and performance increase. (check-in: 32be7aae user: drh tags: trunk)
2016-11-21
21:33
Remove unnecessary OP_Close opcodes at the end of INSERT operations, resulting in smaller and faster code. (check-in: abeddb6d user: drh tags: trunk)
18:15
Enhance speedtest1.c so that is works on older versions of SQLite, before the introduction of the group_concat() aggregate function. (check-in: 9979ba80 user: drh tags: trunk)
2016-11-20
17:59
Fix harmless compiler warnings. (check-in: b3b7b42d user: drh tags: trunk)
12:00
Prevent a possible use-after-free bug in the query optimizer. (check-in: 0a98c8d7 user: drh tags: trunk)
2016-11-19
18:31
Remove the requirement to open the wal file before sqlite3_snapshot_recover() is called. Also add some comments to new functions. (check-in: 28393c41 user: dan tags: serializable-snapshot)
17:30
Test some extra error conditions in sqlite3_recover_snapshot(). (check-in: db314213 user: dan tags: serializable-snapshot)
17:20
Add another fault-injection test for sqlite3_snapshot_recover(). (check-in: 7e040406 user: dan tags: serializable-snapshot)
16:35
Fix a problem causing sqlite3_snapshot_recover() to return SQLITE_IOERR_SHORT_READ. (check-in: 525f75fa user: dan tags: serializable-snapshot)
14:53
Fix a bug in sqlite3_snapshot_recover() that could cause subsequent read transactions to use out-of-data cache entries. (check-in: 9abeb798 user: dan tags: serializable-snapshot)
2016-11-18
20:49
Add experimental sqlite3_snapshot_recover() API. (check-in: 174a6076 user: dan tags: serializable-snapshot)
18:43
Require that the database handle be in autocommit mode for sqlite3_snapshot_get() to succeed. This is because it may open a read transaction on the database file. (check-in: 83b658da user: dan tags: serializable-snapshot)
18:22
Add tests for snapshot interfaces. (check-in: 1f7ee7af user: dan tags: serializable-snapshot)
14:38
Enhance existing snapshot tests to serialize/deserialize snapshots. No new tests. (check-in: 16b9bf92 user: dan tags: serializable-snapshot)
2016-11-17
21:52
Experimental changes for faster in-memory DB operation for large databases. (Closed-Leaf check-in: 4fe94b0f user: drh tags: memdb-opt)
20:05
Fix a problem in rtreeD.test causing it to fail in OMIT_BUILTIN_TEST builds. (check-in: d6b3779e user: dan tags: trunk)
14:02
When opening the *-shm file for a readonly database, try to open it in read-write mode before falling back to readonly. This is in case some other read/write connection within the same process uses the same file descriptor. (check-in: a07c581e user: dan tags: apple-osx)
13:54
Change the --enable-debug option on configure so that it enables the ".selecttrace" and ".wheretrace" commands in the command-line shell. (check-in: 2331192b user: drh tags: trunk)
13:13
Disable the query flattener optimization for SELECT statements that are on the RHS of vector IN operators. This is a hack that fixes the bug described in ticket [da7841375186386c]. A better solution that does not disable the query flattener is needed, but this will server for the time being. (check-in: 005d5b87 user: drh tags: trunk)
2016-11-15
21:17
Add a needed #include to speedtest1.c. (check-in: 77aeb705 user: drh tags: trunk)
17:37
Experimental changes toward making snapshots serializable. (check-in: b6a81fa1 user: drh tags: serializable-snapshot)
04:00
Change the OP_Last opcode so that it is a no-op if the cursor is already pointing at the end of the b-tree. (check-in: 66347385 user: drh tags: trunk)
02:46
Make the VACUUM command about 9% faster by avoiding unnecessary calls to sqlite3BtreeMovetoUnpacked() while copying rowid tables. (check-in: 5ed0bd38 user: drh tags: trunk)
2016-11-14
20:47
Add 8794 new test cases received from the OSS-FUZZ project. (check-in: 03f75a67 user: drh tags: trunk)
20:08
Fix a potential use-after-free error during parsing of malformed CREATE TABLE statement. (check-in: c5dbc599 user: drh tags: trunk)
18:27
Enhance fuzzcheck.c to accept database-specific configuration parameters in the option CONFIG table. Add the fuzzdata5.db fuzz database containing test cases from OSS-FUZZ. (check-in: a71fad45 user: drh tags: trunk)
17:25
Fix the ossfuzz.c test module so that it does not segfault after a "PRAGMA empty_result_callbacks=1;". Add the ossshell.c program for simple command-line testing of ossfuzz.c. (check-in: 6f2d43ec user: drh tags: trunk)
15:28
Avoid unnecessary calls to sqlite3ExprCacheAffinityChange() when generating OP_MakeRecord opcodes that do not change any register affinities. (check-in: e211c579 user: drh tags: trunk)
08:19
Fix an fts5 problem causing a crash in phrase queries where the first token of the phrase matches one or more rows but some other token within the phrase matches zero. (check-in: e78f6f3b user: dan tags: trunk)
2016-11-11
20:37
Fix harmless compiler warnings in test code for MSVC. (check-in: 7b76be41 user: drh tags: trunk)
19:08
Avoid storing redundant fields in sorter records when the sort-key and data have fields in common. (check-in: b835cf3e user: drh tags: trunk)
19:01
Enhance the OP_IdxInsert opcode so that it can used unpacked key values if they are available. Update the code generator to take advantage of this new capability. The speedtest1.c test is about 2.6% faster as a result. Later: This also introduced bug [30027b613b]. Bummer. (check-in: 925840cf user: drh tags: trunk)
18:45
Merge trunk with this branch. (Closed-Leaf check-in: dd62d2de user: dan tags: sorter-opt)
18:19
Remove obselete and unused logic in the update code generator. Fix the sqlite3BtreeMovetoUnpacked() routine so that it remembers the rowid of the row that it landed on. (Closed-Leaf check-in: 1a587d72 user: drh tags: unpacked-IdxInsert)
18:08
Reenable the SQLITE_EXPR_REF optimization for "SELECT DISTINCT ... ORDER BY" queries. (check-in: 6e2e9d38 user: dan tags: sorter-opt)
17:52
Merge enhancements and bug-fixes from trunk. (check-in: 5515b827 user: drh tags: unpacked-IdxInsert)
17:08
Fix a problem with switching from wal to rollback mode when SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE is configured. (check-in: 46e00162 user: dan tags: trunk)
16:33
Add the test/ossfuzz.c interface adaptor for OSS-FUZZ. Make previsions for testing the adaptor using fuzzcheck.c. (check-in: 119d6ef8 user: drh tags: trunk)
15:49
Handle some obscure "row value misused" cases that could cause segfaults or assertion failures. (check-in: fba5fddb user: dan tags: trunk)
14:54
Back out the "--raw" option on ".read" in the command-line shell. Instead, fix the command-line shell so that if EOF is reached without seeing a final semicolon, it goes ahead and passes the accumulated SQL text to SQLite. (check-in: f98c8ac8 user: drh tags: trunk)
09:51
Add extra tests for the xBestIndex() virtual table method. (check-in: 642a8fba user: dan tags: trunk)
05:19
In the command line shell, avoid using utf8_printf() in a couple places where it is superfluous. (check-in: 6311a8bd user: mistachkin tags: trunk)
04:37
Add the --raw option to the ".read" dot-command of the command-line shell, to cause the named file to be read and sent directly into sqlite3_exec() without any interpretation. (check-in: 09233770 user: drh tags: trunk)
03:37
Take care not to try to generate code for the ATTACH and DETACH commands if there were syntax errors during parsing. Fix for ticket [2f1b168ab4d4844] (check-in: b0ff183b user: drh tags: trunk)
2016-11-10
21:19
Break up the sqlite3BtreeMovetoUnpacked() routine into an eponymous routine and sqlite3BtreeMovetoIntkey(). Each routine specializes in a single kind of btree. (Leaf check-in: 9a64a4f2 user: drh tags: split-moveto)
20:42
Avoid a few unnecessary calls to sqlite3BtreeMovetoUnpacked(). (check-in: eac0e827 user: drh tags: unpacked-IdxInsert)
20:14
Avoid storing redundant fields in sorter records when the sort-key and data have fields in common (as in "SELECT a FROM t1 ORDER BY 1"). (check-in: 0af62fdb user: dan tags: sorter-opt)
17:01
When doing a REPLACE on a WITHOUT ROWID table with no secondary indexes, bypass the OP_NoConflict/OP_Delete sequence and directly overwrite any preexisting row, for a performance increase. (check-in: f7041cbb user: drh tags: unpacked-IdxInsert)
16:07
Remove C++ style comments. No code changes. (check-in: 42f8aa62 user: drh tags: unpacked-IdxInsert)
14:24
Add the unpacked key fields to OP_IdxInsert for INSERT and UPDATE statements. (check-in: 67602e40 user: drh tags: unpacked-IdxInsert)
2016-11-09
20:14
Comment changes that attempt to better explain the behavior of the "seekResult" field on VdbeCursor objects and the seekResult parameter to sqlite3BtreeInsert() and the OPFLAG_USESEEKRESULT flag on insert opcodes. No changes to code. (check-in: 345b46be user: drh tags: unpacked-IdxInsert)
16:03
Fix a simple comment typo. No changes to code. (check-in: 51d0aed8 user: drh tags: unpacked-IdxInsert)
01:46
Fix typo in the CSV extension. (check-in: b4889588 user: mistachkin tags: trunk)
01:38
Make use of the unpacked key on the OP_IdxInsert on sorters with a LIMIT. (check-in: 42db7cd2 user: drh tags: unpacked-IdxInsert)
01:19
Fix a typo on the OP_IdxInsert documentation. No code changes. (check-in: e4acd982 user: drh tags: unpacked-IdxInsert)
01:07
Add a DISTINCT query to speedtest1.c. Also change INSERT OR REPLACE into just REPLACE. (check-in: 754ee844 user: drh tags: trunk)
00:57
Remove the "experimental" marking from the sqlite3_preupdate interfaces. But be sure all the interface definitions are within documentation. (check-in: d6dd2ad3 user: drh tags: trunk)
00:10
Enhance the OP_IdxInsert opcode to optionally accept unpacked key material. (check-in: 89d958ab user: drh tags: unpacked-IdxInsert)
2016-11-08
19:22
Avoid superfluous cursor seeks in "INSERT OR REPLACE" statements. (check-in: bec5b6d4 user: dan tags: trunk)
17:19
Avoid generating OP_TableLock unnecessary instructions on btrees that are not sharable. (check-in: 8cb8516d user: drh tags: trunk)
16:27
Fix the speedtest1.c test program so that it gives closing "%" wildcards on LIKE searches. (check-in: c2f84f63 user: drh tags: trunk)
00:30
Tweaks to speedtest1.c to better reflect mobile usage based on findings in the "Pocket Data" paper by Kennedy, Ajay, Challen, and Ziarek. (check-in: b5733cae user: drh tags: trunk)
2016-11-07
18:18
Fix OOM error reporting in the json1_group_object() SQL function. Remove an unreachable branch from the JSON1 logic. (check-in: b5409849 user: drh tags: trunk)
15:15
Replace some unreachable branches from the JSON1 extension with assert(). (check-in: 145cd13e user: drh tags: trunk)
13:37
Fix the JSON1 extension so that the JSON validator correctly rejects malformed backslash escapes within string literals. (check-in: 7a635391 user: drh tags: trunk)
2016-11-04
19:09
Merge recent trunk changes, including all the fixes that appeared in version 3.15.1. (check-in: 0e5ffd91 user: drh tags: apple-osx)
12:08
Version 3.15.1 (check-in: 1136863c user: drh tags: release, version-3.15.1, branch-3.15)
12:05
Avoid a crash that can occur after an obscure OOM in the built-in INSTR() function. (check-in: b86b79c4 user: dan tags: trunk)
12:03
Mark the ICU extension functions as deterministic. (check-in: afbbb6c6 user: drh tags: trunk)
11:23
Add an assert() to silence a coverity false-positive. (check-in: 97354093 user: drh tags: trunk)
07:25
Fix a test case in vacuum5.test so that it works with the in-memory journal permutation. (check-in: 81c86401 user: dan tags: trunk)
2016-11-03
21:35
Replace a couple more references to Tcl 8.5 in the Windows build tools. (check-in: 1d0e43c5 user: mistachkin tags: trunk)
19:27
Fix a test case in vacuum5.test so that it works with -DSQLITE_TEMP_STORE=2 and -DSQLITE_ENABLE_ATOMIC_WRITE.. (check-in: 752e14d9 user: dan tags: branch-3.15)
19:24
Fix a test case in vacuum5.test sot aht it works with -DSQLITE_ENABLE_ATOMIC_WRITE. (check-in: 3ca80010 user: dan tags: trunk)
19:01
Fix a test case in vacuum5.test so that it works with -DSQLITE_TEMP_STORE=2. (check-in: f5dd95e2 user: dan tags: trunk)
18:49
Add the SQLITE_FCNTL_WIN32_GET_HANDLE file control. (check-in: 5221e3cc user: drh tags: branch-3.15)
18:44
Increase the version number to 3.15.1. (check-in: ccdcce46 user: drh tags: branch-3.15)
18:38
Escape non-ASCII character from an ICU extension comment. (check-in: ee16fedd user: drh tags: branch-3.15)
18:36
Fix an issue that was causing the new database image to be assembled entirely in heap memory when VACUUMing a database, even if it should use a temp file. This could cause SQLITE_NOMEM errors when vacuuming very large databases on 32-bit systems. (check-in: 3fae483f user: drh tags: branch-3.15)
18:35
Make sure left-join markings are transferred to the virtual scalar subexpressions when decomposing a vector comparison in the ON clause of a LEFT JOIN. Fix for ticket [fef4bb4bd9185ec8f]. (check-in: aba1e22b user: drh tags: branch-3.15)
18:33
If all branches of an OR optimize scan that is the rhs of a LEFT JOIN use the same index, set the index cursor to return NULL values if there are no matches for a row on the lhs. Fix for ticket [34a579141b2c5ac] (check-in: 54eeddec user: drh tags: branch-3.15)
18:31
In the sessions module, avoid recording a change if an UPDATE statement overwrites a column with REAL affinity containing an integer value with the same value. (check-in: 0fc4f0f4 user: drh tags: branch-3.15)
18:30
Avoid using the "direct overflow read" optimization to read large blobs if the pager layer has a wal file open - even if the database header indicates that the db is not a wal database. (check-in: 63cfe197 user: drh tags: branch-3.15)
13:12
In the command-line shell, fix the .imposter command so that it works with indexes on expressions. Fix the ".mode quote" mode so that it works with ".headers ON". (check-in: ba9873da user: drh tags: trunk)
13:01
Add the ".imposter" command to the command-line shell. (check-in: be3ec8fd user: drh tags: trunk)
02:25
Fix an possible NULL pointer deference in the command-line shell that can occur when using imposter mode. (check-in: ad08753a user: drh tags: trunk)
2016-11-02
19:49
Adjust the MSVC makefile to use Tcl8.6 by default. (check-in: def8f598 user: drh tags: trunk)
14:50
Fix an issue that was causing the new database image to be assembled entirely in heap memory when VACUUMing a database, even if it should use a temp file. This could cause SQLITE_NOMEM errors when vacuuming very large databases on 32-bit systems. (check-in: 30288453 user: dan tags: trunk)
13:18
Fix a requirement mark. No changes to code. (check-in: d18f61b7 user: drh tags: trunk)
02:17
Use NOT NULL partial indexes when the query is constrained by a single LIKE or GLOB. (check-in: 9b3a3b41 user: drh tags: trunk)
2016-10-31
16:49
Add the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE sqlite3_dbconfig() option - for disabling SQLite's default checkpoint-on-close behaviour. (check-in: 6d142025 user: dan tags: trunk)
16:16
Add the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE sqlite3_dbconfig() option - for disabling SQLite's default checkpoint-on-close behaviour. (Closed-Leaf check-in: 093d2fc2 user: dan tags: no-ckpt-on-close)
2016-10-27
14:51
Remove the mutex from test_multiplex.c. (check-in: 6374978e user: dan tags: trunk)
01:02
Make sure left-join markings are transferred to the virtual scalar subexpressions when decomposing a vector comparison in the ON clause of a LEFT JOIN. Fix for ticket [fef4bb4bd9185ec8f]. (check-in: 619f5cc7 user: drh tags: trunk)
2016-10-26
18:41
Small size reduction and performance enhancement in whereScanInit(). (check-in: c23f5ef3 user: drh tags: trunk)
17:57
Small size reduction and performance improvement in whereScanNext(). (check-in: d861ee17 user: drh tags: trunk)
16:05
If all branches of an OR optimize scan that is the rhs of a LEFT JOIN use the same index, set the index cursor to return NULL values if there are no matches for a row on the lhs. Fix for ticket [34a579141b2c5ac] (check-in: ec9dab80 user: dan tags: trunk)
15:46
If all branches of an OR optimize scan that is the rhs of a LEFT JOIN use the same index, set the index cursor to return NULL values if there are no matches for a row on the lhs. (Closed-Leaf check-in: e7b9bc67 user: dan tags: leftjoin-or-fix)
13:58
Merge the SQLITE_ENABLE_URI_00_ERROR compile-time option. (check-in: 86675ae0 user: drh tags: trunk)
13:44
Add extra tests to check the result of including a %00 escape in a URI when ENABLE_URI_00_ERROR is defined. (Closed-Leaf check-in: 1aaa06e3 user: dan tags: uri-00-error)
12:58
Add an elapsed-time output for faststat1.c. (check-in: 71167951 user: drh tags: est_count_pragma)
12:15
Add compile time option SQLITE_ENABLE_URI_00_ERROR. If defined, any "%00" escape found in a URI is treated as an error. (check-in: e8a9bfec user: dan tags: uri-00-error)
2016-10-25
19:39
Simplifications to faststat1.c. Fix a bug in sqlite3MovetoProportional() for very large b-trees. (check-in: f7f78147 user: drh tags: est_count_pragma)
19:21
Further refinements to the faststat1.c utility. (check-in: b051fd19 user: drh tags: est_count_pragma)
18:28
Enhance faststat1.c to deal better with WITHOUT ROWID tables. (check-in: 65444f2e user: drh tags: est_count_pragma)
17:28
Merge recent trunk changes, and especially the PRAGMA index_info enhancement which is needed on this branch. (check-in: c3570e46 user: drh tags: est_count_pragma)
15:39
Enhance the "PRAGMA index_info" and "PRAGMA index_xinfo" statements so that they work on WITHOUT ROWID tables and provide information about the underlying index btree that implements the WITHOUT ROWID table. (Leaf check-in: fe49fb03 user: drh tags: index-info-on-table)
15:06
Add test case to demonstrate a "BEGIN EXCLUSIVE" command returning SQLITE_BUSY_SNAPSHOT. (check-in: b1158564 user: dan tags: trunk)
13:57
First attempt at a utility program to compute sqlite_stat1 without doing a full table scan. (check-in: 7b83581a user: drh tags: est_count_pragma)
2016-10-24
01:01
Performance optimization in moveToRoot(). Avoid repeated validity checking of the root page on each call. Once is enough. (check-in: 98795c2d user: drh tags: trunk)
2016-10-22
01:22
In the sessions module, avoid recording a change if an UPDATE statement overwrites a column with REAL affinity containing an integer value with the same value. (check-in: 5f3e6028 user: drh tags: trunk)
2016-10-21
21:21
In the sessions module, avoid recording a change if an UPDATE statement overwrites a column with REAL affinity containing an integer value with the same value. (Closed-Leaf check-in: b861328a user: dan tags: sessions-fix)
18:01
When reading from an index, the shared-cache lock must be on the corresponding table. (check-in: 04fe12b5 user: drh tags: est_count_pragma)
17:45
Merge updates from trunk, and especially the ".mode quote" enhancement to the shell. (check-in: 0c8a5b88 user: drh tags: est_count_pragma)
17:39
Add ".mode quote" to the command-line shell. (check-in: c4f5fa78 user: drh tags: trunk)
17:25
Add the btree_sample(INDEX,LOCATION,LIMIT) pragma. (check-in: affc2ef5 user: drh tags: est_count_pragma)
15:36
Fix problems in the est_count pragma for indexes and WITHOUT ROWID tables. (check-in: c39fd9b8 user: drh tags: est_count_pragma)
10:49
Avoid using the "direct overflow read" optimization to read large blobs if the pager layer has a wal file open - even if the database header indicates that the db is not a wal database. (check-in: b54c15f1 user: dan tags: trunk)
10:09
If SQLITE_DIRECT_OVERFLOW_READ is defined at compile time, add "DIRECT_OVERFLOW_READ" to the list of symbols returned by "PRAGMA compile_options". (check-in: b7d9727b user: dan tags: trunk)
2016-10-20
22:02
Experimental est_count pragma. (check-in: 340822af user: drh tags: est_count_pragma)
18:20
Add the ability for the PRAGMA statement to accept multiple arguments. Currently all arguments other than the first are ignored. (Leaf check-in: fd81d8a4 user: drh tags: multi-arg-pragma)
11:48
Add test case to incrblob4.test. No changes to code. (check-in: fd9c6ff0 user: dan tags: trunk)
2016-10-18
16:36
Minor simplification of the comparison opcodes. (check-in: 56474ebc user: drh tags: trunk)
15:29
Fix harmless uninitialized variable warnings in speedtest1.c. (check-in: 2aa7a03b user: drh tags: trunk)
14:35
Add the --repeat option to speedtest1.c and speed-check.sh. (check-in: 6ca0e06b user: drh tags: trunk)
2016-10-17
23:44
Fix SQLITE_DBCONFIG_REQUIRE_TXN so that it allows BEGIN IMMEDAITE and BEGIN EXCLUSIVE to run outside of a transaction. (Leaf check-in: 29997f79 user: drh tags: require-write-txn)
19:00
Escape non-ASCII character from an ICU extension comment. Cherrypick of [5ec02ecf3d20ce7e]. (Leaf check-in: a3a96c4d user: mistachkin tags: mutexDbg)
18:59
Enhancments to Win32 mutex debugging. (check-in: 2fb9a5dd user: mistachkin tags: mutexDbg)
18:44
Escape non-ASCII character from an ICU extension comment. (check-in: 5ec02ecf user: mistachkin tags: trunk)
18:33
Corrections to a couple recently added 'filectrl.test' results. (check-in: 3d89dc45 user: mistachkin tags: trunk)
15:28
Changes to support interrupting a checkpoint using sqlite3_interrupt(). (check-in: c88d36e2 user: dan tags: trunk)
00:48
Small size reduction and performance increase in the string duplicator. (check-in: cda998f0 user: drh tags: trunk)
2016-10-15
18:37
Add documentation for the OP_SorterInsert opcode, formerly omitted by mistake. No changes to code. (check-in: 16d88a90 user: drh tags: trunk)
08:56
Add test case to hook.test. No changes to non-test code. (check-in: 2674d779 user: dan tags: trunk)
2016-10-14
21:27
Add the SQLITE_FCNTL_WIN32_GET_HANDLE file control. (check-in: 16039be3 user: mistachkin tags: trunk)
21:16
Bump the version number in anticipation of the next development cycle. (check-in: aa6de9c4 user: drh tags: trunk)
10:20
Version 3.15.0 (check-in: 70787558 user: drh tags: trunk, release, version-3.15.0)
2016-10-13
12:56
Take care to avoid integer overflow when doing the initial page cache allocation with an excessively large cache_size setting. (check-in: 4d66ac98 user: drh tags: trunk)
2016-10-12
18:55
Avoid reading the -1-th element of an array in the query planner. Fix to a bug introduced by check-in [8e2b25f9b8a7] from earlier today. Curiously, the problem only appeared on 32-bit systems. (check-in: 443913d5 user: drh tags: trunk)
18:26
Add to sqlite3_analyzer command-line options --version and --tclsh, and also the undocumented --debug option. (check-in: e87d02d2 user: drh tags: trunk)
15:15
New testcase() macros to ensure coverage of the ORDER BY LIMIT optimization code in where.c. (check-in: 61f05269 user: drh tags: trunk)
14:48
Fix a problem affecting queries that match the pattern (... WHERE ipk IN (....) ORDER BY ? LIMIT ?). Fix for [96c1454c]. (check-in: 8e2b25f9 user: dan tags: trunk)
2016-10-10
14:48
Remove a stray line from session4.test causing a memory leak. No changes to SQLite code. (check-in: 6624c496 user: dan tags: trunk)
14:34
When handling ORDER BY expressions, do not assume all values of an indexed expressions are distinct. Fix for [4766f444]. (check-in: aebe429e user: dan tags: trunk)
13:29
Make sure indexes on expressions skip over initial NULL values in the index. Fix for ticket [4baa464912129477f3c9] (check-in: 71797ba4 user: drh tags: trunk)
10:06
Fix a case in which the rtree module was ignoring an OOM while generating an error message. (check-in: 788f86be user: dan tags: trunk)
2016-10-08
16:10
Update test/trace3.test to account for the fact that casting a pointer to a 64-bit signed integer might produce a negative value. (check-in: 010ec225 user: dan tags: trunk)
13:34
Corrections to Lemon documentation. No SQLite changes. (check-in: c568ae3e user: drh tags: trunk)
11:55
Add missing "static" to internal function whereRangeVectorLen(). (check-in: cbed3d75 user: dan tags: trunk)
09:21
Updates to the tool/warnings.sh script to make it easier to use on OpenBSD. (check-in: dbe2997f user: dan tags: trunk)
2016-10-05
20:14
Fix some compiler warnings in fts5. (check-in: b066637b user: dan tags: trunk)
20:10
Fix harmless compiler warnings. (check-in: 2dde3375 user: drh tags: trunk)
15:04
Add a test case for the fix in [a596b7c6cc]. (check-in: b2ef39b1 user: dan tags: trunk)
15:02
Do not set MEM_Blob unless the appropriate fields of the Mem object have been correctly initialized. (check-in: a596b7c6 user: drh tags: trunk)
01:33
Fix the backup_malloc.test script so that it works on Windows. (check-in: d080012d user: drh tags: trunk)
2016-10-04
12:20
Fix a problem with the lempar.c parser template. (check-in: 3a9d802f user: drh tags: trunk)
00:47
Do not bother to initialize unused fields in the BtreePayload object. (check-in: b10d0f93 user: drh tags: trunk)
2016-10-03
18:13
Allow deterministic functions in the WHERE clause of a partial index. (check-in: c6e9b942 user: drh tags: trunk)
16:33
Size and performance optimizations on the sqlite3ExprAssignVarNumber() routine. (check-in: 109852e5 user: drh tags: trunk)
15:28
Avoid unnecessary strlen() calls in sqlite3ExprAssignVarNumber() by passing in the token length from the parser. (check-in: d15ae2e5 user: drh tags: trunk)
14:44
Avoid unnecessary memset() calls in the query optimizer. (check-in: 5bb7cde0 user: drh tags: trunk)
12:56
Fix an obsolete comment on a variable definition in expr.c. No code changes. (check-in: 012ff6dd user: drh tags: trunk)
02:59
Make sure the sqlite_sequence table is updated when an optional xfer optimization is used. Fix for ticket [7b3328086a5c1]. (check-in: 81e4d4f8 user: drh tags: trunk)
01:21
Allocate Parse objects off of the stack where appropriate for a substantial performance increase and a size reduction. (check-in: ea8affa9 user: drh tags: trunk)
2016-10-01
23:55
Add SQLITE_USE_ALLOCA to the --lean configuration in speed-check.sh. (check-in: fe07609e user: drh tags: trunk)
21:43
Rearrange fields in the Parse object to reduce the amount of initialization required. (check-in: 361940b4 user: drh tags: trunk)
20:43
Reduce the width of a memset() to avoid double-initializing some variables. (check-in: 34edbfd1 user: drh tags: trunk)
19:32
Remove an unnecessary memset() call. (check-in: a76bff74 user: drh tags: trunk)
19:21
Use sqlite3DbMallocRawNN() where appropriate, instead of sqlite3DbMallocRaw(). (check-in: 54a449a4 user: drh tags: trunk)
16:53
Make sure deleting an unused prepared statement does not reference uninitialized fields in the structure. (check-in: 7983eef0 user: drh tags: trunk)
11:39
Avoid accessing Vdbe.pc if it is uninitialized. Check Vdbe.magic first. (check-in: 6ac6e446 user: drh tags: trunk)
00:37
Avoid unnecessary zeroing of fields in the Vdbe object when it is allocated. (check-in: 1e21bbe8 user: drh tags: trunk)
2016-09-30
22:24
Avoid initializing the column-cache section of the Parse object, since entries in the cache will be initialized as they are used, and avoiding the initial memset() saves many CPU cycles. (check-in: 63cf7eaf user: drh tags: trunk)
21:20
Fix an always-true conditional left over from the previous commit. (check-in: ab12fce3 user: drh tags: trunk)
20:22
Fix the Parse.aColCache column cache so that all of the valid entries are in the first Parse.nColCache slots. (check-in: 60285020 user: drh tags: trunk)
19:14
Another simplification to the Parse object. (check-in: c1419727 user: drh tags: trunk)
18:35
Remove unnecessary fields from the Parse object. (check-in: 814e41da user: drh tags: trunk)
17:46
Avoid unnecessary Mem initializations when generating a new sqlite3_stmt object. (check-in: 47ae1cda user: drh tags: trunk)
2016-09-29
20:28
Small size and performance optimization to sqlite3VdbeChangeP5(). (check-in: 3c93c8f5 user: drh tags: trunk)
19:50
Remove the peep-hole optimization of removing OP_Close opcodes that come before OP_Halt, as the extra work of removing those opcodes uses more cycles than just running them. (check-in: 984a96d7 user: drh tags: trunk)
19:27
Size and performance optimization to sqlite3ValueFromExpr() (check-in: 945f82bc user: drh tags: trunk)
15:53
Clarification and typo-fixes in comments. No changes to code. (check-in: e2cd79aa user: drh tags: trunk)
2016-09-28
20:42
Use Knuth multiplicative hashing for the symbol table. (check-in: cc29ddd6 user: drh tags: trunk)
16:15
Merge recent enhancements from trunk. (check-in: 06014163 user: drh tags: apple-osx)
16:05
Two more typo fixes in comments. (check-in: 40c0fb0a user: drh tags: trunk)
16:04
Fix typos in comments. No code changes. (check-in: 5bbd071d user: drh tags: trunk)
2016-09-27
00:09
Update requirements marks due to improvements in the wording of documentation. No changes to code. (check-in: bf903b2e user: drh tags: trunk)
00:03
Fix FTS3 test cases due to the flattener change of the previous check-in. (check-in: 0c8b9b21 user: drh tags: trunk)
2016-09-26
14:39
When flattening a query of the form "SELECT * FROM (SELECT * FROM tbl WHERE x=?) WHERE y=?", ensure that the final WHERE clause is "x=? AND y=?" instead of "y=? AND x=?". Although it is still not guaranteed, this makes the order in which WHERE clause terms are processed comport more closely to users expectations. (check-in: cf7f9e6d user: dan tags: trunk)
12:38
Inline the relevent parts of sqlite3ExprAlloc() into spanExpr(), for a performance improvement. (check-in: fe89225e user: drh tags: trunk)
2016-09-24
17:42
Omit the LikeOp object from the parser. Change more sqlite3PExpr() calls into sqlite3ExprAlloc() calls. (check-in: 795454a3 user: drh tags: trunk)
01:41
Add -DSQLITE_MAX_EXPR_DEPTH=0 to the --lean option on speed-check.sh. (check-in: a8cb1390 user: drh tags: trunk)
2016-09-23
21:36
Add the EP_Leaf flag bit to the Expr.flags field to indicate Expr nodes that do not have substructure. Use that bit to avoid unnecessary recursion. (check-in: 8a6ea455 user: drh tags: trunk)
20:59
Use sqlite3ExprAlloc() instead of sqlite3PExpr() for leaf nodes in the expression tree, where appropriate. This is both smaller and faster. (check-in: afac0709 user: drh tags: trunk)
18:13
New test case for the ORDER BY LIMIT optimization. (check-in: 9a5a489d user: drh tags: trunk)
2016-09-22
21:37
Fix a potential null-pointer dereference and crash in the case where one thread is calling sqlite3_column_text() and another thread is calling sqlite3_step() on the same prepared statement at the same instant. (check-in: ee1382a3 user: drh tags: trunk)
18:53
Remove the internal sqlite3CodeOnce() interface, replacing it with a direct call to sqlite3VdbeAddOp0(v,OP_Once). Slightly smaller and faster. (check-in: c3774c6a user: drh tags: trunk)
18:46
Makefile changes to support building winsqlite3.dll using STDCALL rather than CDECL. (check-in: 5e892d60 user: mistachkin tags: trunk)
2016-09-21
23:58
Fix speedtest1.c so that it works with SQLITE_OMIT_DEPRECATED. Add the --lean and --cachesize options to speed-check.sh. (check-in: 7785b3a2 user: drh tags: trunk)
19:43
Fix a problem with the fts5 auxiliary function API causing a crash when a query contained a phrase of zero terms. (check-in: 0741812d user: dan tags: trunk)
19:00
Do not run vacuummem.test if ENABLE_MEMORY_MANAGEMENT is defined. (check-in: 4a613d85 user: dan tags: trunk)
18:18
Fix obsolete requirements marks. Add new tests for VACUUM of attached databases. (check-in: 2b44f9aa user: drh tags: trunk)
17:53
Avoid running vacuum5.test in auto-vacuum mode. (check-in: be184bef user: dan tags: trunk)
17:47
Do not run test "delete_db.test" with either the journaltest or inmemoryjournal permutations. Ensure that the multiplexor tests in delete_db.test are performed in non-autovacuum mode. (check-in: 46b7d19e user: dan tags: trunk)
14:41
Update the fts5vocab table to handle "ORDER BY term" efficiently. (check-in: d4928fb5 user: dan tags: trunk)
2016-09-20
22:04
Improved implementation of 64-bit signed integer multiply that correctly detects overflow (and promotes to floating-point) in some corner cases. Fix for ticket [1ec41379c9c1e400] (check-in: db3ebd7c user: drh tags: trunk)
17:49
Fix harmless compiler warning. (check-in: 72429063 user: mistachkin tags: trunk)
17:38
Fix typo in comment. (check-in: bd3ecbb5 user: mistachkin tags: trunk)
01:46
Further performance enhancements in zeroblob() handling. (check-in: 21b0e3b7 user: drh tags: trunk)
01:19
Avoid unnecessary calls to ExpandBlob() for smaller and faster code. (check-in: 5e196fd1 user: drh tags: trunk)
2016-09-19
23:39
Very small optimization in the bytecode engine. (check-in: 46002511 user: drh tags: trunk)
11:00
Fix a segfault introduced by the row-value enhancement that comes up on a skip-scan where the first term of the index is unconstrained and the second term is of the form "columm IN (SELECT...)". (check-in: 2401ea5a user: drh tags: trunk)
10:24
Improved performance in sqlite3ExprCodeTarget(). (check-in: 75146165 user: drh tags: trunk)
02:19
Small performance optimization in the expression walker. (check-in: c6e6afb9 user: drh tags: trunk)
2016-09-18
16:08
Revise the implementation of OP_Once so that it is smaller, faster, and uses less memory. This also fixes an obscure bug introduced 3 days ago by check-in [5990a1bdb4a073]. (check-in: 6bf5ba10 user: drh tags: trunk)
2016-09-17
22:46
Minor enhancement to the TclKit batch tool: it should download the TclKit EXE alone when the TCLKIT_NOENV environment variable is set. (check-in: baceb988 user: mistachkin tags: trunk)
19:34
Small performance optimization in the freeSpace() routine of btree.c. (check-in: 63962e2a user: drh tags: trunk)
17:39
Improved description of the ElseNotEq opcode in comments. No changes to code. (check-in: e011435e user: drh tags: trunk)
2016-09-16
20:39
Fix typo in the name of a Win32 string conversion routine. Replace several uses of raw_printf() with utf8_printf() in the shell. (check-in: 6fc95dd7 user: mistachkin tags: trunk)
19:42
If no KEY is specified on ATTACH, copy the main schema key if the key size is non-zero. In other words, allow for -1 as a valid key size in support of the --textkey to SEE. (check-in: 03573887 user: drh tags: trunk)
19:11
Fix problems with the fileRead() function in the command-line shell. Fix a harmless memory leak in the command-line shell, to make validation testing easier. (check-in: e660402e user: drh tags: trunk)
18:53
Remove the #ifdef SQLITE_DEBUG from around the testcase_glob() routine in the command-line shell. (check-in: 9885dac4 user: drh tags: trunk)
17:50
Merge recent changes from trunk. (check-in: e3d9efa2 user: drh tags: apple-osx)
16:30
Fix a problem causing incorrect code to be generated for IN constraints like "a IN (1, 2, 3)" where column "a" is a rowid column with an extra UNIQUE index created on it. Ticket [0eab1ac759]. (check-in: a92aee55 user: dan tags: trunk)
15:42
Replace a faulty assert() with a testcase() to assure the condition is tested. Ticket [0eab1ac7591f]. (check-in: a49bc0a8 user: drh tags: trunk)
14:50
Add WHERETRACE macros showing every entry and exit from whereLoopAddBtreeIndex(). (check-in: e7653dec user: drh tags: trunk)
11:53
Fix SQLITE_OMIT_AUTHORIZATION so that it compiles cleanly. (check-in: a3e3b3e1 user: drh tags: trunk)
02:52
In the shell, make ".testcase" and ".check" available in all configurations, not just SQLITE_DEBUG. All testcases to be named. Show the result of each testcase on stdout. (check-in: 792afefa user: drh tags: trunk)
00:26
In the command-line shell, add the --new option to the ".open" command. Also, report the current database filename as part of the ".show" command. (check-in: 8e5c9203 user: drh tags: trunk)
2016-09-15
21:35
Add the ".testcase" and ".check" dot-commands in the shell, when compiled using SQLITE_DEBUG. (check-in: 62289f27 user: drh tags: trunk)
19:15
Omit the sqlite3Apis constant object when compiling with SQLITE_OMIT_LOAD_EXTENSION, since it is not used. (check-in: 7b104613 user: drh tags: trunk)
14:54
Remove no-op code (adding an assert() to prove that the code was no-op) in the text affinity logic of the bytecode engine comparison operators. (check-in: b9f5bdbf user: drh tags: trunk)
05:47
Fix a typo in a comment in sqlite.h.in. No changes to code. (check-in: 12df7152 user: dan tags: trunk)
00:32
Slight size reduction and performance increase in sqlite3VdbeHalt(). (check-in: 5990a1bd user: drh tags: trunk)
00:04
Optimization to vdbeRecordCompareInt() makes it slightly smaller and faster. (check-in: 5a2a7712 user: drh tags: trunk)
2016-09-14
18:56
Update comments used to generate API documentation to include the new "[dateof:3.X.Y]" notation for dates of release where appropriate. No changes to code. (check-in: 55f7f8ee user: drh tags: trunk)
2016-09-12
18:50
Version 3.14.2 (check-in: 29dbef4b user: drh tags: release, branch-3.14, version-3.14.2)
14:23
Fix a bug in sqldiff causing it to confuse blobs zero bytes in size with NULL values. (check-in: 264e9c75 user: dan tags: trunk)
13:32
Add missing "finish_test" command to vacuum5.test. (check-in: 02f40c3b user: dan tags: trunk)
09:28
Have releasetest.tcl delete all test files except for "testfixture", "testfixture.exe", "sqlite3", "sqlite3.exe", "test.log" and "test-out.txt" after each test run is finished. Passing the "--keep" option restores the old behaviour. (check-in: e0e042dc user: dan tags: trunk)
2016-09-10
19:51
Changes to give a warning-free build with SQLITE_OMIT_INCRBLOB and SQLITE_OMIT_SHARED_CACHE. (check-in: 711c5917 user: drh tags: trunk)
14:43
Add test code to delete an SQLite database and its auxiliary files. (check-in: 8a9d1281 user: dan tags: trunk)
2016-09-09
20:26
Make the new file test_delete.c portable to MSVC on Windows. (Closed-Leaf check-in: 0e3ace39 user: mistachkin tags: test_delete)
20:23
Remove an unnecessary call to sqlite3VdbeMemExpandBlob() when casting to text. (check-in: 19e2e595 user: drh tags: trunk)
20:00
Add new file test_delete.c, containing test code for deleting an sqlite database. (check-in: fb0b95e9 user: dan tags: test_delete)
19:33
Performance improvements to the comparison operators in the bytecode engine. (check-in: 37803b19 user: drh tags: trunk)
15:12
Fix a out-of-order variable declaration for some compile-time configurations. (check-in: 6ac932c9 user: drh tags: trunk)
13:23
In releasetest.tcl, the --srcdir option is automatic, so no need to mention it in the --help output. (check-in: 2bdd838e user: drh tags: trunk)
13:17
Fix an obsolete comment in the releasetest.tcl source code. (check-in: afaaa276 user: drh tags: trunk)
12:29
In releasetest.tcl: Improved testing for uncommitted changes. If uncommitted changes are seen, exit immediately unless the --force option is used. (check-in: 9a14e6c4 user: drh tags: trunk)
2016-09-08
23:18
Remove an extra space before function names in the amalgamation. Cherrypick of [20f3c7436f6a8a7bab39]. (check-in: a04a21ad user: mistachkin tags: branch-3.14)
23:16
Remove an extra space before function names in the amalgamation. (Closed-Leaf check-in: 20f3c743 user: mistachkin tags: callbackConv)
23:12
Issue a warning and prompt the user to continue if the releasetest.tcl script is run in a checkout with uncommitted changes. (check-in: 30e917ff user: drh tags: trunk)
2016-09-07
20:12
Fix the sqlite3_trace_v2() interface so that it goes disabled if either the callback or mask arguments are zero, in accordance with the documentation. Cherrypick of [37e6c54b1afc6348]. (check-in: e9acf616 user: mistachkin tags: branch-3.14)
19:54
Add support for row-value comparisons, including IN operators, and row-value updates in the UPDATE statement. (check-in: ddb5f055 user: drh tags: trunk)
19:47
Fix the extra comments (added with -DSQLITE_ENABLE_EXPLAIN_COMMENTS) so that the sense of <, <=, >, and >= tests is correct and so that the SQLITE_STOREP2 version is shown correctly. Cherrypick of [4d43c4698eef4e3d]. (check-in: c844f3da user: mistachkin tags: branch-3.14)
19:37
Fix a problem handling expressions like "(a, b) IN (SELECT ... ORDER BY 1, 2)" when there is an index on "a" but not "b". (Closed-Leaf check-in: 7f2c5c9e user: dan tags: rowvalue)
19:31
Merge selected test fixes from trunk. (check-in: 71866b36 user: mistachkin tags: branch-3.14)
19:23
Sync up the MSVC makefiles. (check-in: b3777e1f user: mistachkin tags: branch-3.14)
18:20
Merge recent enhancements from trunk. (check-in: 00759af0 user: drh tags: apple-osx)
18:11
Add the ext/misc/memvfs.c extension that implements a VFS for read-only database files contained in memory. (check-in: 12b7782a user: drh tags: trunk)
13:30
Simplify the affinity handling logic in codeAllEqualityTerms(). Logically the same, just a little easier to read and understand. (check-in: bbab9621 user: drh tags: rowvalue)
13:20
Fix the ".read" command in the command-line shell so that it understands that the input is not interactive. (check-in: 7c2c0d1d user: drh tags: branch-3.14)
13:12
Merge fixes from trunk. (check-in: 193f036c user: drh tags: rowvalue)
12:47
Version number to 3.14.2. (check-in: 925ef2f9 user: drh tags: branch-3.14)
12:41
Makefile changes to support building winsqlite3.dll using STDCALL rather than CDECL. (check-in: af951e03 user: drh tags: branch-3.14)
12:20
Correct affinity computations for a SELECT on the RHS of an IN operator. Fix for ticket [199df4168c]. (check-in: 2d1983ff user: drh tags: branch-3.14)
12:08
The ORDER BY LIMIT optimization is not valid unless the inner-most IN operator loop is actually used by the query plan. Fix for ticket [0c4df46116e90f92]. (check-in: b4f8be1f user: drh tags: branch-3.14)
11:27
Fix a problem in internal function sqlite3OpenTableAndIndices causing an operand of an unrelated VM instruction to be overwritten. Fix for [ef360601]. (check-in: e5c30f22 user: drh tags: branch-3.14)
10:10
Fix the ".read" command in the command-line shell so that it understands that the input is not interactive. (check-in: d8451fe8 user: drh tags: trunk)
01:51
The ORDER BY LIMIT optimization is not valid unless the inner-most IN operator loop is actually used by the query plan. Fix for ticket [0c4df46116e90f92]. (check-in: 820644b8 user: drh tags: trunk)
2016-09-06
19:08
Remove obsolete vector-IN test cases. Fix a bad testcase() macro. (check-in: ab3f8f19 user: drh tags: rowvalue)
18:51
Fix corer cases of vector IN operators where the RHS is a compound SELECT that includes an ORDER BY clause. (check-in: 8329ac6f user: drh tags: rowvalue)
17:21
Remove an unnecessary branch from expr.c. (check-in: 7cc9746c user: dan tags: rowvalue)
17:13
Avoid unnecessary memory allocations for aiMap in codeEqualityTerm(). (check-in: 70319c3d user: drh tags: rowvalue)
16:53
Avoid a NULL pointer deref in codeAllEqualityConstraints() following an OOM. (check-in: c6e528c1 user: drh tags: rowvalue)
16:33
Simplify the fix in commit [7d9bd22c]. (check-in: bd5a3420 user: dan tags: rowvalue)
15:25
Fix the header comment on codeEqualityTerm(). (check-in: b7e710e4 user: drh tags: rowvalue)
14:58
Fix a problem handling (a, b) IN (SELECT ...) expressions when there is an index on just one of "a" or "b". (check-in: 231c72d9 user: dan tags: rowvalue)
14:37
Enhance the sqlite3GetTempRange() and sqlite3ReleaseTempRange() internal routines so that they use sqlite3GetTempReg() and sqlite3ReleaseTempReg() when nReg==1. (check-in: 4071da2f user: drh tags: rowvalue)
12:04
Fix a typo in a comment in expr.c. (check-in: 288e934f user: dan tags: rowvalue)
2016-09-05
22:50
Simplified logic to extract a column from a row value. (check-in: e8f105c3 user: drh tags: rowvalue)
20:46
Sync up the MSVC makefiles. (check-in: f66d0d8c user: mistachkin tags: callbackConv)
20:40
Merge updates from trunk. (check-in: ea635bf9 user: mistachkin tags: callbackConv)
19:57
Fix an assert() so that it does C-compiler does not combine an assert() conditional with a production code conditional and thereby confuse the mutation testing script. (check-in: 2fa5288a user: drh tags: rowvalue)
15:02
Simplifications to the SQLITE_KEEPNULL flag on VDBE comparison operators. (check-in: 96269f01 user: drh tags: rowvalue)
12:12
Do vector comparison size checking early - at name resolution time - to forestall future problems. (check-in: ae127bcc user: drh tags: rowvalue)
12:02
Catch vector size mismatch problems during name resolution to avoid later problems. (Closed-Leaf check-in: 56562a03 user: drh tags: early-vector-size-check)
09:44
Fix a crash that could occur under certain circumstances if the vectors on either side of a comparison operator were of a different size. (check-in: 42670935 user: dan tags: rowvalue)
2016-09-03
19:52
Fix a problem causing the affinity of sub-select row-value elements to be ignored in some contextes. (check-in: 7d9bd22c user: dan tags: rowvalue)
16:24
Merge the fuzzershell enhancement from trunk. (check-in: ed206048 user: drh tags: rowvalue)
16:23
Build the generate_series(START,END,STEP) table-valued function into fuzzershell, to make it easier to construct compact test cases that contain actual data. (check-in: 672c21bc user: drh tags: trunk)
15:31
Consider the affinity of "b" when using an "a IN (SELECT b ...)" expression with an index on "a". Fix for [199df416]. (check-in: f5e49855 user: dan tags: rowvalue)
01:46
Performance optimizations. (check-in: f1d06c49 user: drh tags: rowvalue)
2016-09-02
23:56
Merge recent changes from trunk. (check-in: c7271fbd user: drh tags: rowvalue)
21:34
Add a test case for the OOM handled by the previous commit. (check-in: 9bdf7ca1 user: dan tags: trunk)
21:17
Correctly detect an OOM occurring in the setDestPgsz() subroutine of backup. (check-in: d9d8a048 user: drh tags: trunk)
17:27
The previous commit could miss an SQLITE_NOMEM error. This commit catches it. (Closed-Leaf check-in: 3a9f4750 user: dan tags: mistake)
17:18
Within a backup operation, ensure that a read-transaction is opened on the source database before its page size is read. This ensures the page-size used to write to the backup database is the same as its actual page-size, which is important for ZipVFS databases. (check-in: 7908fc60 user: dan tags: trunk)
2016-09-01
14:03
Have "sqldiff --rbu" ignore rows with NULL values in primary key fields. RBU can't handle such rows and the documentation already says sqldiff ignores them. Because the code now uses "=" instead of "IS" to filter on primary key columns, diffs on virtual tables are faster now too. (check-in: f4ba894a user: dan tags: trunk)
09:35
If SQLITE_ENABLE_ZIPVFS is defined, journal_mode=off is configured and a savepoint or statement rollback is attempted, move the pager into the error state to prevent the transaction from being committed. This makes it safe to use journal_mode=off with zipvfs under some conditions. (check-in: 38d31e18 user: dan tags: trunk)
2016-08-29
14:18
Use some of the example code from the sessions documenatation in the sessions test cases. (check-in: 6602974d user: dan tags: trunk)
2016-08-27
20:21
Fix typos in comments. No changes to running code. (check-in: a07269f2 user: drh tags: trunk)
18:35
Fix some comments in sqlite3session.h. No changes to code. (check-in: 78cd64e2 user: dan tags: trunk)
18:34
Fixes to fts5 snippet() function. (check-in: d464a7b1 user: dan tags: trunk)
14:13
Merge updates from trunk. (check-in: 082fd5f8 user: drh tags: rowvalue)
14:05
Fix the extra comments (added with -DSQLITE_ENABLE_EXPLAIN_COMMENTS) so that the sense of <, <=, >, and >= tests is correct and so that the SQLITE_STOREP2 version is shown correctly. These changes are already in the rowvalue branch but are added here since they are technically unrelated to rowvalue. (check-in: 4d43c469 user: drh tags: trunk)
01:41
Fix the "Synopsis" on the OP_Lt, OP_Le, OP_Gt, and OP_Ge opcodes, which has been backwards for time out of mind. (check-in: f51248dc user: drh tags: rowvalue)
2016-08-26
22:09
Fix a minor problem in sqlite3FindInIndex() related to rowids being used as part of the index. (check-in: 829f802b user: drh tags: rowvalue)
21:15
Fix the sqlite3FindInIndex() to ensure that it always uses a prefix of the index and uses no repeated columns. Enhanced comments. (check-in: b9fc89e4 user: drh tags: rowvalue)
19:54
Add an EXPLAIN QUERY PLAN line for when a index is used to implement an IN operator. (check-in: 171aa833 user: drh tags: rowvalue)
19:47
Add test cases to rowvalue2.test. (check-in: 078bb69e user: dan tags: rowvalue)
19:31
Enhance sqlite3FindInIndex() so that it is able to make use of the primary keys at the end of an index. (check-in: 4b589fbf user: drh tags: rowvalue)
18:17
Fix a post-OOM crash in updateRangeAffinityStr(). Add several ALWAYS() macros on unreachable branches. (check-in: 87d40195 user: drh tags: rowvalue)
17:54
Fix a problem with affinity changes and vector range comparisons. (check-in: b34413ac user: dan tags: rowvalue)
13:19
Allow ROWID values in indexed vector comparisons. (check-in: b0cc6be4 user: drh tags: rowvalue)
12:00
Fix a problem in internal function sqlite3OpenTableAndIndices causing an operand of an unrelated VM instruction to be overwritten. Fix for [ef360601]. (check-in: 70901479 user: dan tags: trunk)
04:32
Rename a test procedure in 'speed3.test' to avoid a name collision. (check-in: 84de17bc user: mistachkin tags: trunk)
03:42
Comment improvements. Put ALWAYS and NEVER macros on three unreachable branches. (check-in: 39761700 user: drh tags: rowvalue)
02:10
Adapt the special case of '$' in item names for test 'vtabH-3.1' as well. (check-in: e4aeaa2b user: mistachkin tags: trunk)
01:47
Make the test 'vtabH-3.1' work when there are less than 5 top-level items. (check-in: 328f79bb user: mistachkin tags: trunk)
01:17
Support running the fstree tests in 'vtabH.test' on Windows when not using the system drive. (check-in: 3680f95f user: mistachkin tags: trunk)
01:02
Remove an unreachable branch from sqlite3ExprAffinity() (check-in: 9d96f614 user: drh tags: rowvalue)
2016-08-25
23:24
Fix typos in 'vtabF.test' file. No changes to code. (check-in: a8546fee user: mistachkin tags: trunk)
22:31
Merge recent changes from trunk. (check-in: 5789aab8 user: drh tags: rowvalue)
22:06
Fix the sqlite3_trace_v2() interface so that it goes disabled if either the callback or mask arguments are zero, in accordance with the documentation. (check-in: 37e6c54b user: drh tags: trunk)
21:14
Refactor the sqlite3ExprCodeIN() routine for improved maintainability. (check-in: b56705ae user: drh tags: rowvalue)
17:47
Another fix in the IN-operator algorithm description. (check-in: f474aeac user: drh tags: rowvalue)
17:40
Further refinement of the in-operator.md documentation. (check-in: df064837 user: drh tags: rowvalue)
15:46
Improvements to IN operator code generator comments. Avoid unnecessary Copy operations on the LHS of the IN operator. (check-in: b6344298 user: drh tags: rowvalue)
14:23
Corrections to the IN-operator notes. (check-in: 25033ee9 user: drh tags: rowvalue)
14:00
Add notes on the implementation of the IN operator. (check-in: d256b2ca user: drh tags: rowvalue)
2016-08-24
21:54
Simplified VDBE code for the vector NOT IN null-scanning loop. (check-in: 7ae504e6 user: drh tags: rowvalue)
21:24
Improved extended comments of comparison operators when the SQLITE_STOREP2 flags is set on P5. No changes to non-debug code. (check-in: bbc1b016 user: drh tags: rowvalue)
19:58
Modularize all use of the calling convention macros based on the USE_STDCALL nmake macro. (check-in: e4a56197 user: mistachkin tags: callbackConv)
19:14
Add the sqlite3changebatch_db() API. (check-in: bee44ebc user: dan tags: changebatch)
18:51
In sqlite3FindInIndex(), improve internal comments and avoid an unreachable branch. (check-in: 55945fc1 user: drh tags: rowvalue)
18:50
Fix a bug in the fts5 snippet function causing it to return text containing zero phrase instances. (Closed-Leaf check-in: b174ed2b user: dan tags: fts5-snippet-bias)
18:49
Merge updates from trunk. (check-in: 428fc38d user: mistachkin tags: callbackConv)
18:21
Sync up the MSVC autoconf makefile. (check-in: 77f7c31a user: mistachkin tags: trunk)
17:49
Fix more unreachable branches. (check-in: 6099c180 user: drh tags: rowvalue)
15:37
Add a NEVER() on an unreachable branch in comparisonAffinity(). (check-in: 505a2f20 user: drh tags: rowvalue)
12:22
Fix a buffer overrun in the code for handling IN(...) operators when the LHS of the operator contains indexed columns or expressions. (check-in: f41a0391 user: dan tags: rowvalue)
00:51
The previous OOM fix was bad. Back it out and replace it with a better one. (check-in: 1e3bc369 user: drh tags: rowvalue)
00:25
Avoid a potential null-pointer dereference following an OOM. (check-in: 25f6ed8d user: drh tags: rowvalue)
2016-08-23
19:02
Simplify the row value misuse error message. (check-in: 838c50a5 user: drh tags: rowvalue)
19:02
Add further tests for changebatch. And a fix to prevent a changeset from conflicting with itself. (check-in: 506d6ff4 user: dan tags: changebatch)
18:30
Fix a problem with rowvalue UPDATE when the rowvalue is not the left-most and the RHS is a multi-column subquery. (check-in: e149e6b9 user: drh tags: rowvalue)
18:09
Fix harmless compiler warnings in changebatch. (check-in: a721a738 user: drh tags: changebatch)
17:30
Fix an uninitialized variable in CASE expression code generation. (check-in: c8ffae05 user: drh tags: rowvalue)
17:02
Add a new method to sessions - sqlite3sessions_fullchangeset() - to return a changeset that always contains values for all old.* fields. Update changebatch to use these values to more reliably detect multi-column UNIQUE constraint violations. (check-in: efa761b2 user: dan tags: changebatch)
14:42
Fix the SQLITE_USER_AUTHENTICATION login check so that the SQLITE_AUTH_USER error code correctly propagates and is not overwritten by SQLITE_ERROR. (check-in: c640489d user: drh tags: trunk)
2016-08-22
21:01
Add a couple of extra tests to changebatch1.test. (check-in: 207d970b user: dan tags: changebatch)
20:49
Add an experimental module to detect conflicts between sessions changesets. (check-in: 0c9fd6b7 user: dan tags: changebatch)
20:10
Add support for the SQLITE_DBCONFIG_MAINDBNAME configuration option. (check-in: 78395193 user: drh tags: trunk)
14:30
Fix the vector BETWEEN operator so that it only evaluates the left-most vector expression once. Add support for vector comparisons in the CASE operator. (check-in: 07e69f43 user: drh tags: rowvalue)
00:48
Reinstate the mechanism in BETWEEN that avoids evaluating the first expression more than once, but fix the affinity extractor so that it works with this mechanism. The de-duplication of the first expression still does not work for vector expressions, though. (check-in: 2f39987f user: drh tags: rowvalue)
2016-08-20
22:49
The docs promise the in "x BETWEEN y AND z" the x expression is only evaluated once. That is no longer true, and so some tests are failing. This needs to be fixed before merging to trunk. (check-in: e50d264f user: drh tags: rowvalue)
21:11
Further comment enhancements. No changes to code. (check-in: d4562a9e user: drh tags: rowvalue)
21:02
Clarification of code comments in expr.c. Clean up the implementations of sqlite3ExprIsVector() and sqlite3ExprVectorSize() slightly. (check-in: 4fb66d65 user: drh tags: rowvalue)
18:06
Fixes for problems following OOM errors. (check-in: 9041ee4a user: drh tags: rowvalue)
17:23
Fix other minor problems with the fts5 snippet() function. (check-in: b56b2a85 user: dan tags: fts5-snippet-bias)
17:00
Do not duplicate the Expr.pLeft subtree of a TK_SELECT_COLUMN node. (check-in: 8384c77e user: drh tags: rowvalue)
15:01
Fix a segfault that could occur if a query that used a vector comparison contained certain types of syntax errors. (check-in: 203f07c5 user: dan tags: rowvalue)
12:00
Improvements to the vector comparison splitter in exprAnalyze(). (check-in: a3ffd283 user: drh tags: rowvalue)
01:06
Improvements to comments. No code changes. (check-in: 4165d20f user: drh tags: rowvalue)
00:51
Add support for vector assignments in the SET clause of an UPDATE statement. (check-in: f320d47d user: drh tags: rowvalue)
00:07
Change the way TK_SELECT_COLUMN is handled so that the subquery is only generated once even if part of the vector comparison is used for indexing and the other part is now. This change also is a pathway to vector assignment in UPDATE statements. (check-in: d8feea7d user: drh tags: rowvalue)
2016-08-19
19:58
Replace the magic number (-2) with its symbol XN_EXPR in the exprMightBeIndexed() routine. No logic changes. (check-in: d4a5af69 user: drh tags: rowvalue)
19:12
Improved comments on sqlite3CodeSubquery(). No changes to code. (check-in: acea4ee1 user: drh tags: rowvalue)
18:40
Show the WhereTerm.iField value on debugging output, when it is non-zero. (check-in: 931c9535 user: drh tags: rowvalue)
18:37
Register any built-in fts5 module before loading automatic extensions. This allows automatic extensions to register fts5 tokenizers and auxiliary functions. (check-in: b10e31dc user: dan tags: fts5-snippet-bias)
18:28
Fix an obsolete comment on codeEqualityTerm(). No changes to code. (check-in: d07be5af user: drh tags: rowvalue)
15:41
Merge recent enhancements from trunk. (check-in: b1787236 user: drh tags: rowvalue)
15:17
Merge the VACUUM attached database enhancement from trunk. (Closed-Leaf check-in: 12d5e38d user: drh tags: dbconfig_maindbname)
15:15
Enhance the VACUUM command so that it can operate on an attached database. (check-in: 083f9e62 user: drh tags: trunk)
15:12
Disable row counting on queries run while doing a VACUUM. (Closed-Leaf check-in: ad35ef11 user: drh tags: vacuum-attached-db)
14:25
Have the fts5 snippet() function avoid favouring snippets that begin with sentences that do not contain search terms. Add an extra bias in favour of the first sentence in the document. (check-in: d8180af2 user: dan tags: fts5-snippet-bias)
14:20
Add the capability to VACUUM an attached database by specifying the schema name as an argument to the VACUUM command. Since version 2.0, VACUUM has accepted an argument which was silently ignored. Now it has meaning. (check-in: 29d63059 user: drh tags: vacuum-attached-db)
2016-08-18
22:44
Add the SQLITE_DBCONFIG_MAINDBNAME interface. (check-in: d6e3d579 user: drh tags: dbconfig_maindbname)
22:19
Change the name of Db.zName to Db.zDbSName for improved long-term code maintainability. (check-in: cb9865e1 user: drh tags: trunk)
20:56
Fix a zName to zDbSName conversion missed in the previous check-in. (Closed-Leaf check-in: d7cf423c user: drh tags: zDbSName)
19:04
Fix a SQL NULL handling bug in the vector IN operator code generation. (check-in: 936146b1 user: drh tags: rowvalue)
18:09
Display SELECT_COLUMN expressions in the .wheretrace debugging output. (check-in: 3b27a5da user: drh tags: rowvalue)
17:55
Display VECTOR expressions in .wheretrace and .selecttrace debugging output. (check-in: 157347e2 user: drh tags: rowvalue)
15:36
Since the TK_VECTOR token is not actually used by the parser, make it an extra token code added by the tool/addopcodes.tcl script during parser build. (check-in: b40b202c user: drh tags: rowvalue)
15:21
Merge recent enhancements from trunk. (check-in: 4768a106 user: drh tags: rowvalue)
15:15
Simplify the vector comparison code generator logic, and the resulting VDBE code. (check-in: e2ad0b5d user: drh tags: rowvalue)
14:47
Adjust some tests to account for recent changes to the fts5 snippet function. (check-in: 184ecbe9 user: dan tags: fts5-snippet-bias)
14:33
Rename the Db.zName field to Db.zDbSName to make it more descriptive and to distinguish it from all of the other "zName" variables scattered throughout the code. (check-in: 92a22f01 user: drh tags: zDbSName)
2016-08-17
19:05
Bias the fts5 snippet() function to return snippets that look like they start at the start of sentences. (check-in: 60de1594 user: dan tags: fts5-snippet-bias)
11:14
Fix a problem in the fts5 snippet() auxiliary function. (check-in: a861713c user: dan tags: trunk)
2016-08-16
16:46
Fix a bug in destructor processing of Lemon. That has no impact on the SQLite grammar. The bug was introduced by prior work to optimize the Lemon-generated parser used by SQLite. (check-in: f9035b8e user: drh tags: trunk)
2016-08-13
14:30
Questionable changes to support interruptible checkpoint in ZipVFS. (Leaf check-in: c7a9f26d user: dan tags: interruptible-checkpoint)
14:17
Remove an unnecessary stack variable from sqlite3VdbeExec(). (Closed-Leaf check-in: c54bd9c8 user: drh tags: vector-compare)
13:03
Improvements to commits. No code changes. (check-in: 18f5a3be user: drh tags: vector-compare)
12:37
Fix to the vector less-than operator. All legacy tests passing now. (check-in: ec70a67e user: drh tags: vector-compare)
10:34
Fix an fts5 problem with corrupt database handling found by address-sanitizer. (check-in: e22252e1 user: dan tags: trunk)
10:02
Attempt to simplify the logic and generated code for vector comparisons. Basic comparison operators are working, but there are many indexing test failures still to be worked through. (check-in: dfc028cf user: drh tags: vector-compare)
06:38
Fix a buffer overread in fts5. (check-in: fcfbee6c user: dan tags: trunk)
2016-08-12
16:21
Have wal file checkpoints exit early if the sqlite3_interrupt() API function is called. (check-in: 8a5f41c7 user: dan tags: interruptible-checkpoint)
11:25
Add VdbeCoverage() macros on newly added VDBE branch operations. (check-in: 381aa731 user: drh tags: rowvalue)
11:01
Fix a post-OOM memory leak. (check-in: 14009b32 user: drh tags: rowvalue)
2016-08-11
19:12
Merge version 3.14 plus some subsequent patches (including the page-cache performance patch) from trunk. (check-in: d9f8918c user: drh tags: begin-concurrent)
18:53
Version 3.14.1 (check-in: a12d8059 user: drh tags: release, branch-3.14, version-3.14.1)
18:05
Add the "modeof=<filename>" URI parameter to os_unix.c - used to specify a file to copy permissions from when a new database is created. Also allow passing NULL as the second parameter to sqlite3rbu_vacuum(). (check-in: ed406d31 user: dan tags: trunk)
13:51
Fix a 1 byte buffer overwrite in the "sqldiff --rbu" command. (check-in: 1adb22f5 user: drh tags: branch-3.14)
13:08
Increase the version number to 3.14.1. (check-in: 34aed3a3 user: drh tags: branch-3.14)
13:03
Enhance sqlite3PcacheTruncate() to run faster in the common case where the cutoff is just a few pages less than the page number highwater mark. (check-in: 03dceaea user: drh tags: branch-3.14)
12:31
Merge recent changes from trunk. (check-in: 959677b9 user: drh tags: rowvalue)
12:01
Fix some problems with handling "no such collation sequence" errors. (check-in: 8278be06 user: dan tags: rowvalue)
09:55
Fix a 1 byte buffer overwrite in the "sqldiff --rbu" command. (check-in: ab83d707 user: dan tags: trunk)
01:24
Fix a harmless compiler warning in FTS5. (check-in: 2ea0c8b4 user: drh tags: trunk)
2016-08-10
20:02
Optimization to sqlite3WhereExprUsage(). (check-in: 95493058 user: drh tags: trunk)
19:43
List of MATCH operator names in isMatchOfColumn() should be constant. (check-in: 7319d676 user: drh tags: trunk)
18:56
Performance enhancement in the expression walker. (check-in: ebccbd96 user: drh tags: trunk)
15:02
Tweaks to pcache1TruncateUnsafe() to make it slightly smaller and faster and easier to test. (check-in: 059f4e2e user: drh tags: trunk)
14:40
Rearrange the code inside sqlite3RunParser() routine so that sqlite3Parser() is only called from a single place. This allows sqlite3Parser() to be in-lined, which results in a 0.25% overall performance gain. (check-in: 25d1d02b user: drh tags: trunk)
13:34
Increment the version number to 3.15. (check-in: 8c2701e7 user: drh tags: trunk)
13:30
Improved comments on the lempar.c parser template. Adjust the YY_SHIFT_USE_DFLT constant in the Lemon-generated parser tables so as to guarantee that it is always out of range of the yy_lookahead[] table. (check-in: 83622f3f user: drh tags: trunk)
11:50
Fix pcache1TruncateUnsafe() run faster for the case where iLimit is very close to iMaxKey. (check-in: b07a26df user: drh tags: trunk)
01:43
Performance optimization in the yy_find_shift_action() routine of the Lemon-generated parser. (check-in: ba6663be user: drh tags: trunk)
2016-08-09
21:08
Prototype for the remember(V,PTR) extension function. (Closed-Leaf check-in: f0942c36 user: drh tags: rememberFunc)
21:01
Fix harmless compiler warning. (check-in: 9a5a4f6e user: drh tags: trunk)
19:48
Minor update to the way fts5 column filters are parsed. (check-in: 14864f2b user: dan tags: trunk)
19:26
Have fts5 interpret column lists that begin with a "-" character as "match any column except" lists. (check-in: e5175456 user: dan tags: trunk)
05:48
Add rowvalue5.test, which should have been part of the previous commit on this branch. (check-in: ea03e219 user: dan tags: rowvalue)
2016-08-08
20:15
Fix some cases involving row values and virtual tables. (check-in: 156a41f3 user: dan tags: rowvalue)
18:42
Fix the EXPLAIN QUERY PLAN output for row value range constaints that use an index. (check-in: bb606511 user: dan tags: rowvalue)
16:52
Merge trunk changes with this branch. (check-in: 0e927a7e user: dan tags: rowvalue)
14:21
Merge all changes from the 3.14 release. (check-in: c3cd543f user: drh tags: apple-osx)
13:40
Version 3.14 (check-in: d5e98057 user: drh tags: trunk, release, version-3.14.0)
2016-08-07
18:52
Fix documentation typos. No changes to code. (check-in: ebc396a1 user: drh tags: trunk)
2016-08-05
20:54
Have the TEA package build without SQLITE_OMIT_DEPRECATED. As it uses recently deprecated interfaces sqlite3_profile() and sqlite3_trace(). (check-in: 95578898 user: dan tags: trunk)
16:16
Undo commit [f250166bb]. It is required to handle IO and other errors that occur within a VACUUM of a Zipvfs database. (check-in: ae72513a user: dan tags: trunk)
15:34
Remove an incorrect ALWAYS() statement and add a test case to show when the condition is sometimes false. (check-in: 0f57effa user: drh tags: trunk)
14:35
Fix a very obscure problem following OOM in sqlite3_declare_vtab(). (check-in: 68eac748 user: drh tags: trunk)
2016-08-04
13:39
Merge all recent enhancements from trunk. (check-in: dacfff51 user: drh tags: apple-osx)
13:23
Revert the SQLITE_APICALL changes for now. That changes needs further research before it is released. Deferred until 3.15. (check-in: 9adda385 user: drh tags: trunk)
12:35
Add the experimental SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION compile-time option. When enabled, the "unknown function" error is suppressed for EXPLAIN and a no-op function named "unknown()" is substituted. This facilitiates using the command-line shell to analyze queries from applications that contain many application-defined functions that are not normally available to the shell. (check-in: b7f30a9f user: drh tags: trunk)
12:33
Add the experimental SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION compile-time option. When enabled, the "unknown function" error is suppressed for EXPLAIN and a no-op function named "unknown()" is substituted. This facilitiates using the command-line shell to analyze queries from applications that contain many application-defined functions that are not normally available to the shell. (check-in: e22ca3cd user: drh tags: apple-osx)
09:13
Merge the ORDER BY LIMIT fix, and other enhancements, from trunk. (check-in: bf5a9542 user: drh tags: apple-osx)
09:09
Make sure the ORDER BY LIMIT optimization is not applied if the inner-most loop can only have a single iteration and is hence not really a loop. (check-in: 13e3bd3d user: drh tags: trunk)
01:47
Add an experimental SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION compile-time option. This changes has been merged into main branches via cherry-pick. (Closed-Leaf check-in: 4ada023c user: drh tags: unknown-function)
2016-08-03
18:00
Fix a problem with estimating the number of rows visited by a query that uses a multi-column IN(SELECT...) constraint. (check-in: 3c2f908f user: dan tags: rowvalue)
16:39
Fix another problem involving vector range constraints and mixed ASC/DESC indexes. (check-in: 1559f4c4 user: dan tags: rowvalue)
16:14
Fix stat4-based cost estimates for vector range constraints. (check-in: 18af74ab user: dan tags: rowvalue)
14:51
Fix a typo in a comment in btree.c. No changes to code. (check-in: 722c1281 user: drh tags: trunk)
13:40
Fix the --help output on fuzzcheck so that it fix in an 80-character window. (check-in: b91444b5 user: drh tags: trunk)
2016-08-02
20:45
Add new test file rowvaluefault.test. (check-in: e496b2d6 user: dan tags: rowvalue)
20:42
Fix a unused variable that comes up with -DSQLITE_OMIT_DATETIME_FUNCS. (check-in: e2f9919e user: drh tags: trunk)
19:29
The 'replace.tcl' tool should use Unix line-endings. (check-in: 50de9631 user: mistachkin tags: trunk)
18:50
Add tests and fixes for vector operations that use sub-queries with different combinations of LIMIT, OFFSET and ORDER BY clauses. (check-in: 092b1c5f user: dan tags: rowvalue)
17:45
Fix SQLITE_OMIT_SUBQUERY builds. (check-in: 339f85f4 user: dan tags: rowvalue)
17:07
Fix a problem with vector range constraints and mixed ASC/DESC indexes. (check-in: e2ad30c8 user: dan tags: rowvalue)
16:24
Merge latest trunk changes into this branch. (check-in: d468101b user: dan tags: rowvalue)
16:18
Add missing comments and make some code on this branch clearer. (check-in: 6937677c user: dan tags: rowvalue)
13:26
Updates to requirements marks. No changes to code. (check-in: b23c10ac user: drh tags: trunk)
11:29
Fix a problem introduced by [77948b5eceab92a7] causing duplicate calls to be made to the xSavepoint() method of virtual tables under some circumstances. (check-in: e64a4173 user: dan tags: trunk)
08:45
Fix harmless compiler warnings in sqlite3_status(). (check-in: 7c38a79c user: drh tags: trunk)
2016-08-01
21:17
Update the wordcount.c test program and add a new script "time-wordcount.sh" for additional performance testing. (check-in: d8ef9f58 user: drh tags: trunk)
20:14
Fix a problem with vector range constraints involving the rowid column. And other issues. (check-in: 3ef75d45 user: dan tags: rowvalue)
17:06
Fix other harmless compiler warnings. (check-in: 90d2c490 user: drh tags: trunk)
16:57
Remove a duplicate typedef from loadext.c (remaining copy is in sqlite3ext.h). (check-in: fd184e5a user: dan tags: trunk)
16:50
Add an extra compiler switch to loadext.test to ensure that it picks up the correct version of sqlite3.h when building a test extension. (check-in: e57fa6af user: dan tags: trunk)
16:37
Fix a problem with IN(...) constraints where the LHS is a sub-select that is an aggregate query. (check-in: 1f4dba87 user: dan tags: rowvalue)
15:00
Update releasetest.tcl to automatically do one round of tests with USE_STDCALL=1 when running on Windows with MSVC. (check-in: a6a112de user: drh tags: trunk)
14:35
Avoid making unnecessary changes to the signatures of the sqlite3_auto_extension() and sqlite3_cancel_auto_extension() interfaces. (check-in: b6ea2f21 user: drh tags: trunk)
2016-07-30
21:02
Fix problems with vector == comparisons and NULL values. (check-in: 059d0d05 user: dan tags: rowvalue)
18:54
Fix harmless compiler warning seen with MSVC. (check-in: 390a38a1 user: mistachkin tags: trunk)
17:59
Merge latest trunk with this branch. (check-in: 63ae02d0 user: dan tags: rowvalue)
16:39
Remove the EP_Vector expression flag. (check-in: e9d9c6d4 user: dan tags: rowvalue)
2016-07-29
20:58
Fix some issues with vector range constraints and the column cache. Also vector range constraints and rowid columns. (check-in: 42607366 user: dan tags: rowvalue)
18:12
Change the way "(a, b) = (SELECT *)" expressions are handled in where.c if there is an index on one of the columns only. (check-in: 4dfebff2 user: dan tags: rowvalue)
17:36
Using the header file 'intrin.h' requires MSVC 2005 or later. (check-in: 9fae75c0 user: mistachkin tags: trunk)
04:12
For test 'shell1-5.0', disable round-trip testing for characters in the range 0xE0 to 0xEF on Linux, due to intermittent shell portability issues. (check-in: 544c990a user: mistachkin tags: trunk)
02:04
Fix typo in a test file interactive output string. (check-in: 4fedd790 user: mistachkin tags: trunk)
01:55
Merge additional linkage macro changes from the branch. (check-in: 8b0eb22e user: drh tags: trunk)
01:49
Further refinement to the calling convention macros. (check-in: 45588de3 user: drh tags: trunk)
01:47
Merge updates from trunk. (check-in: 71ffa195 user: mistachkin tags: callbackConv)
01:46
Update the autoconf makefile for MSVC. (check-in: 2daf2098 user: mistachkin tags: callbackConv)
01:32
Undo some unhelpful changes to skip-scan scoring that were added by the check-in [9e2b2681] that improved scoring of index scan. (check-in: c7d51934 user: drh tags: trunk)
01:31
Add macro necessary for building several extensions when the __stdcall calling convention is not in use. (check-in: bc8c9b55 user: mistachkin tags: callbackConv)
2016-07-28
23:58
Missed a couple Tcl command deletion callbacks. (check-in: fc5c1876 user: mistachkin tags: callbackConv)
23:54
Use the SQLITE_TCLAPI macro in several extensions that were missed in the previous check-in. (check-in: df254365 user: mistachkin tags: callbackConv)
22:53
More compiler warning fixes for GCC related to the auto-extension mechanism. (check-in: b8218129 user: mistachkin tags: callbackConv)
22:46
The return type used by the auto-extension entry points is 'int', not 'void'. (check-in: bf9c86c7 user: mistachkin tags: callbackConv)
22:38
Make sure all the auto-extension mechanism function signatures match up precisely. (check-in: 87ba69b5 user: mistachkin tags: callbackConv)
22:23
Make the extension auto-loading mechanism work with the __stdcall calling convention. Also, fix a couple Tcl command calling conventions missed in the previous check-in. (check-in: 3ea567c4 user: mistachkin tags: callbackConv)
19:47
Fix further issues with multi-column IN(...) operators. Also some error handling cases surrounding row values. (check-in: cc3f6542 user: dan tags: rowvalue)
19:28
The 'sqlite3ext.h' content should be processed before being included in the amalgamation. (check-in: cbe1de47 user: mistachkin tags: trunk)
18:55
Decorate all interfaces with calling convention macros. (check-in: fd784887 user: drh tags: trunk)
18:49
All SQLite API functions and callbacks in the 'sqlite3ext.h' header file must be decorated with the calling convention. (Closed-Leaf check-in: 97fc6e43 user: mistachkin tags: callbackConv)
18:42
Merge recent trunk fixes. (check-in: 97657445 user: drh tags: apple-osx)
18:38
Disable the authorizer callback when reparsing the schema. This avoids undesirable authorization failures following an ALTER TABLE. (check-in: 805d01cd user: drh tags: trunk)
18:18
Fixup reserved function pointers in the Tcl stubs table and several macros containing Tcl function pointers. (check-in: 959cd013 user: mistachkin tags: callbackConv)
18:06
Adjustments to get 'testfixture.exe' compiling with Tcl 8.6 when __stdcall is enabled. (check-in: 90e89ec9 user: mistachkin tags: callbackConv)
17:24
Improvements to the way the COMPILER compile-time option is set when compiling with Clang. (check-in: 81f9cf86 user: drh tags: trunk)
17:11
Make sure the SQLITE_TCLAPI macro is always defined and use it for all callback functions that must interface with the Tcl C API. (check-in: f2f1323c user: mistachkin tags: callbackConv)
16:09
More work on getting the 'testfixture.exe' target to work correctly. (check-in: 36b72fd6 user: mistachkin tags: callbackConv)
15:38
Modify the mksqlite3h.tcl tool to handle the syscall typedef specially. (check-in: 478a84ef user: mistachkin tags: callbackConv)
15:09
Change mksqlite3h.tcl to automatically insert the SQLITE_CALLBACK calling convention macros. (check-in: 11ab9c9a user: drh tags: callbackConv)
14:37
Allow the 'testfixture.exe' target to be compiled with the __stdcall calling convention. (check-in: e8be3dfe user: mistachkin tags: callbackConv)
13:59
Merge latest trunk changes into this branch. (check-in: 9685880f user: dan tags: rowvalue)
12:52
New test case to insure legacy CREATE TABLE syntax is supported. (check-in: 6feff15c user: drh tags: trunk)
04:14
Work in progress on setting a calling convention for all callback functions. (check-in: 02b8040e user: mistachkin tags: callbackConv)
2016-07-27
19:33
Fix some problems with multi-column IN(SELECT...) processing. (check-in: 719a3b20 user: dan tags: rowvalue)
19:30
Enhance the query planner cost estimation for index scans to take into account WHERE clause terms that can be computed using only the index and that do not require looking up rows in the original table. This fixes an obscure performance regression that arose when the ORDER BY LIMIT optimization was added by check-in [bf46179d44843]. (check-in: 9e2b2681 user: drh tags: trunk)
19:20
Add test cases and fix a comment. (Closed-Leaf check-in: 50f8ea37 user: drh tags: improved-index-scan)
18:27
When estimating the cost of an index scan, factor in the cost savings of being able to use the index to evaluate some WHERE clause terms without having to do a table lookup. (check-in: a59b5622 user: drh tags: improved-index-scan)
16:03
Initialize a variable in where.c to avoid a valgrind warning. (check-in: 4d59df02 user: dan tags: trunk)
2016-07-26
18:15
Merge latest trunk changes into this branch. (check-in: d4f3d52c user: dan tags: rowvalue)
18:06
Fix where.c handling of "IN (SELECT ...)" expressions when the SELECT returns more than one result column. Also error handling for other row value constructor cases. (check-in: 061b8006 user: dan tags: rowvalue)
15:17
Merge fixes to sqlite3_scrub_backup() from trunk. (check-in: 91e811f5 user: drh tags: apple-osx)
10:46
Ensure that the sqlite3_scrub_backup() extension creates a backup database at least as large as indicated by the database header, even if the last page of the input database is a free-list leaf. (check-in: 483994a5 user: dan tags: trunk)
04:54
Merge the cache_spill VACUUM fix from trunk. (check-in: cc6bfdf8 user: drh tags: apple-osx)
04:49
Copy the cache_spill setting from the main database over to the vacuum_db transient database when running a VACUUM. (check-in: c0e7d98e user: drh tags: trunk)
04:31
Make sure affinity is applied correctly on lower-bound range constraints in the min() optimization. Fix for ticket [a0bac8b3c3d1bb]. (check-in: b819bace user: drh tags: trunk)
04:23
Make sure affinity is applied correctly on lower-bound range constraints in the min() optimization. Fix for ticket [a0bac8b3c3d1bb]. (check-in: 0e9f534f user: drh tags: apple-osx)
2016-07-25
22:46
Merge the VACCUM cache_size adjustment from trunk. (check-in: cdb7efd0 user: drh tags: apple-osx)
22:40
In the VACUUM command, set the cache_size of the transient vacuum_db database to be the same as the database being vacuumed. (check-in: b78d9954 user: drh tags: trunk)
21:11
Fix a test case in FTS5 to make it compatible with Tcl 8.5. (check-in: a495f8e7 user: drh tags: trunk)
18:50
Add the experimental SQLITE_VACUUM_CACHE_SIZE macro. (check-in: 68ecd8e0 user: drh tags: apple-osx)
17:31
Merge 3.14 alpha changes from trunk. (check-in: e98cefb1 user: drh tags: apple-osx)
16:10
Minor test infrastructure changes to better support SEE testing. (check-in: 8dcb9d50 user: drh tags: trunk)
14:40
Add a new %ifdef to parse.y so that the build works with SQLITE_OMIT_SUBQUERY. (check-in: 38a48cfb user: drh tags: trunk)
14:20
Changes to test scripts to get them all running on OpenBSD. (check-in: 9e7bedee user: drh tags: trunk)
12:10
Disable the DBSTATUS_CACHE_USED_SHARED tests on mac when memsys3/5 is disabled due to differences in the allocation sizes for the Darwin memory allocator. (check-in: d6f6c87c user: drh tags: trunk)
12:01
Update the vacuummem.test script so that it works on mac as well as on linux. (check-in: ea7fb98b user: drh tags: trunk)
11:57
If both MEMSYS3 and MEMSYS5 are enabled, than automatically disable MEMSYS3. (check-in: ccc22e14 user: drh tags: trunk)
11:39
Another attempt at getting --enable-memsysN working. (check-in: 5f40e6ad user: drh tags: trunk)
11:32
Fix the --enable-memsysN options in configure so that they actually work. (check-in: 67955255 user: drh tags: trunk)
11:27
Add --enable-memsys3 and --enable-memsys5 options to the configure script. (check-in: 67e1dc98 user: drh tags: trunk)
02:42
Evidence marks and code reformatting for SQLITE_TRACE_STMT operation. (check-in: e1e02238 user: drh tags: trunk)
02:31
Change SQLITE_TRACE_STMT to return unexpanded SQL text in the X argument. Add documentation on how and when to use sqlite3_expanded_sql(P) to compute the expanded text for legacy sqlite3_trace() compatibility. (check-in: 163e1522 user: drh tags: trunk)
00:05
Fix code so that the deprecated sqlite3_trace() and sqlite3_profile() interfaces are not called when SQLITE_OMIT_DEPRECATED is used. (check-in: 1c5baae3 user: drh tags: trunk)
2016-07-23
20:27
Use sqlite3_trace_v2() instead of sqlite3_trace() in the shell. (check-in: c8e0539b user: drh tags: trunk)
20:24
Allow vector IN(SELECT ...) expressions to use an index if either all the indexed columns are declared NOT NULL or if there is no difference between the expression evaluating to 0 and NULL (as in a WHERE clause). (check-in: e2fd6f49 user: dan tags: rowvalue)
19:34
Add the json_quote() function to the JSON1 extension. (check-in: 269892ab user: drh tags: trunk)
19:18
Small tweak to the btree balancer for improved tree balance. (check-in: 8817dedb user: drh tags: trunk)
14:50
Fix recently added tests so that they work in all configurations. (check-in: d0bcaf0c user: drh tags: trunk)
05:22
Add the sqlite3_expanded_sql() and sqlite3_trace_v2() interfaces. (check-in: 99a6c518 user: drh tags: trunk)
04:58
Improvements to sqlite3_trace_v2() documentation. Fix the sqlite3VdbeExpandSql() routine to respond better to OOM conditions. (Closed-Leaf check-in: 0400f642 user: drh tags: sqlite3_trace_v2)
02:07
Add requirements marks to the sqlite3_trace_v2() interface documentation. (check-in: ebd388e9 user: drh tags: sqlite3_trace_v2)
00:43
Fix sqlite3VdbeExpandSql() so that it handles OOMs by always returning NULL. (check-in: 5a027fe4 user: drh tags: sqlite3_trace_v2)
2016-07-22
21:35
Revise a warning fix from the previous check-in to improve clarity. Also, fix an incorrect test prefix (typo). (check-in: f50a3fd6 user: mistachkin tags: trunk)
21:26
Fix harmless compiler warnings seen with MSVC. (check-in: 8bb6e6fc user: mistachkin tags: trunk)
20:45
Be sure to hold the database connection mutex while calling sqlite3VdbeExpand() from within sqlite3_expanded_sql(). (check-in: 527b5ba6 user: drh tags: sqlite3_trace_v2)
20:20
Add requirements marks to the sqlite3_expanded_sql() documentation. (check-in: 409535e6 user: drh tags: sqlite3_trace_v2)
17:58
Merge latest trunk changes with this branch. (check-in: 60fed5cd user: dan tags: rowvalue)
10:09
Fix a problem with upper case module names in the "sqldiff --vtab" command. (check-in: 87e25fc4 user: dan tags: trunk)
2016-07-21
18:02
Add extra test cases to verify the fix in [64ca1a835]. (check-in: bf98a2de user: dan tags: trunk)
16:43
Add new test file vacuummem.test. To test that any temporary memory used by VACUUM is freed as soon as the VACUUM has finished (not, for example, when sqlite3_close() is finally called). (check-in: 1b1ad0b2 user: dan tags: trunk)
2016-07-15
19:17
Add the largely untested SQLITE_FTS5_NO_WITHOUT_ROWID compile time option to fts5. For building a dynamically loadable extension that does not use WITHOUT ROWID. (check-in: d0a1cf1c user: dan tags: trunk)
10:01
The sqlite3_expanded_sql() function compiles, but always returns NULL, when the SQLITE_OMIT_TRACE compile-time option is used. (check-in: 53c25ebe user: drh tags: sqlite3_trace_v2)
02:55
Merge fixes from trunk. Fix the tclsqlite.test script. (check-in: d2b1fa55 user: drh tags: sqlite3_trace_v2)
02:50
Disable the CSV extension when virtual tables are disabled. (check-in: ec718089 user: drh tags: trunk)
01:49
Modify the Tcl test command 'sqlite3_bind_blob' to make use of the Tcl_GetByteArrayFromObj() API. (check-in: e03c8189 user: mistachkin tags: sqlite3_trace_v2)
00:39
Fix typo in sqlite3_trace_v2(). (check-in: 97ccf15f user: mistachkin tags: sqlite3_trace_v2)
00:23
Corrections and enhancements for the new tests. (check-in: 20e74c63 user: mistachkin tags: sqlite3_trace_v2)
00:09
Modify one test result to be case-insensitive. (check-in: 5ccbeeea user: mistachkin tags: sqlite3_trace_v2)
00:07
Add tests, including some for the sqlite3_expanded_sql() API. (check-in: 8b8c0b74 user: mistachkin tags: sqlite3_trace_v2)
2016-07-14
23:17
More work on the Tcl interface and tests for the sqlite3_trace_v2() API. (check-in: f3c4aa97 user: mistachkin tags: sqlite3_trace_v2)
21:26
Initial work on the Tcl API interface to the new sqlite3_trace_v2() function. (check-in: 7b59fa40 user: mistachkin tags: sqlite3_trace_v2)
19:48
Minor tweak the the b-tree balancer. (Closed-Leaf check-in: d2a0af7a user: drh tags: btree-tuning)
19:13
Fix ALTER TABLE so that it does not promote the schema version past 3, as that will cause DESC indexes to go corrupt. Ticket [f68bf68513a1c]. (check-in: a7db6e45 user: drh tags: trunk)
09:22
Fix copy/paste typo in the new sqlite3_expanded_sql() function. (check-in: e7d18c70 user: mistachkin tags: sqlite3_trace_v2)
01:13
Fix a parameter misordering on sqlite3_trace_v2() in the loadable extension interface. (check-in: 989de2d5 user: drh tags: sqlite3_trace_v2)
01:09
Add the sqlite3_expanded_sql() interface. Refinements to the sqlite3_trace_v2() interface to make it more useful. (check-in: 99ee7ee5 user: drh tags: sqlite3_trace_v2)
2016-07-13
23:18
Legacy tests now passing. (check-in: f33526a3 user: drh tags: sqlite3_trace_v2)
22:55
First cut at implementing the new sqlite3_trace_v2() interface. (check-in: cb0062fe user: drh tags: sqlite3_trace_v2)
21:30
Interface design for a new sqlite3_trace_v2() method that supersedes sqlite3_trace() and sqlite3_profile(). (check-in: 0c569f75 user: drh tags: sqlite3_trace_v2)
19:48
Modifications towards better vector IN(...) support on this branch. Not activated yet. (check-in: 34e35c71 user: dan tags: rowvalue)
13:05
Fix harmless compiler warnings in shell.c for NetBSD. (check-in: 824b39e5 user: drh tags: trunk)
00:55
Fix header comments and remove an unnecessary version restriction from the carray() table-valued function implementation. (check-in: 021d0fb8 user: drh tags: trunk)
2016-07-12
19:54
Fix the error counter reset in Lemon generated parsers. This has no effect on SQLite. (check-in: 3ef93950 user: drh tags: trunk)
2016-07-10
19:35
Merge comment typo fixes from trunk. (check-in: 728c5aa4 user: mistachkin tags: rowvalue)
19:35
Fix typos in comments. No changes to code. (check-in: 77c692a6 user: mistachkin tags: trunk)
2016-07-09
20:23
Add some support for using row value constructors in certain parts of SQL expressions. There are many bugs on this branch. (check-in: b2204215 user: dan tags: rowvalue)
17:47
Add the "#/value-list/" style of results for approximate value matching in the do_test command of the test infrastructure. Use this new result style to make the SQLITE_DBSTATUS_CACHE_SIZE_SHARED tests cross-platform. (check-in: c869bf34 user: drh tags: trunk)
17:15
Fix a compiler warning in test code - in the int64array_addr TCL command. (check-in: 29fb988f user: drh tags: trunk)
16:38
Fix compiler warnings on windows. (check-in: 8b22f777 user: drh tags: trunk)
16:14
Fix various internal #defines to conform to new C-language naming restrictions, specifically that private-use macros names must not begin with "_". (check-in: 5471aca0 user: drh tags: trunk)
00:06
Add support for the win32-none VFS. (check-in: b5f32a89 user: drh tags: trunk)
2016-07-08
21:14
Initial work on a Win32 VFS with NOP locking. (Closed-Leaf check-in: 549abe3f user: mistachkin tags: win32nolock)
19:54
Another attempt to fix error handling in Lemon. This change is a no-op for SQLite's usage. (check-in: e1d8ef31 user: drh tags: trunk)
02:14
In the sqldiff program, make sure the first argument to the db_prepare() utility function is always a valid format string. (check-in: 8bb8d886 user: drh tags: trunk)
2016-07-06
18:42
Add the SQLITE_DBSTATUS_CACHE_USED_SHARED sqlite3_db_status() parameter. This option is similar to DBSTATUS_CACHE_USED, except that it divides memory used by shared caches evenly between all connections. (check-in: 06cf2680 user: dan tags: trunk)
18:12
Change the name of the SQLITE_DBSTATUS_PROPORTIONAL_CACHE_USED to SQLITE_DBSTATUS_CACHE_USED_SHARED. (Closed-Leaf check-in: d58401ab user: dan tags: dbstatus-prop-cache-used)
10:17
Fix a test script problem causing a test to fail if the ICU extension is enabled. (check-in: 0c228f5d user: dan tags: trunk)
10:12
Add the SQLITE_DBSTATUS_PROPORTIONAL_CACHE_USED sqlite3_db_status() parameter. (check-in: 118321c8 user: dan tags: dbstatus-prop-cache-used)
09:19
Fix a memory leak in recently added test code. (check-in: 724e4cdc user: dan tags: trunk)
08:32
Fix a typo in test program bc_test1.c. (check-in: 2c61b7ab user: dan tags: begin-concurrent)
2016-07-05
16:11
More fixes to Lemon so that it automatically resets its error counter at the end of a parse. (check-in: 2683b375 user: drh tags: trunk)
12:47
Attempt to reset the error count in the Lemon-generated parser after a parse failure. (check-in: 91889fa3 user: drh tags: trunk)
2016-07-04
11:47
Add the sqlite3rbu_state() API. Used to determine the current state (creating OAL, ready to move OAL, incremental-checkpoint, finished or error) of an RBU operation. (check-in: 0357875f user: dan tags: trunk)
11:34
Add the carray() virtual table as a loadable extension. (check-in: d8bc6feb user: drh tags: trunk)
2016-07-03
02:35
Change the name of the intarray() extension to carray() and give it an optional third parameter that specifies the datatype as one of 'int32', 'int64', 'double', or 'char*'. 'int32' is the default. (Closed-Leaf check-in: a204ba99 user: drh tags: prototype-int-array)
2016-07-02
20:57
Fix an off-by-one comparison in the intarray() virtual table. Get the intarray() virtual table tests working using the legacy makefile. (check-in: 7c3d441f user: drh tags: prototype-int-array)
20:51
Merge the alternative table-valued function RHS of IN operator implementation from trunk. (check-in: 507fdbfb user: drh tags: prototype-int-array)
12:33
Fix a problem in table-valued functions on the RHS of an IN operator that occurs following an OOM error. (check-in: bead151e user: drh tags: trunk)
12:08
Add support for table-valued functions on the RHS of an IN operator. (check-in: ac6000f0 user: drh tags: trunk)
2016-07-01
20:12
Fix the transitive constraint logic error that can result in a null pointer dereference. Fix for ticket [e8d439c77685eca6]. (check-in: 228a7879 user: drh tags: trunk)
19:48
Add test cases to the transitive constraint fix. (Closed-Leaf check-in: c952af89 user: drh tags: planner-fix)
12:39
Add the sqlite3rbu_state() API. Used to determine the current state (creating OAL, ready to move OAL, incremental-checkpoint, finished or error) of an RBU operation. (Closed-Leaf check-in: 92e7df0f user: dan tags: rbu-state-api)
2016-06-29
06:19
Add the ability to have a table-valued function on the RHS of an IN operator. (check-in: ba1b441b user: drh tags: prototype-int-array)
05:08
Another test case for the intarray($PTR,$N) virtual table. (check-in: 06e1fab7 user: drh tags: prototype-int-array)
05:00
Add a prototype intarray($PTR,$N) table valued function. (check-in: 233b3338 user: drh tags: prototype-int-array)
2016-06-28
22:27
Proposed fix for a problem in the query planner. (check-in: a33d2356 user: drh tags: planner-fix)
2016-06-26
04:06
Prevent the WhereLoop.rSetup cost estimate from going negative on complex queries. (check-in: f8105085 user: drh tags: trunk)
2016-06-25
11:43
Fix the handling of OP_Eq opcodes that compare a register against itself and that require an affinity change. (check-in: 507014e4 user: drh tags: trunk)
2016-06-24
06:23
Fix the ctime.test script so that it works with clang. (check-in: 77e4f7a3 user: drh tags: trunk)
02:50
Fix the Makefile.in to avoid unnecessary recompiles of sqlite3.c. (check-in: 67c39e16 user: drh tags: trunk)
02:21
Provide for a separate default page size for TEMP and transient database files and initialize that separate default page size to 1024 instead of 4096. (Leaf check-in: a2778ae4 user: drh tags: temp-page-size)
2016-06-23
16:48
Update the sqldiff utility so that if the --vtab switch is specified "rtree", "fts3", "fts4" and "fts5" tables are diff'd directly and the underlying real database tables ignored. Without this switch, all virtual tables are ignored and the diff is performed on the underlying real tables. (check-in: b8671e94 user: dan tags: trunk)
12:35
Fix the build for -DSQLITE_OMIT_VIRTUALTABLE (check-in: 91113142 user: drh tags: trunk)
2016-06-21
10:34
Update the sqldiff utility so that if the --vtab switch is specified "rtree", "fts3", "fts4" and "fts5" tables are diff'd directly and the underlying real database tables ignored. Without this switch, all virtual tables are ignored and the diff is performed on the underlying real tables. (Closed-Leaf check-in: 5d0a9d4c user: dan tags: sqldiff-vtab-support)
2016-06-20
17:25
For a table on the rhs of a LEFT JOIN operator, do not include terms like "IS NULL" from the WHERE clause in the cursor-hint. These may be false for rows that the cursor would otherwise visit, but true for a row of all NULL values generated by the LEFT JOIN. (check-in: 913e5956 user: dan tags: trunk)
17:22
Allow LIKE operators that appear in a WHERE clause to be included in the cursor-hint for a cursor on the rhs of a LEFT JOIN. (Closed-Leaf check-in: 7455d932 user: dan tags: cursor-hints)
2016-06-17
19:27
Include WHERE terms in the cursor-hint passed to a cursor opened for the rhs of a LEFT JOIN iff we can be sure that those terms will not evaluate to true if the LEFT JOIN generates a row of NULLs. (check-in: 998095ab user: dan tags: cursor-hints)
14:59
Fix a duplicate test name in cursorhint2.test. (check-in: fcd12b69 user: dan tags: cursor-hints)
14:47
Fix a typo in the cursorhint2.test script. (check-in: c1a5a57c user: dan tags: cursor-hints)
14:33
If a table is on the rhs of a LEFT JOIN, include only terms from the joins ON(...) clause in the cursor-hint passed via OP_CursorHint. (check-in: 2a2346b0 user: dan tags: cursor-hints)
13:01
Add the json_quote() function to the JSON1 extension. (Closed-Leaf check-in: 2c3714ae user: drh tags: json_quote)
2016-06-16
17:14
Add a missing OP_ColumnsUsed opcode to code for expressions like "? IN (SELECT ...)" in cases where expression can use an index that may contain NULL values. (check-in: 0b1579ca user: dan tags: trunk)
11:16
Fix a typo in a comment on the SrcList object. (check-in: 48b555c4 user: drh tags: trunk)
2016-06-15
10:21
Merge changes from trunk. (check-in: 0f707d15 user: drh tags: apple-osx)
2016-06-13
19:58
Fix RBU so that it builds with -DSQLITE_ENABLE_8_3_NAMES. Fix "PRAGMA compile_options" for SQLITE_ENABLE_8_3_NAMES such that it reports the numeric setting: "1" or "2". (check-in: 0230ca17 user: drh tags: trunk)
15:59
Fix the declaration of the table implemented by DBSTAT so that it uses correct datatypes. (check-in: a1e1cdc5 user: drh tags: trunk)
12:51
Fix an incorrect assert() in the btree logic. (check-in: fcf6114b user: drh tags: trunk)
12:34
Fix the "onecolumn" and "exists" methods of the TCL interface so that they work in combination with the "profile" callback. (check-in: d362ba15 user: drh tags: trunk)
2016-06-10
22:49
Enhance "PRAGMA table_info" to that it provides information about eponymous virtual tables. (check-in: 53a1e5d5 user: drh tags: trunk)
2016-06-08
18:07
Prefer to use partial indexes for full table scans when that is possible. (check-in: fe187432 user: drh tags: trunk)
14:04
Add the "dbhash.exe" utility program that computes a SHA1 hash over the invariant content of an SQLite database file. Free space in the file, the page size, auto_vacuum status, text encoding, and so forth do not change the hash. Only the content matters. (check-in: f48a4ad3 user: drh tags: trunk)
13:59
Fix an undersized buffer in the SHA1 implementation. (Closed-Leaf check-in: fb276815 user: drh tags: dbhash)
13:49
Fix the dbhash utility so that it ignores the root page number when hashing the sqlite_master table. Add new command-line options. Add the ability to hash multiple databases with a single command. (check-in: 44f157e0 user: drh tags: dbhash)
01:03
An initial attempt at a "dbhash" command-line utility. (check-in: 2247649c user: drh tags: dbhash)
2016-06-07
20:25
Fix the walcrash4.test test module so that it works on windows. (check-in: 2091a4c9 user: drh tags: trunk)
2016-06-06
20:36
In winFullPathname, translate '/X:' to 'X:' before doing anything else. (check-in: e404ad70 user: mistachkin tags: trunk)
20:27
Translate filenames of the form "/c:/*" into just "c:/*" on WinRT and Cygwin. (SQLite has long done this for Win32/WinNT.) (check-in: f8470ffc user: drh tags: trunk)
18:17
Fix lempar.c so that the shift-reduce optimization works for error processing. This is a Lemon issue only and has no impact on SQLite. (check-in: 3665a2f5 user: drh tags: trunk)
13:24
Initialize the yyerrcnt variable in the lemon parser template. This has no effect on SQLite itself. (check-in: 45531654 user: drh tags: trunk)
01:54
Small performance boost and size decrease in sqlite3BtreeMovetoUnpacked(). (check-in: e106a77d user: drh tags: trunk)
01:48
Small performance improvement in the LIKE function. (check-in: 5fb0c354 user: drh tags: trunk)
01:14
Btree interface refactoring: (1) The sqlite3BtreeKeySize() interface is renamed to sqlite3BtreeIntegerKey() and modified to work only for table btrees with a rowid. (2) The sqlite3BtreeDataSize() interface is renamed to sqlite3BtreePayloadSize() and modified to work with any btree. (3) The sqlite3BtreeDataFetch() and sqlite3BtreeKeyFetch() routines are combined into a single sqlite3BtreePayloadFetch() routine. The result of these changes is a smaller binary and fewer CPU cycles needed to run queries. (check-in: 2d831074 user: drh tags: trunk)
2016-06-04
21:05
Improved comment on cursorOwnsBtShared(). No changes to code. (Closed-Leaf check-in: 5e269c2d user: drh tags: btree-refactor)
20:58
Fix a C99-ism and a compiler warning for MSVC. (check-in: aa53a36e user: drh tags: btree-refactor)
20:37
Change the sqlite3BtreeKeySize() interface into sqlite3BtreeIntegerKey() and make it only work for table btrees. Change sqlite3BtreeDataSize() into sqlite3BtreePayloadSize() and make it work for all btrees. Combine sqlite3BtreeDataFetch() and sqlite3BtreeKeyFetch() into a single sqlite3BtreePayloadFetch() routine. These changes seem to make the b-tree interface more rational and they reduce both binary size and CPU usage. (check-in: bef35e18 user: drh tags: btree-refactor)
17:12
Allocate KeyInfo objects from lookaside if possible. (check-in: b411107a user: drh tags: trunk)
16:33
Fix up speedtest1.c so that it will compile and run on SQLite versions prior to 3.6.18 (circa 2009-09-11). (check-in: 9583c0fb user: drh tags: trunk)
13:57
Remove an unreachable branch in the UNIQUE constraint parsing. (check-in: 313e990c user: drh tags: trunk)
2016-06-03
18:59
The OR optimization is usable on virtual tables with LIKE, REGEXP and/or GLOB terms in the WHERE clause. (check-in: fa3a89fc user: drh tags: trunk)
18:44
Add support for virtual tables using a WITHOUT ROWID schema. This merge also includes enhancements to the CSV extension, which is used for testing of the new WITHOUT ROWID virtual table mechanism. (check-in: aa7e9d0c user: drh tags: trunk)
18:21
Fix a memory leak when a WITHOUT ROWID eponymous virtual table is used. (Closed-Leaf check-in: 31b83a7d user: drh tags: without-rowid-vtab)
17:27
Disallow access to the rowid column on WITHOUT ROWID virtual tables. (check-in: d31c2597 user: drh tags: without-rowid-vtab)
13:35
Enhance the sqlite3_load_extension() interface to permit extensions to return SQLITE_OK_LOAD_PERMANENTLY which will prevents unloading when the database connection closes. (check-in: 5908aa4d user: drh tags: trunk)
01:01
Performance optimizations on the CSV virtual table. Disallow WITHOUT ROWID virtual tables that have an xUpdate method, for now. (check-in: 3134b326 user: drh tags: without-rowid-vtab)
2016-06-02
23:13
Add the CSV extension to the test fixture. Fix a memory leak in the CSV extension. Add test cases for the CSV extension, including one that uses a WITHOUT ROWID virtual table participating in the OR optimization. (check-in: 95f483e8 user: drh tags: without-rowid-vtab)
17:44
Add the data= parameter to the CSV virtual table extension. (check-in: 76919104 user: drh tags: without-rowid-vtab)
16:22
Fix corner cases in the WITHOUT ROWID virtual table logic. (check-in: a393bbb9 user: drh tags: without-rowid-vtab)
2016-06-01
10:37
Fix an issue preventing RBU vacuum from working with virtual tables. (check-in: 3bd85fa5 user: dan tags: trunk)
05:02
Fix compilation issues with the VFS stat extension. (check-in: f6e95652 user: mistachkin tags: trunk)
2016-05-31
21:18
An experimental branch with code that allows virtual tables to be declared as WITHOUT ROWID tables. This might be useful for virtual tables that model external data sources that do not have a convenient way of computing a unique rowid. The current check-in almost works, but there are still serious issues. (check-in: 49638f18 user: drh tags: without-rowid-vtab)
18:44
Add the columns=N parameter to the CSV extension. (check-in: 28ebeadd user: drh tags: trunk)
18:08
Add the testflags parameter to the csv extension. (check-in: b93fb2fe user: drh tags: trunk)
16:22
Add the "csv" virtual table for reading CSV files, as an extension in the ext/misc/ subfolder. (check-in: 00d3570c user: drh tags: trunk)
2016-05-30
08:28
Fix an FTS5 problem (segfault or incorrect query results) with "... MATCH 'x OR y' ORDER BY rank" queries when either token 'x' or 'y' is completely absent from the dataset. (check-in: 64ca1a83 user: dan tags: trunk)
05:45
Minor tweaks to the bc_test1 test program. (check-in: d0d0bab4 user: dan tags: begin-concurrent)
2016-05-28
18:53
Experimental change to allow virtual tables to take advantage of LIKE, REGEXP and GLOB terms that are part of OR expressions within WHERE clauses. (Closed-Leaf check-in: 242507b4 user: dan tags: vtab-experimental)
17:45
Remove an unnecessary malloc from the vfsstat extension. (check-in: 24f258c2 user: drh tags: trunk)
17:23
Enhance the sqlite3_load_extension() interface to permit extensions to return SQLITE_OK_LOAD_PERMANENTLY which will prevent the extensions from unloading when the database connection closes. (Closed-Leaf check-in: d3f99a5e user: drh tags: load-permanently)
15:22
Enhance "PRAGMA compile_options" so that it shows the version of the compiler used to generate the executable, for common compilers. (check-in: 6a0f2009 user: drh tags: trunk)
15:09
Update the amalgamation-tarball configure script so that it can use header file "readline/readline.h" with library file "libedit". (check-in: cbf72b04 user: dan tags: trunk)
15:03
Enhance the sqlite3_load_extension() API so that the first parameter (the "db" parameter) can be NULL. An extension that is not associated with any database connection remains loaded for the life of the process. (Closed-Leaf check-in: 3a461043 user: drh tags: persistent-extensions)
14:53
Add the vfsstat.c loadable extension - a VFS shim that measures the amount of I/O, and an eponymous virtual table that is used to extract and view the measurements. (check-in: 0987487d user: drh tags: trunk)
00:13
Clang can define _MSC_VER in some circumstances; therefore, check for Clang first. (Closed-Leaf check-in: 3f710bc3 user: mistachkin tags: ctimeCompiler)
2016-05-27
21:13
Check for Clang before GCC. (check-in: 7c2cd4b0 user: mistachkin tags: ctimeCompiler)
20:30
Remove surplus quotation marks from the COMPILER= compile_options setting for Clang. (check-in: 5c966f20 user: mistachkin tags: ctimeCompiler)
19:34
Remove surplus quotation marks from the COMPILER= compile_options setting for GCC. (check-in: 664c132d user: drh tags: ctimeCompiler)
18:09
Add basic compiler information to the results of 'PRAGMA compile_options'. (check-in: d734e2df user: mistachkin tags: ctimeCompiler)
12:30
Improvements to WHERE-clause debug tracing. Show TK_MATCH expressions and show more details on WhereTerm traces. (check-in: 71087c12 user: drh tags: trunk)
04:10
Fix Lemon so that it actually works with -DYYSTACKDEPTH=0. (check-in: a9be4c2d user: drh tags: trunk)
01:07
Fix the Lemon-generated parser so that it compiles with -DYYSTACKDEPTH=0. It does compile now, but there are subtle issues still. (check-in: 28d439f8 user: drh tags: trunk)
2016-05-26
20:56
Add a new OP_SeekRowid opcode, that combines the functions of OP_MustBeInt and OP_NotExists. This makes the code slightly smaller and faster. (check-in: ffe80a1b user: drh tags: trunk)
20:52
Add further instrumentation to the bc_test1.c test app. (check-in: 5528de4a user: dan tags: begin-concurrent)
2016-05-25
18:53
Add the libvers.c tool in the tool/ subdirectory. (check-in: 2a41f098 user: drh tags: trunk)
2016-05-24
18:55
Enhance Lemon and the parser template so that it can once again build parsers that have no unreachable branches. (check-in: 41fd46e2 user: drh tags: trunk)
18:50
Minor change to the walcrash4.test module so that it works when SQLITE_DEFAULT_WAL_SYNCHRONOUS is set to something other than 2. (check-in: 61e239bc user: drh tags: trunk)
16:20
Fix an obscure problem with transactions written in "PRAGMA synchronous=full" mode on systems that do not support POWERSAFE_OVERWRITE causing an xSync() call to be omitted if the last frame written by a transaction is aligned to a sector boundary. This means that if a power failure or OS crash occurs very soon after such a transaction is committed, it may be lost following system recovery. (check-in: 37de3eab user: dan tags: trunk)
00:40
Improvements to the initialization of the push-down automoton for the Lemon-generated parser. Smaller and faster. (check-in: 3b28b68e user: drh tags: trunk)
2016-05-23
21:56
Use a pointer to the top of the stack rather than an index into the stack in the Lemon-generated parser template, for about 6.6% parser performance gain. (check-in: 3c2a7705 user: drh tags: trunk)
19:02
Avoid a minor error message when running RTREE without an sqlite_stat1 table. (check-in: 276e92f5 user: drh tags: trunk)
18:27
Fix the rtreeG.test test case. (Closed-Leaf check-in: 9589e937 user: drh tags: tree-stat1-fix)
18:12
Fix RTREE so that it does not run queries against the sqlite_stat1 if that table does not exist. (check-in: 48526a2f user: drh tags: tree-stat1-fix)
18:06
Remove an extra "finish_test" from the end of rtreeC.test. (check-in: bfbb6dd8 user: drh tags: tree-stat1-fix)
16:16
Improve the error messages generated by the rtree module when a constraint fails. (check-in: 3ad2531e user: dan tags: trunk)
16:15
Lemon enhancement: avoid unnecessary reduce actions that convert one non-terminal into another but have no side effects. (check-in: a86e782a user: drh tags: trunk)
14:24
Fix comment typos and improve clarity of presention in Lemon. The output should be identical. (check-in: b91a5b82 user: drh tags: trunk)
02:57
Merge changes from trunk. (check-in: 815cc2bb user: drh tags: apple-osx)
00:10
Update the configure script with additional hints on the location of tclConfig.sh, hints needed by the latest versions of Xcode. (check-in: 90411a28 user: drh tags: trunk)
2016-05-21
23:25
More tweaks to improve the performance of the insert logic, slightly. (check-in: dec13075 user: drh tags: trunk)
20:03
Simplify the sqlite3BtreeInsert() interface by gathering the five arguments describing the content to be inserted into the new BtreePayload structure, and thus reducing the number of parameters from eight to four. (check-in: 55f348cd user: drh tags: trunk)
19:10
Remove some unused legacy code from the btree insert logic. (check-in: 2ce11667 user: drh tags: trunk)
18:50
Use pthreads mutexes and conditions to synchronize threads in bc_test1. (check-in: f33aa76f user: dan tags: begin-concurrent)
12:29
Yet another minor size reduction and performance increase in the b-tree insert logic. (check-in: 1dbaf7a1 user: drh tags: trunk)
11:23
Small size reduction and performance increase in the sqlite3BtreeInsert() logic. (check-in: 656aa1ec user: drh tags: trunk)
00:45
Add the shell-script used for routine performance testing. (check-in: 8e366f18 user: drh tags: trunk)
2016-05-20
23:51
Add a simple TCL script for summing cachegrind information for each VDBE opcode. (check-in: 96cf821b user: drh tags: trunk)
21:40
Another optimization on the OP_Column opcode. (check-in: 1765672c user: drh tags: trunk)
20:58
Fix typo in comment. (check-in: 9db8f214 user: mistachkin tags: trunk)
19:51
Slight performance improvement in the OP_Column opcode. (check-in: 5c157474 user: drh tags: trunk)
18:09
Remove the sqlite3PagerClearCache() routine, which does not accomplish anything useful. (check-in: f250166b user: drh tags: trunk)
15:53
Performance optimization and size reduction on the freeP4() routine. (check-in: 4dc56e86 user: drh tags: trunk)
15:24
Increase the version number to 3.14.0 since we are already making significant code changes. (check-in: 1a0d0576 user: drh tags: trunk)
15:15
Use sqlite3VdbeAddOp0() to code OP_Expire, to save a few bytes. (check-in: 3d55d24d user: drh tags: trunk)
14:54
Optimizations to link list merge sort code in vdbesort.c, pcache.c, and rowset.c. Resulting binaries are 10 bytes smaller and use 0.03% fewer CPU cycles. (check-in: 9033afbb user: drh tags: trunk)
14:11
For queries with both ORDER BY and LIMIT, if the rows of the inner loop are emitted in ORDER BY order and the LIMIT has been reached, then optimize by exiting the inner loop and continuing with the next cycle of the first outer loop. (check-in: 559733b0 user: drh tags: trunk)
13:44
Set the NULLEQ flag on the sequence counter comparison in the ORDER BY LIMIT optimization, to avoid coverage complaints about not testing the NULL case. (Closed-Leaf check-in: ed1b30dc user: drh tags: orderby-limit)
12:22
Autoconf configure.ac adjustment to try to get it to look for both editline and readline automatically. (check-in: 645bd696 user: drh tags: trunk)
00:21
A few simple test cases for the ORDER BY LIMIT optimization. (check-in: 08849eab user: drh tags: orderby-limit)
2016-05-19
22:40
Appears to work now. Needs test cases, more comments, and code optimization. (check-in: 990fe50c user: drh tags: orderby-limit)
22:13
In a query with both ORDER BY and LIMIT, if the inner loop satisfies the ORDER BY then try to cut short each invocation of the inner loop once the LIMIT has been satisfied. This check-in is a partial implementation only. (check-in: 852d1eda user: drh tags: orderby-limit)
19:31
Fixup comments on wctrlFlags value definitions. (check-in: 58b516e8 user: drh tags: trunk)
18:56
Clean up the WHERE_* macros used for the wctrlFlags parameter on the sqlite3WhereBegin() interface, freeing up some bits to be used for other things. (check-in: d0130584 user: drh tags: trunk)
17:51
Optimization marks in vdbe.c. No logic changes. (check-in: cf273741 user: drh tags: trunk)
16:58
Performance improvement in the OP_Column opcode. (check-in: 4737cadc user: drh tags: trunk)
16:21
Add test cases to test some fts3/4 edge case behaviour surrounding the '*' character. (check-in: 1f577e1f user: dan tags: trunk)
11:12
Small size reduction and performance improvement in the OP_Column opcode. (check-in: 0d773061 user: drh tags: trunk)
2016-05-18
21:03
Add the "scrub" utility program that simultaneously backs-up a live database and erases all deleted content. (check-in: c981ab2a user: drh tags: trunk)
21:01
Omit the unnecessary WHERE_REOPEN_IDX flag in the WHERE interface. (check-in: 915416d1 user: drh tags: trunk)
20:53
Merge the 3.13.0 release changes. (check-in: e2e9b985 user: drh tags: apple-osx)
10:57
Version 3.13.0 (check-in: fc49f556 user: drh tags: trunk, release, version-3.13.0)
2016-05-17
21:17
Enhance the scrub utility program so that it does a FULL checkpoint prior to starting the backup, to ensure that the database file content matches what needs to be backed up without having to look at the WAL file. (Closed-Leaf check-in: ab1c5ce5 user: drh tags: scrub-backup)
17:11
Merge the latest changes from trunk. (check-in: 5021dfe1 user: drh tags: scrub-backup)
2016-05-16
14:35
Do not run snapshot_fault.test as part of the inmemory_journal permutation. (check-in: 995c084b user: dan tags: trunk)
13:37
Merge recent fixes from trunk. (check-in: 0d9b82af user: drh tags: apple-osx)
11:55
Disable shell.exe test cases for UTF8 filenames as they do not work on MinGW. (check-in: 386bcbba user: drh tags: trunk)
2016-05-13
17:22
Improvements to a comment in the pcache.c file. No changes to code. (check-in: b369980f user: drh tags: trunk)
15:22
Remove the unused PGHDR_NEED_READ flag. Add invariant checking (during SQLITE_DEBUG builds only) for the PgHdr object. (check-in: 771c5411 user: drh tags: trunk)
12:12
Clarification of the pagerFlushOnCommit() logic. (check-in: 3401d9dc user: drh tags: trunk)
11:50
Fix pager_end_transaction() to ensure that a ROLLBACK does not clobber unwritten pages in a TEMP file pcache. (check-in: 9495d338 user: drh tags: trunk)
04:24
Additional debugging and tracing logic for pcache.c, turned off by default using an "#if 0". (check-in: 32a62e3b user: drh tags: trunk)
2016-05-12
19:17
Disable ALWAYS and NEVER when compiled with SQLITE_MUTATION_TEST. (check-in: 24d9fbc1 user: drh tags: trunk)
19:05
Simplification of the sqlite3FaultSim() call inside of sqlite3PagerCommitPhaseOne(). (check-in: 1b0f4cc3 user: drh tags: trunk)
18:38
Add an assert in pager.c to confirm that pPager->tempFile is always true for in-memory databases. (check-in: 3fd71092 user: drh tags: trunk)
17:06
Add extra OPTIMIZATION-IF-FALSE comments where required to pcache.c. (check-in: 9d55b8f5 user: dan tags: trunk)
12:08
For in-memory databases, it does not matter if pcache entries are marked "clean" or "writable". (check-in: 06c1e27c user: drh tags: trunk)
12:01
Remove an unnecessary call to sqlite3PcacheMakeClean() inside of the ROLLBACK logic. (check-in: 0dc50d99 user: drh tags: trunk)
09:48
Add a missing OPTIMIZATION-IF-FALSE comment to pcache.c. (check-in: bc202e5b user: dan tags: trunk)
2016-05-11
23:54
For in-memory databases, it does not matter if pcache entries are marked "clean" or "writable". (Closed-Leaf check-in: ad601c79 user: drh tags: pager-dev)
20:03
Remove a redundant condition from pcache.c. Add an OPTIMIZATION-IF-TRUE comment to another condition that requires it. (check-in: 3bfd2621 user: dan tags: trunk)
18:20
Remove a redundant condition from pcache.c. Add an OPTIMIZATION-IF-TRUE comment to another condition that requires it. (Closed-Leaf check-in: 4533ed35 user: dan tags: mistake)
15:41
Remove some a small amount of redundant code related to PCache.pSynced from pcache.c. (check-in: 9cc8cad7 user: dan tags: trunk)
12:47
Do not reset the page cache when a rollback journal truncate fails, as doing so can cause loss of information for an in-memory TEMP file. (check-in: 345ce1c9 user: drh tags: trunk)
11:04
Always truncate, rather than persist, the rollback journal of a TEMP database. (check-in: 42fb6f1e user: drh tags: trunk)
10:57
Add pcache tracing macros. Off by default. Requires changing an "#if 0" and recompiling to enable. (check-in: d9313d19 user: drh tags: trunk)
2016-05-10
20:16
Add another test case to temptable3.test. (check-in: 22364024 user: dan tags: trunk)
20:03
Fix a problem in sqlite3PagerMovepage() when working on a temp table for which pages have been spilled. (check-in: 20cf8811 user: drh tags: trunk)
2016-05-09
23:11
Fixes to requirements marks. No changes to code. (check-in: 79ecd0ef user: drh tags: trunk)
22:35
Enhancements to test/sort5.test so that it works with SEE. (check-in: 8a39c8ee user: drh tags: trunk)
22:32
Remove some forgotten debugging lines from test/sort5.test. (check-in: f5875489 user: drh tags: trunk)
19:58
Omit the unnecessary WHERE_REOPEN_IDX flag in the WHERE interface. (Closed-Leaf check-in: da94a6e0 user: drh tags: dev)
19:03
Update a comment in fts5.h. No changes to code. (check-in: 14e53d0e user: dan tags: trunk)
18:05
Fix the FTS5 xQueryPhrase() API function so that it recognizes column filters. (check-in: 48505cde user: dan tags: trunk)
2016-05-07
18:02
Add options to bc_test1.c to make it more flexible. (check-in: ec6ef5f2 user: dan tags: begin-concurrent)
12:15
Make the sqlite3DeleteTable() routine smaller and faster. (check-in: d75140b8 user: drh tags: trunk)
12:15
Fix typo in the intpkey-17.2 test. (check-in: a45fda65 user: drh tags: trunk)
2016-05-06
21:04
Add test/bc_test1.c, for testing the degree of concurrency provided by this branch under various conditions. (check-in: 128c7eae user: dan tags: begin-concurrent)
20:23
Simplification to the logic used to decide between OP_Seek and OP_NotExists. Use OP_NotExists for both DELETE and UPDATE. (check-in: 3a695263 user: drh tags: trunk)
18:47
Corrections to comments on the whereScanInit() interface. (check-in: ab7ab415 user: drh tags: trunk)
16:49
For DELETE operations, make sure that seeks on the main table are not deferred, since if they are and none of the indexes reference columns of the table, the seek might never occur until the OP_Delete opcode, which is too late. Fix for ticket [16c9801ceba49]. (check-in: 93a2bace user: drh tags: trunk)
16:30
Fix an error in main.mk causing testfixture to use individual fts5 source code files instead of fts5.c. (check-in: 933a1c81 user: dan tags: trunk)
16:06
In the WHERE generator, when building code for a DELETE operation, make sure that seeks to the main table are not deferred. This is a better fix for the [16c9801ceba49] bug than the previous. (Closed-Leaf check-in: 150dd09e user: drh tags: ticket-16c9801ce)
15:16
Fix a bug in sqlite_analyzer causing it report (slightly) incorrect values for the number of entries in indexes or WITHOUT ROWID tables. (check-in: dc37750d user: dan tags: trunk)
11:31
Do not scan indexes that have the integer primary key as their left-most column. This fixes the crash of ticket [16c9801ceba] but it seems like the wrong fix. More investigation needed. (check-in: 50312273 user: drh tags: ticket-16c9801ce)
2016-05-05
23:59
Additional error reporting. Open the source database read/write so that it can delete the WAL file when done. (check-in: d2efd3c1 user: drh tags: scrub-backup)
23:39
Working when run against sqlite.fossil. (check-in: b0bd9dd6 user: drh tags: scrub-backup)
23:09
Finished implementation compiles, but untested. (check-in: aeb88bdf user: drh tags: scrub-backup)
17:15
Initial check-in of the "scrub.exe" utility program prototype. Not yet fully functional. In particular, no scrubbing is done. (check-in: bdf2ec77 user: drh tags: scrub-backup)
11:53
Renumber internal constants in the printf() implemention for a small performance improvement. (check-in: 69d11447 user: drh tags: trunk)
2016-05-04
21:06
Disable the session extension API if SQLITE_ENABLE_SESSION is not defined. (check-in: 71af9ac1 user: drh tags: trunk)
19:04
Fix typo in comment. No changes to code. (check-in: 6c43ba1c user: mistachkin tags: trunk)
14:45
Only disable the one-pass DELETE optimization if the WHERE clause contains a correlated subquery. Uncorrelated subqueries are allowed. This is a refinement of check-in [3f221f592a9a1] that is the fix for ticket [dc6ebeda9396087]. (check-in: aae38969 user: drh tags: trunk)
14:20
Portability enhancements to the configure script on the amalgamation tarball. (check-in: 7184c4b8 user: drh tags: trunk)
11:28
Disable the PagerDontWrite() optimization for temp tables. It can cause database corruption if a page passed to PagerDontWrite() is dirty at the start of a transaction that is subsequently rolled back. (check-in: 6341ab2f user: dan tags: trunk)
2016-05-03
19:40
Minor style tweaks in the MSVC makefile. (check-in: 1b43358f user: mistachkin tags: trunk)
19:36
Add the experimental SQLITE_FCNTL_WIN32_GET_HANDLE file control. (Leaf check-in: b6ddabe1 user: mistachkin tags: win32GetHandle)
14:57
The session extension is disabled by default. To enable it using --enable-session on ./configure on unix and add SESSION=1 to the nmake on Windows. Or add -DSQLITE_ENABLE_SESSION and -DSQLITE_ENABLE_PREUPDATE_HOOK to build manually. (check-in: bcaa650e user: drh tags: trunk)
13:14
Turn the session extension off by default. Enable using --enable-session on configure scripts, or using the SESSION=1 argument to nmake on Windows. (Closed-Leaf check-in: e462cde2 user: drh tags: session-make)
02:43
Fix the build when SQLITE_ENABLE_DATA_PROTECTION is defined. (check-in: 8f05e140 user: drh tags: apple-osx)
00:04
Avoid left-shifts of signed integers. (check-in: 0715ce16 user: drh tags: trunk)
2016-05-02
19:05
Remove some randomness from test script temptable2.test. (check-in: 5830cf72 user: dan tags: trunk)
16:59
Fix a test case in temptable2.test so that it works on systems that lack a coherient cache (ex: OpenBSD) and thus do not support the "PRAGMA mmap_size" command. (check-in: 088cf838 user: drh tags: trunk)
15:00
Merge enhancements and bug fixes from trunk. (check-in: f52765ee user: drh tags: apple-osx)
13:57
Fix harmless LLVM compiler warnings in the srcck1.c utility program used during the build process. (check-in: e4af9675 user: drh tags: trunk)
12:18
Disable the multi-row one-pass DELETE optimization when the WHERE clause contains a subquery. Fix for ticket [dc6ebeda9396087]. (check-in: 3f221f59 user: drh tags: trunk)
10:25
Improvements to the way the LIKE optimization is implemented, resulting in slightly smaller and faster code that is easier to test. (check-in: 54c63b32 user: drh tags: trunk)
2016-04-30
19:23
Change the way tester.tcl handes $argv so that in "permutations.test <permutation> <filename>" <filename> may be the name of any file in the test/ directory. (check-in: 820c57bb user: dan tags: trunk)
18:10
Remove an unnecessary branch from the OP_String8 opcode. (check-in: 459a0b45 user: drh tags: trunk)
17:19
More bug fixes to Lemon identified by Kelvin Sherlock. None of these have any impact on SQLite. (check-in: 762bdc55 user: drh tags: trunk)
02:59
Simplifications to the OP_Halt opcode implementation. (check-in: daf4630f user: drh tags: trunk)
2016-04-29
20:30
Fix the temporary directory search algorithm for unix so that it fails gracefully even if all candidate directories are inaccessible. This fixes a bug that was introduced by check-in [9b8fec60d8e]. (check-in: 614bb709 user: drh tags: trunk)
17:07
Fix the nolock VFS so that it supports shared memory. (check-in: ce11f8e8 user: drh tags: apple-osx)
16:01
Merge the latest enhancements from trunk. (check-in: 91e5c07e user: drh tags: begin-concurrent)
15:52
Merge enhancements from trunk, and in particular the TEMP file deferred I/O enhancements. (check-in: 81b76901 user: drh tags: apple-osx)
15:39
Postpone I/O associated with TEMP files for as long as possible, with the hope that the I/O can ultimately be avoided completely. (check-in: 9d0a5ae0 user: drh tags: trunk)
14:12
Fix test script temptable2.test so that it works with the "inmemory_journal" and "journaltest" permutations. (Closed-Leaf check-in: b7bec7f2 user: dan tags: tempfiles-25)
11:35
Merge latest trunk changes, including test case fixes, with this branch. (check-in: 99794aca user: dan tags: tempfiles-25)
11:33
Modify the permutations.test script so as to set any permutation specific configuration values before running each individual test script. Fix a mostly harmless buffer overread in the sessions module. (check-in: 4cbd5024 user: dan tags: trunk)
11:28
Lemon bug fix: Do not merge action routines unless their destructors are also identical. Problem and suggested fix reported on the mailing list by Kelvin Sherlock. (check-in: 4792d6db user: drh tags: trunk)
10:13
Fix an almost entirely harmless buffer overread in the sessions module. (Closed-Leaf check-in: 89b0ee33 user: dan tags: permutations-fix)
02:55
Some optimization comments added to vdbe.c. No functional changes to code. (check-in: e7c22e3b user: drh tags: trunk)
2016-04-28
22:29
Further simplifications and improved commentting on the rowset.c module, including several optimization comments. (check-in: 9f15a520 user: drh tags: trunk)
20:11
Comment changes only: Add several optimization marks in rowset.c. Add a header comment that explains what the various special comments mean. (check-in: 8cdbe89a user: drh tags: trunk)
19:23
Fix typo in comment. No changes to code. (check-in: 9f6f17b5 user: mistachkin tags: trunk)
18:53
Rearrange some code in the RowSet logic for clarity of presentation, while adding an /*OPTIMIZATION-IF-TRUE*/ comment. It should operate identically. (check-in: 5748e643 user: drh tags: trunk)
14:59
Merge latest changes from trunk with this branch. (check-in: 45467ee4 user: dan tags: permutations-fix)
14:54
Avoid running sessionfault.test and sessionfault2.test as part of the "inmemory_journal" permutation. (check-in: 5973d3bf user: dan tags: permutations-fix)
14:15
Use comments to mark several branches as optimizations. No changes to code. (check-in: 33e62747 user: drh tags: trunk)
09:53
Ensure that quota.test deletes the directory named "test.db" that it creates. (check-in: 045edd4b user: dan tags: permutations-fix)
03:52
Remove an unnecessary conditional from the sqlite3DecOrHexToI64() routine. (check-in: fcf85bfe user: drh tags: trunk)
00:32
Change the sqlite3Atoi64() routine so that it returns failure if not all of the input characters are consumed, even if it consumed all characters up to the first 0x00. This has no impact on external APIs as far as I can tell. (check-in: 46d4ffff user: drh tags: trunk)
2016-04-27
18:54
Modify the permutations.test script so as to set any permutation specific configuration values before running each individual test script. (check-in: 2662d8fe user: dan tags: permutations-fix)
15:24
More simplification of the sqlite3AtoF() routine. Add special comments to indicate branches that are for optimization purposes only and that give the correct answer even if always or never taken. (check-in: 0065fe97 user: drh tags: trunk)
11:24
Fix a couple of test script problems on this branch. Both related to the fact that temp database page sizes can no longer be changed by VACUUM or the backup API after the temp db is populated. (check-in: 6bb5aa2b user: dan tags: tempfiles-25)
02:35
Remove still more unnecessary branches from sqlite3AtoF(). (check-in: 3adfe9f3 user: drh tags: trunk)
2016-04-26
23:14
Further simplifications to sqlite3AtoF() to remove unneeded branches. (check-in: dd69e53c user: drh tags: trunk)
21:02
Remove an unnecessary line from the sqlite3AtoF() routine. (check-in: a9d00749 user: drh tags: trunk)
18:58
The pcache and the built-in VFSes should not use mutexes when SQLITE_CONFIG_SINGLETHREAD is set. (check-in: 12418b10 user: drh tags: trunk)
17:10
Fix an issue in temptable2.test preventing it from working with SQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: e790aac0 user: dan tags: tempfiles-25)
16:03
Merge the checksymbols fix from trunk into this branch. (check-in: 04911cee user: dan tags: tempfiles-25)
13:13
Fix the "checksymbols" target in Makefile.in to be able to deal with the sqlite3changegroup family of interfaces. (check-in: d819bfbd user: drh tags: trunk)
2016-04-25
22:39
Add an sqlite3FaultSim() all to make it easier to simulate IO errors in a VACUUM commit. (check-in: 8bfde416 user: drh tags: tempfiles-25)
19:28
Remove an obsolete comment from the pager. No code changes. (check-in: 36f97ca8 user: drh tags: tempfiles-25)
19:25
Update the RBU vacuum code so that databases that use custom collation sequences can be vacuumed. (check-in: 7dd48c10 user: dan tags: trunk)
19:20
Fix some unreachable branches in the pager. (check-in: 3ae44770 user: drh tags: tempfiles-25)
15:03
Merge bug fix from trunk. (check-in: a905d5e0 user: drh tags: tempfiles-25)
02:20
When checking for the WHERE-clause push-down optimization, verify that all terms of the compound inner SELECT are non-aggregate, not just the last term. Fix for ticket [f7f8c97e97597]. (check-in: ec215f94 user: drh tags: trunk)
01:43
Fix a typo in the Makefile. (check-in: d0a579b3 user: mistachkin tags: trunk)
2016-04-23
21:16
Merge the temporary directory search algorithm fix from trunk. (check-in: 9b8fec60 user: drh tags: tempfiles-25)
20:59
Fix the fix to the temporary directory search algorithm so that it continues to return "." as a fallback if that directory has the correct permissions. (check-in: b38fe522 user: drh tags: trunk)
19:55
Merge the latest trunk changes. (check-in: 84da122d user: drh tags: tempfiles-25)
17:24
Fix a problem with mixing temp-files and mmap-mode. (check-in: c80c5c62 user: dan tags: tempfiles-25)
14:55
Fix some problems to do with temp-file databases and recovering from IO and SQLITE_FULL errors. (check-in: 3d61da4a user: dan tags: tempfiles-25)
2016-04-21
23:37
Change the temporary directory search algorithm on unix so that directories with only -wx permission are allowed. And do not allow "." to be returned if it lacks -wx permission. (check-in: 67985761 user: drh tags: trunk)
18:13
Add the sqlite3rbu_vacuum() API, to create an RBU handle that can be used to rebuild a database in the same way as the VACUUM command. (check-in: bd4a6f83 user: dan tags: trunk)
16:44
If a call to sqlite3rbu_close() on an rbu handle opened by sqlite3rbu_vacuum() returns other than SQLITE_OK, delete the contents of the rbu_state table. This ensures that if an RBU vacuum operation either completes successfully or encounters an error, the next call to sqlite3rbu_vacuum() with the same parameters starts a new RBU vacuum operation. (Closed-Leaf check-in: 6e4ac704 user: dan tags: rbu-vacuum)
15:44
Merge the latest changes from trunk. (Closed-Leaf check-in: 8183fa68 user: drh tags: skip-ahead-distinct)
15:35
Merge all recent enhancements from trunk. (check-in: a15c49ae user: drh tags: apple-osx)
15:26
Fix a problem in rbu vacuum on tables with a large sqlite_master table. (check-in: 23eac52e user: dan tags: rbu-vacuum)
15:24
Add a function prototype in order to fix a compiler warning. (check-in: 49aec971 user: drh tags: tempfiles-25)
15:03
Merge updates from trunk. (check-in: cc28106e user: drh tags: tempfiles-25)
02:27
Add the SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION method for enabling sqlite3_load_extension() while leaving the load_extension() SQL function disabled. (check-in: c4f165c4 user: drh tags: trunk)
01:58
Test cases for SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION. (Closed-Leaf check-in: debafa5e user: drh tags: load-ext-security)
01:30
Revert sqlite3_enable_load_extension() to its original long-standing behavior. Add SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION which will enable only the C-API and leave the SQL function disabled. (check-in: b2ae5bfa user: drh tags: load-ext-security)
2016-04-20
20:08
Add a documentation comment for sqlite3rbu_vacuum() to sqlite3rbu.h. (check-in: da5c753d user: dan tags: rbu-vacuum)
19:30
When an error occurs while transitioning out of WAL mode, make sure the locking state is not left at EXCLUSIVE. (check-in: 3340f086 user: drh tags: trunk)
18:31
Fix a locking race condition in Windows 10 that can occur when two or more processes attempt to recover the same hot journal at the same time. (check-in: 38a4e9d9 user: drh tags: trunk)
17:47
Add fault injection tests for rbu vacuum. Fix some problems revealed by the same. (check-in: f042fdd1 user: dan tags: rbu-vacuum)
12:16
Merge all recent enhancements from trunk. (check-in: 1f709fbf user: drh tags: begin-concurrent)
00:30
API Change: Modify sqlite3_enable_load_extension() so that it only enables/disables the load_extension() SQL function, and leaves the C-APIs enabled at all times. In this way, applications can enable extension loading for the C interface without having to expose that capability to the SQL. (check-in: edb454e4 user: drh tags: load-ext-security)
2016-04-19
19:27
Updates to ensure the values of PRAGMA settings like "page_size", "auto_vacuum", "user_version" and "application_id" are not lost when a database is RBU vacuumed. (check-in: 74ffea76 user: dan tags: rbu-vacuum)
17:11
When an RBU vacuum is started on a db identified using a URI filename, pass the same URI parameters when creating the new version of the db. This ensures that RBU vacuum works with password protected databases. (check-in: ca021ba8 user: dan tags: rbu-vacuum)
16:20
Detect attempts to use rbu vacuum on a wal mode database (not allowed). And attempts to write to a database in the middle of an rbu vacuum (which prevents the vacuum from resuming). (check-in: 00b2f4b0 user: dan tags: rbu-vacuum)
2016-04-18
21:00
Another fix to rbu vacuum for a zipvfs case. (check-in: 29407d70 user: dan tags: rbu-vacuum)
18:18
Fix some zipvfs related problems in RBU vacuum. (check-in: d76f4aaa user: dan tags: rbu-vacuum)
17:30
Version 3.12.2 (Leaf check-in: 92dc59fd user: drh tags: release, branch-3.12.0, version-3.12.2)
16:18
Correctly interpret negative "PRAGMA cache_size" values when determining the cache-size used for sorting large amounts of data (i.e. the functionality in vdbesort.c). (check-in: 39dd67af user: drh tags: branch-3.12.0)
16:12
Fix a problem in the code generator for joins on virtual tables where the outer loop of the join uses the IN operator. (check-in: a2cf4968 user: drh tags: branch-3.12.0)
16:06
Fix the sqlite3BtreeDelete() routine so that it preserves the correct key even when the row being deleted is not on a leaf page. Fix for ticket [a306e56ff68b8fa56] (check-in: 368e86c7 user: drh tags: branch-3.12.0)
15:59
Increase the version number to 3.12.2. (check-in: 9c37e9ce user: drh tags: branch-3.12.0)
15:54
Remove quotes from identifiers used as datatype names in a CREATE TABLE statement. Fix for ticket [7d7525cb01b68] (check-in: ab9d279f user: drh tags: branch-3.12.0)
15:46
Remove quotes from identifiers used as datatype names in a CREATE TABLE statement. Fix for ticket [7d7525cb01b68] (check-in: eba27d4d user: drh tags: trunk)
13:36
Merge recent trunk changes. (check-in: d9768de5 user: drh tags: tempfiles-25)
13:30
sqlite3PCachePerecentDirty() should return 0 if the pcache is empty. (check-in: 85f3d80e user: drh tags: tempfiles-25)
13:09
The last parameter to pread64() and pwrite64() should be off64_t, not off_t. (check-in: 3a7d7298 user: drh tags: trunk)
09:17
Add the -vacuum switch to the "rbu" demonstration program. (check-in: 9a0078a5 user: dan tags: rbu-vacuum)
2016-04-16
19:02
Changes so that rbu vacuum works with zipvfs databases. (check-in: bae7f875 user: dan tags: rbu-vacuum)
17:53
Avoid creating any extra files ("<target>-vacuum") when running an RBU vacuum. Ensure that the OAL file created is "<target>-oal", not "<target>-vacuum-oal". (check-in: dc19aacc user: dan tags: rbu-vacuum)
15:03
Fix a couple of assert() statements that were failing with OOM error tests. (check-in: 8eb3d7d8 user: dan tags: rbu-vacuum)
2016-04-15
22:03
Add the SQLITE_SkipAhead optimization setting (check-in: 87703b76 user: drh tags: skip-ahead-distinct)
20:46
Add the experimental sqlite3rbu_vacuum() API function. For opening an RBU handle that rebuilds a database from scratch. (check-in: 0216b48f user: dan tags: rbu-vacuum)
16:27
Skip-ahead is now just an optimization. If it gets confused, it falls back to an incremental scan with redundancy elimination. (check-in: 6fac0b92 user: drh tags: skip-ahead-distinct)
16:17
Skip-ahead does not always work. So we still have to check for redundancy. (check-in: db5a2364 user: drh tags: skip-ahead-distinct)
15:54
Fixes to the skip-ahead distinct logic. More issues remain. (check-in: 45a70b2b user: drh tags: skip-ahead-distinct)
15:06
Merge enhancements from trunk, especially the ".eqp full" enhancement to the command-line shell. (check-in: 491f0dbd user: drh tags: skip-ahead-distinct)
15:03
CLI enhancement: Add the ".eqp full" option, that shows both the EXPLAIN QUERY PLAN and the EXPLAIN output for each command run. Also disable any ".wheretrace" and ".selecttrace" when showing EQP output. (check-in: 3e217d62 user: drh tags: trunk)
14:13
Several new test cases that cause failures. (check-in: 0379f2cf user: drh tags: skip-ahead-distinct)
13:24
Fixed crash bugs. Still sometimes gets the wrong answers. (check-in: 2afcb2c7 user: drh tags: skip-ahead-distinct)
01:55
Progress toward getting DISTINCT to use a seek to advance to the next distinct row, when driven by an appropriate index. (check-in: 9e14aa14 user: drh tags: skip-ahead-distinct)
2016-04-14
19:29
Work toward improving analysis and code generation for DISTINCT and aggregate queries. (Leaf check-in: 129083bd user: drh tags: better-distinct-agg)
17:29
In the ICU extension toupper() and tolower() SQL functions, avoid calling u_strToUpper() or u_strToLower() a second time if the buffer passed to the first invocation turns out to be large enough. (check-in: d23e5813 user: dan tags: trunk)
16:40
Add the SF_HasAgg constant (currently unused). Also enhance the comments on many other constant definitions to detail constraints on their values. (check-in: 7b7a69d0 user: drh tags: trunk)
15:44
Correctly interpret negative "PRAGMA cache_size" values when determining the cache-size used for sorting large amounts of data (i.e. the functionality in vdbesort.c). (check-in: 79147dca user: dan tags: trunk)
15:38
Add some missing testcase() macros to the pushDownWhereTerms() routine. (check-in: 67d7f79c user: drh tags: trunk)
13:35
Rename WhereInfo.pResultSet to pDistinctSet to more accurately reflect what it represents. (check-in: 53179614 user: drh tags: trunk)
13:16
Since the return value of sqlite3OsClose() is always ignored, we might as well make it "void" instead of "int", and thereby save 50 bytes in the compiled binary. (check-in: 7ee570e7 user: drh tags: trunk)
13:06
Additional ".selecttrace" debugging output when the query is transformed from a DISTINCT into a GROUP BY. (check-in: 5a469145 user: drh tags: trunk)
2016-04-13
21:00
Fix compiler warnings by removing surplus local variables in the schema pretty-printer logic of the command-line shell. (check-in: 55a62483 user: drh tags: trunk)
19:20
Merge enhancements from trunk via tempfiles-lazy-open. (check-in: ae16310c user: drh tags: tempfiles-25)
16:52
On commit, flush dirty temp-file pages only if the file is already open and 25% or more of the cache is dirty. (check-in: f6babf29 user: dan tags: tempfiles-25)
16:02
Merge enhancements from trunk. (Closed-Leaf check-in: e2edd34e user: drh tags: tempfiles-lazy-open)
15:52
Fixes for harmless compiler warnings. (check-in: 68142dc5 user: drh tags: trunk)
15:33
Add the --indent option to the .schema and .fullschema commands in the shell, to enable simple but effective pretty-printing. (check-in: 83cfe82c user: drh tags: trunk)
2016-04-12
20:26
A couple more compiler warning fixes. (Closed-Leaf check-in: 929fa4c3 user: mistachkin tags: warnings)
20:15
Even more compiler warning fixes. (check-in: 7faec9ea user: mistachkin tags: warnings)
20:05
More harmless compiler warning fixes. (check-in: ab69527c user: mistachkin tags: warnings)
19:30
Compilation fix for a C99-ism in the 'fts3view' tool. (check-in: bedb88a4 user: mistachkin tags: trunk)
19:20
Fix harmless compiler warnings in the 'session' module. (check-in: a18a6ce2 user: mistachkin tags: trunk)
19:09
Once a temporary database file has been opened, flush all dirty pages to disk when comitting a transaction. (check-in: bbac71aa user: dan tags: tempfiles-lazy-open)
17:13
Fix speedtest1 so that it automatically unlinks its test database prior to startup. (check-in: b65b69f6 user: drh tags: trunk)
16:59
Add the --temp option to the speedtest1.c performance test program. (check-in: 8053a6e2 user: drh tags: trunk)
16:23
Improved localtime() support for WindowsCE (check-in: 662c32af user: drh tags: trunk)
16:11
Add and adjust comments. (Closed-Leaf check-in: 541c6da2 user: mistachkin tags: winCeLocalTime)
16:10
Merge enhancements from trunk. (check-in: 9682c043 user: drh tags: tempfiles-lazy-open)
16:04
Add the sqlite3_snapshot_cmp() interface (available only with SQLITE_ENABLE_SNAPSHOT). (check-in: 7e728965 user: drh tags: trunk)
15:14
Update the documentation for sqlite3_snapshot_cmp() to make the circumstances under which the comparison is valid clearer. Add tests for the same. (Closed-Leaf check-in: 8fc83474 user: dan tags: snapshot-cmp)
11:58
Update the header comment on the memjournal.c file. No code changes. (check-in: 07f10dea user: drh tags: trunk)
00:26
Performance optimization the Vdbe allocator. (check-in: e2c4995b user: drh tags: trunk)
00:16
Avoid unnecessary calls to object destructors for a small performance gain. (check-in: aec94b6e user: drh tags: trunk)
00:00
Performance improvements in sqlite3WhereExprUsage(). (check-in: fdf75239 user: drh tags: trunk)
2016-04-11
22:45
Further refinements. (check-in: b35bb928 user: mistachkin tags: winCeLocalTime)
22:24
Merge updates from trunk. (check-in: b8094166 user: mistachkin tags: winCeLocalTime)
22:23
Fix typo in the MSVC makefile. (check-in: 3189a7f1 user: mistachkin tags: trunk)
22:10
Fix some compilation issues. (check-in: 016481b3 user: mistachkin tags: winCeLocalTime)
19:59
Add the sqlite3_snapshot_cmp() API. (check-in: c698a21a user: dan tags: snapshot-cmp)
19:24
Fix a typo in temptable2.test. (check-in: 04b1890f user: dan tags: tempfiles-lazy-open)
19:23
Add tests for wal mode to temptable2.test. (check-in: c6d0d441 user: dan tags: tempfiles-lazy-open)
19:01
Performance optimization to sqlite3Dequote() and its callers. (check-in: 9efe2265 user: drh tags: trunk)
18:50
Merge latest trunk changes with this branch. (check-in: ffc62af1 user: dan tags: tempfiles-lazy-open)
18:49
Add extra tests to temptable2.test. (check-in: 7dd9d4c1 user: dan tags: tempfiles-lazy-open)
18:25
Performance optimization for the sqlite3ExprListDelete() routine. (check-in: 2764aeaa user: drh tags: trunk)
18:15
Performance optimizations in the column cache of the code generator, and especially the sqlite3ExprCacheRemove() routine. (check-in: e35b345c user: drh tags: trunk)
18:07
Fixes for OOM and IO error handling with temp file databases. (check-in: 4eb06e84 user: dan tags: tempfiles-lazy-open)
16:43
Simplification and performance improvements in sqlite3ExprDup() and its subroutines. More work is possible in this area. (check-in: 476cc283 user: drh tags: trunk)
16:35
Rename the OP_MX_JUMP macro to SQLITE_MX_JUMP_OPCODE to avoid confusing the opcode name generator. (check-in: e554a4c3 user: drh tags: trunk)
14:49
Performance improvement in sqlite3ExprDelete(). (check-in: 60ad80e3 user: drh tags: trunk)
13:36
Remove the VdbeOp.opflags field and its associated initialization overhead. Update mkopcodeh.tcl to reorder opcode numbers to help the resolveP2Values() routine run faster. (check-in: 099478fa user: drh tags: trunk)
09:39
Update this branch with the latest changes from the trunk. (check-in: 982b753d user: dan tags: tempfiles-lazy-open)
01:43
Back off of the parser optimization in the previous check-in, slightly, to preserve some backwards compatibility regarding some undocumented behavior in the '#AAA' style query parameter. (check-in: ef1966c2 user: drh tags: trunk)
01:26
Small size reduction and performance improvement in the parser. (check-in: 16df7128 user: drh tags: trunk)
01:06
Factor out the common operation of setting the Expr.x.pSelect field of an Expr object into a subroutine. (check-in: 6a5cceee user: drh tags: trunk)
2016-04-09
18:04
Fix a problem in the code generator for joins on virtual tables where the outer loop of the join uses the IN operator. (check-in: 6c56b3a0 user: drh tags: trunk)
17:04
Fix the sqlite3BtreeDelete() routine so that it preserves the correct key even when the row being deleted is not on a leaf page. Fix for ticket [a306e56ff68b8fa56] (check-in: ca2ef8a8 user: drh tags: trunk)
14:36
Limit the number of digits shown in the "prereq" mask for ".wheretrace" debugging output. (check-in: 3686ed74 user: drh tags: trunk)
2016-04-08
21:35
Attempt to treat the arguments to a table-valued function as if they occur in the ON clause of a LEFT JOIN rather than in the WHERE clause. But this causes undesirable behavior with generate_series, as demonstrated by test cases. This is an incremental check-in pending further work. (Leaf check-in: 00ac73a0 user: drh tags: tabfunc-in-left-join)
19:44
Update documentation for sqlite3_snapshot_open(). No code changes. (check-in: 1dfa5234 user: drh tags: trunk)
15:09
Version 3.12.1 (check-in: fe7d3b75 user: drh tags: release, branch-3.12.0, version-3.12.1)
2016-04-07
23:18
Enhance the query planner so that IS and IS NULL operators are able to drive an index on a LEFT OUTER JOIN. (check-in: 84d2a09e user: drh tags: branch-3.12.0)
21:29
Update the version number to 3.12.1. This is the first release candidate. (check-in: 300f1b61 user: drh tags: branch-3.12.0)
21:29
Carry table column types through into VIEW definitions, where possible. (check-in: 3360ab09 user: drh tags: branch-3.12.0)
21:22
Prevent the in-memory journal read cursor from entering an inconsistent state when it reads the last few bytes out of the journal file. Fix for ticket [7f7f8026eda38]. (check-in: c232b99e user: drh tags: branch-3.12.0)
21:14
Add test cases for ticket [7f7f8026eda387d544]. (check-in: 87aa9357 user: drh tags: trunk)
18:42
Prevent the in-memory journal read cursor from entering an inconsistent state when it reads the last few bytes out of the journal file. Fix for ticket [7f7f8026eda38]. (check-in: c4b9c611 user: drh tags: trunk)
14:16
Avoid decrementing a pointer off the front end of the buffer in OP_MakeRecord. (check-in: 153135bf user: drh tags: trunk)
14:05
Instead of just commenting out the unneeded code in the previous check-in, remove it completely. (check-in: 8415d484 user: drh tags: trunk)
14:01
Remove an unnecessary test for a NULL pointer in freeP4(). (check-in: e84e88e3 user: drh tags: trunk)
13:45
Update comments on the unix file locking protocol. No changes to code. (check-in: 716b20de user: drh tags: trunk)
2016-04-06
18:20
For a pager backed by a temp file, store the main journal in memory until it is at least sqlite3_config.nStmtSpill bytes in size. Prevent the backup API from being used to change the page-size of a temp file. (check-in: 84c55701 user: dan tags: tempfiles-lazy-open)
17:32
Add a couple options to the MSVC makefile. (check-in: ea4de04d user: mistachkin tags: branch-3.12.0)
16:27
Fix a problem in test script lock.test. Fix minor issues in pager.c. (check-in: 84de8813 user: dan tags: tempfiles-lazy-open)
15:39
Add tests to this branch. Fix a problem with temporary databases in auto-vacuum mode. (check-in: afe9bd9b user: dan tags: tempfiles-lazy-open)
2016-04-05
23:39
Remove an unnecessary branch in the sqlite3LogEstToInt() routine. (check-in: da81d7af user: drh tags: trunk)
21:07
Defer opening the file used for the temp database (where CREATE TEMP TABLE tables are stored) until the database is too large to reside entirely within the cache. There are likely still problems on this branch. (check-in: be5a549e user: dan tags: tempfiles-lazy-open)
20:59
Carry table column types through into VIEW definitions, where possible. (check-in: fb555c3c user: drh tags: trunk)
19:46
Remove superfluous directories from the Makefile clean targets. (check-in: 0bf9926c user: mistachkin tags: trunk)
18:24
Oops. Branched from the wrong baseline. Ignore this one. (Closed-Leaf check-in: 8f1f300c user: drh tags: mistake)
17:59
Merge updates from trunk. (check-in: 00990020 user: mistachkin tags: winCeLocalTime)
17:50
Add the SQLITE_DBCONFIG_REQUIRE_TXN argument for sqlite3_dbconfig() which when set requires an explicit transaction before updating the database. (check-in: b7570ac1 user: drh tags: require-write-txn)
15:59
Incorrect version of build.c checked in at [87e5f5a6c60e3] (because I neglected to press the "Save" button on the text editor). There is no change to the logic, just improved presentation. (check-in: cf569f9f user: drh tags: trunk)
14:02
Make sure "0" intended as a NULL pointer is cast to a pointer when used in a varargs functions parameter. (check-in: ed128e8b user: drh tags: trunk)
14:01
Remove an unnecessary conditional from the index builder. (check-in: 87e5f5a6 user: drh tags: trunk)
13:35
Use SQLITE_WITHIN() for pointer range comparisons in some testing code. (check-in: 7cacf4e9 user: drh tags: trunk)
13:19
Do not allow pointer arithmetic to move a pointer across a memory allocation boundary. (check-in: 85b97931 user: drh tags: trunk)
00:44
Avoid unnecessary memset() operations in sqlite3PagerGet(). (Leaf check-in: 0c97b802 user: drh tags: pager-get-noinit)
2016-04-04
18:04
Fix documentation typos. Comment changes only. No changes to code. (check-in: d5fc2f7f user: drh tags: trunk)
17:59
Improve error messages from the 'shell1-5.0' test. (check-in: cefd36ff user: mistachkin tags: trunk)
17:34
Improved handling of UTF8 by the command-line shell. (check-in: 4534ebf1 user: drh tags: trunk)
17:23
Add the ".auth ON|OFF" command to the command-line shell. (check-in: 65c7bcc4 user: drh tags: trunk)
16:40
Test that the view name is passed to the authorization callback when a SELECT statement is run on a view. (check-in: 8627a4cd user: dan tags: trunk)
15:47
Add and enhance the new tests. (Closed-Leaf check-in: f4cbd18d user: mistachkin tags: altShellFix)
14:57
Enhance sqlite3session_apply() and sqlite3session_apply_strm() so that conflicts are retried before the xConflict() callback is invoked, as long as the "apply" operation is making forward progress. (check-in: 42a21966 user: drh tags: trunk)
13:46
Minor performance optimization in the comparison opcodes of the VDBE. (check-in: e375fe52 user: drh tags: trunk)
12:38
Fix harmless compiler warnings. (check-in: 0213d6af user: drh tags: trunk)
02:33
Refinements to the previous check-in. (check-in: b36dfdff user: mistachkin tags: altShellFix)
02:16
Experimental changes to the command line shell to make it work better with Unicode on Windows. (check-in: 74183a5f user: mistachkin tags: altShellFix)
02:05
More refactoring and cleanup work on the Win32 string conversion and utility routines. (check-in: 02ccb444 user: mistachkin tags: altShellFix)
2016-04-03
22:44
Revise and enhance the Win32 string conversion routines. (check-in: 345860c9 user: mistachkin tags: altShellFix)
20:50
Replace the new fprintf() calls. (check-in: f76c3a0c user: mistachkin tags: altShellFix)
20:45
Merge updates from trunk. (check-in: 566b551e user: mistachkin tags: altShellFix)
2016-04-01
17:54
Preupdate hook documentation fixes. No changes to code. (check-in: 59814f35 user: drh tags: trunk)
12:35
When reading an sqlite_stat1 table with missing entries for some indexes, set the default for the missing indexes after all other indexes are set so that the default values are more in line with indexes that are actually in the stat1 table. (check-in: a62340dc user: drh tags: trunk)
2016-03-31
22:53
Update the clean target in the MSVC makefile. (check-in: 69f4d832 user: mistachkin tags: trunk)
21:36
Version 3.9.3 (check-in: dfbfd34b user: drh tags: release, branch-3.9, version-3.9.3)
21:16
Enhance the query planner so that IS and IS NULL operators are able to drive an index on a LEFT OUTER JOIN. (check-in: f1e6bb95 user: drh tags: branch-3.9)
20:40
Enhance the query planner so that IS and IS NULL operators are able to drive an index on a LEFT OUTER JOIN. (check-in: c648539b user: drh tags: trunk)
15:08
Add another OOM test to this branch. (Closed-Leaf check-in: 49763fc3 user: dan tags: session-retry)
10:50
Add further tests for the code on this branch. Fix a problem in OOM handling. (check-in: 195f3340 user: dan tags: session-retry)
02:44
Enhanced comments describing the sessions file format. No changes to code. (check-in: 84dc41e2 user: drh tags: session-retry)
00:45
Fix the return code in sessionRetryConstraints(). (check-in: ea917c14 user: drh tags: session-retry)
2016-03-30
21:19
Have the sqlite3session_apply() function and its streaming equivalent retry any operations that failed with SQLITE_CONSTRAINT after all other operations on the same table have been attempted. New code is largely untested. (check-in: 1085911a user: dan tags: session-retry)
16:23
Updates for the MSVC makefiles. (check-in: 7cf0cab7 user: mistachkin tags: trunk)
16:22
Fix typo in comment. No changes to code. (check-in: 64d75cbe user: mistachkin tags: trunk)
15:30
Simplifications and clarification to update callback handling in the OP_Delete and OP_Insert opcodes. (check-in: 47887ef8 user: drh tags: trunk)
14:26
Increase the version number to 3.13.0 on account of the new session extension. (check-in: e9bcd5ac user: drh tags: trunk)
14:17
Remove a redundant test for disabling RESTRICT with defer_foreign_keys=ON. (check-in: 9cdf813c user: drh tags: trunk)
13:43
Incorporate the sessions extension and the SQLITE_ENABLE_PREUPDATE_HOOK compile-time option. (check-in: 4af7a90f user: drh tags: trunk)
12:56
Avoid compiler warnings and excess opcodes when SQLITE_ENABLE_PREUPDATE_HOOK is not used. Fix the EXPLAIN output for P4_TABLE opcodes. (Closed-Leaf check-in: 5ab46d76 user: drh tags: sessions)
12:20
Improvements to the performance testing program "speedtest1.c" and the shell script that invokes it. (check-in: e4bee561 user: drh tags: trunk)
2016-03-29
21:19
Fix some code and test coverage issues in fts5_index.c. (Leaf check-in: 7635c680 user: dan tags: fts5)
10:36
Merge 3.12.0 changes. (check-in: d7381eff user: drh tags: begin-concurrent)
10:30
Merge 3.12.0 changes. (check-in: eef55744 user: drh tags: apple-osx)
10:19
Merge changes for 3.12.0. (check-in: ed22eb65 user: drh tags: sessions)
10:14
Version 3.12.0 (check-in: e9bb4cf4 user: drh tags: trunk, release, version-3.12.0)
2016-03-28
20:13
Add further tests for savepoint rollback. Fix various code issues and add missing comments in fts5_index.c. (check-in: a805c6f7 user: dan tags: fts5)
15:06
Integrate the vcreate-stmt branch into this one. (check-in: 06039d90 user: dan tags: fts5)
14:57
Open a statement transaction for "CREATE VIRTUAL TABLE" statements in order to ensure that if the xCreate() call fails, changes made to the sqlite_master and possibly other tables are rolled back. (Closed-Leaf check-in: d0a3853b user: dan tags: vcreate-stmt)
11:01
Fix the multiplexor so that it does not assume that the xGetLastError method is non-NULL in the child VFS. (check-in: f6a88ccc user: drh tags: trunk)
2016-03-26
20:11
Fix a problem with OOM handling when setting an fts5 configuration option. (check-in: 53b80a6d user: dan tags: fts5)
15:36
More changes to the shellN.test scripts to get them working on all variations of Windows. (check-in: 8213c2f5 user: drh tags: trunk)
14:41
Remove the catchcmd_collapse_space procedure in tester.tcl - no longer needed. (check-in: 3bd499d3 user: drh tags: trunk)
13:26
Update shell1.test tests to deal with backslash escaping in TCL on Windows-style pathnames. (check-in: 219a251e user: drh tags: trunk)
2016-03-25
20:10
Do not run the shell3.test module under mingw because of mingw's dodgy command-line parsing. (check-in: a7c080a9 user: drh tags: trunk)
17:19
In the Win32 VFS, avoid trying to use rand_s() on Windows CE. (check-in: 183350fa user: mistachkin tags: trunk)
17:09
Add the catchcmd_collapse_space command and use it to help make shell testing more robust against TCL space escapes. (check-in: 93caabb6 user: drh tags: trunk)
12:10
Fix two instances of undefined behavior in the C code - both harmless for all current compilers. (check-in: 99fd194c user: drh tags: trunk)
2016-03-24
20:55
Make test cases in shell1.test robust against TCL deciding to quote strings using lots of backslashes. (check-in: 817e93f4 user: drh tags: trunk)
20:36
Prevent negative values of SQLITE_DEFAULT_CACHE_SIZE from making SQLITE_WIN32_HEAP_INIT_SIZE negative. (check-in: e0737f52 user: mistachkin tags: trunk)
15:32
Larger margins for one memsubsys1 range check when running with a non-zero reserved-bytes value. (check-in: 6db1d1fb user: drh tags: trunk)
15:09
Fix some test scripts so that they work with various permutations. (check-in: f4d234b5 user: dan tags: trunk)
14:34
Merge the beta changes into sessions. (check-in: beb5ea14 user: drh tags: sessions)
2016-03-23
17:54
Avoid calling realloc() with a zero size in fuzzcheck.c. (check-in: a1fd1469 user: drh tags: trunk)
16:32
Fix "ifcapable" tests in capi3.test and capi3c.test so that the tests work with more build configurations. (check-in: 3fa88f68 user: dan tags: trunk)
15:53
Remove an unused local variable from FTS5. (check-in: 0ed693c2 user: drh tags: trunk)
15:04
Explicitly limit the size of fts5 tokens to 32768 bytes. (check-in: 70fc69ee user: dan tags: trunk)
13:46
Update a requirement mark. No changes to code. (check-in: 41298464 user: drh tags: trunk)
2016-03-22
20:05
The sqlite3_column_decltype() routine should return NULL, not an empty string, if the column has no declared type. (check-in: 605eba4a user: drh tags: trunk)
15:26
Fix harmless compiler warning for MSVC. (check-in: 142cd359 user: mistachkin tags: trunk)
15:25
Fix a harmless compiler warning. (check-in: 5ace870d user: drh tags: trunk)
15:01
Fix some errors in fts5 test scripts. (check-in: e1ab2d37 user: dan tags: trunk)
14:37
Create the "uptr" typedef (the same as uintptr_t when available) and use it to cast pointers before comparison. (check-in: 2484cc0c user: drh tags: trunk)
14:10
Avoid the possibility of integer overflow on a pointer comparison test for corruption in the database file. (check-in: ff1b1ac3 user: drh tags: trunk)
2016-03-21
22:28
Fix harmless compiler warnings. (check-in: 25d776e4 user: drh tags: trunk)
16:25
Add tests to ensure that fts5 is now deterministic. (check-in: 3d076094 user: dan tags: trunk)
16:19
Skip recently added test cases in nolock.test when running in the inmemory_journal permutation. (check-in: a1dcf7af user: drh tags: trunk)
16:06
Remove an unreachable branch from the unlink verification logic in the UNIX VFS. (check-in: 4dc30cce user: drh tags: trunk)
15:54
Merge all recent changes from trunk. (check-in: 8ee7d346 user: drh tags: begin-concurrent)
15:32
Merge 3.12.0 beta changes from trunk. (check-in: 3296a0ce user: drh tags: sessions)
15:30
Have fts5 cache the structure of its index in main memory. Use "PRAGMA data_version" to figure out when this cache should be invalidated. (check-in: 902f2217 user: dan tags: trunk)
15:18
Rearrange code so that tests pass whether SQLITE_DEBUG is defined or not. (Closed-Leaf check-in: 89296a46 user: dan tags: fts5-data-version)
14:52
Merge the sqlite3_system_errno() change from trunk. (check-in: 063f1b37 user: drh tags: apple-osx)
14:46
Add the sqlite3_system_errno() interface. (check-in: 4bd12b57 user: drh tags: trunk)
12:28
Make sure system errors that occur durign sqlite3_step() are captured for use by sqlite3_system_errno(). (Closed-Leaf check-in: b4a1114f user: drh tags: sqlite_system_errno)
11:57
Improved comments. No logical changes to code. (check-in: a6b6c6c4 user: drh tags: sqlite_system_errno)
11:38
Do a better job of capturing all system errno values regardless of when they occur. (check-in: 7d49998d user: drh tags: sqlite_system_errno)
10:49
Merge updates from trunk. (check-in: 86ab8643 user: drh tags: sqlite_system_errno)
09:56
Change the way fts5 internally allocates segment ids in order to eliminated non-determinism from the module. (check-in: d6e2637d user: dan tags: trunk)
00:38
Change the Vdbe.aMem array so that it is zero-based instead of one-based. (check-in: c39081e8 user: drh tags: trunk)
00:30
Remove an unreachable branch. Improvements to comments. (Closed-Leaf check-in: c5677ecd user: drh tags: zero-base-aMem)
2016-03-19
23:32
Change the Vdbe.aMem array so that it is zero-based instead of one-based. (check-in: e07b0c47 user: drh tags: zero-base-aMem)
18:11
Fix exclusive.test so that it works with -DSQLITE_TEMP_STORE=3. (check-in: d7852c63 user: dan tags: trunk)
18:00
Updates to the Lemon documentation. (check-in: f0953414 user: drh tags: trunk)
17:48
Add the sqlite3rbu_bp_progress() API to the RBU extension. Used to obtain the percentage progress of an RBU update. (check-in: 209e31c7 user: dan tags: trunk)
17:09
Fix a problem detecting invalid values in the rbu_control column of an rbu database table. (Closed-Leaf check-in: a1132dd9 user: dan tags: rbu-percent-progress)
16:21
Update the sqldiff tool so that it generates an rbu_count table. (check-in: 1f7afb6e user: dan tags: rbu-percent-progress)
15:34
Merge latest trunk changes, including fixes to test script rbudiff.test, into this branch. (check-in: 734fc68f user: dan tags: rbu-percent-progress)
15:13
Fix another problem in test script rbudiff.test. (check-in: 41c29c12 user: dan tags: trunk)
14:53
Fix test scripts sqldiff.test and rbudiff.test so that they work with the --testdir option. (check-in: 1ffe3cde user: dan tags: trunk)
14:47
Add test file fts5multiclient.test. (check-in: 7832466f user: dan tags: fts5-data-version)
00:40
Fix a VDBE register allocation bug exposed by recent enhancements to PRAGMA integrity_check. (check-in: c73b5b9c user: drh tags: apple-osx)
00:35
Fix a register allocation bug in the VDBE code generator for PRAGMA integrity_check; (check-in: 88439a86 user: drh tags: trunk)
2016-03-18
20:12
Add further tests for sqlite3rbu_bp_progress(). Fix a problem in handling WITHOUT ROWID tables in the same. (check-in: 65e02368 user: dan tags: rbu-percent-progress)
18:56
Change the name of the new API on this branch to "sqlite3_bp_progress". Add tests and documentation for the same. (check-in: 1a1b69e8 user: dan tags: rbu-percent-progress)
11:03
Test case tweaks to better support the Apple configuration options. (check-in: cb0ffe84 user: drh tags: apple-osx)
10:29
Add tests for the changes on this branch. Fix a problem with calls to the new progress indicator API made after an rbu update has been resumed. (check-in: bf823217 user: dan tags: rbu-percent-progress)
00:58
Merge recent enhancements from trunk. (check-in: ec052b4f user: drh tags: apple-osx)
00:39
Fix FTS5 so that it works with SQLITE_OMIT_AUTORESET. (check-in: b199637d user: drh tags: trunk)
00:19
Fix more test-case errors in the Apple configuration. (check-in: 6631e1e6 user: drh tags: trunk)
2016-03-17
23:56
Fix some test cases so that they work under the Apple configuration. (check-in: 399c6076 user: drh tags: trunk)
23:16
Fix harmless compiler warnings that arise with -DSQLITE_OMIT_LOAD_EXTENSION (check-in: 65ba2f0b user: drh tags: trunk)
23:00
Changes to releasetest.tcl: Rename the "OS-X" configuration to "Apple". Bring the "Apple" configuration up to date. Allow the use of "if:os=..." arguments in a configuration. Run the Apple configuration on Linux in addition to on Macs, but without -DSQLITE_ENABLE_LOCKING_STYLE. (check-in: beb2a80b user: drh tags: trunk)
21:06
Add an API to indicate the percentage progress of an rbu update. (check-in: ffc58d2c user: dan tags: rbu-percent-progress)
19:28
Change the xGetLastError() method on the windows VFS so that it continues to format an error message (if requested) but returns the system error code, rather than an SQLite status code. (check-in: 1602f6b5 user: drh tags: sqlite_system_errno)
19:07
A more compact implementation of the code generator for the IS and IS NOT operators. (check-in: 8607e3ac user: drh tags: trunk)
18:41
An alternative method of encoding the wildcard in "SELECT *". This is an experiment. (Closed-Leaf check-in: 41335d88 user: drh tags: select-wildcard)
17:23
Simple test cases for sqlite3_system_errno() (check-in: 185bc864 user: drh tags: sqlite_system_errno)
16:01
Experimental implementation of the sqlite3_system_errno() interface. (check-in: 6782c87b user: drh tags: sqlite_system_errno)
12:39
Fix some OOM-handling issues in the fts5 changes on this branch. (check-in: 020a0bda user: dan tags: fts5-data-version)
2016-03-16
21:29
The prepared statements for some pragmas can now be reused without invoking an automatic reprepare. (check-in: 97b0e88c user: drh tags: trunk)
20:53
Merge the changes on the reusable-pragma branch into this one. (check-in: 6c4a17b9 user: dan tags: fts5-data-version)
20:44
Some pragmas can be reused without an automatic reprepare. (Closed-Leaf check-in: db1ce7e1 user: drh tags: reusable-pragma)
20:05
Fix a comment on the freelist_count and data_version pragmas. (check-in: 10a3e2a0 user: drh tags: trunk)
19:53
Add a cast to an implict (size_t -> int) conversion in fts5_expr.c. (check-in: d9b5ff7a user: dan tags: trunk)
19:48
Have fts5 cache the decoded structure of fts5 indexes in memory. Use "PRAGMA data_version" to detect stale caches. (check-in: 33ef2210 user: dan tags: fts5-data-version)
19:45
Enhance Lemon so that it reorders the reduce rules such that rules without actions occur at the end and so that the first rule is number 0. This reduces the size of the jump table on the reduce switch, and helps the parser to run faster. (check-in: d5712f21 user: drh tags: trunk)
19:34
Merge the latest enhancements from trunk. (check-in: a7978ab6 user: drh tags: begin-concurrent)
19:10
Avoid a few unnecessary fstat()s on journal files. (check-in: dbf84705 user: drh tags: trunk)
18:26
Fix the query planner so that it is able to use the integer primary key from an index as part of a multi-column constraint. (check-in: 96ea9909 user: drh tags: trunk)
01:16
Merge all recent enhancements from trunk. (check-in: 6a7ee04b user: drh tags: sessions)
01:09
Merge the SQLITE_OMIT_CODEC_FROM_TCL compile-time option from trunk. (check-in: 161d91e4 user: drh tags: apple-osx)
01:03
Add the SQLITE_OMIT_CODEC_FROM_TCL compile-time option. (check-in: 45f7f0c8 user: drh tags: trunk)
00:36
Rearrange some internal fields in the sqlite3_stmt object to avoid a harmless TSAN warning. (check-in: e0b116ed user: drh tags: trunk)
2016-03-15
22:00
Change the OP_IntegrityCk opcode to accept the list of root pages as an intarray argument in P4. Slightly smaller and faster. (check-in: 15e4a272 user: drh tags: trunk)
19:10
In the Win32 VFS, use SQLITE_FCNTL_LAST_ERRNO instead of (the older) SQLITE_LAST_ERRNO. (check-in: 9463762c user: mistachkin tags: trunk)
17:52
Implement FROM-clause subqueries as co-routines whenever they are guaranteed to be the outer-most loop of the join. (check-in: c7bae50b user: drh tags: trunk)
12:45
Merge updates from trunk - FTS5 fixes and enhancemenets to the tests scripts so that they work with SEE. (check-in: f41a7361 user: drh tags: apple-osx)
12:37
More test-case changes so that everything works when the reserved_bytes value in the header is non-zero. (check-in: 2fd095b1 user: drh tags: trunk)
09:55
Fix the shellN.test test scripts so that they work with the --testdir option. (check-in: 051c61eb user: dan tags: trunk)
09:42
Update this branch with latest trunk changes. (check-in: 249cd361 user: dan tags: schemalint)
2016-03-14
21:26
Fix the permutations.test script so that it works again. (check-in: 9f194f90 user: drh tags: trunk)
21:12
Update test scripts so that they work with SEE. (check-in: f4693ba4 user: drh tags: trunk)
20:49
Changing page size using VACUUM or backup is not allowed with a codec attached. (Closed-Leaf check-in: 92be06c1 user: drh tags: see-testing)
18:42
Merge test script fixes from trunk. (check-in: ea1d2cdd user: drh tags: see-testing)
18:34
Many more test cases fixed. Only a few remain. (check-in: 99b9d7ee user: drh tags: see-testing)
17:05
Many test cases fixed to work with encryption. (check-in: d866fffb user: drh tags: see-testing)
16:16
Test script changes to support testing the SQLite Encryption Extension. (check-in: 1c70aa5c user: drh tags: see-testing)
15:43
Fix the backcompat.test script so that it works with the --testdir test option. (check-in: f7480e33 user: dan tags: trunk)
15:03
Run TCL tests in the "testdir" subdirectory. (check-in: 90e0cc7b user: drh tags: trunk)
14:59
More file pathname normalization. (Closed-Leaf check-in: fa8c1292 user: drh tags: test-in-subdir)
14:28
Normalize the $testdir and $argv0 paths so that they continue to work in the testing subdirectory. (check-in: 19225b81 user: drh tags: test-in-subdir)
13:42
Run TCL tests in a subdirectory "testdir". (check-in: f632bba0 user: drh tags: test-in-subdir)
12:16
Fix a memory leak in fts5 that could occur following a syntax error in a query expression. (check-in: 54b8968e user: dan tags: trunk)
2016-03-12
19:33
Fix a problem handling 'NEAR("" token)' in fts5 found by fuzzing. (check-in: 10a827ae user: dan tags: trunk)
16:32
Fix handling of strings that contain zero tokens in fts5. And other problems found by fuzzing. (check-in: 72b3ff0f user: dan tags: trunk)
2016-03-11
23:07
Do not allow the use of WAL mode with nolock=1 because it does not work. (check-in: 74f5d3b0 user: drh tags: trunk)
15:25
Tweak the amalgamation autoconf files so that the --disable-static-shell option works again. (check-in: 83efcdeb user: dan tags: trunk)
14:30
Update spellfix1_scriptcode() to output 215 (latin) for pure numeric text. (check-in: df44308b user: drh tags: trunk)
2016-03-10
19:08
Check for PDB files prior to attempting to copy them in the MSVC batch build tool. (check-in: d7c20f04 user: mistachkin tags: trunk)
15:12
Add tests to cover untested branches in recent fts5 changes. (check-in: fa0033ed user: dan tags: trunk)
14:28
Use #ifdefs to remove code that is unreachable in some configurations, replacing it with an assert(). (check-in: f96ec84d user: drh tags: trunk)
14:22
Remove an unused local variable. (check-in: 3c343c3d user: drh tags: trunk)
2016-03-09
20:54
Add an incremental optimize capability to fts5. Make the 'merge' command independent of the 'automerge' settings. (check-in: 55667144 user: dan tags: trunk)
18:17
Fix a problem in fts3/4 that was causing it to discard data cached in-memory if an 'optimize' command is run when there is no data on disk. The usual way this would happen is if the very first transaction that writes to the fts3/4 table also includes an 'optimize' command. (check-in: 79338b99 user: dan tags: trunk)
15:34
Slight simplification to the query optimizer logic associated with IN (SELECT). (check-in: 2c55c3c2 user: drh tags: trunk)
15:14
Add another test case for bug [5e3c8867]. (check-in: d91e57e4 user: dan tags: trunk)
15:09
When optimizing expressions of the form "x IN (SELECT ...)" make sure that the subquery is not correlated. Fix for ticket [5e3c886796e5512]. (check-in: 1ed6b06e user: drh tags: trunk)
13:39
Automatically disable SQLITE_ENABLE_EXPLAIN_COMMENTS if SQLITE_OMIT_EXPLAIN is defined. (check-in: 8d4b6b2b user: drh tags: trunk)
12:35
In the query planner, make sure OOM errors are reported up into whereLoopAddVirtual() so that it shuts down appropriately. (check-in: a13c59d0 user: drh tags: trunk)
11:59
Disable the bestindex*.test modules when building without virtual table support. (check-in: e0bac2f3 user: drh tags: trunk)
08:08
Merge latest trunk changes with this branch. (check-in: 59caca43 user: dan tags: schemalint)
08:07
Fix a problem in the schemalint code that comes up when a sub-query uses one or more of the same tables as its parent. (check-in: fc18cc92 user: dan tags: schemalint)
04:17
Simplifications to the memjournal.c logic to facilitate testing. (check-in: 8baa2c2c user: drh tags: trunk)
03:44
Move the write failure test in memjrnlCreateFile() to just after the actual write, thus reducing the number of instances of the test by one. (check-in: 7f00d80c user: drh tags: trunk)
03:29
Update a comment in btree.c to account for WITHOUT ROWID tables. No code changes. (check-in: fa20dcb0 user: drh tags: trunk)
02:12
Change a branch made obsolete by recent parser enhancements into an assert(). (check-in: ee486ef7 user: drh tags: trunk)
02:03
Add an #ifdef and an ALWAYS() for coverage. (check-in: 069337a9 user: drh tags: trunk)
2016-03-08
23:44
Change an unreachable branch in the virtual table query planner into an assert(). (check-in: 73b97b9e user: drh tags: trunk)
23:18
Improved comments on virtual table query planning. Added many new WHERETRACE() macros. (check-in: 4c89c253 user: drh tags: trunk)
17:59
In memjournal.c, reuse the same sqlite3_file object for both the in-memory phase and the on-disk phase. (check-in: e7fbbdc2 user: drh tags: trunk)
17:44
Modify the memjournal.c code to make it a bit smaller. (Closed-Leaf check-in: d99ac415 user: dan tags: memjournal-exp)
16:35
Merge changes from trunk, especially the SQLITE_DEFAULT_SYNCHRONOUS enhancements. (check-in: 29741941 user: drh tags: apple-osx)
16:07
Drop support for SQLITE_EXTRA_DURABLE. The new SQLITE_DEFAULT_SYNCHRONOUS compile-time option is a more general replacement. (check-in: f6d3156b user: drh tags: trunk)
16:02
Remove an unused goto label in the RBU extension. (check-in: 2179a106 user: drh tags: trunk)
15:52
Add a new row type to RBU (a peer of insert, update and delete) - "delete then insert". (check-in: 1d9468d2 user: dan tags: trunk)
15:47
Add the SQLITE_DEFAULT_SYNCHRONOUS and SQLITE_DEFAULT_WAL_SYNCHRONOUS compile-time options. Automatically switch to the WAL_SYNCHRONOUS setting when first opening a WAL-mode database if the synchronous setting has not been previously set by the application. (check-in: 5a847a67 user: drh tags: trunk)
15:37
Update fts3/4 so that the 'merge=X,Y' command merges at least, instead of exactly, Y segments from a single level. This matches the documentation. 'merge=X,0' is, as it was in 3.11, an error. (check-in: 64b3cb29 user: dan tags: trunk)
15:30
Make the SQLITE_DEFAULT_SYNCHRONOUS and SQLITE_DEFAULT_WAL_SYNCHRONOUS values zero-based to agree with PRAGMA synchronous. (Closed-Leaf check-in: 592d2104 user: drh tags: default-synchronous)
15:14
If SQLITE_DEFAULT_WAL_SYNCHRONOUS is not the same value as SQLITE_DEFAULT_SYNCHRONOUS and the application has not run "PRAGMA synchronous", then set synchronous to the SQLITE_DEFAULT_WAL_SYNCHRONOUS setting when entering WAL mode for the first time. (check-in: 5791407b user: drh tags: default-synchronous)
14:40
Add compile-time options SQLITE_DEFAULT_SYNCHRONOUS and SQLITE_DEFAULT_WAL_SYNCHRONOUS used to specify the default synchronous settings for all database connections. (check-in: 1fefa967 user: drh tags: default-synchronous)
14:16
Fix ATTACH to use the symbolic name PAGER_SYNCHRONOUS_FULL rather than an integer literal. (check-in: c4e192a0 user: drh tags: trunk)
14:01
Merge coverage improvements and comment fixes from trunk. (check-in: 58023bfc user: drh tags: apple-osx)
13:56
Fix comments on pager flag settings to include synchronous=EXTRA. (check-in: 3a65a1fc user: drh tags: trunk)
02:59
Simplified error detection in the xBestIndex processing. (check-in: 82ca2131 user: drh tags: trunk)
01:32
Add the ALLBITS macro as a shorthand for "(Bitmask)(-1)". (check-in: 91bd619d user: drh tags: trunk)
01:11
Add a NEVER() to the code generator. Change the parameter name "mExtra" to "mPrereq" in the query planner, to more closely reflect its meaning. (check-in: 721ae51e user: drh tags: trunk)
00:39
Changes so that some assert()s in the virtual table query planner are correct even following an OOM error. (check-in: 9805f6f8 user: drh tags: trunk)
2016-03-07
21:28
Fix a typo and remove an unused variable from test logic. (check-in: 9f31516c user: drh tags: apple-osx)
20:48
Merge recent enhancements from trunk. (check-in: 84f09f00 user: drh tags: apple-osx)
20:14
Update fts3/4 so that the 'merge=X,0' command merges X pages from all segments of the first level in the fts index that contains 2 or more segments. (check-in: cddf69db user: dan tags: trunk)
19:08
Avoid a NULL pointer dereference following an OOM while generating code for IN operators on virtual tables. (check-in: c9240086 user: drh tags: trunk)
17:49
Merge the virtual table query planner enhancement, the RTREE cost estimate fix, and the statement journal spill delay enhancement from trunk. (check-in: 17fd8f3c user: drh tags: sessions)
17:39
Add a new row type to RBU (a peer of insert, update and delete) - "delete then insert". (Closed-Leaf check-in: 169311c8 user: dan tags: rbu-delete-then-insert)
17:37
Add the SQLITE_CONFIG_STMTJRNL_SPILL option for sqlite3_config(). (check-in: b6c42024 user: drh tags: trunk)
2016-03-05
21:32
Fix a problem in the previous commit affecting queries with three or more tables joined together to the right of a LEFT or CROSS JOIN operator. (check-in: d8d89d69 user: dan tags: trunk)
21:07
Change the way SQLite invokes the xBestIndex method of virtual tables so that N-way joins involving virtual tables work as expected. (check-in: 19544438 user: dan tags: trunk)
20:28
Adjust the cost estimates for RTREE such that the expected number of rows and expected cost is halved for each additional constraint. (Closed-Leaf check-in: fd7cd060 user: drh tags: xbestindex-fix)
17:29
Change the way SQLite invokes the xBestIndex method of virtual tables so that N-way joins involving virtual tables work as expected. (check-in: ffc65968 user: dan tags: xbestindex-fix)
15:35
Remove the unused journal.c source file (its function have been subsumed into memjournal.c). Refactor some of the names in memjournal.c. No functional changes. (check-in: 5f2a262d user: drh tags: trunk)
15:03
Work around (incorrect) ASAN warnings in memjournal.c. (check-in: 4de09777 user: drh tags: trunk)
14:19
Fix an integer size mismatch problem in test_bestindex.c (check-in: 2e35eb6b user: drh tags: trunk)
14:00
Fix an incorrect #ifdef on sqlite3LogEstToInt(). (check-in: dca7b233 user: drh tags: trunk)
2016-03-04
21:18
Fix an assert() in sqlite3VarintLen(), even though it is impossible to hit in SQLite due to the way sqlite3VarintLen() is used. (check-in: 251424c5 user: drh tags: trunk)
19:55
Simplify the computation of Index.aAvgEq. (Leaf check-in: c4488730 user: drh tags: analyze-worst-case)
18:45
Merge changes from trunk. (check-in: 5294c977 user: drh tags: analyze-worst-case)
16:42
Merge recent enhancements from trunk. Default page size is 4096. Writes to statement journals are avoided. (check-in: 456df336 user: drh tags: sessions)
14:57
Merge recent enhancements from trunk, and especially the changes that reduce the heap-memory footprint of schemas, and defer opening and writing to statement journals. (check-in: 2f0c195c user: drh tags: apple-osx)
14:43
Defer opening and writing statement journals until the size reaches a threshold (currently 64KiB). (check-in: cb9302cc user: drh tags: trunk)
14:23
Update test cases to taken deferred statement-journal opening into account. (Closed-Leaf check-in: 5b2fe521 user: drh tags: memjournal-exp)
13:08
Merge changes from trunk. (check-in: a87305df user: drh tags: memjournal-exp)
04:01
Change the default cache_size to -2000 (which means 2000*1024 bytes independent of page_size). (check-in: 2682e8e4 user: drh tags: trunk)
03:43
Change the default page size for new database files to 4096 (from 1024). Except, when building the testfixture, preserve the legacy page size. Also fix a comment on SQLITE_MAX_ATTACHED. (check-in: 2e8a9ca9 user: drh tags: trunk)
03:20
Detect the presence of pread()/pwrite() system calls on unix systems and use them if available. (check-in: 82cbf5ad user: drh tags: trunk)
03:14
Further fixes to the pread()/pwrite() enabling logic. (Closed-Leaf check-in: 38fb54e7 user: drh tags: pread)
03:02
Fix the build for cases when pread()/pwrite() are not available. (check-in: 7d67d876 user: drh tags: pread)
02:59
Add the test_bestindex.c file to Makefile.in and Makefile.msc so that "make test" will work again. (check-in: 6ec6b6a9 user: drh tags: trunk)
02:38
Update the configure script to detect pread/pwrite and update os_unix.c to use those routines if they are available. (check-in: 2cffb9e5 user: drh tags: pread)
00:13
Get in-memory subjournals working for builds without SQLITE_ENABLE_ATOMIC_WRITE. (check-in: b5378dce user: drh tags: memjournal-exp)
2016-03-03
21:29
Merge the latest updates from trunk. (check-in: 55c00f71 user: drh tags: memjournal-exp)
21:22
Reduce the amount of heap memory required to store many schemas by storing the column datatype appended to the column name (with a \000 separator), rather than in separate memory allocation. (check-in: 16fbf2e1 user: drh tags: trunk)
20:42
Allow the left-hand side of IN operators on virtual tables to have the aConstraintUsage[].omit flag clear. (check-in: 3eb74342 user: drh tags: trunk)
17:54
Merge 3.11.1 changes into trunk. (check-in: 7abc2dd9 user: drh tags: trunk)
16:17
Version 3.11.1 (Leaf check-in: f047920c user: drh tags: release, branch-3.11, version-3.11.1)
15:16
Increase the default upper bound on scope to 30. (check-in: b1258814 user: drh tags: branch-3.11)
2016-03-02
17:57
Add new test script bestindex1.test to the utf16 permutation. (Closed-Leaf check-in: 5893e972 user: dan tags: vtab-IN-opt)
16:13
Add an extra test for the change on this branch. (check-in: d2d28251 user: dan tags: vtab-IN-opt)
16:01
Enhance test_bestindex.c so that it can be used to test plans generated by xBestIndex. (check-in: 3c15a9bf user: dan tags: trunk)
15:37
Fix a recently introduced problem in permutations.test causing an error when the QUICKTEST_OMIT environment variable is defined. (check-in: 45bc9557 user: dan tags: branch-3.11)
13:26
Fix an error in an fts5 test script. (check-in: b2a03e2d user: dan tags: branch-3.11)
03:28
Allow the left-hand side of IN operators on virtual tables to have the aConstraintUsage[].omit flag clear. (check-in: 1622623c user: drh tags: vtab-IN-opt)
00:58
Add the optional -DSERIES_OMIT_CONSTRAINT_VERIFY=0 option to the series.c extension that implements the generate_series() virtual table. (check-in: 3d9daa92 user: drh tags: trunk)
2016-03-01
22:48
New test cases and infrastructure for testing the xBestIndex method of virtual tables. (check-in: 1d41c161 user: drh tags: trunk)
22:41
Improved debugging output with wheretrace. Fix some typos in test script comments. (check-in: 13a37fd4 user: drh tags: trunk)
18:35
Fix a memory leak in the test code on this branch. (Closed-Leaf check-in: 7a1add56 user: dan tags: test-bestindex)
18:24
Allow test_bestindex.c to set the omit flag for a constraint. (check-in: 759b9d5b user: dan tags: test-bestindex)
18:07
Add test code useful for testing the planners use of teh virtual table xBestIndex() method. (check-in: de034c0d user: dan tags: test-bestindex)
16:56
Do not attempt to run fts5bigtok.test or fts5merge2.test if FTS5 is not compiled in. (check-in: f7ed3739 user: dan tags: branch-3.11)
16:02
Add -DSQLITE_ENABLE_FTS5 to one of the release-test configurations in releasetest.tcl. Run fts5 tests as part of "make test" if SQLITE_ENABLE_FTS5 is defined. (check-in: 3cee9371 user: dan tags: branch-3.11)
15:52
Remove a forgotten "breakpoint" command from an FTS5 test script. (check-in: 61927c8f user: drh tags: branch-3.11)
15:41
Increase the version number to 3.11.1 (check-in: 2dcd2fda user: drh tags: branch-3.11)
15:09
Merge branch-3.11-matchinfo into this branch. (check-in: 42358170 user: dan tags: branch-3.11)
14:51
Fix a problem in fts5 where a corrupt db could lead to a (huge) buffer overread. Cherrypick of [c9a30e117f]. (Closed-Leaf check-in: daef5869 user: dan tags: branch-3.11-matchinfo)
14:50
Fix an fts5 problem causing 'optimize' to corrupt the fts index under some circumstances. Cherrypick of [251d6473f7]. (check-in: 5b1b7ab5 user: dan tags: branch-3.11-matchinfo)
14:31
Change the estimated row counts in stat1 to be one-third worst-case and two-threads average case. (check-in: 21bfd47c user: drh tags: analyze-worst-case)
12:45
Fix test cases to align with the improved stats computation. (check-in: 810967bf user: drh tags: analyze-worst-case)
02:11
Better estimatedCost in the xBestIndex method of the generate_series vtab. (check-in: f2c16094 user: drh tags: trunk)
2016-02-29
23:02
Improvements to the logic for adding the "noskipscan" flag to stat1 entries. (check-in: 421b5b54 user: drh tags: analyze-worst-case)
21:27
The ANALYZE command automatically appends "noskipscan" to sqlite_stat1 entries that have large worst-case repeat estimates but small average repeat estimates. (check-in: 6326ba58 user: drh tags: analyze-worst-case)
20:18
When using a temporary file for a statement journal, store the first 64KiB in memory. If the file grows larger than that, flush it to disk and free the memory. Hardcoding to 64KiB is just an experiment to check that the memjournal.c code works. (check-in: 44b2dc18 user: dan tags: memjournal-exp)
20:00
Fix minor problems with new code in memjournal.c. (check-in: 9fd3f7b9 user: dan tags: memjournal-exp)
18:30
Modify the ANALYZE command to store worst-case statistics in sqlite_stat1, rather thn average case. (check-in: 5a0143c9 user: drh tags: analyze-worst-case)
17:34
Fix a problem in fts5 where a corrupt db could lead to a (huge) buffer overread. (check-in: c9a30e11 user: dan tags: trunk)
17:16
Fix an fts5 problem causing 'optimize' to corrupt the fts index under some circumstances. (check-in: 251d6473 user: dan tags: trunk)
15:53
Reduce the amount of heap required to store many schemas by storing each column datatype appended to the column name, rather than as a separate allocation. (Closed-Leaf check-in: 842b2116 user: drh tags: schema-storage)
13:44
Very minor improvement to the performance and reduction in size to the parser by capturing the name and datatype of table columns in a single grammar rule reduction. (check-in: 4b55c520 user: drh tags: trunk)
13:37
Further simplifications to the grammar. (Closed-Leaf check-in: 519fd03b user: drh tags: schema-storage)
2016-02-27
23:25
Update the parser so that it pulls out the column name and type all in one go, rather than using separate reductions. (check-in: ad3ffe2e user: drh tags: schema-storage)
21:16
Eliminate the need for the Column.zDflt (using Column.pDflt instead) to reduce the amount of memory needed to hold the schema. (check-in: d8c94a46 user: drh tags: trunk)
20:14
Extend the code in memjournal.c so that it subsumes the role of journal.c. And (untested) can flush journal or statement journal files to disk after they grow to a specified size. (check-in: e0b0b431 user: dan tags: memjournal-exp)
19:19
Tighter description of I/O stats in the shell. Show I/O stats on speedtest1.c. (check-in: f681d800 user: drh tags: trunk)
19:03
More compact implementation of PRAGMA onconflict, and some test cases. (Leaf check-in: 3e5d38f5 user: drh tags: pragma-onconflict)
17:16
Experimental "PRAGMA onconflict=FAIL" statement to change the default ON CONFLICT algorithm to something other than ABORT. (check-in: 3a0c347c user: drh tags: pragma-onconflict)
17:12
Enhance the ".stats" command in sqlite3.exe to show one-time stats information if invoked with one argument. Also show /proc/PID/io information if run on Linux. (check-in: 3c36948f user: drh tags: trunk)
14:04
Fix a requirement mark to conform to a typo fix in the documentation. (check-in: d1392c62 user: drh tags: trunk)
14:00
Enhance documentation of sqlite3_snapshot_open() to explain that the database connection must have participated in at least one read operation prior to the beginning of the transaction for which the snapshot is to be opened. Add test cases for this fact. (check-in: 33dd671c user: drh tags: trunk)
00:21
Add 'Replace.exe' to the MSVC clean target. (check-in: c2277fab user: mistachkin tags: trunk)
00:21
Fix typo in ICU error message. (check-in: 00c8fffd user: mistachkin tags: trunk)
00:07
Make sure the Replace.cs file is included in the autoconf tarball. (check-in: b850df48 user: drh tags: trunk)
2016-02-26
23:13
Support generating the '.def' file using the autoconf Makefile for MSVC. (check-in: 3617564c user: mistachkin tags: trunk)
21:20
Fix a potential buffer overflow in the ICU upper() function. (check-in: b8dc1b9f user: drh tags: trunk)
21:03
Further refinements to the MSVC batch build process. (check-in: cf4e4fbd user: mistachkin tags: trunk)
21:01
Further refinements to the MSVC batch build process. (check-in: 4e54e9c0 user: mistachkin tags: branch-3.11)
16:14
Merge all recent enhancements from trunk, and in particular the SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER change. (check-in: 4fb4aee8 user: drh tags: apple-osx)
16:03
Fix the ICU extension LIKE function so that it does not read past the end of a buffer if it it passed malformed utf-8. (check-in: 424b7aee user: dan tags: trunk)
15:38
Provide the new SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER option to sqlite3_db_config() that can be used to activate the two-argument version of fts3_tokenizer() for a specific database connection at run-time. (check-in: 374b5108 user: drh tags: trunk)
13:22
Fix a typo in a comment (though an important comment in that it is used to generate documentation). (check-in: ff3d7f84 user: drh tags: trunk)
04:13
Ephemeral tables used to hold manifested views may not be unordered since they might be subject to an ordered comparison if they are part of a join. (check-in: 3ef6a315 user: drh tags: trunk)
04:04
Remove a debugging "exit" command mistakenly left in the "where.test" module. (check-in: beda0b8c user: drh tags: trunk)
2016-02-25
23:27
Add some comments in the VSIX test tool. (check-in: c871473f user: mistachkin tags: trunk)
23:25
Add tool for smoke-testing the UWP VSIX package. (check-in: d27f32c6 user: mistachkin tags: trunk)
23:22
Enhance checking of prerequisites in the vsixtest tool. (Closed-Leaf check-in: 799d5f09 user: mistachkin tags: vsixTest)
23:21
Fix an incorrect cost computation for sorting (introduced just a few check-ins ago). Should be NlogN, not NloglogN. (check-in: 2459d323 user: drh tags: trunk)
21:38
Small optimization in FK handling. (check-in: e0d25913 user: mistachkin tags: trunk)
21:27
Change the srcck1.c utility program to use only unsigned characters. (check-in: d64d005e user: drh tags: trunk)
21:19
Change the "PRAGMA stats" command to report size values in LogEst units. The eliminates the need for sqlite3LogEstToInt() unless non-standard compile-time options are used, so leave it out except in those cases. (check-in: 832c237f user: drh tags: trunk)
20:17
Disable the RESTRICT foreign key action if "PRAGMA defer_foreign_keys" is set. (check-in: 9ffff484 user: dan tags: trunk)
19:52
Disable the RESTRICT foreign key action if "PRAGMA defer_foreign_keys" is set. (check-in: 8fea1166 user: dan tags: sessions)
18:54
Merge all the latest changes from trunk. (check-in: b8659004 user: drh tags: sessions)
18:40
Query planner improvements: Take the LIMIT into account when estimated the cost of an ORDER BY. Avoid automatic indexes on query loops that are expected to run less than twice. See [9e2b2681] for a later enhancement. (check-in: bf46179d user: drh tags: trunk)
18:22
Improvement on the previous check-in: disallow automatic indexes for any loop that is expected to run less than twice. (Closed-Leaf check-in: aab53a21 user: drh tags: planner-improvements)
18:03
Do not use an automatic index on an outer loop that only runs once. (check-in: 5957e793 user: drh tags: planner-improvements)
16:04
Take the LIMIT clause into account when estimating the cost of sorting. (check-in: d491745c user: drh tags: planner-improvements)
13:33
In the command-line shell: When the ".import" command is creating a new table using column names from the first row of CSV input, make sure double-quotes in the name are properly escaped. (check-in: 2e67a1c8 user: drh tags: trunk)
08:02
Improve readability and logging of the vsixtest script. (check-in: 4fe7c4e9 user: mistachkin tags: vsixTest)
02:56
Enable all steps and add/update comments. (check-in: 788f99f4 user: mistachkin tags: vsixTest)
02:49
More work. Install and build steps are now tested. (check-in: 0ab74373 user: mistachkin tags: vsixTest)
2016-02-24
23:31
Fix typo. Improve interim debugging. (check-in: e0029bdf user: mistachkin tags: vsixTest)
23:25
Test build all supported configurations and platforms during VSIX testing. (check-in: cce40a0b user: mistachkin tags: vsixTest)
21:42
Initial work on an automated VSIX testing tool. Not working or tested yet. (check-in: 496e4ac9 user: mistachkin tags: vsixTest)
20:16
Extend [3e9ed1ae] so that covering indexes on WITHOUT ROWID tables are also identified. (check-in: e721975f user: dan tags: trunk)
19:57
Change a char* to const char* in order to suppress some harmless compiler warnings. (check-in: 56f62e34 user: drh tags: trunk)
17:18
When an index completely covers a table, it can be used as a covering index even if columns past the 63rd column are indexed and accessed. (check-in: 3e9ed1ae user: drh tags: trunk)
16:14
Fix a problem with handling identifiers that start with "x" if SQLITE_OMIT_BLOB_LITERAL is defined. (check-in: b65217c6 user: dan tags: trunk)
15:43
Identify indexes that completely cover their table. (Closed-Leaf check-in: 71d488b5 user: drh tags: covering-index)
13:35
LSM1: Fix the integer key encoding so that negative keys are in numeric order. (check-in: f92dc418 user: drh tags: lsm-vtab)
2016-02-23
16:28
Add the SQLITE_BITMASK_TYPE compile-time option. (check-in: 0064a8c7 user: drh tags: trunk)
01:41
Merge trunk enhancements. (check-in: fac4f4ec user: drh tags: lsm-vtab)
01:37
Add support for (variable length) integer keys in LSM1. (check-in: 32f3daec user: drh tags: lsm-vtab)
2016-02-22
23:44
Remove code not needed now that synchronous=OFF database files no longer trigger the use of a master journal. (check-in: aa9f4c62 user: drh tags: trunk)
23:14
Avoid an unnecessary seek operation some corner-case skip-scan operations. (check-in: 2a6003a9 user: drh tags: trunk)
21:19
Clearer presentation of the logic. No functional changes. (Closed-Leaf check-in: a3dcf6db user: drh tags: skip-scan-improvement)
20:52
Avoid an unnecessary seek operation on some corner-case skip-scans. (check-in: 38e837e6 user: drh tags: skip-scan-improvement)
19:51
Add test script shell6.test, containing tests for schemalint. (check-in: 0b734065 user: dan tags: schemalint)
16:32
Merge the master-journal optimization and other recent changes from trunk. (check-in: 18c3ab47 user: drh tags: apple-osx)
16:04
Always use the sqlite3VdbeDeleteAuxdata() routine for clearing auxdata on function parameter, rather than having a separate deleteAuxdataFromFrame() for doing the job for trigger frames. (check-in: 64386fa3 user: drh tags: trunk)
14:57
Avoid creating a master journal unless two or more databases in the transaction can actually benefit from that master journal. (check-in: 3ed18906 user: drh tags: trunk)
13:23
Change magic numbers associated with synchronous settings to named constants. (check-in: 9230ba6c user: drh tags: trunk)
13:01
Merge up to trunk. (check-in: f9e5fb88 user: drh tags: lsm-vtab)
09:45
Add an extra test case for the change in commit [c4295725]. (check-in: a48ac4c3 user: dan tags: trunk)
2016-02-19
19:46
Further enhancements to the MSVC batch build tool. (check-in: 06f1495f user: mistachkin tags: trunk)
19:29
Use the arguments to NMAKE consistently in the MSVC batch build tool. (check-in: 480e5049 user: mistachkin tags: branch-3.11)
19:03
Enhance clean target in the MSVC makefiles. (check-in: 66a9ad4a user: mistachkin tags: branch-3.11)
18:54
Use a separate list of aux-data structures for each trigger program at the VDBE level. Fix for [dc9b1c91]. (check-in: c4295725 user: dan tags: trunk)
16:19
Enhance speedtest1 to display the particular version of SQLite under test. (check-in: 0cb728c1 user: drh tags: trunk)
15:17
Fix a couple of harmless warnings generated by clang. (check-in: a1a3ff1f user: drh tags: trunk)
14:20
Fix a harmless uninitialized variable access. (check-in: 398522e6 user: drh tags: trunk)
14:10
Make sure WhereClause objects are fully initialized before use when planning OR queries. (check-in: 16205302 user: drh tags: trunk)
13:29
Fix (harmless) compiler warnings in some of the TCL-based test code. (check-in: 7c26d2b4 user: drh tags: trunk)
13:20
Add an SQLITE_DISABLE_INTRINSIC #ifdef to the sqlite3Put4Byte() function. (check-in: ba9c6827 user: drh tags: trunk)
13:19
Omit the unused yyzerominor constant. (check-in: 60ad68a9 user: drh tags: trunk)
10:19
Add an "#ifndef SQLITE_AMALGAMATION" guard around a typedef in fts5_test_mi.c to avoid redefining "u32" if it is compiled as part of the amalgamation. Cherrypick of [f9c49ba1]. (check-in: ce0f1ed5 user: dan tags: branch-3.11-matchinfo)
10:18
Add an "#ifndef SQLITE_AMALGAMATION" guard around a typedef in fts5_test_mi.c to avoid redefining "u32" if it is compiled as part of the amalgamation. (check-in: f9c49ba1 user: dan tags: trunk)
07:53
Fix a couple of bugs in the schemalint code. (check-in: 02fbf699 user: dan tags: schemalint)
05:07
Modify the MSVC batch build tool to support the MSVC autoconf Makefile. (check-in: 72b10e5e user: mistachkin tags: branch-3.11)
00:48
Further improvements to the MSVC batch build tool. (check-in: b9626b59 user: mistachkin tags: trunk)
00:47
Further improvements to the MSVC batch build tool. (check-in: 90dd6eb1 user: mistachkin tags: branch-3.11)
2016-02-18
21:15
Correct the install location for the UWP VSIX package. (check-in: f74de325 user: mistachkin tags: trunk)
21:00
Correct the install location for the UWP VSIX package. (check-in: b47d0302 user: mistachkin tags: branch-3.11)
19:10
Have the schemalint output distinguish between existing and recommended indexes. (check-in: 4ab3df25 user: dan tags: schemalint)
16:16
Remove SQLITE_TEST macros from fts5_test_mi.c. Add the SQLITE_FTS5_ENABLE_TEST_MI compile time symbol - to make it easier to create builds that include the fts5 matchinfo demo by default. (check-in: e2ef6667 user: dan tags: branch-3.11-matchinfo)
14:53
Merge the tokenizer buffer overrun bug-fix from trunk. (check-in: 82e7e31b user: drh tags: apple-osx)
14:49
Avoid a potential buffer overrun if an SQL statement being parsed ends with an illegal "!" token. (This problem was detected by fuzzcheck running under valgrind. The problem was introduced by check-in [9570b6b43df3], two days ago and has not appeared in a release.) (check-in: 2a8d97e7 user: drh tags: trunk)
14:03
Improved handling of the -v option on the fuzzcheck test program. (check-in: c8cd7804 user: drh tags: trunk)
13:32
Remove an unnecessary "include <tcl.h>" line from fts5_test_mi.c. (check-in: 31d8b69e user: dan tags: trunk)
01:36
Merge recent performance enhancements and the enhanced API_ARMOR from trunk. (check-in: b7fa0fb3 user: drh tags: apple-osx)
01:29
Add extra API armor on the sqlite3_bind_blob() interface. (check-in: 80de1ad5 user: drh tags: trunk)
01:22
Memory leak associated with SQLITE_WRITE_WALFRAME_PREBUFFERED (check-in: 7bcd3ab5 user: drh tags: apple-osx)
2016-02-17
20:47
When VDBE opcodes fail, they cause an immediate exit from the loop, rather than depending on the rc==SQLITE_OK test at the top of the loop. This is faster and smaller. (check-in: 24c7151c user: drh tags: trunk)
20:06
Schemalint changes: Avoid creating candidate indexes if a compatible index exists. Do not quote identifiers that do not require it. (check-in: cf0f7eeb user: dan tags: schemalint)
18:44
Fix up all VDBE opcodes so that they cause an immediate exit on any kind of error, and thereby eliminate the need to test "rc" at the top of the loop. Resulting code is a little smaller and faster. (Closed-Leaf check-in: a444633a user: drh tags: vdbe-performance)
15:01
Bump the version number to 3.12.0. (check-in: c17d7276 user: drh tags: trunk)
14:48
Remove the "#ifdef SQLITE_TEST" condition from fts5_test_mi.c. Update fts5_main.c so that if SQLITE_FTS5_TEST_MI is defined when it is built the fts5_test_mi.c entry point is automatically called. This makes it easier to build versions of fts5 that include the matchinfo() demo by default. (check-in: 87e6e225 user: dan tags: trunk)
14:11
Improve test coverage of demo code in fts5_test_mi.c. (check-in: 8a78050d user: dan tags: trunk)
13:24
Enhance Lemon to generate more compact and efficient code for yy_reduce(). Update the main SQL grammar to take advantage of the new capabilities. (check-in: 53fd040c user: drh tags: trunk)
12:34
More agressive use of /*A-overwrites-X*/ in the parser. Fix an off-by-one error in parser stack overflow detection. (Closed-Leaf check-in: 417e7777 user: drh tags: parser-performance)
11:13
Documentation typo on sqlite3_wal_hook(). No changes to code. (check-in: fc2043eb user: drh tags: trunk)
04:33
Enhance Lemon so that if reduce code contains a comment of the form "/*A-overwrites-X*/" then a LHS label A is allowed to overwrite the RHS label X. (check-in: 5cfe9545 user: drh tags: parser-performance)
01:46
Further improvements to the Lemon-generated code for yy_reduce(). (check-in: ef95a7d6 user: drh tags: parser-performance)
01:18
In Lemon, add the ability for the left-most RHS label to be the same as the LHS label, causing the LHS values to be written directly into the stack. (check-in: 4bb94c7c user: drh tags: parser-performance)
2016-02-16
21:19
Experimental changes to Lemon for improved parser performance. (check-in: a65d583c user: drh tags: parser-performance)
18:37
Fix further issues in schemalint. (check-in: 73a7f010 user: dan tags: schemalint)
13:04
Minor simplification to the tokenizer. Slightly smaller and faster. (check-in: 9570b6b4 user: drh tags: trunk)
01:01
Improve the Lemon parser template (lempar.c) so that it avoids unnecessary work when the grammer defines YYNOERRORRECOVERY (as SQLite does). Slightly smaller and faster code results. (check-in: 9235b0cf user: drh tags: trunk)
2016-02-15
23:46
Fix a harmless compiler warning in FTS5. (check-in: e52c9075 user: drh tags: trunk)
22:37
Readability improvements for winRandomness. (check-in: 1640f814 user: mistachkin tags: trunk)
22:28
Fix comment. No changes to code. (check-in: 2e1f2eff user: mistachkin tags: trunk)
22:01
Revise compiler checks for the rand_s() function. (check-in: 287f508d user: mistachkin tags: trunk)
21:31
On windows systems when rand_s() is available, use it to obtain additional seed material in winRandomness(). (check-in: 139081be user: drh tags: trunk)
20:41
Improved entropy gathering for the implementation of winRandomness(). (check-in: fea3705e user: drh tags: trunk)
20:12
Progress towards integrating schemalint into the shell tool. Some cases work now. (check-in: 58d4cf26 user: dan tags: schemalint)
19:38
Add working -q and --help options to testfixture. (check-in: 404494e5 user: drh tags: trunk)
18:58
In the tool/warning.sh script, disable Android-specific compiler warning tests when not running on Linux. (check-in: 153f01a8 user: drh tags: trunk)
18:47
Fix harmless compiler warnings previously seen in 64-bit MSVC builds. (check-in: 70262463 user: drh tags: trunk)
18:15
Add the SQLITE_NOMEM_BKPT macro to enhance the ability to debug OOM errors. Only effective with compiling with SQLITE_DEBUG. (check-in: 9b345476 user: drh tags: trunk)
18:02
Minor code simplifications. (check-in: c3b38efd user: drh tags: trunk)
17:56
Make the application-defined SQL function logic more compact and faster, especially faster for the case where an application defines thousands of new SQL functions. (check-in: 7d49ed32 user: drh tags: trunk)
17:44
Merge version 3.11.0 (check-in: c393ddc7 user: drh tags: begin-concurrent)
17:40
Merge 3.11.0 changes. (check-in: 5cecc509 user: drh tags: apple-osx)
17:39
Merge 3.11.0 changes. (check-in: 631023dd user: drh tags: sessions)
17:29
Version 3.11.0 (check-in: 3d862f20 user: drh tags: trunk, release, version-3.11.0)
15:06
Make sure the codec is invoked when overwriting existing frames of the WAL file. Yikes! (check-in: f694e60a user: drh tags: trunk)
00:34
Improvements to the application-defined function mechanism so that it is more compact and runs faster, especially when the application defines thousands of new SQL functions. (Closed-Leaf check-in: 3201fbcc user: drh tags: many-app-functions)
2016-02-14
00:14
Update a comment. (Closed-Leaf check-in: e9753d9a user: mistachkin tags: noMemBkpt)
2016-02-13
23:43
Enhance ability to debug out-of-memory errors. (check-in: 6a9c4a3e user: mistachkin tags: noMemBkpt)
18:54
Provide Sqlite3_SafeInit() and Sqlite3_SafeUnload() entry points on the TCL interface, but have the always return TCL_ERROR, because the non-standard TCL builds on Macs require this. (check-in: 37ec3015 user: drh tags: trunk)
17:35
Merge changes from the 3.11.0 release candidate. (check-in: d198a6db user: drh tags: apple-osx)
15:08
Fix another test problem in sessionfault.test. (check-in: f6d1cf79 user: dan tags: sessions)
14:45
Harden sqlite3session_delete() against trying to delete a session that is not currently on the session list. (check-in: 6c2d34df user: drh tags: sessions)
14:39
Fix a problem in sessionfault.test causing it to segfault following a test failure. This commit does not fix the actual test failure - just the subsequent segfault. (check-in: 582b2ae7 user: dan tags: sessions)
14:07
Merge the changes for the 3.11.0 release candidate from trunk. (check-in: 4d7a802e user: drh tags: sessions)
2016-02-12
18:48
Fix a potential buffer overread provoked by invalid utf-8 in fts5. (check-in: a049fbbd user: dan tags: trunk)
17:56
Fix a fairly obscure buffer overread in fts5. (check-in: 13058020 user: dan tags: trunk)
17:30
Fix a documentation typo. No changes to code. (check-in: d9c98587 user: drh tags: trunk)
17:27
Enhance mptester so that it takes great care to delete its test database prior to start-up, including checking the return code from unlink() and retrying after a delay if unlink() fails. Hopefully this will clear intermittant startup problems on Windows. (check-in: 6ea84ec1 user: drh tags: trunk)
05:19
Naming updates for Universal Windows Platform. (check-in: 717c1fc4 user: mistachkin tags: trunk)
00:13
Remove an unused parameter from whereSortingCost(). (check-in: b5d77199 user: drh tags: trunk)
2016-02-11
22:41
Automatically disable FTS3 and FTS4 when building with SQLITE_OMIT_VIRTUALTABLE. (check-in: 0beb32d2 user: drh tags: trunk)
21:59
Enhance the MSVC makefile to enable building 'testfixture' fully from source code. (check-in: f183e059 user: mistachkin tags: trunk)
21:55
Remove the unexplained extra 3.0 cost factor for the B-tree sorting that is done to implement DISTINCT in the absence of an index to help. (check-in: 52571991 user: drh tags: trunk)
21:53
Remove the unused fts5BlobCompare() routine. (check-in: defc762d user: drh tags: trunk)
21:38
Prevent 'expanded command line X too long' errors during the batch 'for' loops used for copying files. (Closed-Leaf check-in: 67ee9b5a user: mistachkin tags: testFixtureSrc)
21:28
Enhance the MSVC makefile to enable building 'testfixture' fully from source code. (check-in: 54ff3a26 user: mistachkin tags: testFixtureSrc)
21:01
Experimental integration of schemalint functionality with the shell tool. Does not work yet. (check-in: ed49f297 user: dan tags: schemalint)
18:18
Fix another unused variable warning in fts5 code. (check-in: 61b4c120 user: dan tags: trunk)
18:08
Avoid a buffer overread when reading a corrupt fts5 structure record. (check-in: facbc424 user: dan tags: trunk)
17:01
Handle parser stack overflow when parsing fts5 query expressions. Fix some compiler warnings in fts5 code. (check-in: bc3f7900 user: dan tags: trunk)
15:37
Add JSON1 and FTS5 to the set of extensions subject to close compiler warning analysis. Fix some warnings in each. More (harmless) warnings still exist in FTS5. (check-in: cfe2eb88 user: drh tags: trunk)
13:30
Minor simplifications deferred to the next release. (Closed-Leaf check-in: a863729c user: drh tags: simplify)
2016-02-10
21:45
In the MSVC makefile, include the working directory so that it can pickup build generated files (e.g. sqlite3.h, etc). (check-in: e9e6000b user: mistachkin tags: trunk)
19:10
Add testcase() macros to the CHECK constraint avoidance logic. Avoid creating an unused VDBE label during CHECK constraint code generation. (check-in: 970881be user: drh tags: trunk)
18:24
Fix to previous check-in: Make sure CHECK constraints involving the ROWID are not ignored when the ROWID changes. (check-in: 7782cb1d user: drh tags: trunk)
16:52
Omit unnecessary CHECK constraints in UPDATE statements, when none of the columns referenced in the CHECK constraint are modified. (check-in: 02fbdbc7 user: drh tags: trunk)
16:03
Omit NOT NULL checks on unchanging columns in an UPDATE. (check-in: 6a3aaedf user: drh tags: trunk)
13:36
When generating the snapshot-tarball, truncate the date/time in the name to 12 significant digits (YYYYMMDDhhmm) omitting the seconds and fractional seconds. (check-in: 604f7775 user: drh tags: trunk)
13:17
Updates to the autoconf tarball README.txt file. (check-in: a3e911e3 user: drh tags: trunk)
2016-02-09
22:54
Update the snapshot tarball name to use the date (ISO8601 format) instead of the SHA1 hash in its name. (check-in: 070ec66f user: drh tags: trunk)
22:39
Add the new "snapshot-tarball" target to the unix makefiles, for building a tarball similar to "amalgamation-tarball" but named by the SHA1 hash of the current check-out rather than by the version number. (check-in: 4f360b2a user: drh tags: trunk)
22:00
Update the MSVC autoconf makefile with the recent changes from the primary one. (check-in: c7242aa3 user: mistachkin tags: trunk)
20:37
Fix the makefiles in the autoconf-tarball so that they build the command-line shell with SQLITE_ENABLE_EXPLAIN_COMMENTS. (check-in: 1135ad01 user: drh tags: trunk)
20:31
In the shell, use the appropriate string constant instead of a literal new-line. (check-in: 61951b15 user: mistachkin tags: trunk)
20:11
Enhance the command-line shell to be in auto-explain mode by default. It is no longer necessary to use the ".explain" command to put the shell into a mode where the EXPLAIN output is formatted nicely. That now happens automatically. (check-in: 751915cb user: drh tags: trunk)
20:04
Improved auto-detection of EXPLAIN output in the shell. (Closed-Leaf check-in: 6c6d7a6e user: drh tags: auto-explain)
18:39
Add auto-explain mode to the command-line shell. Default on. Auto-explain tries to automatically detect EXPLAIN queries and format them appropriately. (check-in: 1d62aa6b user: drh tags: auto-explain)
18:28
Fix MSVC makefile options that enable control-flow guard. (check-in: 51b6823f user: mistachkin tags: trunk)
17:12
Fix the top-level makefiles to always include SQLITE_ENABLE_EXPLAIN_COMMENTS when building the shell. Still need to fix main.mk and the amalgamation tarball. (check-in: 99228239 user: drh tags: trunk)
16:09
Code simplification: ALTER TABLE ADD COLUMN always upgrades the file_format to 4 if is not there already. No need to upgrade to only 2 or 3 since format 4 has now been supported for over 10 years. (check-in: e1d8ec85 user: drh tags: trunk)
15:50
Merge recent fixes and enhancements from trunk. (check-in: f0734017 user: drh tags: apple-osx)
15:44
Merge enhancements and fixes from trunk. (check-in: f040a5bb user: drh tags: sessions)
15:10
Merge latest trunk changes with this branch. (check-in: 1a4182ee user: dan tags: schemalint)
02:12
Make sure every co-routines has its own set of temporary registers and does not share temporaries, since a co-routine might expect the content of a temporary register to be preserved across an OP_Yield. Proposed fix for ticket [d06a25c84454a]. (check-in: ca72be86 user: drh tags: trunk)
2016-02-08
20:45
Fix spelling error in MSVC makefile comments. (check-in: 6eab74c9 user: mistachkin tags: trunk)
20:40
More work on Windows 10 SDK integration. (check-in: 1e563c6e user: mistachkin tags: trunk)
20:14
Fix a signed/unsigned comparison warning in fts5. (check-in: 85eb05dd user: dan tags: trunk)
20:06
Fix a compiler warning when compiling without SQLITE_ENABLE_FTS3_TOKENIZER. (check-in: 6926f28c user: drh tags: trunk)
19:40
Disable the two-argument form of the fts3_tokenizer() SQL function unless the library is built with -DSQLITE_ENABLE_FTS3_TOKENIZER. (check-in: e0eb217a user: dan tags: trunk)
19:36
Changes to help the tokenizer run about 33% faster. (check-in: a050e6f0 user: drh tags: trunk)
19:15
Add code to get the tokenizer character-class logic working for EBCDIC. (Closed-Leaf check-in: 04f7da77 user: drh tags: tokenizer-char-class)
03:23
Faster keywordCode() implementation by taking advantage of the fact that the input is always pure ASCII alphabetic and underscore and that the keyword table is always upper-case. (check-in: ff406b97 user: drh tags: tokenizer-char-class)
02:30
Demonstrate a much faster sqlite3GetToken() routine by using a lookup table to map initial token characters into a character class. This check-in does not work for EBCDIC. More optimization needed. (check-in: 9115baa1 user: drh tags: tokenizer-char-class)
2016-02-07
20:39
Fix harmless compiler warning in 'srcck1' tool and add it to the clean targets. (check-in: 852a529a user: mistachkin tags: trunk)
00:08
Add the sourcetest target to Makefile.msc. (check-in: ab269e72 user: drh tags: trunk)
2016-02-06
22:32
Add a utility program that looks for assert(), NEVER(), ALWAYS(), and testcase() macros that have side-effects, and reports errors when they are found. Also fix a bug that this utility detected as it was being tested. (check-in: b0b4624f user: drh tags: trunk)
19:48
Make sure variable declarations occur at the beginning of blocks, even with SQLITE_DEBUG enabled. (check-in: 2f7778e6 user: drh tags: trunk)
14:14
Fix an assert() to have a test instead of a side effect (check-in: a2952231 user: pdr tags: trunk)
2016-02-05
21:09
Add tests for and remove unreachable branches from fts5 in order to restore test coverage. (check-in: 22589018 user: dan tags: trunk)
19:40
More work on Windows 10 SDK integration. (Closed-Leaf check-in: ebace2c9 user: mistachkin tags: win10sdk)
19:18
Further streamlining of fts5 prefix query code. (check-in: ca91bd8a user: dan tags: trunk)
17:49
Make sure the "bak.db" database file does not actually exist before starting the "quota.test" testing. (check-in: 1cac6c45 user: drh tags: trunk)
16:46
From test scripts, remove stray "breakpoint" commands and blank lines at the ends of files. (check-in: a6b35273 user: drh tags: trunk)
14:34
Merge PRAGMA synchronous=EXTRA and OOM performance enhancements from trunk. (check-in: 332c8036 user: drh tags: begin-concurrent)
14:29
Merge OOM handling optimizations and PRAGMA synchronous=EXTRA as well as other enhancements from trunk. (check-in: 201fcbee user: drh tags: apple-osx)
14:15
Merge enhancements from trunk. (check-in: a533608c user: drh tags: sessions)
14:11
Improvements to the way out-of-memory conditions are handled, resulting in an almost 1% performance gain in the commmon case where OOM errors do not occur. (check-in: b082538d user: drh tags: trunk)
13:38
Add the slightly faster sqlite3DbMallocRawNN(db,n) routine for the majority cases where db is guaranteed to be not NULL. (Closed-Leaf check-in: 0a802e96 user: drh tags: oom-handling)
04:55
Improve ERRORLEVEL handling in the MSVC batch build tool sub-routine 'fn_UnsetVariable'. (check-in: fe123ab4 user: mistachkin tags: trunk)
04:50
OOM failures on sqlite3_errmsg16() in an app-defined function are no longer benign. (check-in: 9efb223f user: drh tags: oom-handling)
04:39
Another small tweak to the MSVC batch build tool. (check-in: 76718bbc user: mistachkin tags: trunk)
02:50
Minor simplification of schema error reporting. (check-in: a8846aee user: drh tags: oom-handling)
02:42
Further performance improvements that fall out of the mallocFailed changes. (check-in: d94416dd user: drh tags: oom-handling)
01:55
Improvements to the way that OOM errors are processed. (check-in: c3ef0347 user: drh tags: oom-handling)
2016-02-04
19:50
Temporarily back out the 0.5% performance improvement from check-in [632071bac5ff32]. Need a more elaborate solution that works with reentrant virtual tables and SQL functions. (check-in: 42736fb0 user: drh tags: trunk)
19:45
Further improve performance of unindexed fts5 prefix queries. (check-in: c9c6457d user: dan tags: trunk)
17:31
Avoid running some particularly time-consuming tests as part of veryquick.test. (check-in: f465944b user: dan tags: trunk)
11:48
Remove unnecessary sets of db->mallocFailed. (check-in: b787165b user: drh tags: trunk)
11:15
Use sqlite3_malloc64() instead of sqlite3_malloc() in the spellfix extension. (check-in: 634d008c user: drh tags: trunk)
10:28
Escape control characters in JSON. Fix for ticket [ad2559db380abf8]. (check-in: 4f1b5229 user: drh tags: trunk)
09:48
Refinements to synchronous logic: (1) Use PAGER_SYNCHRONOUS_FULL rather than the corresponding magic number. (2) Honor SQLITE_NO_SYNC on xDelete calls with sync (3) Count xDelete syncs during testing (4) Fix #ifs on SQLITE_EXTRA_DURABLE so that directory syncs on journal unlink are off by default. (check-in: e3157cb5 user: drh tags: trunk)
02:34
Add and use the sqlite3VdbeZeroRegister() interface for coding the common operation of writing zero into a register. (Leaf check-in: 1c8d3001 user: drh tags: zero-register)
2016-02-03
22:14
In the VDBE loop, only check for OOM errors at jumps rather than after every opcode, for about a 0.5% performance increase. (check-in: 632071ba user: drh tags: trunk)
20:04
Improve performance of fts5 prefix queries on detail=col tables. (check-in: ca11f46d user: dan tags: trunk)
19:52
Fix markup errors in comments used to generate the documentation - specifically in the documentation on the OP_Seek opcode. (check-in: ef252bc4 user: drh tags: trunk)
19:20
Add "PRAGMA synchronous=EXTRA" which syncs the directory containing the rollback journal when the rollback journal is deleted in order to commit a transaction in DELETE mode. (check-in: af924018 user: drh tags: trunk)
01:55
Enhance the internal sqlite3VdbeAddOpList() interface to automatically update jump destinations. Use this feature to simplify the AUTOINCREMENT code generator. (check-in: ae8b9d2e user: drh tags: trunk)
2016-02-02
21:19
Add tests to restore full coverage of fts5 code. (check-in: 063755c8 user: dan tags: trunk)
17:40
Enhance the performance of fts5 AND and OR queries. (check-in: 62ea9e5a user: dan tags: trunk)
02:53
Merge recent enhancements from trunk. (check-in: 347f6a80 user: drh tags: begin-concurrent)
02:30
Merge recent enhancements from trunk. (check-in: e6a4a163 user: drh tags: apple-osx)
02:22
Merge all recent enhancements from trunk. (check-in: f3f92001 user: drh tags: sessions)
02:04
Enhance the comment on the sqlite3_index_constraint object to bring attention to the fact than iColumn field can be negative for a rowid. (check-in: d8b7b199 user: drh tags: trunk)
00:59
Add the SQLITE_DBCONFIG_REQUIRE_WRITE_TXN connection setting, which if enabled requires all write operations to be enclosed within BEGIN ... COMMIT. (Leaf check-in: 7453790c user: drh tags: require-write-txn)
2016-02-01
21:48
Change the OP_SetCookie instruction to write the literal P3 value, not the value in register P3. (check-in: 6d7d4703 user: drh tags: trunk)
20:12
Improve performance of fts5 queries. (check-in: 2334e882 user: dan tags: trunk)
17:20
Number VDBE opcodes starting with 0 instead of 1, as this obviates the lower-bound test on "switch(opcode){...}", making the code smaller and faster. (check-in: 4c9222f7 user: drh tags: trunk)
16:36
Update walcrash.test to ensure that, during a particular test, enough data is written to cause SQLite to sync the wal file 14 times. (check-in: 5d7c0928 user: dan tags: trunk)
13:58
Fix a problem causing the OR/covering-index optimization to be disabled if compile time parameter SQLITE_MAX_ATTACHED were set to greater than 30. (check-in: a17712bf user: dan tags: trunk)
13:21
Minor simplification to the OP_AutoCommit opcode. Fix some code comments related to transaction control. (check-in: a9b6a067 user: drh tags: trunk)
00:21
Fix an assert() that might fail on a corrupt database. (check-in: 22eaced7 user: drh tags: trunk)
2016-01-30
21:09
Fix new test cases in stat.test so that they work with -DSQLITE_DEFAULT_AUTOVACUUM=1 builds. (check-in: a2810cf6 user: dan tags: trunk)
19:16
Performance enhancement for fts5 column filter queries on detail=full tables. (check-in: 13fb4aa6 user: dan tags: trunk)
16:59
Merge the implementation of OP_IdxRowid and OP_Seek so that OP_Seek no longer requires the rowid register and a separate OP_IdxRowid call. Shorter and faster prepared statements result. (check-in: 9bec50a1 user: drh tags: trunk)
15:52
Only honor the register subtype value if the MEM_Subtype flag is set. Revised and improved fix for ticket [f45ac567eaa9f9]. (check-in: 1f4c667f user: drh tags: trunk)
15:46
A different way to clear the subtype on VDBE registers when the value of the register is overwritten with new content. To fix [[f45ac567eaa9f93]. (Closed-Leaf check-in: 2e9fb129 user: dan tags: clear-subtype-flag)
14:53
Take care to clear the subtype on VDBE registers when the value of the register is overwritten with new content. (Closed-Leaf check-in: ec653cbc user: drh tags: clear-subtype-fail)
14:17
Output subtype information on register traces for PRAGMA vdbe_trace. (check-in: 96b78020 user: drh tags: trunk)
13:32
Add the BTREE_FORDELETE and BTREE_AUXDELETE flags to the b-tree layer interface and use them. Add assert() statement to verify that they are correct. (check-in: 85c46704 user: drh tags: trunk)
12:50
Simplification and size reduction to the printf logic. Remove the bFlags parameter from sqlite3VXPrintf() and sqlite3XPrintf(). Use sqlite3XPrintf() instead of sqlite3_snprintf() for rendering P4 values in EXPLAIN output. (check-in: 0bdb41c4 user: drh tags: trunk)
02:10
Make use of covering indexes in the OR optimization. (check-in: 9de3d712 user: drh tags: trunk)
00:45
Change the P4_INTARRAY so that always begins with a length integer. Print the content of the INTARRAY on EXPLAIN output. (Closed-Leaf check-in: 6c520d57 user: drh tags: covering-or)
2016-01-29
21:16
Add tests for the change on this branch. (check-in: 7cb697f8 user: dan tags: covering-or)
20:58
Different comment on the alternative cursor fields of VdbeCursor. (check-in: 6e3dcb6d user: drh tags: covering-or)
19:29
Experimental attempt to make better use of covering indexes within OR queries. (check-in: a323ac3a user: dan tags: covering-or)
19:04
Improvements to FORDELETE processing, including bug fixes and adding assert() statements to help verify correct operation. (Closed-Leaf check-in: 46080b04 user: drh tags: btree-fordelete-flag)
18:48
Remove a stray "exit" in a test script. (Closed-Leaf check-in: 10c88bf9 user: drh tags: fordelete-assert)
18:11
Avoid unnecessary WHERE clause term tests when coding a join where one of the tables contains a OR constraint. (check-in: 512caa1a user: drh tags: trunk)
18:04
Prepend "rc!=SQLITE_OK || " to the nExtraDelete assert() condition. (check-in: 2a055ed0 user: dan tags: fordelete-assert)
16:57
Avoid unnecessary WHERE clause term tests when coding a join where one of the tables contains a OR constraint. (Closed-Leaf check-in: ab946039 user: drh tags: OR-clause-improvement)
08:38
Avoid two more instances of pointer arithmetic on freed pointers. (check-in: 2910ef64 user: dan tags: trunk)
2016-01-28
18:22
Modify the order of terms in an "if" condition to avoid implicitly comparing a dangling pointer to NULL following an OOM error. (check-in: 5372f800 user: dan tags: trunk)
17:06
Modifications to ensure the nExtraDelete-related assert() statement does not fail. (check-in: f43ff8f8 user: dan tags: fordelete-assert)
08:58
Remove a duplicate "p->magic = VDBE_MAGIC_RUN;" line from vdbeaux.c. (check-in: 688eb3b4 user: dan tags: trunk)
02:47
Fix for pthread detection in the configure scripts. (check-in: 47633ffd user: drh tags: trunk)
00:04
Minor correction to the batch tool changes in the previous check-in. (check-in: 7c89d75d user: mistachkin tags: trunk)
2016-01-27
23:50
Make the MSVC batch build tool sub-routine 'fn_UnsetVariable' a bit more robust. (check-in: 1edd5f31 user: mistachkin tags: trunk)
16:26
Change the name of the BTREE_IDXDELETE flag to BTREE_AUXDELETE, to better reflect its purpose. (check-in: 1d3bf6be user: drh tags: fordelete-assert)
16:17
Fix tests in fordelete.test to test for the BTREE_AUXDELETE flag. (check-in: bbd25cf1 user: dan tags: fordelete-assert)
15:49
Add assert() statements on the nExtraDelete variable in vdbe.c to try to verify that the FORDELETE and IDXDELETE flags are being generated correctly. Those flags are not currently generated correctly, and so the assert()s trip on this check-in. (check-in: dde1db0d user: drh tags: fordelete-assert)
07:28
Support building for Windows 10 desktop using 'MinCore.lib'. (check-in: 4bf89891 user: mistachkin tags: trunk)
2016-01-26
23:32
Merge all recent trunk enhancements. (check-in: 9a71d56d user: drh tags: btree-fordelete-flag)
20:19
Performance improvements for fts5, particularly detail=col mode. (check-in: a3d7b8ac user: dan tags: trunk)
20:08
Further minor performance improvements and code-size reductions related to fts5 column filters on detail=col tables. (Leaf check-in: b4ac61ae user: dan tags: fts5-perf)
19:30
Improve the performance of fts5 column filters on detail=col tables. (check-in: 249a2d07 user: dan tags: fts5-perf)
17:08
Enhance fts5txt2db.tcl, a script used to generate fts5/fts4 databases for performance testing. (check-in: c646e403 user: dan tags: fts5-perf)
15:23
Change the automatic index mechanism so that it avoids creating transient indexes on columns that are known to have low cardinality. (Leaf check-in: 12ef3a8f user: drh tags: autoindex-planning)
14:48
Fix issues on unix with opening database files via symlinks that are not in the current working directory. And with nested symlinks. (check-in: 4003db4a user: dan tags: trunk)
13:56
Ensure that unixFullpathname() always nul-terminates its output buffer, even when returning an error. (Closed-Leaf check-in: 4a438556 user: dan tags: follow-symlinks)
00:12
Remove an unused variable. (check-in: 1c2656c1 user: drh tags: follow-symlinks)
2016-01-25
23:24
Add the ability to do Windows builds to the amalgamation tarball. (check-in: abd2b357 user: drh tags: trunk)
23:19
Minor changes to the autoconf/README.txt file. (Closed-Leaf check-in: 6df8a9c0 user: drh tags: msvcMakeMin)
22:08
Fix a compiler warning about doing pointer arithmetic involving a NULL pointer even though the result of computation is never used. (check-in: 7c49a947 user: drh tags: trunk)
18:43
Only use lstat() if the HAVE_LSTAT macro is defined. Fix some test file issues. (check-in: 8a6e4147 user: dan tags: follow-symlinks)
18:05
Simplify the unixFullpathname() function. This adds a dependency on lstat(). (check-in: f71249d3 user: dan tags: follow-symlinks)
17:04
Fix issues on unix with opening database files via symlinks that are not in the current working directory. And with nested symlinks. (check-in: 80398fd4 user: dan tags: follow-symlinks)
15:57
Replace the OP_SetIfNotPos operator with OP_OffsetLimit in the VDBE, for simpler and smaller code. (check-in: 7ac017a4 user: drh tags: trunk)
13:55
Add the SQLITE_EXTRA_DURABLE compile-time option. (check-in: 30671345 user: drh tags: trunk)
02:15
Small simplification to the prepare statement opcode memory reuse logic. Easier to read, and slightly smaller and faster. (check-in: 8a1deae4 user: drh tags: trunk)
01:07
Small simplification and performance improvement in memsys5Free(). (check-in: 0a9cff5c user: drh tags: trunk)
2016-01-23
22:55
Add the SQLITE_SPELLFIX_STACKALLOC_SZ compile-time option to control how much stack space is available for use as the Wagner matrix in editDest3 of the spellfix extension. (check-in: dd0100dd user: drh tags: trunk)
21:57
More updates to the README. (check-in: 9f02868d user: mistachkin tags: msvcMakeMin)
20:43
Updates to the autoconf README file. (check-in: 4ce60fa4 user: drh tags: msvcMakeMin)
20:34
Move Makefile.min.msc into the autoconf subdir where it belongs and change its name to Makefile.msc. Adjust build scripts accordingly. (check-in: 12eb8db7 user: drh tags: msvcMakeMin)
20:16
Minor coding style tweaks for the mkmsvcmin tool. (check-in: c15e0fc4 user: mistachkin tags: msvcMakeMin)
20:09
Adjust the amalgamation-tarball build process so that it includes the MSVC makefile and the sqlite3.rc resource file. (check-in: e420f3dc user: drh tags: msvcMakeMin)
19:47
Improved comments on the transformation script and on the generated Makefile. (check-in: c6e633ab user: drh tags: msvcMakeMin)
19:24
Use the -integer option when sorting list elements. (check-in: 949aa614 user: mistachkin tags: msvcMakeMin)
18:51
Fix an fts5 problem with using both xPhraseFirst() and xPhraseFirstColumn() within a single statement in detail=col mode. (check-in: 72d53699 user: dan tags: fts5-perf)
18:24
Changes to spellfix to try to get it to use stack space instead of heap space in cases where that makes sense. (check-in: dfcebc73 user: drh tags: trunk)
16:20
Merge trunk changes (including fixes for warnings in fts5) with this branch. (check-in: ceccc9ad user: dan tags: fts5-perf)
15:57
Fix some signed/unsigned comparison compiler warnings in fts5. (check-in: 3be336aa user: dan tags: trunk)
14:45
Fix a problem involving detail=col and column filters. (check-in: 7558a0ad user: dan tags: fts5-perf)
14:05
Remove an assert() that can be false if compiled with SQLITE_USE_ALLOCA. (check-in: f0a551ed user: drh tags: trunk)
07:53
Add tooling to create an MSVC Makefile capable of building the core library and shell only, using a pre-built amalgamation. (check-in: c46f1a13 user: mistachkin tags: msvcMakeMin)
01:54
Cleanup localtime() support for Windows CE. (check-in: 39759a55 user: mistachkin tags: winCeLocalTime)
00:07
More work on the MSVC build. (check-in: a79c46bc user: mistachkin tags: trunk)
2016-01-22
23:17
In the TCL interface, if a database connection object was opened with the -uri 1 option, then also honor URI filenames for the "backup" and "restore" commands. (check-in: a1c8116c user: drh tags: trunk)
22:16
More MSVC makefile cleanup. (check-in: df22556f user: mistachkin tags: trunk)
19:48
Experimental performance enhancements for fts5. (check-in: b5a57b81 user: dan tags: fts5-perf)
19:44
Reenable the xCurrentTime and xGetLastError methods on the unix VFSes as long as SQLITE_OMIT_DEPRECATED is not defined. (check-in: c11c85fd user: drh tags: trunk)
17:48
Add the sqlite3TokenInit() utility function. (check-in: 73231753 user: drh tags: trunk)
15:44
Have the dbstat module dequote any argument passed to the CREATE VIRTUAL TABLE statement before attempting to match it against the names of attached databases. (check-in: e60461e9 user: dan tags: trunk)
14:46
Merge latest trunk changes into this branch. (check-in: 9341491c user: dan tags: schemalint)
14:44
Fix handling of transitive constraints in schemalint.tcl. (check-in: 44edc1aa user: dan tags: schemalint)
14:32
Update the schemalint.tcl script so that the argument to a -select option may be either an SQL statement or the name of a file containing an SQL statement (check-in: d4e37767 user: dan tags: schemalint)
04:22
Enable FTS4 when building the shell with the MSVC makefile. (check-in: e4c07df5 user: mistachkin tags: trunk)
03:54
Further refinements to the MSVC makefile. (check-in: 67625b96 user: mistachkin tags: trunk)
01:25
MSVC makefile enhancements for use with the Windows 10 SDK. (check-in: ac2e9d3d user: mistachkin tags: trunk)
2016-01-21
18:56
Fix typo in 'Makefile.in'. (check-in: 29a51c6d user: mistachkin tags: trunk)
17:25
Disable the RESTRICT foreign key action if "PRAGMA defer_foreign_keys" is set. (Closed-Leaf check-in: 82470d1c user: dan tags: disable-restrict)
17:06
Add a new hint bit on the flags parameter of sqlite3BtreeDelete(). The new BTREE_IDXDELETE bit indicates that the call is to delete an index entry corresponding to a table row that has already been deleted. (check-in: ac2cbadd user: drh tags: btree-fordelete-flag)
15:55
Improved comments on the FORDELETE hint. No logic changes. (check-in: a3cec529 user: drh tags: trunk)
2016-01-20
18:47
Add 'rbu' to the clean targets. (check-in: f60f0250 user: mistachkin tags: trunk)
16:36
Add a -detail option to the loadfts5.tcl script. For creating tables with the detail= option set. (check-in: 81e830e2 user: dan tags: trunk)
16:02
Merge the LIKE-operator bug fix from trunk. (check-in: 36cb3d6e user: drh tags: sessions)
15:27
Version 3.10.2 (Leaf check-in: 17efb420 user: drh tags: release, version-3.10.2, branch-3.10)
15:20
Fix a problem in autoconf/configure.ac causing --enable-readline to fail if libedit was not present. (check-in: d4a6425f user: dan tags: branch-3.10)
15:19
Fix a problem in autoconf/configure.ac causing --enable-readline to fail if libedit was not present. (check-in: e8adeb64 user: dan tags: trunk)
15:08
Fix the build so that it works for SQLITE_OMIT_WAL again. (check-in: d1c15de5 user: drh tags: branch-3.10)
15:05
Fix a potential use-after-free problem when compiling with SQLITE_HAS_CODEC. (check-in: b94a3a37 user: drh tags: branch-3.10)
14:32
Increase version number to 3.10.2. (check-in: c1f918dc user: drh tags: branch-3.10)
14:30
Case folding in the LIKE operator should look at all bits of the character, not just the lower 8 bits. Fix for ticket [80369eddd5c94]. This is a back-out of check-in [0a99a8c4facf] with a testcase added. (check-in: 29dc4a3e user: drh tags: branch-3.10)
14:22
Case folding in the LIKE operator should look at all bits of the character, not just the lower 8 bits. Fix for ticket [80369eddd5c94]. This is a back-out of check-in [0a99a8c4facf] with a testcase added. (check-in: 204432ee user: drh tags: trunk)
12:18
Merge recent enhancements from trunk. (check-in: 5520f600 user: drh tags: begin-concurrent)
11:40
Merge all recent enhancements from trunk. (check-in: 3ed49691 user: drh tags: apple-osx)
11:33
Merge recent enhancements from trunk. (check-in: 327af5f6 user: drh tags: sessions)
08:47
Improve performance of sqlite3VtabImportErrmsg(). (check-in: 18d61c8e user: dan tags: trunk)
03:36
Performance improvement in sqlite3DbMallocRaw(). (check-in: ff8eadbe user: drh tags: trunk)
02:36
Suppress the display of the P4 operand in EXPLAIN output when an opcode has been converted into a No-op. (check-in: 9f8297f8 user: drh tags: trunk)
02:21
Remove an unnecessary memset() from the symbol name resolver. (check-in: da527dda user: drh tags: trunk)
02:01
Remove an unnecessary memset() for a small size reduction and speed improvement. (check-in: 730d7efb user: drh tags: trunk)
01:48
During compilation, transfer the azVar[0..nzVar-1] array from Parse to Vdbe rather than copying it. Smaller and faster code. (check-in: 80dd495f user: drh tags: trunk)
01:32
Very small simplification to the btree balancer. (check-in: f421adf5 user: drh tags: trunk)
2016-01-19
21:36
Fix an incorrect VFS version number check in the threadtest3.c test program. (check-in: 5bf6442b user: drh tags: trunk)
17:54
Fix two harmless compiler warnings about comparisons of dangling pointers. (check-in: 86944f19 user: drh tags: trunk)
16:06
Add further fts5 tests. 100% code coverage is finally restored. (check-in: b914ece0 user: dan tags: trunk)
2016-01-18
17:48
Add tests for fts5. Fix a crash that can occur in fts5 if the database content is corrupted. (check-in: acaf4264 user: dan tags: trunk)
13:18
Avoid unnecessary calls to memset() for a small performance improvement. (check-in: 9e8c23ac user: drh tags: trunk)
09:08
Add a debugging function to print human-readable versions of fts5 detail=none leaf pages. (check-in: 8358af36 user: dan tags: trunk)
00:46
Simplification of the VDBE bytecode for incremental blob I/O. (check-in: d23849f6 user: drh tags: trunk)
00:20
Fix a problem with SQLITE_TEST_REALLOC_STRESS. (check-in: 0aaf3feb user: drh tags: trunk)
2016-01-16
21:06
Add extra tests to cover untested branches in fts5. (check-in: 61deab04 user: dan tags: trunk)
20:50
Improvements to the way sqlite3VdbeAddOpList() works, resulting in a slightly smaller and faster binary. (check-in: 88ceb588 user: drh tags: trunk)
18:58
Add further tests for fts5. Fix some problems with detail=col mode and auxiliary functions. (check-in: de77d602 user: dan tags: trunk)
15:12
Use sqlite3VdbeAddOp4() rather than a separate sqlite3VdbeChangeP4() call, for a slightly smaller and faster binary. (check-in: a4258cd4 user: drh tags: trunk)
03:16
Fix a potential use-after-free problem when compiling with SQLITE_HAS_CODEC. (check-in: 653ea15a user: drh tags: trunk)
2016-01-15
21:55
Remove an unnecessary memset(). (check-in: 689421a9 user: drh tags: trunk)
19:54
Rationalize some code in fts5_storage.c. Add tests to cover recently added branches in fts5. (check-in: 3b72df40 user: dan tags: trunk)
16:11
Remove unnecessary de-initialization of the Parse object. (check-in: 75ab30c5 user: drh tags: trunk)
15:06
Work toward making the schema parsing logic simplier and more compact. (check-in: c52ca2c0 user: drh tags: trunk)
05:39
Fix a couple C99-isms in FTS5 that cause compile errors on MSVC. (check-in: 584848d4 user: mistachkin tags: trunk)
2016-01-14
22:19
Combine the xFunc and xStep pointers of the FuncDef object into a single pointer xSFunc. (check-in: 0d1b3d7d user: drh tags: trunk)
20:05
Add a test to verify that the fts3 and fts5 "unicode61" tokenizers are byte for byte compatible. (check-in: 8ec83143 user: dan tags: trunk)
19:32
Simplification to the ISO8610 parser in the imnplementation of date/time functions. (check-in: b9159f42 user: drh tags: trunk)
18:01
Minor adjustments to the MSVC makefile. (check-in: e2cba1bb user: mistachkin tags: trunk)
15:46
Merge the latest enhancements and fixes from trunk. (check-in: fccc5f20 user: dan tags: begin-concurrent)
15:03
Merge the latest enhancements and fixes from trunk. (check-in: d85774e0 user: drh tags: apple-osx)
14:48
Merge the latest fixes and enhancements from trunk. (check-in: 007e5c6d user: drh tags: sessions)
14:33
Yet another change to FTS5 trying to get it to merge successfully into sessions. (check-in: 8dedff3b user: drh tags: trunk)
14:29
Fix more compiler warnings in FTS5. (check-in: f791fc70 user: drh tags: trunk)
14:19
Fix another compiler warning in fts5 code. (check-in: d17bc2c9 user: dan tags: trunk)
14:15
Fix compiler warnings in fts5. (check-in: 5a343cc0 user: dan tags: trunk)
13:22
Fix harmless compiler warnings in RBU and add RBU to the autoconf and windows makefiles. (check-in: fabe78c5 user: drh tags: trunk)
12:23
Fix harmless compiler warnings in sqldiff.c. (check-in: 74808a79 user: drh tags: trunk)
01:56
Fix the build so that it works for SQLITE_OMIT_WAL again. (check-in: d55a557b user: drh tags: trunk)
00:01
Version 3.10.1 (check-in: 254419c3 user: drh tags: release, version-3.10.1, branch-3.10)
2016-01-13
21:23
Look for pthread_mutexattr_init() instead of pthread_create() in autoconf scripts, to work around issues with ASAN. (check-in: 9c3a0dc2 user: drh tags: trunk)
18:26
Version number to 3.10.1. (check-in: 4660da25 user: drh tags: branch-3.10)
18:25
Add documentation for new API functions to the comments in fts5.h. (check-in: 14d296fa user: dan tags: trunk)
18:21
Add the SQLITE_FCNTL_JOURNAL_POINTER file control. (check-in: ea9ce228 user: drh tags: branch-3.10)
18:12
Add the SQLITE_FCNTL_JOURNAL_POINTER file control. (check-in: ad3daa54 user: drh tags: trunk)
18:06
Add documentation for the SQLITE_FCNTL_JOURNAL_POINTER file-control. (Closed-Leaf check-in: 807c5aee user: drh tags: file-control-journal)
17:59
When the block sorting optimization is used in a scalar subquery, be sure to exit the loop as soon as the first valid output row is received. Fix for ticket [cb3aa0641d9a4]. (check-in: 8b4f5080 user: drh tags: branch-3.10)
17:50
When the block sorting optimization is used in a scalar subquery, be sure to exit the loop as soon as the first valid output row is received. Fix for ticket [cb3aa0641d9a4]. (check-in: cdbb0947 user: drh tags: trunk)
2016-01-12
19:45
Add the "detail" option to fts5. Used to reduce the amount of information stored in an fts5 index. (check-in: a220e85f user: dan tags: trunk)
19:37
Add the ".vfslist" command to the command-line shell. (check-in: 5727562b user: drh tags: trunk)
19:28
Improve performance of fts5 low level iterators. (Closed-Leaf check-in: bc5118f4 user: dan tags: fts5-offsets)
14:10
Fix a harmless use of an uninitialized variable following system errors in the multi-threaded sorter. (check-in: 4bb2c1df user: drh tags: trunk)
04:08
Remove an unused field from the MemPage object. (check-in: 5fc0a4c1 user: drh tags: trunk)
02:28
Make sure all bytes of the WAL file are initialized even if the checksums are not being computed until commit due to WAL overwrite. (check-in: 1f44a9bd user: drh tags: trunk)
02:00
Fix an uninitialized field in the Select object when SELECTTRACE is enabled. (check-in: fc628516 user: drh tags: trunk)
00:37
Various #ifdef enhancements for improved VxWorks support. (check-in: 75cd41ff user: drh tags: trunk)
2016-01-11
22:58
Performance optimization in the sqlite3VdbeChangeP4() routine of the code generator. (check-in: 28bd8d5f user: drh tags: trunk)
22:43
Fix duplicate test number in 'waloverwrite'. (check-in: f5fb8268 user: mistachkin tags: trunk)
18:30
Merge trunk with this branch. (check-in: a73d245f user: dan tags: fts5-offsets)
18:23
Add the fts5speed.tcl script to ext/fts5/tool/. (check-in: 2c0b9355 user: dan tags: fts5-offsets)
18:05
Performance optimization on the Column opcode. (check-in: ecc98bef user: drh tags: trunk)
17:30
Fix bugs in fts5 synonym processing for detail=col and other modes. (check-in: 0e3c5454 user: dan tags: fts5-offsets)
14:19
Performance optimization in sqlite3WalkExpr(). (check-in: 2f8bd5fa user: drh tags: trunk)
13:10
Merge recent enhancements, and especially the WAL overwrite change, from trunk. (check-in: c4a858b2 user: drh tags: sessions)
13:03
Import the version number change to 3.11.0. (check-in: 132772d1 user: drh tags: apple-osx)
12:52
Increase the version number to 3.11.0 due to the WAL overwrite enhancement. (check-in: 8e807bfa user: drh tags: trunk)
12:49
Merge enhancements from trunk, and in particular the WAL overwrite feature. (check-in: 79125ec9 user: drh tags: apple-osx)
12:13
If a single page is written to the wal file more than once, instead of appending the second and subsequent copy to the wal file, overwrite the first. Update: See the important bug fix at [f694e60a]! (check-in: d493d4f1 user: dan tags: trunk)
08:12
Add a test case to waloverwrite.test to check that savepoint rollback does not cause a problem. (Closed-Leaf check-in: 87dae56c user: dan tags: wal-overwrite-frames)
03:48
Slightly smaller and faster LIKE/GLOB comparison implementation. (check-in: 5dddcc78 user: drh tags: trunk)
00:52
Improved testability. (check-in: e83d3a2a user: drh tags: wal-overwrite-frames)
2016-01-09
23:55
All WAL frame overwrites even if there are active savepoints. This is safe because a ROLLBACK TO will cause all reverted pages to be rewritten to the WAL file prior to COMMIT. (check-in: 99b31a6b user: drh tags: wal-overwrite-frames)
18:57
If it is known that checksums will be recalculated on transaction commit, skip calculating checksums when appending frames to the wal file. When recalculating checksums, recalculate them starting with the first overwritten frame - not the first frame in the transaction. (check-in: 16b34f25 user: dan tags: wal-overwrite-frames)
16:39
If a single page is written to the wal file more than once, have each subsequent copy overwrite the original frame. (check-in: 5d113aef user: dan tags: wal-overwrite-frames)
2016-01-08
22:31
Typo fix in the previous commit. (check-in: 52c16603 user: drh tags: trunk)
22:18
More #ifdef fixes for the unix VFS. (check-in: 122c111e user: drh tags: trunk)
19:34
Fix the build for SQLITE_OMIT_SHARED_CACHE, which was broken, possibly by check-in [2d96aeba]. (check-in: 3392f8fa user: drh tags: trunk)
19:17
Fix a problem with #ifdefs on the system calls in the unix VFS that causes problems when compiling with SQLITE_OMIT_WAL. (check-in: ceceea4c user: drh tags: trunk)
17:28
Remove an obsolete #ifdef related to iOS support. (check-in: e9a51d2a user: drh tags: trunk)
17:21
Begin adding fts5 tests involving synonyms and detail=none/col tables. (check-in: b3e6f15e user: dan tags: fts5-offsets)
12:46
Reduce the number of calls to memset() in sqlite3DbMallocZero(). (check-in: cede2bf8 user: drh tags: trunk)
08:35
Fix test file vtabH.test so that it works with SQLITE_ENABLE_ICU builds. (check-in: 19c1f448 user: dan tags: trunk)
07:53
Fix fts5vocab.test so that it works with detail=none tables. (check-in: d9135cc7 user: dan tags: fts5-offsets)
02:27
Add the experimental SQLITE_FCNTL_JOURNAL_POINTER file control for obtaining the sqlite3_file pointer associated with a rollback journal or WAL file. (check-in: a02ace9a user: drh tags: file-control-journal)
2016-01-07
21:12
Omit performance tracking from the memsys5 memory allocator if neither SQLITE_DEBUG nor SQLITE_TEST are defined. (check-in: af5c7714 user: drh tags: trunk)
20:07
Update the fts5vocab module to work with detail=col and detail=none tables. (check-in: eedd095d user: dan tags: fts5-offsets)
17:19
Fix to cause BtShared.db to be set correctly on shared-cache connections in SQLITE_THREADSAFE=0 builds. Added assert()s to verify the correct setting of BtShared.db. (check-in: 2d96aeba user: drh tags: trunk)
17:09
Small performance and size optimization spotted while working on the shared-cache problem. (check-in: 828958ff user: drh tags: trunk)
16:43
Add some assert() statements to verify, where possible, that BtShared.db is set correctly. (Closed-Leaf check-in: 359277e0 user: dan tags: shared-cache-fix)
16:06
Have the vdbe layer call sqlite3BtreeEnter() on all b-trees in use from within sqlite3VdbeExec() even in SQLITE_THREADSAFE=0 builds. This ensures that BtShared.db is set correctly. (check-in: d0214602 user: dan tags: shared-cache-fix)
02:06
Add the "sqlite3 -sourceid" command in the TCL interface. Use that command and others to output additional information about the test configuration at the conclusion of a TCL test. (check-in: 4f80440b user: drh tags: trunk)
2016-01-06
20:50
Merge updates from trunk. (check-in: 5cbab637 user: mistachkin tags: altShellFix)
19:43
Fix a test script problem caused by a change in constraint handling within the core. (check-in: 625695b3 user: dan tags: fts5-offsets)
19:35
Merge latest trunk changes into this branch. (check-in: e7dcd013 user: dan tags: fts5-offsets)
18:53
Fix an fts5 problem involving detail=none, "ORDER BY rowid DESC" and deleted items. Also add tests to verify that the documented operator precedences are correct. (check-in: 8d05cfd4 user: dan tags: fts5-offsets)
15:54
Disable the --limit-mem option on fuzzcheck unless the SQLITE_ENABLE_MEMSYS5 or SQLITE_ENABLE_MEMSYS3 compile-time options are used. (check-in: 55a11fd6 user: drh tags: trunk)
15:49
Merge changes for version 3.10.0. (check-in: e1d2ffc0 user: drh tags: begin-concurrent)
15:14
Merge changes for version 3.10.0. (check-in: fa4705c9 user: drh tags: sessions)
14:35
Merge all version 3.10.0 updates. (check-in: 77c28c2b user: drh tags: apple-osx)
11:01
Version 3.10.0 (check-in: fd0a50f0 user: drh tags: trunk, release, version-3.10.0)
10:17
Fix a problem with the xPhraseFirstColumn() API in detail=col mode. Remove some unused test code from fts5ac.test. (check-in: a4e55f73 user: dan tags: fts5-offsets)
2016-01-05
21:04
Rationalize and extend some fts5 test code. Fix bugs revealed by the same. (check-in: fd217fdb user: dan tags: fts5-offsets)
03:39
Always use -DSQLITE_ENABLE_MEMSYS5 for fuzzcheck so that the --limit-mem option will work. (check-in: a8556977 user: drh tags: trunk)
03:39
Another attempt to get reuse of excess opcode array space working correctly on all architectures and platforms. (check-in: 2f858374 user: drh tags: trunk)
01:48
Permit the 'test_fs' test module to be compiled and used on MinGW. (check-in: ac27f38e user: mistachkin tags: trunk)
2016-01-04
23:43
Fix a corner case in the opcode-array reuse logic where the number of bytes of reusable space might be computed to be a negative number, due to unusual system alignment restrictions and rounding error. (check-in: 1aa53014 user: drh tags: trunk)
19:12
Fix an OOM handling problem in fts5 detail=none and detail=col modes. Also a bug in the xInst() API when used with detail=col and column filtering expressions. Update the matchinfo() test function so that 'b' is fast with detail=col tables. (check-in: ee38f9df user: dan tags: fts5-offsets)
19:02
Merge in last-minute patches for the 3.10.0 beta. (check-in: c785cd78 user: drh tags: sessions)
16:19
Update more fts5 tests to run in detail=none and detail=column modes as well as the default detail=full. (check-in: 3fcf3b1e user: dan tags: fts5-offsets)
13:06
Fix the conflict2.test module which was broken by check-in [e30062e9f6c]. (check-in: b779ca8a user: drh tags: trunk)
12:07
A new approach to very large sqlite3_mprintf() strings: Back out the [d655a665] check-in and instead make the size fields in StrAccum unsigned. Strings generated by sqlite3_mprintf() can now be as large as 2^31-1 bytes. (check-in: 7adb789f user: drh tags: trunk)
04:44
Improved comment on the vtabH-3.1 test. (check-in: 22abe080 user: drh tags: trunk)
04:41
Adjust the vtabH.test module to ignore files in the root directory of Windows machines that contain the "$" character. (check-in: 73e33550 user: drh tags: trunk)
04:28
Limit the length of sqlite3_mprintf() output to 2^30 bytes, even if SQLITE_MAX_LENGTH is set larger at compile-time. (check-in: d655a665 user: drh tags: trunk)
03:48
Fix a harmless compiler warning. (check-in: 4b404a99 user: drh tags: trunk)
01:08
Add releasetest.tcl cases for SQLITE_LIKE_DOESNT_MATCH_BLOB and for SQLITE_ENABLE_CURSOR_HINTS. (check-in: f300c35e user: drh tags: trunk)
2016-01-03
18:59
Alternative to [76f5efa6], move definition of utf8_printf up. (check-in: 54c5522d user: mistachkin tags: altShellFix)
18:07
Bug fix: the conflict resolution behavior for the implied NOT NULL constraint on the PRIMARY KEY of a WITHOUT ROWID table should be ABORT. (check-in: e30062e9 user: drh tags: trunk)
11:27
Fix a premature reference to utf8_printf in shell.c. (check-in: 76f5efa6 user: drh tags: trunk)
11:17
Add the number of cores used and the name of the host computer to the summary at the end of releasetest.tcl. (check-in: cd3ae0f1 user: drh tags: trunk)
2016-01-02
19:01
Changes to run many fts5 tests with detail=none and detail=col tables as well as the default detail=full. Also fixes for the bugs uncovered by running said tests. (check-in: 6322a1d9 user: dan tags: fts5-offsets)
05:00
Fix a (harmless) typo in an #ifdef for SQLITE_ENABLE_CURSOR_HINTS (check-in: 2047d2de user: drh tags: trunk)
2016-01-01
16:42
Remember the size of the Vdbe.aOp[] array in bytes, to avoid unnecessary calls to sqlite3_msize(). (check-in: 3e852804 user: drh tags: trunk)
16:26
Avoid misaligned memory allocations on Sparc in sqlite3VdbeMakeReady(). This fixes a problem introduced by check-in [a9e819082b]. (check-in: a304e346 user: drh tags: trunk)
14:14
Merge recent trunk enhancements. (check-in: 6bea792c user: drh tags: begin-concurrent)
13:31
Merge all recent trunk enhancements. (check-in: 5b700f31 user: drh tags: apple-osx)
13:25
Merge the latest enhancements from trunk. (check-in: c0be246a user: drh tags: sessions)
03:37
Fix an assert() that might be false for a corrupt database. (check-in: 68360cd2 user: drh tags: trunk)
00:15
Remove unreachable branches from the new JSON aggregate functions. (check-in: 6e30f8c6 user: drh tags: trunk)
2015-12-31
22:29
Fix the ieee754.test module so that it works both on systems that report infinity as "inf" and as "Inf". (check-in: d41d4d73 user: drh tags: trunk)
19:06
In the shell, use utf8_printf() when any string formatting is present and raw_printf() otherwise. (check-in: 8cf01fff user: mistachkin tags: trunk)
19:04
Fix harmless compiler warning seen with MSVC. (check-in: 98ec778d user: mistachkin tags: trunk)
18:39
Fix the fts5 integrity-check code so that it works with detail=none tables. (check-in: 3a1df69e user: dan tags: fts5-offsets)
17:36
Fix some problems with fts5 detail=none tables. Some still remain. (check-in: 6a6f7bc4 user: dan tags: fts5-offsets)
15:34
Fix harmless compiler warnings associated with SQLITE_ENABLE_HIDDEN_COLUMNS. (check-in: 9c392c10 user: drh tags: trunk)
04:34
Small size and performance optimization to the VDBE comparison opcodes. (check-in: 7a0b9413 user: drh tags: trunk)
2015-12-30
20:50
Use the OvflOffset() macro to try to remove some magic numbers from btree.c. (Leaf check-in: 1541607d user: drh tags: ovfloffset-macro)
19:58
Updates to fts5 to support detail=none mode. As of this commit, many cases are still broken. (check-in: ac8f4cf0 user: dan tags: fts5-offsets)
18:18
Reduce the size of the CellInfo object from 32 to 24 bytes on 64-bit machines, for a small performance increase and library size reduction. (check-in: 6a4cfc7a user: drh tags: trunk)
17:03
Enhance the command-line shell so that it can handle MBCS characters on input and output. (check-in: 3d81dfe3 user: drh tags: trunk)
16:51
Changes to the way that the default BINARY collating sequence is recorded result in a slightly smaller and slightly faster executable. More work could be done to make this cleaner. (check-in: 2081d757 user: drh tags: trunk)
15:18
Simplification to the xfer-optimization logic. (check-in: f35ba018 user: drh tags: trunk)
14:06
Remove unnecessary tests from the LIKE pattern matcher. Slightly faster and slightly smaller, and it should also now works with EBCDIC. (check-in: 0a99a8c4 user: drh tags: trunk)
13:36
Enhance the command-line shell to handle MBCS characters on input and output. (Closed-Leaf check-in: a0a08b8c user: drh tags: mbcs-shell)
01:07
Add the json_group_array() and json_group_object() aggregate functions to the JSON1 extension. (check-in: 7f386a93 user: drh tags: trunk)
2015-12-29
19:35
Add the xPhraseFirstColumn() and xPhraseNextColumn() API functions to fts5. For iterating through the set of columns that contain intances of a phrase. (check-in: 8c30605b user: dan tags: fts5-offsets)
2015-12-28
19:55
Change the name of the offsets=0 option to "detail=column". Have the xInst, xPhraseFirst and other API functions work by parsing the original text for detail=column tables. (check-in: 228b4d10 user: dan tags: fts5-offsets)
2015-12-24
14:53
Avoid a harmless compiler warning on systems where the byteorder cannot be determined at compile-time. (check-in: 7c7b7f26 user: drh tags: trunk)
2015-12-23
16:42
Fix some harmless gcc compiler warnings. Mostly in fts5, but also two in the core code. (check-in: 5d44d4a6 user: dan tags: trunk)
10:54
Enhance the 'utc' modifier on date/time functions so that if the LHS is already known to be in UTC, the modifier becomes a no-op. This is not an incompatibility because the behavior is documented as "undefined" in that scenario. (check-in: b910a3d5 user: drh tags: trunk)
2015-12-22
18:54
Updates so that fts5 API functions xInst, xPhraseFirst and xPhraseNext work with the offsets=0 option. (check-in: 69bffc16 user: dan tags: fts5-offsets)
2015-12-21
18:45
Fix an fts5 integrity-check problem that affects offsets=0 tables with prefix indexes. (check-in: 609a0bc7 user: dan tags: fts5-offsets)
15:22
Ensure that the Expr objects that describe indexed expressions are not modified by code generation. Fix for an assert() problem found by Jon Metzman using AFL. (check-in: 34073ce8 user: drh tags: trunk)
2015-12-18
19:07
Fix a problem with prefix queries on fts5 offsets=0 tables. (check-in: ad0987d8 user: dan tags: fts5-offsets)
16:29
Micro-optimizations and comment fixes on the mem5.c memory allocator module. (check-in: 8bf5e056 user: drh tags: trunk)
03:59
Reduce the size of the CellInfo object from 32 to 24 bytes on 64-bit machines. (Closed-Leaf check-in: 78507154 user: drh tags: optimize-cellinfo)
2015-12-17
20:36
Add the "offsets=0" option to fts5, to create a smaller index without term offset information. A few things are currently broken on this branch. (check-in: 40b5bbf0 user: dan tags: fts5-offsets)
19:17
Make the VdbeCursor object even smaller. But the resulting library is bigger and slower than trunk. This branch is a failed experiment. (Leaf check-in: 896a06cc user: drh tags: optimize-vdbecursor)
17:30
Reduce the size of the VdbeCursor object by a pointer (the pBt pointer used for ephemeral tables). (check-in: 98b710c3 user: drh tags: optimize-vdbecursor)
14:18
Fix the spellfix1_scriptcode() function to ignore whitespace and punctuation, and to recognize hebrew and arabic scripts. (check-in: 7adfa4a5 user: drh tags: trunk)
13:28
Fixes for harmless compiler warnings. (check-in: 85ebd46c user: drh tags: trunk)
2015-12-16
23:30
Fix even more harmless compiler warnings. (Closed-Leaf check-in: 1d0e6aa1 user: mistachkin tags: msvcWarn)
22:06
Fix some more harmless compiler warnings. (check-in: 18f531e1 user: mistachkin tags: msvcWarn)
21:09
Fix compiler warning seen with MSVC. (check-in: 18a4c054 user: mistachkin tags: msvcWarn)
19:55
Merge recent enhancements from trunk. (check-in: cb22efaf user: drh tags: begin-concurrent)
19:47
Merge recent enhancements from trunk. (check-in: f6c9273c user: drh tags: sessions)
13:07
Make greater use of the SQLITE_WITHIN macro. (check-in: f2fc3aed user: drh tags: trunk)
2015-12-15
19:32
Update the mkautoconfamal.sh script to make the building of the sqlite3-autoconf-VERSION.tar.gz package more orthodox. (check-in: 1928f894 user: dan tags: trunk)
13:50
Add the SQLITE_OMIT_PARSER_TRACE compile-time option. (check-in: 2fda43e6 user: drh tags: trunk)
2015-12-14
19:42
Add a missing memAboutToChange() macro to vdbe.c, the lack of which was causing an assert() to fail incorrectly. Problem found by libfuzzer. (check-in: 1a247911 user: dan tags: trunk)
2015-12-12
19:23
Update some stale comments in delete.c. No changes to code. (Leaf check-in: f59a3326 user: dan tags: onepass-delete-or)
17:31
Add further tests for the changes on this branch. Also fix a memory-leak that could follow a malloc failure. (check-in: 21526012 user: dan tags: onepass-delete-or)
2015-12-11
14:59
Add a new assert() statement to the snapshot-specific part of sqlite3WalBeginReadTrans(). (check-in: d8a12023 user: dan tags: trunk)
13:59
Merge recent changes from trunk. Also remove unused variables to permit compiling with -Werror. (check-in: 57b700ba user: drh tags: onepass-delete-or)
13:51
Simplified alignment constraints in the memory reuse logic of sqlite3VdbeMakeReady(). (check-in: e998513e user: drh tags: trunk)
12:53
Merge recent trunk enhancements, and in particular the snapshot interface. (check-in: 7e7b2406 user: drh tags: apple-osx)
12:44
Add the experimental snapshot interface. Because it is experimental, it is subject to change or removal at a later date. (check-in: 9b124a5a user: drh tags: trunk)
04:11
Fix a memory allocation bug introduced last week by check-in [a9e819082ba]. The bug only appears on systems where the size of a structure is not always a multiple of 8 - which in practice means only on 32-bit windows systems. (check-in: 96d3e99f user: drh tags: trunk)
03:27
Mention that the snapshot interfaces are only available if SQLite is compiled with SQLITE_ENABLE_SNAPSHOT. (Closed-Leaf check-in: 843c15a5 user: drh tags: snapshot-get)
03:20
Disable the snapshot test scripts if not compiled with SQLITE_ENABLE_SNAPSHOT. (check-in: 5fd008f0 user: drh tags: snapshot-get)
03:16
Fix a variable type mismatch problem in the snapshot logic. (check-in: 93fb8010 user: drh tags: snapshot-get)
01:22
Fix a bad assert related to snapshots. (check-in: 767ee30e user: drh tags: snapshot-get)
2015-12-10
22:48
Snapshot documentation updates. Comment changes only - no changes to code. (check-in: ef51a398 user: drh tags: snapshot-get)
20:03
Update the sqlite3_snapshot_get() API so that if the caller does not have an open read transaction on the named database, one is automatically opened. (check-in: b9c90f10 user: dan tags: snapshot-get)
19:44
Add tests to snapshot.test. (check-in: f3b74362 user: dan tags: snapshot-get)
19:11
Return SQLITE_BUSY (not SQLITE_BUSY_SNAPSHOT) if sqlite3_snapshot_open() fails to obtain the shared checkpointer lock. (check-in: 5343060b user: dan tags: snapshot-get)
18:06
Add tests to ensure that an sqlite3_snapshot_open() client cannot be tricked into reading a corrupt snapshot even if another process fails mid-checkpoint. (check-in: b908048b user: dan tags: snapshot-get)
17:59
Move pointer range comparisons into a macro, where they can be dealt with in a more portable way. (check-in: 05bc4f92 user: drh tags: trunk)
15:45
Have sqlite3_snapshot_open() avoid a race condition by taking a shared CHECKPOINTER lock while checking pInfo->nBackfillAttempted. (check-in: 8084eae0 user: dan tags: snapshot-get)
15:09
Move pointer range comparisons into a macro, where they can be dealt with in a more portable way. (Closed-Leaf check-in: ad3124c8 user: drh tags: stdint.h)
03:16
Fix spacing typo in comment. No changes to code. (check-in: 3a18526f user: mistachkin tags: snapshot-get)
02:15
Add the nBackfillAttempted field in formerly unused space in WalCkptInfo and use that field to close the race condition on opening a snapshot. (check-in: cb68e9d0 user: drh tags: snapshot-get)
2015-12-09
20:05
Update sqlite3_snapshot_open() to reduce the chances of reading a corrupt snapshot created by a checkpointer process exiting unexpectedly. (check-in: 7315f7cb user: dan tags: snapshot-get)
17:45
Add extra test cases to delete4.test. (check-in: 571b64b9 user: dan tags: onepass-delete-or)
17:23
Further simplifications to the VDBE code generation logic that flow out of the previous check-in. (check-in: 6a5dfe85 user: drh tags: trunk)
16:26
Simplification of the DROP TRIGGER logic using sqlite3NestedParse() instead of hand-coded VDBE code. This is a manual cherry-pick of the key change from check-in [c80bbf14b365d]. (check-in: 8021b4c8 user: drh tags: trunk)
16:08
Fix a problem with the DROP TABLE command on this branch. (check-in: c80bbf14 user: dan tags: onepass-delete-or)
16:04
Merge unrelated fixes from trunk. (check-in: 362615b4 user: drh tags: snapshot-get)
10:06
Add simple tests and bugfixes for DELETE statements that qualify for the OR-optimization. (check-in: 10ca7357 user: dan tags: onepass-delete-or)
08:13
Merge latest trunk with this branch. (check-in: dc236f11 user: dan tags: onepass-delete-or)
2015-12-08
19:50
Experimental optimization for DELETE statements with WHERE clauses that qualify for the OR-optimization. (check-in: d52376df user: dan tags: onepass-delete-or)
16:58
Changes to avoid undefined behavior in memset() and memcpy() and in the comparisons of pointers from different allocations. All problems are found by analysis tools - none have been seen in the wild. (check-in: 901d0b8f user: drh tags: trunk)
16:08
Avoid doing comparisons with pointers that might have been previously been passed to realloc() and/or free(). (check-in: f20396ad user: drh tags: trunk)
14:37
Avoid unnecessary work inside of verifyDbFile() in the unix VFS. (Closed-Leaf check-in: f3c0579e user: drh tags: unix-vfs-optimization)
04:18
Add a test case of the form "WHERE a<2 OR a<3" using PRAGMA count_changes. This test case was failing before the 3.9.0 release. (check-in: 177862c1 user: drh tags: trunk)
00:47
Update the TclKit download URL. (check-in: 07e5199c user: mistachkin tags: trunk)
2015-12-07
23:31
Update MSVC batch build tool to the latest Windows 10 SDK version. (check-in: 2ad50171 user: mistachkin tags: trunk)
21:46
Add the ".changes ON|OFF" command to the sqlite3.exe command-line shell, for testing and verifying the sqlite3_changes() and sqlite3_total_changes() interfaces. (check-in: 9bbe1afc user: drh tags: trunk)
18:18
Fix the openDirectory() routine in the unix VFS so that it works for databases located in the root of the filesystem and for database files that have no pathname at all. (check-in: e7ae120d user: drh tags: trunk)
16:43
Changes to avoid undefined behavior detected by analysis tools - never observed in the wild. Later: This check-in introduces a bug, fixed at [a304e34675404aee]. (check-in: a9e81908 user: drh tags: trunk)
14:33
Add tests for snapshot_get(), _open() and _free(). (check-in: 502cc6f3 user: dan tags: snapshot-get)
2015-12-05
20:51
Add untested implementations of experimental APIs sqlite3_snapshot_get(), _open() and _free(). (check-in: 0715eb00 user: dan tags: snapshot-get)
2015-12-04
13:44
Remove the dependence on "exec ls -U" from the vtabH.test module, as the -U option to "ls" is not universally available. (check-in: 4ecbc75b user: drh tags: trunk)
03:27
Prevent a segfault on Solaris in the test_fs.c due to differences in the definition of the dirent object. (check-in: 042738ad user: drh tags: trunk)
2015-12-03
22:33
Fix typos in requirements text and update requirements marks. No changes to code. (check-in: 8534a46c user: drh tags: trunk)
21:47
Improved OOM recovery in the SELECT code generator logic. (check-in: e6521a43 user: drh tags: trunk)
20:50
Make the SQLITE_ENABLE_8_3_NAMES compile-time option available to sqlite3_compileoption_used(). (check-in: 06338201 user: drh tags: trunk)
20:42
Cleaner code and additional comments on the handling of 8+3 filenames when trying to find the name of a database file based on its journal filename, in the unix VFS. (check-in: 9e489a71 user: drh tags: trunk)
13:43
Make the sqlite3_status64(), sqlite3_strlike(), and sqlite3_db_cacheflush() APIs available to loadable extensions. (check-in: a78e8656 user: drh tags: trunk)
12:01
Fix threadtest3 so that it builds using the autoconf build system. (check-in: d96de532 user: dan tags: trunk)
11:51
Improve concurrency in test_multiplex.c. Add a switch to "threadtest3" allowing it to run using the multiplexor VFS. (check-in: 9d2c62b0 user: dan tags: trunk)
01:48
A unix VFS change replaces fsync() with fstat() when using SQLITE_NO_SYNC, so set PRAGMA synchronous=OFF in the sysfault-3 test to avoid erroneously causing errors in xSync. (check-in: 4f7f3550 user: drh tags: trunk)
2015-12-02
20:53
Merge recent enhancements from trunk. (check-in: 9130661a user: drh tags: begin-concurrent)
20:40
Merge recent enhancements from trunk. (check-in: d1a1278d user: drh tags: sessions)
20:22
Merge all recent trunk enhancements, especially the unix VFS changes. (check-in: e1fb33c7 user: drh tags: apple-osx)
19:46
Remove unreachable branches from the decltype computation logic in the query planner. (check-in: 4f2bcff9 user: drh tags: trunk)
18:59
Have the sqlite3_column_decltype() API report the declared types for the left-most SELECT statement in a compound SELECT. (check-in: 3e1d71fc user: dan tags: trunk)
17:40
Fix an incorrect, though harmless, assert() in the unix VFS. (check-in: 4692ae84 user: drh tags: trunk)
16:10
Remove more (dead) SQLITE_FCNTL_WAL_BLOCK logic from wal.c - code that was missed during the [e1d5320ca08933] check-in. (check-in: 58c15c6a user: drh tags: trunk)
15:44
Remove an unreachable branch from the unixMapfile() routine of the unix VFS. (check-in: b50f67bc user: drh tags: trunk)
13:11
Minor simplifications to the unix VFS. (check-in: 2f13c16b user: drh tags: trunk)
02:33
Change the SQLITE_NO_SYNC compile-time option to call fstat() in place of fsync() rather than being a total no-op. (check-in: f64ea8a0 user: drh tags: trunk)
02:08
Fix a (harmless) off-by-one error in the unix VFS logic that fsync()s a directory after deleting a file. (check-in: 3d02711a user: drh tags: trunk)
01:04
Simplification of the logic used to take the process-wide lock in the unix-excl VFS. (check-in: 73defd52 user: drh tags: trunk)
00:05
Remove all traces of SQLITE_FCNTL_WAL_BLOCK from the unix VFS - that feature had been disabled for a long time and never actually worked. (check-in: e1d5320c user: drh tags: trunk)
2015-12-01
22:09
Simplification to the posix_fallocate() replacement used for the SQLITE_FCNTL_SIZE_HINT file control in the unix VFS. (check-in: 74934d3f user: drh tags: trunk)
21:23
Add the SQLITE_LIKE_DOESNT_MATCH_BLOBS compile-time option. (check-in: 9e1d6d4c user: drh tags: trunk)
17:48
The test_fs.c test module now works on Windows. (check-in: e3d86284 user: drh tags: trunk)
16:21
Simplification to the read and write primatives in the unix VFS. (check-in: 9eefa449 user: drh tags: trunk)
2015-11-30
23:29
Add experimental support for the 'test_fs' test module on Win32. (Closed-Leaf check-in: f3ffb3ae user: mistachkin tags: testFsWin32)
22:52
Add the SQLITE_PRINTF_PRECISION_LIMIT compile-time option. (check-in: ecad75d6 user: drh tags: trunk)
22:22
Fix a problem in xFullPathname for the unix VFS. The problem was found by Kostya Serebryany using libFuzzer. (check-in: bb1e2c4d user: drh tags: trunk)
20:36
The EOVERFLOW errors from fstat() is not possible unless SQLite has been compiled with SQLITE_DISABLE_LFS. (check-in: 8cfb7a50 user: drh tags: trunk)
19:16
Add a rule to main.mk to build the schemalint.tcl script into an executable. Similar to the way the sqlite3_analyzer executable is built. (check-in: b8251065 user: dan tags: schemalint)
19:15
Fix the threadtest3 test program so that it works with VFSes that omit the xCurrentTime() method and supply only xCurrentTimeInt64(). (check-in: 3b155855 user: drh tags: trunk)
18:17
Fix the schemalint.tcl script to handle identifiers that require quoting. (check-in: 451e0faf user: dan tags: schemalint)
12:01
Add the "colUsed" field to the sqlite3_index_info structure passed to virtual table xBestIndex methods. To indicate the subset of the virtual table columns that may be required by the current scan. (check-in: 47f10b7e user: dan tags: trunk)
00:05
Simplifications to the locking logic in the unix-dotfile VFS. (check-in: 58381352 user: drh tags: trunk)
2015-11-29
21:46
Fix the sqldiff utility program so that it works for schemas that have tables with zero-length column names. (check-in: 64263ccb user: drh tags: trunk)
2015-11-28
21:49
Improvements to temporary file creation logic in the unix VFS. (check-in: d6e177fd user: drh tags: trunk)
18:06
Add the SQLITE_FCNTL_VFS_POINTER file control which obtains a pointer to the top-level VFS in use by a database connection. (check-in: 7c6a809e user: drh tags: trunk)
17:38
Disable testing with SQLITE_USER_AUTHENTICATION as the makefiles are not set up to do that. (check-in: 14bbcdc6 user: drh tags: trunk)
2015-11-26
22:12
The first argument to SQLITE_CONFIG_PAGECACHE, SQLITE_CONFIG_SCRATCH, and SQLITE_CONFIG_HEAP must always be a pointer. (check-in: 5e14cadf user: drh tags: trunk)
19:33
Add the "colUsed" field to the sqlite3_index_info structure passed to virtual table xBestIndex methods. To indicate the subset of the virtual table columns that may be required by the current scan. (Closed-Leaf check-in: 116b2064 user: dan tags: vtab-colused)
15:51
Fix a problem with the userauth extension and no-authentication databases. Run the tests for this extension as part of the Debug-One module in releasetest.tcl. (check-in: 8b156219 user: dan tags: trunk)
10:37
Simplify logic for syncing directories after creating or deleting a file in the unix VFS. (check-in: eb180b4f user: drh tags: trunk)
02:21
Small simplification to the xOpen method in the unix VFS. (check-in: 96e7d638 user: drh tags: trunk)
2015-11-25
23:13
Simplify the temporary filename generator and the time-of-day functions in the unix VFS. (check-in: 6c5621ce user: drh tags: trunk)
18:40
Fix harmless compiler warnings in test_fs.c. Fix typos and clean up the text of the documentation for sqlite3_strglob() and sqlite3_strlike(). (check-in: 697b2053 user: drh tags: trunk)
18:07
Update test_fs.c to include a virtual table that reads a file-system hierarchy. Use it to further test GLOB and LIKE support for virtual tables. (check-in: 6ef6578c user: dan tags: trunk)
18:03
Make the xAccess method of the unix VFS smaller and faster. (check-in: 191aef98 user: drh tags: trunk)
15:15
Remove unused methods from the unix VFS. (check-in: 228bd15b user: drh tags: trunk)
14:00
Simplification of the error code translator in os_unix.c. Code cleanup only. The logic is unchanged. (check-in: 2a20f793 user: drh tags: trunk)
11:56
Fix the fts5 "prefix=" option to match the documentation (space separated list, multiple prefix= options supported). The undocumented comma-separated format (compatible with fts4) still works. (check-in: 11eb8e87 user: dan tags: trunk)
01:57
Enhancement the virtual table interface to support LIKE, GLOB, and REGEXP operators. Also add the sqlite3_strlike() interface, which might be useful as part of the implementation of LIKE on some virtual tables. (check-in: a6bfd469 user: drh tags: trunk)
2015-11-24
21:23
Add the sqlite3_strlike() interface, which might be useful for implementing LIKE operators on virtual tables. (Closed-Leaf check-in: e70ec71d user: drh tags: vtab-like-operator)
18:16
Fix a problem in whereexpr.c causing a crash while processing a user-function taht accepts zero arguments. (check-in: 069e51b1 user: dan tags: vtab-like-operator)
18:04
Fix harmless compiler warnings in the TCL test harness logic. (check-in: 2fba7a96 user: drh tags: vtab-like-operator)
17:44
Merge latest trunk changes with this branch. (check-in: 99222bb3 user: dan tags: vtab-like-operator)
17:39
Add further tests and related fixes for GLOB/REGEXP/LIKE support in virtual tables. (check-in: c5e9fd0d user: dan tags: vtab-like-operator)
16:40
Remove from os_unix.c pointless logic that tries to prevent a recurrence of a warning message that can only occur once. (check-in: 20256177 user: drh tags: trunk)
15:12
Fix a comment typo in the unix VFS. No changes to code. (check-in: 32e13879 user: drh tags: trunk)
15:06
Make the geteuid() system call overloadable using xSetSystemCall() on the unix VFSes. (check-in: 6c2ddea6 user: drh tags: trunk)
03:50
Add a test case for the fix of check-in [19d9f9ce691963310] (check-in: 19a9c07b user: drh tags: trunk)
02:10
Remove an incorrect ALWAYS() macro. Fix for ticket [e5c6268dd807fa8950] - a problem introduced in SQLite 3.9.0 and found by libFuzzer. (check-in: 824ad96f user: drh tags: trunk)
01:17
Add a clarifying comment to the virtual table test module 'test8'. (check-in: e92f97a6 user: mistachkin tags: trunk)
00:49
Do not try to eliminate No-ops at the end of VDBE program as this can cause problems for some DISTINCT handling algorithms, and does not improve performance. This also fixes an assertion fault found by libFuzzer. (check-in: 19d9f9ce user: drh tags: trunk)
2015-11-23
21:09
Add experimental support for LIKE, GLOB and REGEXP to the virtual table interface. (check-in: 277a5b40 user: dan tags: vtab-like-operator)
18:28
In the CREATE INDEX statements output by schemalint.tcl, avoid declaring an explicit collation sequence that is the same as the column's default. (check-in: d3aa067c user: dan tags: schemalint)
17:14
Merge latest trunk changes with this branch. (check-in: 8f1ef090 user: dan tags: schemalint)
17:10
Fix ORDER BY handling in the schemalint.tcl script. Add internal self-tests to the same script. (check-in: b8f277c9 user: dan tags: schemalint)
2015-11-21
19:43
Fix an obscure memory leak found by libfuzzer that may occur under some circumstances if expanding a "*" expression causes a SELECT to return more than 32767 columns. (check-in: 60de5f23 user: dan tags: trunk)
17:53
Add a new OP_BColumn opcode where the cursor is guaranteed to be of type CURTYPE_BTREE and is thus able to skip some checks and run slightly faster. (Leaf check-in: 093e0d10 user: drh tags: btree-column-opcode)
17:27
Fix over-length source code lines. No logic changes. (check-in: 198d191b user: drh tags: trunk)
13:24
Do not allow table-valued function syntax on ordinary tables and views as those objects are not table-valued functions. Fix for ticket [73eba7ba5c7c0fc]. Problem found by libFuzzer. (check-in: ff5716b8 user: drh tags: trunk)
2015-11-20
20:55
Add support for ORDER BY clauses to schemalint.tcl. (check-in: 93bdf70e user: dan tags: schemalint)
19:22
Refactor the VdbeCursor object. It is now slightly smaller and faster and is easier to understand. (check-in: 9b1d174d user: drh tags: trunk)
13:49
Merge all the latest enhancements and fixes from trunk. (check-in: 41c8b8e3 user: drh tags: begin-concurrent)
13:33
In the OP_Column opcode, only test the btree payload size for exceeding the string length limit if the payload does not fit on a single page. (check-in: 35c7f6cb user: drh tags: trunk)
13:17
Enhancements to a comment in sqliteInt.h. No changes to code. (check-in: 5446ae64 user: drh tags: trunk)
2015-11-19
19:48
Merge the latest enhancements from trunk. (check-in: 2c9e5436 user: drh tags: apple-osx)
19:40
Merge the latest enhancements from trunk. (check-in: 7d6cfc79 user: drh tags: sessions)
19:31
Merge the latest enhancements from trunk. (check-in: 8aede091 user: drh tags: lsm-vtab)
19:27
Work toward more flexible typing for keys and values. (check-in: 5c79f531 user: drh tags: lsm-vtab)
18:11
Fix problems with the way the IsHiddenColumn() macro is defined. (check-in: 126b998c user: drh tags: trunk)
18:09
Fix a problem with VACUUM and __hidden__ columns. (check-in: 13995756 user: dan tags: trunk)
17:55
When manifesting a view as part of an DELETE or UPDATE, be sure to include the hidden columns in the manifestation. (check-in: 28df5dc4 user: drh tags: trunk)
16:46
Fix problems with INSERT INTO ... SELECT ... statements that write to tables with __hidden__ columns. (check-in: 59bd0ec7 user: dan tags: trunk)
16:33
Create the new TK_ASTERISK token to represent the "*" in "SELECT *". Formerly that operator was TK_ALL, which was also used for UNION ALL. Less confusion if they operator symbols are distinct. (check-in: 201ac6d4 user: drh tags: trunk)
14:11
If compiled with SQLITE_ENABLE_HIDDEN_COLUMNS, then columns in ordinary tables and views that have names beginning with "__hidden__" are omitted from the "*" expansion in SELECT statements and from the automatic list of columns following the table name in an INSERT INTO statement. (check-in: 011904ca user: drh tags: trunk)
13:53
Only support the magic "__hidden__" column name prefix interpretation when compiled with SQLITE_ENABLE_HIDDEN_COLUMNS. (Closed-Leaf check-in: 5490646b user: drh tags: hidden-columns-in-tables)
13:21
Fix a 10-year-old misguided attempt at parser performance improvement that actually made parsing slightly slower. (check-in: 3833cbac user: drh tags: trunk)
2015-11-18
21:22
Get the __hidden__ column mechanism working on views with INSTEAD OF triggers. (check-in: 20c1e9ce user: drh tags: hidden-columns-in-tables)
20:59
Add tests for views to hidden.test. (check-in: 27d4b6f5 user: dan tags: hidden-columns-in-tables)
20:57
Honor the "__hidden__" prefix on the columns of views. (check-in: 3071ba2b user: drh tags: hidden-columns-in-tables)
20:07
Add a test for the __hidden__ hack on this branch. (check-in: ebf4bbff user: dan tags: hidden-columns-in-tables)
18:43
If a table column name begins with "__hidden__" then do not include that column in "*" expansions in SELECT statements, nor fill in that column in an INSERT INTO that omits the column list. This branch is a proof-of-concept only and is not intended to ever be merged into trunk. (check-in: 2dbffb3a user: drh tags: hidden-columns-in-tables)
2015-11-17
21:42
When using mmap mode on Win32, use a read-only mapping by default. Write to the database file using WriteFile(). Unless SQLITE_MMAP_READWRITE is defined, in which case use a read/write mapping and write into the file using memcpy(). (check-in: 4f521b5b user: mistachkin tags: trunk)
20:56
When using mmap mode on unix, use a read-only mapping by default. Write to the database file using write(). Unless SQLITE_MMAP_READWRITE is defined, in which case use a read/write mapping and write into the file using memcpy(). (check-in: 67c5d3c6 user: dan tags: trunk)
19:17
Fix uninitialized variable in the command line shell. (check-in: dc2ac024 user: mistachkin tags: trunk)
19:16
Fix harmless compiler warning. (check-in: eea26b6c user: mistachkin tags: trunk)
02:23
Basic functionality is now working. (check-in: aa129c51 user: drh tags: lsm-vtab)
00:15
The virtual table compiles but does not work and is missing many features. This is an incremental check-in. (check-in: a32849d6 user: drh tags: lsm-vtab)
2015-11-16
16:00
Import the LSM code from SQLite4 for use in an experimental virtual table. NB: This is a speculative experiment and could easily result in a dead-end branch. (check-in: 3d930501 user: drh tags: lsm-vtab)
15:28
Add testfixture command "vfs_current_time_int64". Returns the value returned by the xCurrentTimeInt64 method of the default VFS. (check-in: f79d5b18 user: dan tags: trunk)
08:54
In the shell tool, avoid testing if (sqlite3_vfs.xGetCurrentInt64) is NULL for a version 1 VFS. This field is only defined for version 2 and greater. (check-in: ad5fcaa5 user: dan tags: trunk)
2015-11-15
11:13
Fix the column name uniquifier so that it works with zero-length column names. (check-in: 791761eb user: drh tags: trunk)
2015-11-14
22:04
Code simplification in sqlite3ColumnsFromExprList(). Update the %z format code so that it works with buffers obtained from sqlite3DbMalloc(). Add a testcase for the slow column name uniquifier. (check-in: 92724260 user: drh tags: trunk)
20:52
Use a hash table to improve the preformance of column name uniqueness checking. (check-in: 5b08f29f user: drh tags: trunk)
16:47
Use randomness to prevent slowness in the generated-column-name uniqueness checking. (check-in: 62667129 user: drh tags: trunk)
2015-11-13
20:52
Fix a memory leak in the fuzzcheck utility. (check-in: dfd6d9f4 user: drh tags: trunk)
16:59
Add the "--enable-static-shell" option to the amalgamation autoconf script. If set (the default) the compiled shell tool is statically linked against sqlite3.o. Otherwise, it is linked against libsqlite3.so. (check-in: 499a02a3 user: dan tags: trunk)
13:15
Add the --transaction option to the sqldiff tool. (check-in: 8882d1f3 user: drh tags: trunk)
12:52
Fix the releasetest-out.txt log output from releasetest.tcl so that it works when the --jobs option is used. (check-in: 6bb314a5 user: drh tags: trunk)
12:32
Disable two PRAGMA cache_spill tests when MEMORY_MANAGEMENT is enabled. (check-in: ebda77aa user: drh tags: trunk)
02:13
Merge fixes from trunk. (check-in: f9060b2a user: drh tags: apple-osx)
00:03
Change the error messages so that they can be grepped using '^!' instead of '^ '. There are far too many extraneous outputs that begin with a space. (check-in: 367ec0db user: drh tags: trunk)
2015-11-12
23:48
Update the SQLLOG logic so that to builds in accordance with the instructions in the header comment. (check-in: ee6f2fee user: drh tags: trunk)
22:15
Always parse the schema *before* running "PRAGMA cache_size", not after. (check-in: 12e7d9ec user: drh tags: trunk)
21:55
Import the test_sqllog.c enhancements from trunk. (check-in: 178da339 user: drh tags: apple-osx)
21:42
Add a space before each line of error output in the test scripts so that all errors can be conveniently located in logs by doing "grep '^ '". (check-in: 9d532fb5 user: drh tags: trunk)
20:12
Add support for the SQLITE_SQLLOG_CONDITIONAL environment variable to the logging code in test_sqllog.c. When defined, logging is only performed if the "<database>-sqllog" file is present in the file system when the main database is opened. (check-in: cab8126b user: dan tags: trunk)
16:51
Merge the latest enhancements from trunk, and in particular the "PRAGMA cache_spill=N" change. (check-in: e72331c7 user: drh tags: apple-osx)
16:44
Enhance the "PRAGMA cache_spill" statement to accept an integer argument which is the threshold at which spilling will begin. (check-in: f79d264d user: drh tags: trunk)
15:47
Test cases. Minor problems fixed. All appears to work now. (Closed-Leaf check-in: 9a431362 user: drh tags: cache_spill=N)
15:04
Fix a #define in parse.y that disabled unused code in the generated parser. (check-in: f84e3085 user: drh tags: trunk)
14:57
First attempt at enhancing the "PRAGMA cache_spill" statement to accept a cache threashold size. (check-in: 549d42be user: drh tags: cache_spill=N)
2015-11-11
18:43
Fix missing word in a documentation comment. No changes to code. (check-in: ed24d302 user: mistachkin tags: trunk)
18:08
Add a hack to debug out a description of the WHERE clause of a SELECT (or other) statement. Use this in script tool/schemalint.tcl to automatically recommend indexes that might speed up specific queries. (check-in: c6fa01c2 user: dan tags: schemalint)
15:28
Improvements to the SQLITE_CONFIG_PAGECACHE documentation. Enhance the command-line shell to be able to take advantage of the full range of SQLITE_CONFIG_PAGECACHE capabilities, such as setting pMem==NULL and N<0. (check-in: 2518d5c9 user: drh tags: trunk)
2015-11-10
14:51
Improved output formatting for "PRAGMA parser_trace=ON;". (check-in: e43e1171 user: drh tags: trunk)
14:27
Make the output of "PRAGMA parser_trace" go to stdout instead of stderr. (check-in: 1e484991 user: drh tags: trunk)
13:45
Save a few bytes in the parser by using "int" instead of "u8" or "u16" for all small integer types. (check-in: 5dcd212b user: drh tags: trunk)
12:41
Change all parsers to use the standard "lempar.c" template in the tool/ folder and remove the customized lempar.c from src/, plus other compiler performance and space enhancements. (check-in: 0e7fb24a user: drh tags: trunk)
12:31
Fix harmless compiler warnings in FTS5. (Closed-Leaf check-in: 09752e51 user: drh tags: parser-enhancements)
03:30
Performance enhancement to the tokenizer. (check-in: 6ea2df86 user: drh tags: parser-enhancements)
00:02
Remove an unused non-terminal from the grammar. (check-in: 3c37c522 user: drh tags: parser-enhancements)
2015-11-09
19:35
Fix a comment typo in the lempar.c template that was missed by the prior check-in. (check-in: c4a7e93f user: drh tags: parser-enhancements)
19:33
Change the parser to use the standard "lempar.c" template over in the tool/ folder rather than the customized "lempar.c" found in src/. (check-in: 0a72991f user: drh tags: parser-enhancements)
15:06
Avoid recursion in the yy_find_shift_action() routine of the Lemon-generated parser, so that routine can be inlined, for a size reduction and performance increase. (check-in: 0557a179 user: drh tags: trunk)
14:11
Size reduction and performance improvement in the stack-popping logic of the Lemon-generated parser. (check-in: 9748c48a user: drh tags: trunk)
12:47
Fix incorrect WHERE clause in sqldiff, as reported on the mailing list by Youcef Hilem. (check-in: e0ed4c3e user: drh tags: trunk)
12:44
Check in the cg_anno.tcl and run-speed-test.sh scripts, as an historical record. (check-in: 836418d3 user: drh tags: trunk)
12:33
Avoid unnecessary function prologues in the sqlite3VdbeAddOp3() routine. (check-in: 7c6a19ba user: drh tags: trunk)
02:08
Small size reduction and performance increase in the parser. (check-in: d62cd757 user: drh tags: trunk)
2015-11-07
18:32
Enhance the sqldiff utility to deal gracefully with ALTER TABLE ADD COLUMN. (check-in: 7ea036ac user: drh tags: trunk)
18:07
Fix a bug in CTE handling discovered by LibFuzzer that can cause an infinite loop in the query planner. (check-in: 088009ef user: dan tags: trunk)
17:51
Add test cases for WITH clauses. (Closed-Leaf check-in: e7e65c75 user: dan tags: infinite-with-loop-bug)
17:48
Proposed fix for an infinite loop bug in the WITH clause semantic analysis logic. (check-in: 028475cb user: drh tags: infinite-with-loop-bug)
15:19
Enhance TreeView to show WITH clauses. Add an assert to detect the infinite loop behavior when certain kinds of errors occur on a nested WITH clause. (check-in: 2040d88e user: drh tags: infinite-with-loop-bug)
01:57
Merge recent enhancements and fixes from trunk. (check-in: 5429f99b user: drh tags: apple-osx)
01:33
Merge recent enhancements and bug fixes from trunk. (check-in: 78bc42e6 user: drh tags: sessions)
01:19
The OPFLAG_SEEKEQ optimization is only applicable to equality comparisons against an index, not against a rowid table. (check-in: 0f5b147d user: drh tags: trunk)
00:51
Fix a harmless sanitizer warning in the ieee754 extension. (check-in: dd9a26ec user: drh tags: trunk)
2015-11-06
20:22
Avoid an unnecessary key comparison when doing an indexed lookup against an equality constraint. (check-in: d741e1cc user: drh tags: trunk)
20:13
Work around a sign-extension bug in the optimizer on the HP C compiler that comes with HP/UX. (check-in: 46c36b15 user: drh tags: trunk)
20:04
Test changes: Omit numindex1.test from valgrind, since valgrind uses a none-standard floating-point processor which gives inconsistent answers. Run one releasetest.tcl module using LONGDOUBLE_TYPE=double. (check-in: d421efbf user: drh tags: trunk)
19:53
Enforce consistent comparison results between integer and floating point values. Fix for ticket [38a97a87a6e4e83]. (check-in: 849e686d user: drh tags: trunk)
17:59
Merge the fixes and tests for the ieee754 extension. (Closed-Leaf check-in: 7a9988d3 user: drh tags: int-float-precision)
17:28
A proposed patch for working around a bug in the optimizer for the HP compiler found on HP/UX Itanium. (Closed-Leaf check-in: 8a171548 user: drh tags: hp-optimizer-fix)
17:01
Test cases for the ieee754 extension. (check-in: 840cbda8 user: drh tags: trunk)
14:59
A different approach to handling integer/float comparisons. This seems to work better on systems where "long double" and "double" are the same type, but still needs refinement and testing. (check-in: a3f7614b user: drh tags: int-float-precision)
12:50
Have fts5 load its configuration from the xConnect() method is invoked. This ensures that the very first query run uses the correct value of the 'rank' option. (check-in: 33e6606f user: dan tags: trunk)
04:14
More test cases for indexes on large numeric values. (check-in: c220741a user: drh tags: int-float-precision)
03:37
Some simple test cases from the mailing list. (check-in: 1d642b73 user: drh tags: int-float-precision)
01:04
Increase the precision of integer vs. floating-point comparisons. Candidate fix for ticket [38a97a87a6e4e8]. (check-in: cfcaa0ff user: drh tags: int-float-precision)
2015-11-05
22:30
Improvements and simplifications to the equality seek logic. Tests are adjusted so that they all pass now. (Closed-Leaf check-in: 997ce6c9 user: drh tags: seekeq-experiment)
21:49
Fix typo in help information for an FTS5 script. (check-in: 777ae800 user: mistachkin tags: trunk)
20:25
The top of an index equality loop normally starts with OP_SeekGE and OP_IdxGT. This check-in adds a flag to OP_SeekGE such that it fails immediately if the key is not equal, then jumps over the OP_IdxGT, saving a call to the key comparison functions. Consider this check-in a proof-of-concept. It needs improvement before going on trunk. Some tests fail, but only because they new use fewer key comparisons than expected (which is a good thing!). (check-in: 32e31b9b user: drh tags: seekeq-experiment)
18:09
Add the 'hashsize' configuration option to fts5, for configuring the amount of memory allocated to the in-memory hash table while writing. (check-in: 44548009 user: dan tags: trunk)
11:47
Remove a #pragma used to work around an issues with MSVC 2012 that has been overcome but subsequent changes. (check-in: 8303e4cf user: drh tags: trunk)
03:26
Remove #pragma that was used to work around an obsolete issue with MSVC 2012. (Closed-Leaf check-in: b9b22fae user: mistachkin tags: reoptimizeArm)
2015-11-04
22:31
Performance improvements in the getAndInitPage() routine of btree.c. (check-in: 2aa50f6f user: drh tags: trunk)
20:22
Rename the sqlite3PagerAcquire() function to sqlite3PagerGet(). The former macro called sqlite3PagerGet() has been removed. (check-in: 708253be user: drh tags: trunk)
16:34
In releasetest.tcl, run larger test first if --jobs is greater than 1. Run smaller tests cases first if --jobs is 1. (check-in: 3fece5d0 user: drh tags: trunk)
13:03
Exclude cffault.test and symlink.test from the (incompatible) inmemory_journal permutation. (check-in: 4f16e968 user: drh tags: trunk)
2015-11-03
23:39
Increase the fuzzcheck timeout when running valgrind. (check-in: a5816877 user: drh tags: trunk)
19:13
In 'e_uri.test', make sure all created test database files get deleted. (check-in: 40c4f4a6 user: mistachkin tags: trunk)
15:39
In the releasetest.tcl script, add the --progress option to cause the start of each subprocess to be shown. Otherwise, revert to the old-style display. Improvements to the handling of the --buildonly option. (check-in: d969792f user: drh tags: trunk)
15:16
In the releasetest.tcl script, show the --jobs object on the command-line summary. Report the time of each "starting:" event. Do not show errors on a --dryrun. (check-in: b7510777 user: drh tags: trunk)
14:49
Update the releasetest.tcl script so that it can run multiple tests in parallel in separate processes. (check-in: e3de8291 user: drh tags: trunk)
06:23
Further enhancement and a bit of cleanup. (Closed-Leaf check-in: 0d8b5978 user: mistachkin tags: mp-releasetest)
02:47
Use the native name for the MSVC makefile as well. (check-in: e457c615 user: mistachkin tags: mp-releasetest)
2015-11-02
23:29
Attempt to centralize and simplify the MSVC handling. (check-in: 4ae96d6d user: mistachkin tags: mp-releasetest)
23:21
Fix the backcompat.test module so that it does not try to compare against itself on windows. (check-in: f625bce8 user: drh tags: mp-releasetest)
21:05
Get things working better on Windows with MSVC. (check-in: 22cc3e6c user: mistachkin tags: mp-releasetest)
20:52
Fix the --dryrun option on the releasetest.tcl script. (check-in: e565e026 user: dan tags: mp-releasetest)
20:28
Fix releasetest.tcl so that it does not choke if a test fails so badly that there is no log file. Add the --jobs switch to the usage message. (check-in: 20e96f52 user: dan tags: mp-releasetest)
20:24
Fix releasetest.tcl so that output lines are less than 80 characters wide. (check-in: aef177fe user: dan tags: mp-releasetest)
18:57
Merge all recent enhancements and fixes from trunk. (check-in: 0546d1cd user: drh tags: sessions)
18:32
Add the "--jobs N" option to the releasetest.tcl script to allow tests to be run in parallel by N processes. N defaults to 1. (check-in: 3d29f912 user: dan tags: mp-releasetest)
18:31
Version 3.9.2 (check-in: bda77dda user: drh tags: release, branch-3.9, version-3.9.2)
15:10
Merge latest trunk changes, including the follow-symlinks functionality and 3.9.2 bugfixes, into this branch. (check-in: 447521d7 user: dan tags: apple-osx)
15:08
On unix, if a file is opened via a symlink, create, read and write journal and wal files based on the name of the actual db file, not the symlink. (check-in: 6d5ce3ed user: dan tags: trunk)
11:19
When creating an automatic-index on a sub-query, add a unique integer to the end of each index key to ensure the entire key is unique. Fix for [8a2adec1]. (check-in: c0c4b6b3 user: drh tags: branch-3.9)
11:10
Aborted releaset of 3.9.2. (check-in: c33a275b user: drh tags: branch-3.9)
2015-11-01
21:42
Increase the version number to 3.9.2. (check-in: 14bd4fbf user: drh tags: branch-3.9)
21:35
If a table-constraint PRIMARY KEY lists a single column in single-quotes and that column has type INTEGER, then make that column an integer primary key, for historical compatibility. Fix for ticket [ac661962a2aeab3c331]. (check-in: dab0e607 user: drh tags: branch-3.9)
21:19
If a table-constraint PRIMARY KEY lists a single column in single-quotes and that column has type INTEGER, then make that column an integer primary key, for historical compatibility. Fix for ticket [ac661962a2aeab3c331]. (check-in: db319a03 user: drh tags: trunk)
2015-10-31
17:58
On unix, if a file is opened via a symlink, create, read and write journal and wal files based on the name of the actual db file, not the symlink. (Closed-Leaf check-in: c7c81050 user: dan tags: follow-symlinks)
2015-10-30
20:54
Add mutex operations to test code in test3.c to avoid triggering assert() failures in certain configurations. (check-in: 9f19420b user: dan tags: trunk)
17:17
Merge the sqlite3_db_cacheflush() enhancements and other changes from trunk. (check-in: f2cde4cf user: drh tags: begin-concurrent)
16:50
Merge all the latest enhancements from trunk. (check-in: 395a153f user: drh tags: sessions)
16:37
Merge the 3.10.0 version number update from trunk. (check-in: 980d6207 user: drh tags: apple-osx)
16:36
Increase the version number to 3.10.0, due to the addition of the sqlite3_db_cacheflush() interface. (check-in: 7565b046 user: drh tags: trunk)
16:23
Merge latest trunk changes, including sqlite3_db_cacheflush(), with this branch. (check-in: 6e4306ef user: dan tags: apple-osx)
16:14
Add new API function sqlite3_db_cacheflush(). (check-in: ad80d307 user: dan tags: trunk)
14:28
Return immediately if sqlite3PagerWrite() is called when the pager is in PAGER_ERROR state. (Closed-Leaf check-in: a6695b00 user: dan tags: cacheflush)
14:25
Add the --enable-editline option to various autoconf scripts. (check-in: 866f0277 user: drh tags: trunk)
09:13
Test that calling sqlite3_db_cacheflush() does not interfere with savepoints. (check-in: 0e09e4a2 user: dan tags: cacheflush)
2015-10-29
21:11
Do not attempt to flush the pages of an in-memory database to disk if sqlite3_db_cacheflush() is called. (check-in: 9b79a390 user: dan tags: cacheflush)
20:57
Add a test case that calls sqlite3_db_cacheflush() on an in-memory database. (check-in: f0cdfb54 user: dan tags: cacheflush)
18:16
Avoid automatically rolling back the transaction if an SQLITE_IOERR or SQLITE_FULL error occurs within sqlite3_db_cacheflush(). (check-in: 370b5d52 user: dan tags: cacheflush)
14:29
The optimization on this branch is logically incorrect. It changes the return value of "SELECT 0 OR 'xyzzy'" FROM 0 to 'xyzzy'. (Closed-Leaf check-in: a0c08d26 user: drh tags: simplify-or-clause)
13:48
Fix uses of ctype functions (ex: isspace()) on signed characters in test programs and in some obscure extensions. No changes to the core. (check-in: 34eb6911 user: drh tags: trunk)
12:27
Apply optimizations to simplify OR clauses that contain constant terms. (check-in: d533e23f user: drh tags: simplify-or-clause)
01:11
Enhance comments in the MSVC batch build tool. (check-in: 2964ce25 user: mistachkin tags: trunk)
2015-10-28
20:01
Make the internal sqlite3PExpr() interface responsive to the TKFLG_DONTFOLD flag on the operator parameter. (check-in: b10ab59f user: drh tags: trunk)
19:46
Add experimental API sqlite3_db_cacheflush(). (check-in: 65b86dc1 user: dan tags: cacheflush)
16:05
Factor out adding NOT expression nodes in the parser into a subroutine. (check-in: 00185418 user: drh tags: trunk)
2015-10-27
20:04
Have contentless and external content fts5 tables ignore "OR REPLACE" conflict handling. (check-in: a85c2a47 user: dan tags: trunk)
17:48
Fix problems with prefix queries in fts5. (check-in: 3b5758c6 user: dan tags: trunk)
13:35
Provide hints to the storage engine using the sqlite3BtreeCursorHint() interface when compiling with SQLITE_ENABLE_CURSOR_HINTS. (check-in: 45d3539e user: drh tags: trunk)
13:24
Split out sqlite3BtreeCursorHintFlags() from sqlite3BtreeCursorHint() the interface for improved performance. (Closed-Leaf check-in: b3ec9a0d user: drh tags: cursor-hints)
2015-10-26
20:50
Merge latest trunk changes, including the SQLITE_IOERR_AUTH error code, with this branch. (check-in: bc195e1c user: dan tags: apple-osx)
20:39
Add new extended error code SQLITE_IOERR_AUTH. (check-in: b4e70dd0 user: dan tags: trunk)
20:11
Merge the BTREE_FORDELETE enhancement with this branch. (check-in: 20da0849 user: dan tags: cursor-hints)
18:51
Merge in all trunk changes prior to the BTREE_FORDELETE enhancement. (check-in: 53d5a4ad user: drh tags: cursor-hints)
18:01
Capture BTREE_FORDELETE test cases that were mistakenly omitted from the previous merge. (check-in: de697251 user: drh tags: trunk)
17:50
Provide the BTREE_FORDELETE flag to sqlite3BtreeCursor() if the cursor will be used only for deletions and seeking. (check-in: 871b1c78 user: drh tags: trunk)
16:34
Fix an uninitialized variable problem in the test code added by the previous commit. (Closed-Leaf check-in: 7849662e user: dan tags: btree-fordelete-flag)
16:31
Test that the binary record "0x01 0x00" is interpreted by OP_Column as a vector of NULL (or default) values. (check-in: 5bdc3c82 user: dan tags: btree-fordelete-flag)
14:54
Fix a C99-ism and a harmless compiler warning. (check-in: 138783b5 user: drh tags: trunk)
14:41
When compiling with SQLITE_HAS_CODEC, honor the hexkey= query parameter on URI pathnames in sqlite3_open_v2(). (check-in: e0ce3fc0 user: drh tags: trunk)
12:55
Remove an unreachable branch in malloc.c. (check-in: a36b7fe9 user: drh tags: trunk)
2015-10-24
20:31
When creating an automatic-index on a sub-query, add a unique integer to the end of each index key to ensure the entire key is unique. Fix for [8a2adec1]. (check-in: bfea226d user: dan tags: trunk)
2015-10-23
11:50
Remove an unused #define from whereInt.h. Add comments describing the new sqlite3BtreeCursor() flags. (check-in: 4c0ba8be user: dan tags: btree-fordelete-flag)
2015-10-22
20:54
Modifications to pass a flag to internal routine sqlite3BtreeCursor() when a cursor that is used solely for deleting b-tree entries, or for obtaining the components of keys to delete from other b-trees, is opened. (check-in: cdc92919 user: dan tags: btree-fordelete-flag)
18:06
Alternate compiler warning fix for sqlite3StatusHighwater. (check-in: 4315d202 user: mistachkin tags: trunk)
2015-10-21
22:08
Fix harmless compiler warnings in FTS5. (check-in: aa4e01ea user: mistachkin tags: trunk)
22:07
Fix compilation of 'testfixture' with MSVC when the FTS5 and JSON1 extensions are enabled. (check-in: e31aa97a user: mistachkin tags: trunk)
20:56
Remove some branches made unreachable by recent changes from fts5. (check-in: ae350bfb user: dan tags: trunk)
20:07
Minor optimization for fts5 queries. (check-in: 363b36d5 user: dan tags: trunk)
08:26
Add extra debugging function to test_rbu.c. Enhance the documentation for sqlite3rbu_db() to define the validity of the returned database handles. (check-in: b9c4aa52 user: dan tags: trunk)
2015-10-20
23:40
Fix compiler warnings. (Closed-Leaf check-in: 12e869bb user: mistachkin tags: noWarn)
23:27
Fix harmless compiler warnings in FTS5. (check-in: 0a903ec2 user: mistachkin tags: trunk)
21:05
More optimizations for fts5 prefix queries. (check-in: b8fb263e user: dan tags: trunk)
19:55
Fix #line directives added to generated file fts5.c. (check-in: 1f5f5804 user: dan tags: trunk)
15:49
Initialize variables in the fts5 integrity-check code to avoid compiler warnings. (check-in: e979e2cc user: dan tags: trunk)
2015-10-19
20:49
Another optimization for fts5 prefix (and other) queries. (check-in: 60a8bde0 user: dan tags: trunk)
17:43
Another tweak to improve performance of fts5 prefix queries. (check-in: 69be427c user: dan tags: trunk)
15:59
Fix a problem in the fts5txt2db.tcl script causing it to fail when creating tables with more than 8 columns. (check-in: 68ee426a user: dan tags: trunk)
2015-10-17
20:34
Add tests to cover new branches added to the fts5 code by the previous commit. (check-in: cf618334 user: dan tags: trunk)
19:49
Handle equality and range constraints on the "term" column of fts5vocab tables. Also have the same module report columns using names instead of indexes. (check-in: 6020d96a user: dan tags: trunk)
01:00
Change the code generator for UPDATE to generate code in an order that might run more efficiently in many cases. (Leaf check-in: c6239bf9 user: drh tags: improved-update)
2015-10-16
23:55
Fix a comment in expr.c and add a CORRUPT_DB to an assert() in btree.c. (check-in: 0df371d1 user: drh tags: trunk)
20:55
Merge the 3.9.1 updates from trunk. (check-in: bf866e6c user: drh tags: begin-concurrent)
20:53
Merge recent enhancements from trunk. Version now 3.9.1. (check-in: 26fa091d user: drh tags: cursor-hints)
20:52
Merge the 3.9.1 changes. (check-in: dd07688d user: drh tags: apple-osx)
20:20
Merge the version 3.9.1 updates. (check-in: 2bbb9595 user: drh tags: sessions)
20:13
Enhancements to the MSVC makefile. (check-in: 39e8a5d9 user: mistachkin tags: trunk)
20:12
Merge the 3.9.1 changes into trunk. (This only updates the version number and configure script since all the other changes in 3.9.1 were cherrypicked from trunk.) (check-in: eb231742 user: drh tags: trunk)
17:31
Version 3.9.1 (check-in: 767c1727 user: drh tags: release, branch-3.9, version-3.9.1)
15:56
Cherrypick the json form-feed fix, and other #ifdef and build script changes to address minor issues that came to light after the 3.9.0 release. Update the version number to 3.9.1. No logic changes except for the form-feed bug-fix in json1 (ticket [57eec374ae1d0a1d4a]). (check-in: 746fcd2f user: drh tags: branch-3.9)
15:42
Fix the fuzzershell utility program so that it compiles with the amalgamation that includes JSON1 support. (check-in: d6fc616e user: drh tags: trunk)
15:35
Fix the JSON1 extension so that it does not depend on isdigit() and strtod() from the standard library when compiled into SQLite as part of the amalgamation. (check-in: bc9a9a60 user: drh tags: trunk)
15:16
Form-feed is not valid whitespace for json. Fix for ticket [57eec374ae1d0a1d] (check-in: 28957d63 user: drh tags: trunk)
14:54
Have the sqlite3VdbeSerialType() function go ahead and compute the serial length as well, since it is always needed. This avoids unnecessary calls to sqlite3VdbeSerialTypeLen(). (check-in: 2ad72be1 user: drh tags: trunk)
14:23
Use a lookup table to compute the content length for serial types less than 128, for a 1.2% performance improvement. (check-in: 33957248 user: drh tags: trunk)
13:50
Simplify the OP_Column logic slightly. One very small performance improvement added. (check-in: 0114b45d user: drh tags: trunk)
12:53
OP_Column optimization: Do not check for an oversize row header unless the row header size is larger than the content available on the local page. (check-in: 8125b74c user: drh tags: trunk)
12:39
Improved header comment on the tool/vdbe_profile.tcl script. No changes to code. (check-in: b17ad8fc user: drh tags: trunk)
03:34
Whenever two or more OP_Column opcodes on the same cursor occur in succession, try to reordering them so that the one that extracts the right-most column is first, so that it will warm up the row cache for all those that follow. This gives a small performance boost. (Leaf check-in: 08e8f04d user: drh tags: reorder-column-opcodes)
2015-10-15
21:30
Performance optimization for the OP_Column opcode. (check-in: 076be547 user: drh tags: trunk)
21:13
Merge updates from trunk. (Leaf check-in: 40493680 user: mistachkin tags: mutexInitIsInitReCheck)
21:12
Merge updates from trunk. (Leaf check-in: a447cf90 user: mistachkin tags: mutexInitSimpleCmpSwap)
20:17
Experiments with an OP_Unpack opcode that extracts multiple columns from a record without caching. (Leaf check-in: 39ae92f5 user: drh tags: unpack-opcode)
19:21
Enhance the use of the column cache for UPDATE statements, making them more efficient for the case where a column is modified to be an expression of other unmodified columns. (check-in: 871e091d user: drh tags: trunk)
18:04
Add the OP_IntCopy opcode - an optimized version of OP_SCopy that only works for integer values. (check-in: 3a2f73a4 user: drh tags: trunk)
17:31
Optimization to the out2Prerelease() helper routine in the VDBE engine. (check-in: 79298fe8 user: drh tags: trunk)
17:21
Remove a superfluous conditional from the memory allocation initialization. (check-in: 9ccf8f8d user: drh tags: trunk)
16:20
Performance optimizations to the sqlite3MallocSize() by requiring the argument to always be non-NULL. (check-in: cb65989b user: drh tags: trunk)
15:28
Change sqlite3StatusSet() into sqlite3StatusHighwater() so that only the highwater mark is recorded. This gives a small size reduction and performance improvement. (check-in: 6422d223 user: drh tags: trunk)
12:06
Make sure sqlite.h is not #included by itself. (check-in: a61880c2 user: drh tags: trunk)
07:44
Merge in the 3.9.0 changes from trunk. (check-in: 5c3a2a6e user: drh tags: begin-concurrent)
2015-10-14
23:04
In the MSVC makefile, add LIBTCLPATH variable to make it easier to run tests when the Tcl library is not already present in the PATH. (check-in: 54127602 user: mistachkin tags: trunk)
22:46
In the MSVC makefile, make sure LDFLAGS is used for the tool executables as well. (check-in: 0a17ee49 user: mistachkin tags: trunk)
21:08
Tests and minor fixes to improve coverage of FTS5 code. (check-in: f4de6d45 user: dan tags: trunk)
20:34
Fix harmless compiler warnings. (check-in: 1c46c194 user: mistachkin tags: trunk)
20:09
Merge in all the 3.9.0 updates from trunk. (check-in: 29444149 user: drh tags: cursor-hints)
20:03
Update makefiles to remove all uses of "awk" - to make building SQLite easier on Windows systems. The only requirements now are tclsh, a C compiler, and common file utilities. (check-in: 4bd0d43d user: drh tags: trunk)
20:01
Enable cross-compiling the various tool EXEs with MSVC. (check-in: 7d772333 user: mistachkin tags: trunk)
19:52
Fixes to the JSON1 extension and its use by fuzzcheck to avoid problems when building DLLs. (check-in: 01d3ee7b user: drh tags: trunk)
19:44
Fix fuzzcheck.c so that it assumes that JSON1 is already compiled in and does not need to be initialized further. (Closed-Leaf check-in: ec003958 user: drh tags: dll-build-fix)
18:45
Avoid exporting sqlite3_json_init() from amalgamation builds. (check-in: 8463f7e7 user: dan tags: dll-build-fix)
12:29
Version 3.9.0 (check-in: a721fc0d user: drh tags: trunk, release, version-3.9.0)
10:56
Add the missing 'extern "C" {...}' blocks to fts5.h and sqlite3rbu.h. (check-in: 47a2ce97 user: dan tags: trunk)
2015-10-13
20:42
Merge in the final few changes before the 3.9.0 release. (check-in: e1afdbb5 user: drh tags: sessions)
17:49
Merge 3.9.0 prerelease changes into the apple-osx branch. (check-in: 1900ce01 user: drh tags: apple-osx)
2015-10-12
22:31
Remove the unused fts5ExprColsetTest() routine. (check-in: 9ecafc0c user: drh tags: trunk)
22:20
Fix a couple harmless compiler warnings. (check-in: 7f896a97 user: mistachkin tags: trunk)
19:12
Further tweaks to improve fts5 prefix query performance. (check-in: 1c20c1c2 user: dan tags: trunk)
04:56
Change all references to 3.8.12 into 3.9.0. Comment changes only - no changes to code. (check-in: 6f2858f6 user: drh tags: trunk)
03:56
Remove AWK requirement from the MSVC batch build tool. (Closed-Leaf check-in: 6d9cdb93 user: mistachkin tags: omit-awk)
03:44
The TclKit batch tool should not download the TclKit SDK when the TCLKIT_NOSDK environment variable is set. (check-in: 7c5d583b user: mistachkin tags: omit-awk)
2015-10-11
20:39
Detect and report circularly defined views even if the views have the columns defined in the CREATE VIEW statement. (check-in: 9ab9c8c6 user: drh tags: trunk)
20:08
Remove an unreachable branch in the query flattener substitution logic. (check-in: 46ee3453 user: drh tags: trunk)
19:46
Improved substitution logic in the query flattener. Saves code space, and (more importantly) works correctly with table-valued functions. (check-in: 3d0bd95e user: drh tags: trunk)
2015-10-10
23:39
Enhance TclKit batch tool (and MSVC makefile) to support targets that require the Tcl stub library. (check-in: bc6223b1 user: mistachkin tags: omit-awk)
20:35
Pull in the latest 3.9.0 tweaks from trunk. (check-in: ed174ccf user: drh tags: sessions)
16:41
Work around a "security feature" bug in memcpy() on OpenBSD. (check-in: fab6f090 user: drh tags: trunk)
15:57
Remove another instance of strcpy() from FTS5, to mollify OpenBSD. (check-in: 35e6248a user: drh tags: trunk)
15:11
Omit the use of strcpy() in FTS5 since OpenBSD hates strcpy(). (check-in: bc24a5bb user: drh tags: trunk)
14:41
Compiler warning fixes: Rename some local variables from "j1" to avoid a name collision with the j1() bessel function in the math library. Omit a dummy initializer that gcc 4.6.3 does not like. (check-in: 9ddef84d user: drh tags: trunk)
14:00
Add some #ifdef-ery to json1.c to avoid a duplicate typedef when used in the amalgamation, since some compilers become upset over duplicate typedefs. (check-in: de28acd4 user: drh tags: trunk)
02:06
Remove a couple superfluous double quotes in the MSVC makefile. (check-in: 0f9e205b user: mistachkin tags: omit-awk)
01:55
Fix typo in the MSVC makefile. Replace remaining uses of AWK in the MSVC makefile with a Tcl script. (check-in: f8c2193b user: mistachkin tags: omit-awk)
00:53
More fine-tuning to the new TclKit tools. (check-in: 43addd8a user: mistachkin tags: omit-awk)
2015-10-09
20:40
The previous fix to JSON1 was not complete. A few more tweaks are needed for correct handling of all oversized integers. (check-in: 4a47f017 user: drh tags: trunk)
18:48
Tweak batch tool added in the previous check-in to permit the base URI to be overridden. (check-in: 1d2f82df user: mistachkin tags: omit-awk)
18:21
Fix the JSON1 extension so that it renders integers outside the range of -9223372036854775808 to +9223372036854775807 as floating-point numbers. (check-in: ae736e35 user: drh tags: trunk)
17:54
Remove fts5 sources from TESTSRC2 in main.mk as there is no SQLITE_TEST code in said files. (check-in: c1840639 user: dan tags: trunk)
17:36
Add tool capable of downloading a TclKit (and its associated SDK) on Windows. (check-in: 50673dda user: mistachkin tags: omit-awk)
17:28
Merge all changes through the first 3.9.0 beta from trunk. (check-in: 1ccae39b user: drh tags: apple-osx)
15:29
Merge the version 3.9.0 changes and the incorporation of JSON1 and FTS5 into the amalgamation from trunk. (check-in: c1d96fb6 user: drh tags: sessions)
14:37
Add --enable-fts5 and --enable-json1 options to the amalgamation autoconf package. (check-in: 8a4e1988 user: dan tags: trunk)
14:23
In the MSVC makefile, adjust the names of two nmake variables for consistency. (check-in: 92aa4b6b user: mistachkin tags: trunk)
13:42
Change the version number of the next release to 3.9.0. (check-in: aa8fdadf user: drh tags: trunk)
13:39
Add the JSON1 and FTS5 extensions to the amalgamation. Add new options to ./configure: --enable-json1 and --enable-fts5. (check-in: 1eb76993 user: drh tags: trunk)
13:29
Fix a typo in the MSVC Makefile (Closed-Leaf check-in: c8a12082 user: drh tags: amalg-json1-fts5)
12:48
Add configure script options --enable-fts5 and --enable-json1. Automatically search for -lm when using --enable-fts5. (check-in: a0c44f1d user: drh tags: amalg-json1-fts5)
11:09
Makefile and fts5 changes so that fts5 works with main.mk. Still does not work with Makefile.in. (check-in: 6ebac32d user: dan tags: amalg-json1-fts5)
01:42
Trying to get FTS5 tests to build and run using main.mk. Not yet working. (check-in: 206174f9 user: drh tags: amalg-json1-fts5)
2015-10-08
23:37
Json1 tests are working. Builds without FTS5 enabled. Still some problems building with FTS5. (check-in: 2928f8e8 user: drh tags: amalg-json1-fts5)
21:02
Remove calls to "load_static_extension" from fts5 test scripts. (check-in: 53dd7c4c user: dan tags: amalg-json1-fts5)
21:00
Further tweaks to main.mk so that fts5 builds as part of testfixture. (check-in: 97e11b79 user: dan tags: amalg-json1-fts5)
20:40
Fix further fts5 compilation issues. (check-in: 0d7f301f user: dan tags: amalg-json1-fts5)
20:28
Fix two more warnings in fts5 code. (check-in: 5343e601 user: dan tags: amalg-json1-fts5)
20:11
Fix a couple of errors in fts5 compilation. This branch still does not build with -Wall -Werror. (check-in: e9e76e12 user: dan tags: amalg-json1-fts5)
19:29
First attempt to add json1 and fts5 to the amalgamation. This check-in does not compile. (check-in: d820a1bd user: drh tags: amalg-json1-fts5)
17:35
In the RBU extension, use MoveFile() instead of rename() on Windows CE. (check-in: df9ef61f user: mistachkin tags: trunk)
14:55
Merge the 3.8.12 beta changes from trunk. (check-in: 35b1b8d4 user: drh tags: sessions)
02:44
Remove two unused lines of code - discovered by scan-build. (check-in: 77b707b7 user: drh tags: trunk)
2015-10-07
19:06
Further optimizations for fts5 prefix queries without a prefix index. (check-in: 83dc1ff7 user: dan tags: trunk)
17:06
Fix harmless compiler warning in FTS5. (check-in: 13adcd03 user: mistachkin tags: trunk)
17:01
Allow the subsitute character (codepoint 26 - 0x1A) to appear in fts5 barewords. (check-in: baec1b96 user: dan tags: trunk)
16:14
Adjustments to spellfix2.test so that it works reliably on mac. (check-in: d591e860 user: drh tags: trunk)
13:24
Add tests for fts5 phrase queries with column filters. (check-in: f20f9f81 user: dan tags: trunk)
12:36
Convert the tool/tostr.awk script into tool/tostr.tcl. Remove two obsolete Makefiles. Purge NAWK from the configure script and from unix makefiles. There are still two uses of NAWK in Makefile.msc. (check-in: 5b677521 user: drh tags: omit-awk)
12:21
Change the addopcodes.awk script into tool/addopcodes.tcl. (check-in: 8bbf3714 user: drh tags: omit-awk)
12:11
Convert the mkopcodec.awk script into tool/mkopcodec.tcl. (check-in: 1506cb33 user: drh tags: omit-awk)
09:02
Add further tests for fts5 prefix queries. (check-in: accdc98b user: dan tags: trunk)
04:20
Fix a typo in the previous check-in. (check-in: 80027709 user: mistachkin tags: trunk)
03:07
When running tests on Tcl 8.6 under Windows, skip tests 'uri-1.12.*' due to a change in Tcl behavior related to NTFS ADS (alternate data streams). (check-in: 8a0a2aa5 user: mistachkin tags: trunk)
02:52
Change mkopcodeh.awk into tool/mkopcodeh.tcl. (check-in: ed0ebc46 user: drh tags: omit-awk)
00:35
Remove three obsolete and unused files from tool/ (check-in: 0abd6529 user: drh tags: trunk)
2015-10-06
21:49
Fix typo in comments. No changes to code. (check-in: a05f903c user: mistachkin tags: trunk)
21:07
Simplifications to the VDBE bytecode that handles LIMIT and OFFSET. (check-in: 041df7c2 user: drh tags: trunk)
20:53
Optimizations for fts5 expressions that filter on column. More still to come. (check-in: bf1607ac user: dan tags: trunk)
17:27
Fix the LIMIT and OFFSET handling for UNION ALL queries that contain a subquery with ORDER BY on the right-hand side. Fix for ticket [b65cb2c8d91f668584]. (check-in: 4b631364 user: drh tags: trunk)
01:44
Adjustments to sqlite3MemoryBarrier() when compiling with MSVC and/or WinCE. (check-in: 3168326e user: mistachkin tags: trunk)
2015-10-05
19:41
Improve performance of prefix queries without a prefix index on fts5 tables. (check-in: f2f0184e user: dan tags: trunk)
15:39
Update fts3 so that expressions to the left and right of a NOT operator are balanced. This prevents relatively small expressions (a dozen terms or so) that are children of NOT operators from triggering the "expression tree is too large" error. (check-in: d6b66cd7 user: dan tags: trunk)
11:57
Add fts5txt2db.tcl, a tool for creating sample fts4/5 databases from text files. (check-in: 44f1ce30 user: dan tags: trunk)
2015-10-03
15:38
Update fts5 to support the table function syntax. "... FROM fts5_tbl WHERE fts5_tbl MATCH ?1 AND rank MATCH ?1" can now be written "FROM fts5_tbl(?1, ?2)". (check-in: 41d17d9e user: dan tags: trunk)
12:23
Add tests for the rtree module to verify that attempts to insert non-integer primary key values or non-numeric dimensions into an rtree table are handled correctly. (check-in: f653fce9 user: dan tags: trunk)
2015-10-02
20:04
Update fts5 to avoid using a statement journal for UPDATE and DELETE operations that affect at most a single row. (check-in: 5c83b9db user: dan tags: trunk)
2015-10-01
18:31
Fix an fts3 bug causing NEAR queries on uncommitted data to malfunction. (check-in: 6f90839e user: dan tags: trunk)
16:35
Changes to the sesssions module ensure that tables appear within changesets and patchsets in the same order that they were attached to the sessions object. (check-in: 76958902 user: dan tags: sessions)
2015-09-30
14:50
Merge recent enhancements from trunk, and especially the fix for ticket [1b266395d6bc10]. (check-in: b2face9a user: drh tags: sessions)
14:30
Add a corrupt database to test/fuzzdata3.db to validate the previous check-in. (check-in: e796c0ef user: drh tags: trunk)
14:19
Fix an assert() in btree.c that is only true for non-corrupt databases. (check-in: 29f7227f user: drh tags: trunk)
12:59
Clear the BTCF_ValidNKey flag when putting a cursor into REQUIRESEEK state. Fix for [1b266395]. (check-in: a6d5e4e8 user: dan tags: trunk)
11:19
Improve error handling in shell command ".tables". (check-in: 31a91ee7 user: dan tags: trunk)
2015-09-29
17:51
This condition was not always true after all.....

Change an always-true condition in the virtual table transaction interface into an assert(). (Closed-Leaf check-in: 3e15dea5 user: drh tags: mistake)

17:20
Use symbolic names XN_ROWID and XN_EXPR in place of the (-1) and (-2) magic numbers in Index.aiColumn[]. Add asserts to help verify that Index.aiColumn[] is always used correctly. Fix one place in FK processing where Index.aiColumn[] was not being used correctly. (check-in: 7d272aa6 user: drh tags: trunk)
16:47
Add the sqlite3_index_info.idxFlags field, allowing xBestIndex() implementations to specify to SQLite that a strategy may visit at most one row. Add support for this to fts3/4. Omit the statement journal from virtual table UPDATE and DELETE operations that are guaranteed not to affect more than one row. (check-in: a1d08fd3 user: dan tags: trunk)
16:41
Ensure that the xSavepoint() virtual table method is correctly invoked if there are already open savepoints (or statement transactions) the first time a virtual table is written within a transaction. (check-in: 77948b5e user: dan tags: trunk)
15:50
Remove dead code, replacing with assert() statements that make sure the code really was dead. (Closed-Leaf check-in: 0e317dda user: drh tags: vtab-onepass)
13:25
Create the sqlite3IsToplevel(Parse*) interface to check to see if a top-level VDBE is being coded (versus a trigger) and use that interface. (check-in: 59662cd2 user: drh tags: vtab-onepass)
12:32
Fix compiler warnings. (check-in: d1a07838 user: drh tags: vtab-onepass)
12:19
Fix an off-by-one error in test function fts5_decode(). (check-in: 3a9f0762 user: dan tags: trunk)
11:59
Merge latest trunk change into this branch. (check-in: b519c0d6 user: dan tags: vtab-onepass)
11:57
Change the name of the new sqlite3_index_info.flags field to "idxFlags". Add documentation for the same to sqlite.h.in. (check-in: f61203bc user: dan tags: vtab-onepass)
10:11
Add tests for fts3 and onepass update/delete operations. Also fix a problem with onepass updates that do not affect any rows. (check-in: 820c8044 user: dan tags: vtab-onepass)
2015-09-28
23:45
Avoid unnecessary cursors and seeking when running a DELETE against a WITHOUT ROWID table. (Leaf check-in: 70ec88b2 user: drh tags: delete-without-rowid-opt)
20:03
Also allow UPDATE on virtual tables to use the onepass strategy. (check-in: 1aa27d70 user: dan tags: vtab-onepass)
17:05
Extra information provided by .wheretrace on input flags to the query planner and on the result of sqlite3WhereOkOnePass(). (check-in: c5566bb3 user: drh tags: trunk)
15:23
Update fts3 to use the onepass strategy for delete operations. (check-in: fffab4f7 user: dan tags: vtab-onepass)
15:20
Changes to allow DELETE operations on virtual tables to use the onepass strategy under some circumstances. (check-in: e73f919f user: dan tags: vtab-onepass)
15:08
Add test cases to the ONEPASS optimization corruption problem fixed by the previous check-in. (check-in: 5c14d447 user: drh tags: trunk)
14:40
Fix a database corruption bug caused by the ONEPASS optimization added in check-in [8b93cc5937000535]. Bug detected (prior to release) by sqllogictest. Test cases to follow. (check-in: 9d057f52 user: drh tags: trunk)
2015-09-26
17:44
Enable adding JSON1 by appending the json1.c source file to the amalgamation and compiling with -DSQLITE_ENABLE_JSON1 (check-in: 33404b20 user: drh tags: trunk)
11:15
Fix a memory leak that can occur following a syntax error in CREATE VIEW. (check-in: f4704035 user: drh tags: trunk)
03:31
Fix the title of the documentation on sqlite3_value_subtype(). This is a comment change only. (check-in: b7902354 user: drh tags: trunk)
03:23
Expand the header comment to clarify the purpose for the sqlite3MemoryBarrier() function. (check-in: b89495ae user: drh tags: trunk)
01:28
Remove an assert in the windows worker-thread logic that can fail in a race condition. (check-in: d7bfb960 user: drh tags: trunk)
2015-09-25
23:40
Fix threads.c so that setting sqlite3FaultSim(200) using the SQLITE_TESTCTRL_FAULT_INSTALL callback causes both unix and windows worker threads to be sequential and deterministic, so that they can be tested reliably. (check-in: 2d867c05 user: drh tags: trunk)
20:49
Fix PRAGMA integrity_check so that it works with a UNIQUE index over expressions. (check-in: 113181ce user: drh tags: trunk)
20:18
Fix a faulty assert() on the benign-malloc controller callback in test_malloc.c. (Leaf check-in: 64f2cb8d user: drh tags: malloc-testing)
16:29
Disable the SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS mechanism and replace it with SQLITE_TESTCTRL_BENIGN_MALLOC_CTRL, which gives better control. (check-in: 2c57b2f3 user: drh tags: malloc-testing)
13:42
Report an error if the number of named columns in a VIEW is different from the number of result columns in the SELECT statement that implements the VIEW. (check-in: 6e4ac0be user: drh tags: trunk)
01:09
Fix a problem computing affinities for indexes during skip-scan code generation when SQLITE_ENABLE_STAT4 is on. Bug introduced by check-in [1ee089a72d789002]. (check-in: 1350dd42 user: drh tags: trunk)
2015-09-24
18:47
Enhance the query planner so that it is able to use indexed expressions to help fulfill an ORDER BY clause. (check-in: 668fc1eb user: drh tags: trunk)
17:38
Fix over-length source code lines in where.c. No logic changes. (check-in: 1c8c5380 user: drh tags: trunk)
15:17
Merge all recent trunk enhancements and fixes into the begin-concurrent branch. (check-in: c63c1e15 user: drh tags: begin-concurrent)
15:06
Merge trunk changes into the cursor-hints branch. (check-in: fbe63762 user: drh tags: cursor-hints)
14:43
Merge recent trunk enhancements into the apple-osx branch. (check-in: 4dd06d8b user: drh tags: apple-osx)
14:26
Merge all the latest trunk enhancements into the sessions branch. (check-in: c91065f8 user: drh tags: sessions)
12:40
Strengthen the implementations of xShmMemoryBarrier on both the unix and windows VFSes, so that they likely work even if SQLITE_THREADSAFE=0 is used. (check-in: c6ab807b user: drh tags: trunk)
12:19
Make sure joins work correctly when both sides of the join are connected using indexed expressions. (check-in: c2fcb032 user: drh tags: trunk)
11:26
Correctly handle the case of a WHERE-clause term with indexed expressions on both sides of the == sign. (check-in: d9b716a6 user: drh tags: trunk)
11:06
Fix a JSON1 test case so that it works on builds that omit virtual tables. (check-in: a4444c0f user: drh tags: trunk)
01:40
Another (smaller) performance optimization for the JSON parser. (check-in: c43daa8c user: drh tags: trunk)
01:06
Performance optimizations on the JSON parser. (check-in: 7dd4b07a user: drh tags: trunk)
2015-09-23
19:17
Take care that the number of reserved bits per page is consistent between the source and destination databases when doing the back-copy on a VACUUM. (check-in: 5b61b72f user: drh tags: trunk)
16:35
Merge updates from trunk. (check-in: 0a75ebd2 user: mistachkin tags: mutexInitIsInitReCheck)
16:33
Correct superfluous whitespace difference. No functional changes. (check-in: 8d69983d user: mistachkin tags: mutexInitSimpleCmpSwap)
16:24
Simplify thread-safety of mutex initialization. (check-in: da0587c5 user: mistachkin tags: mutexInitSimpleCmpSwap)
15:54
Merge updates from trunk. (Closed-Leaf check-in: 6b85f8cd user: mistachkin tags: mutexInitCmpSwap)
11:59
Capture AFL-generated fuzz tests for json1.c into the test/fuzzdata4.db file. (check-in: 10a214fd user: drh tags: trunk)
01:10
Do not allow a comma at the end of a JSON array or object. (check-in: 7c7a3f3e user: drh tags: trunk)
2015-09-22
18:51
Add the --export-sql and --export-db options to the fuzzcheck utility program. (check-in: 760af445 user: drh tags: trunk)
17:46
Fix a typo in the --help screen of the fuzzcheck utility. (check-in: b6ae61fe user: drh tags: trunk)
01:15
Futher simplifications to json1.c. Also an obscure bug-fix in the initial output of json_tree() when using a path to an object contained within an array. (check-in: fcb1e327 user: drh tags: trunk)
00:21
Fix json_set() so that it can overwrite a value that was previously overwritten during the same call. (check-in: 0f160416 user: drh tags: trunk)
2015-09-21
23:53
For MSVC, have the 'sqlite3.c' target depend on 'sqlite3ext.h' as well as other targets may depend on this behavior (e.g. extensions). (check-in: 737ac3fa user: mistachkin tags: trunk)
23:49
Fix compilation under older versions of MSVC. (check-in: 17150ada user: mistachkin tags: trunk)
22:53
Simplifications to the json1.c logic. (check-in: 1646a2bd user: drh tags: trunk)
2015-09-20
22:57
Fix an overly-strict assert() in the btree logic. (check-in: 825ce320 user: drh tags: trunk)
2015-09-19
20:27
Do not allow table-valued function syntax to be used on a view. (check-in: 97cfe346 user: drh tags: trunk)
19:36
Add the --disable-lookaside option to the fuzzershell utility program. (check-in: 0b043744 user: drh tags: trunk)
18:54
Fix a memory leak in json1.c that could occur after misuse of json_object(). (check-in: 394b81b1 user: drh tags: trunk)
18:11
Add an assert() statement to delete.c. (check-in: 40fce67e user: dan tags: trunk)
18:08
Fix compiler warnings. (check-in: 5c31ee62 user: drh tags: trunk)
16:51
Add json1.c to the fuzzer test shells. (check-in: 809d67b6 user: drh tags: trunk)
16:45
Adjust Makefiles to use SQLITE_CORE when statically linking json1.c into test shells. (Closed-Leaf check-in: 91682ac3 user: drh tags: json-fuzz)
14:57
Adjust fuzzershell so that it adds the json1 extension separately for each no connection. (check-in: ca2d1e90 user: drh tags: json-fuzz)
14:32
Include json1.c in fuzzcheck and fuzzershell. (check-in: c4b68eff user: drh tags: json-fuzz)
12:04
Fix a documentation typo in sqlite3_bind_parameter_index(). No code changes. (check-in: 650605a8 user: drh tags: trunk)
11:57
Fix an off-by-one error (really off-by-2 in this case) in the buffer resize logic of json1. (check-in: d2a02737 user: drh tags: trunk)
03:07
Do not allow rowid in a UNIQUE or PRIMARY KEY constraint. (This restores the same behavior exhibited by all prior releases.) (check-in: b1278301 user: drh tags: trunk)
2015-09-18
18:09
Fix a crash that can occur with a skip-scan on an index with expressions when SQLITE_ENABLE_EXPLAIN_COMMENTS is defined. (check-in: 25f34cb9 user: drh tags: trunk)
15:38
Adjustments to the spellfix2.test module so that it works reliably on windows. (check-in: 09a313fb user: drh tags: trunk)
15:35
Adjust two test cases so that they conform to the current code. (check-in: 228e3d7c user: drh tags: trunk)
15:13
Fix sqlilimits.test module so that it knows that the SELECT in a CREATE VIEW is not checked until the view is actually used. (check-in: acf5d87f user: drh tags: trunk)
14:45
Ensure that "PRAGMA integrity_check" reports an error if the free-list count header field contains a value smaller than the actual number of pages on the database free-list. (check-in: 26f64986 user: dan tags: trunk)
14:42
Fix the orderby9.test case so that it works with 32-bit versions of TCL (check-in: 4b6af774 user: drh tags: trunk)
14:22
Remove a test made obsolete by the ONEPASS DELETE optimization. (check-in: c88b62c2 user: drh tags: trunk)
2015-09-17
17:21
Avoid passing (signed char) values directly to isspace(), isalnum() or isdigit() in json1.c. Cast the value to (unsigned char) first. (check-in: 6713e35b user: dan tags: trunk)
09:48
Fix a crash in FTS5 caused by specifying NULL as the rhs of a MATCH operator. (check-in: e8ed62f8 user: dan tags: trunk)
2015-09-16
17:46
Add a "flush" to force incremental output to releasetest-out.txt while running the test/releasetest.tcl. script. (check-in: 0f3de2d3 user: drh tags: trunk)
12:31
Fix typo in fts5.h. (check-in: 07721c6c user: dan tags: trunk)
2015-09-15
19:16
Merge enhancements from trunk. (check-in: fc4d1de8 user: drh tags: begin-concurrent)
17:31
Merge enhancements from trunk. (check-in: 66fe0683 user: drh tags: cursor-hints)
17:20
Merge trunk enhancements into the apple-osx branch. (check-in: f12b8a0f user: drh tags: apple-osx)
15:55
Merge the latest trunk enhancements with this branch. (check-in: b7469c44 user: dan tags: sessions)
14:39
Add test cases to cover fts5 integrity-check code. (check-in: 1d018c35 user: dan tags: trunk)
13:42
Reformat some code to make it easier to merge with sessions. No logic changes. (check-in: eade355f user: drh tags: trunk)
11:58
Fix a problem with fts5 "ORDER BY rowid DESC" queries and large terms. (check-in: b26d8f79 user: dan tags: trunk)
2015-09-14
22:54
Remove a comment that is no longer accurate. (check-in: cf114c18 user: mistachkin tags: mutexInitIsInitReCheck)
22:53
Merge updates from trunk. (check-in: 25c15771 user: mistachkin tags: mutexInitIsInitReCheck)
22:52
Re-check sqlite3GlobalConfig.isInit after the mutex subsystem has been initialized. (check-in: fea8c0b2 user: mistachkin tags: mutexInitIsInitReCheck)
19:51
Improve test coverage of fts5_index.c. (check-in: c1f76686 user: dan tags: trunk)
19:26
Testability improvements for the ONEPASS_MULTI enhancement. (check-in: d2df93f2 user: drh tags: trunk)
14:49
Fix a typo in an SQLITE_USER_AUTHENTICATION macro. (check-in: 379455af user: drh tags: trunk)
14:45
Use symbolic names ONEPASS_OFF, ONEPASS_SINGLE, and ONEPASS_MULTI for the various modes of the one-pass optimization. (check-in: 16e56bda user: drh tags: trunk)
14:08
Fix a compiler warning and providing missing VdbeCoverage() calls. (check-in: 2edd2e5e user: drh tags: trunk)
11:09
Use a single-pass approach for DELETE statements on non-virtual tables that do not require trigger or foreign key processing. (check-in: 8b93cc59 user: dan tags: trunk)
10:47
Merge the latest trunk enhancements. (check-in: 22ce9218 user: drh tags: sessions)
09:23
Avoid calling sqlite3VdbeCursorMoveto() from more than one point in vdbe.c. Doing so prevents it from being inlined as part of OP_Column. (Closed-Leaf check-in: 166d5af8 user: dan tags: onepass-delete)
2015-09-13
20:15
Add static VFS mutexes to the primary header file comments. (check-in: 9a867d9f user: mistachkin tags: trunk)
18:45
Experimental changes to avoid recusrively calling xMutexInit. (check-in: c9400ff1 user: mistachkin tags: mutexInitCmpSwap)
18:43
Merge updates from trunk. (check-in: b42c2e20 user: mistachkin tags: mutexInitCmpSwap)
2015-09-12
19:50
Fix compiler warnings in delete.c. (check-in: 0a4d285e user: dan tags: onepass-delete)
19:27
Fix API documentation typos. Emphasize that the sqlite3_config() routine is not threadsafe. (check-in: 786333e0 user: drh tags: trunk)
19:26
Experimental change to use a single-pass approach for DELETE statements on non-virtual tables that do not fire triggers or require foriegn-key processing. (check-in: eaeb2b80 user: dan tags: onepass-delete)
18:58
Merge updates from trunk. (check-in: d8051f61 user: mistachkin tags: mutexInitCmpSwap)
18:57
Import common changes from the mutex initialization branch. (check-in: 334720c0 user: mistachkin tags: trunk)
16:59
Merge updates from trunk. (check-in: 48597789 user: mistachkin tags: mutexInitCmpSwap)
04:22
Fix comments. (check-in: de3fa51e user: mistachkin tags: mutexInitCmpSwap)
04:19
Specifying an invalid mutex implementation (via SQLITE_CONFIG_MUTEX) should cause the default one to be used instead. (check-in: 1a97bc81 user: mistachkin tags: mutexInitCmpSwap)
03:40
Clarify the new mutex implementation reset logic in sqlite3_shutdown(). (check-in: f9a03483 user: mistachkin tags: mutexInitCmpSwap)
03:35
Add more asserts to the mutex subsystem. (check-in: 7562f1fb user: mistachkin tags: mutexInitCmpSwap)
01:17
Fix typo in the Win32 implementation of sqlite3CompareAndSwap. (check-in: 31a26a1d user: mistachkin tags: mutexInitCmpSwap)
2015-09-11
23:24
Make sure that the mutex implementation can be altered after calling sqlite3_shutdown(). (check-in: dc2cf897 user: mistachkin tags: mutexInitCmpSwap)
20:54
Update evidence marks due to wording changes in requirements text. No changes to code. (check-in: 86781093 user: drh tags: trunk)
18:05
Fix harmless compiler warnings. (check-in: bfc7b84b user: mistachkin tags: trunk)
15:32
More test cases in test/json102.test corresponding to new examples in the json1 documentation. (check-in: f599a42e user: drh tags: trunk)
14:15
Fix some compiler warnings in fts5 code. (check-in: 0dc43611 user: dan tags: trunk)
05:06
Enhance mutex initialization to prevent possible race conditions between sqlite3_initialize() and sqlite3_config(). Also, re-check sqlite3GlobalConfig.isInit after the mutex subsystem has been initialized. (check-in: f6a8f577 user: mistachkin tags: mutexInitCmpSwap)
01:22
Updates to the sqlite3_value_subtype() and sqlite3_result_subtype() documentation and to test cases for json1 dealing with those interfaces. (check-in: d6cadbe9 user: drh tags: trunk)
00:26
Add new interfaces sqlite3_value_subtype() and sqlite3_result_subtype(). Update the json1.c extension to take advantages of those interfaces to avoid the goofy '$$' path syntax and to allow nested calls to json_array() and json_object() that work as expected. (check-in: db4152ae user: drh tags: trunk)
00:06
Take out the goofy '$$' path syntax. Instead, use subtypes to communicate when a string is JSON. Add the json() function that validates and minifies the JSON and sets the appropriate subtype. (Closed-Leaf check-in: 8a80d645 user: drh tags: subtypes)
2015-09-10
20:40
Make the sqlite3_value_subtype() and sqlite3_result_subtype() interfaces available to loadable extensions. (check-in: c6fca0be user: drh tags: subtypes)
20:34
Experimental implementation of sqlite3_result_subtype() and sqlite3_value_subtype() interfaces. (check-in: 7b5be299 user: drh tags: subtypes)
19:22
Fix a potential NULL pointer deref in the testing logic of pcache1. NB: The -DSQLITE_TEST compile-time option is needed to hit the problem. (check-in: f5580f08 user: drh tags: trunk)
17:23
Modify the fts5 leaf page format to permit faster seek operations. This is a file-format change. Any existing databases can be upgraded by running the fts5 'rebuild' command. (check-in: 0c0c4ae9 user: dan tags: trunk)
17:20
Create separate "path" and "root" columns in the json_each() and json_tree() virtual tables. "Root" is the 2nd parameter and is fixed. "Path" varies as json_tree() walks the hierarchy. (check-in: 127cce3e user: drh tags: trunk)
16:39
Increment the fts5 version value to indicate that the on-disk format has changed. (Closed-Leaf check-in: 99de5e36 user: dan tags: fts5-incompatible)
16:19
Fix a segfault in fts5 that could occur if the database contents were corrupt. (check-in: 4931e37d user: dan tags: fts5-incompatible)
15:52
Merge latest changes from trunk. Including fts5_expr.c fixes. (check-in: 716e7e74 user: dan tags: fts5-incompatible)
15:49
Update description of on-disk format in fts5_index.c. (check-in: 85aac7b8 user: dan tags: fts5-incompatible)
15:24
Make the sqlite3ext.h header file responsive to -DSQLITE_OMIT_LOAD_EXTENSION. (check-in: 47a46a9f user: drh tags: trunk)
15:22
Disable tests for json_each() and json_tree() on builds where virtual tables are not supported (check-in: bb8ee3b1 user: drh tags: trunk)
15:20
Fix the --help option on test/releasetest.tcl. Also fix the final error count so that it includes a count of subtest crashes. (check-in: 9ecf684d user: drh tags: trunk)
10:40
Revert an accidentally committed makefile change. (check-in: 402704b1 user: dan tags: fts5-incompatible)
10:01
Fix an fts5 problem that could occur if a term and the first associated rowid are on different leaf pages. (check-in: ffe2796a user: dan tags: fts5-incompatible)
05:40
Change the array of 16-bit offsets at the end of each page to an array of varints. (check-in: fab245be user: dan tags: fts5-incompatible)
04:17
Attempt to declare sqlite3MemoryBarrier() correctly for all possible build configurations. (check-in: da8a288f user: drh tags: trunk)
03:29
Fix the json_tree() scan for the case when a path is supplied. Add new json1 test cases. (check-in: 6adc7de7 user: drh tags: trunk)
01:22
No-op the sqlite3_memory_alarm() interface in a different way, that does not break legacy memory behavior. This is a re-do of check-in [5d3f5df4da9f40d5]. (check-in: 8250e2a4 user: drh tags: trunk)
2015-09-09
23:54
Fix harmless compiler warning in FTS5. (check-in: 86146a73 user: mistachkin tags: trunk)
19:44
Fix an assert() enabled by SQLITE_ENABLE_EXPENSIVE_ASSERT in wal.c. (check-in: 8d2ed150 user: dan tags: trunk)
19:27
Fix a possible NULL pointer deref when using SQLITE_ENABLE_MEMORY_MANAGEMENT. (check-in: 89bfdbfe user: drh tags: trunk)
17:23
Fix harmless compiler warning. (check-in: 280fd3a4 user: mistachkin tags: trunk)
17:17
Fix harmless compiler warnings in FTS5. (check-in: 2cdb1877 user: mistachkin tags: trunk)
13:28
When running a CREATE TABLE AS, make the initial temporary sqlite_master entry for the new table a real record rather than a NULL, in case the query after the AS actually tries to read the sqlite_master table. Fix for ticket [acd12990885d9276]. (check-in: 4a18d8bd user: drh tags: trunk)
08:15
Fix a bug in preprocessor macros within fts5_main.c. (check-in: 0eb2b952 user: dan tags: fts5-incompatible)
2015-09-08
21:16
Remove an unused local variable from Lemon. (check-in: fe9ffe5e user: drh tags: trunk)
21:12
Enhance the DBSTAT virtual table with a new hidden table "schema" that if set will cause the table to report on the specified schema rather than on "main". Also: Fix a faulty assert in sqlite3_context_db_handle(). (check-in: 6beb512c user: drh tags: trunk)
20:26
Eponymous virtual tables exist in the "main" schema only. Enforce this rule. (check-in: 06f90bb2 user: drh tags: trunk)
19:55
Remove the 0x00 terminators from the end of fts5 doclists stored on disk. (check-in: 00d99006 user: dan tags: fts5-incompatible)
17:31
Fix the help message that sqlite3_analyzer.exe generates for invalid arguments. (check-in: 33a14e7b user: drh tags: trunk)
2015-09-07
23:40
Minor tweaks to Lemon. (check-in: 98667722 user: drh tags: trunk)
20:22
Merge parser enhancements and other improvements and bug fixes from trunk. (check-in: 9cf3e51b user: drh tags: begin-concurrent)
20:11
Enhance the Lemon parser generator to add SHIFTREDUCE states that reduce the sizes of some of the parser tables. (check-in: 99b992fa user: drh tags: trunk)
20:02
Fix an unreachable branch in the new parse automaton. (Closed-Leaf check-in: e9d604b4 user: drh tags: lemon-update)
19:52
Change the parser engine so that it (once again) waits for a lookahead token before reducing, even in a SHIFTREDUCE action. (check-in: 2c17a135 user: drh tags: lemon-update)
18:23
For the Lemon-generated parser, add a new action type SHIFTREDUCE and use it to further compress the parser tables and improve parser performance. (check-in: 531c3974 user: drh tags: lemon-update)
14:22
In the "parse.out" output file from Lemon, show addition the complete text of rules on reduce actions. (check-in: b6ffb7e4 user: drh tags: trunk)
08:14
Use macros to make the code in fts5_index.c easier to read. (check-in: 67ff5ae8 user: dan tags: fts5-incompatible)
02:23
Improved "Parser Statistics" output (the -s option) for the Lemon parser generator. (check-in: 809503e4 user: drh tags: trunk)
2015-09-06
10:31
Improved memory barrier that should work with MinGW on older versions of Windows. (check-in: 47dc24bd user: drh tags: trunk)
02:51
Add a memory barrier to the mutex initialization logic, try to work around an issue reported by WebKit. (check-in: 11a9a786 user: drh tags: trunk)
2015-09-05
22:36
Omit all use of Expr nodes for TK_AS, as those nodes no longer served a useful purpose and in fact interferred with the query planner. (check-in: 7ab0b258 user: drh tags: trunk)
19:52
Experiment with a different fts5 leaf page format that allows faster seeks. (check-in: a1f4c3b5 user: dan tags: fts5-incompatible)
19:21
Fix an unreachable conditional in the WHERE clause analysis logic. (check-in: 24924a58 user: drh tags: trunk)
19:07
Get STAT4 range scan estimates work again when the bounds are determined by date/time functions. (check-in: d2761357 user: drh tags: trunk)
2015-09-04
18:03
Fix over-length source code lines in Lemon. (check-in: 1efece95 user: drh tags: trunk)
17:32
Add support for CREATE INDEX statements that use deterministic expressions rather than only column names. (check-in: 2131a5ca user: drh tags: trunk)
17:22
Merge the latest trunk changes, and especially the fix for allowing strings as identifiers in CREATE INDEX statements. (check-in: a9b84885 user: drh tags: begin-concurrent)
16:39
Remove the EXCLUSIVE and CONCURRENT tokens from the tokenizer. Let the BEGIN statement be followed by an ID, but throw a syntax error if the ID is anything other than EXCLUSIVE or CONCURRENT. (check-in: c0bf92ec user: drh tags: begin-concurrent)
13:02
Merge trunk enhancements, and espeically the fix for allowing strings as column identifers in CREATE INDEX statements. (Closed-Leaf check-in: 5ff85529 user: drh tags: index-expr)
12:54
Continue to support the (broken) legacy syntax of allowing strings for column names in CREATE INDEX statements and in UNIQUE and PRIMARY KEY constraints. (check-in: 3d3df79b user: drh tags: trunk)
11:13
Enhance showfts5.tcl so that it can optionally display the number of terms in each segment. (check-in: d648ddd9 user: dan tags: trunk)
10:31
Modify the fts5 custom tokenizer interface to permit synonym support. The fts5_api.iVersion value is now set to 2. Existing fts5 custom tokenizers (if there are such things) will need to be updated to use the new api version. (check-in: 0b7e4ab8 user: dan tags: trunk)
10:24
Merge latest trunk changes. (Closed-Leaf check-in: 443a5eb8 user: dan tags: fts5-incompatible)
04:31
Simplification of the LRU list handling in pcache1. (check-in: 05a3a2cd user: drh tags: trunk)
2015-09-03
20:52
Merge performance enhancements from trunk. This branch now runs (slightly) faster than the 3.8.11.1 release, though still slightly slower than trunk. (check-in: c490bfb1 user: drh tags: begin-concurrent)
20:43
Change the pcache module to keep track of the total number of references to all pages rather than the number of pages references, for a performance improvement and size reduction. (check-in: f00a9e1e user: drh tags: trunk)
19:48
Rearrange code in fts5_expr.c so that synonym support does not slow down the common case. (check-in: 80188281 user: dan tags: fts5-incompatible)
18:57
Merge enhancements from trunk. (check-in: 4b49fe99 user: dan tags: fts5-incompatible)
18:20
A simple optimization and size reduction in sqlite3PagerAcquire(). (check-in: 618d8dd4 user: drh tags: trunk)
18:05
Add documentation for fts5 synonym support. (check-in: 58aa1f43 user: dan tags: fts5-incompatible)
17:54
Change the Pager.hasBeenUsed flag into Pager.hasHeldSharedLock in order to take it off the critical path in sqlite3PagerAcquire(). (check-in: b79096be user: drh tags: trunk)
15:37
Add tests to improve coverage of fts5_varint.c. (check-in: 89f24f31 user: dan tags: fts5-incompatible)
15:17
Changes from ENABLE_CONCURRENT (default off) to OMIT_CONCURRENT (default on). This is not a clear-cut decision and might be changed back. (check-in: f8ae9bfd user: drh tags: begin-concurrent)
14:48
Merge recent trunk enhancements. (check-in: 6a513c05 user: drh tags: sessions)
14:39
Merge enhancements from trunk. (check-in: 25ee3000 user: drh tags: cursor-hints)
14:31
Merge enhancements from trunk. (check-in: d01658ad user: drh tags: apple-osx)
14:22
Remove some more code from fts5_index.c by consolidating similar functions. (check-in: 59ae30b9 user: dan tags: fts5-incompatible)
14:18
Merge enhancements from trunk. (check-in: 1ab10cbf user: drh tags: index-expr)
14:04
Merge trunk optimizations. (check-in: 71e7299e user: drh tags: begin-concurrent)
13:46
Add the sqlite3VdbeLoadString() and sqlite3VdbeMultiLoad() routines to help with code generation, especially on PRAGMAs. Rename sqlite3VdbeAddGoto() to just sqlite3VdbeGoto(). (check-in: 847387ec user: drh tags: trunk)
11:17
Remove dead code from fts5_index.c. (check-in: 8a0a9b01 user: dan tags: fts5-incompatible)
11:00
Fix the fts5 integrity-check so that it works with columnsize=0 tables. (check-in: 11b887b1 user: dan tags: fts5-incompatible)
10:27
Fix a memory leak in fts5_expr.c. (check-in: 399932a1 user: dan tags: fts5-incompatible)
04:28
Factor out and simplify code in pragma.c for pragmas that return a single row with a single column that is an integer or text value. (check-in: d7f4bdf5 user: drh tags: trunk)
03:29
For PRAGMAs, factor out the code that sets the result set column names into a subroutine. (check-in: 0ea6e5c9 user: drh tags: trunk)
2015-09-02
21:00
Optimizations to the printf formatter. (check-in: a3b35dde user: drh tags: trunk)
19:48
Further tests to raise coverage of fts5 synonym code to 100%. Fix a dropped error code in the same. (check-in: bdedd838 user: dan tags: fts5-incompatible)
18:56
Fix an issue with fts5 synonyms and NEAR(...) queries. (check-in: f2e59070 user: dan tags: fts5-incompatible)
18:40
Add and use the sqlite3VdbeChangeOpcode() routine. Simplify the implementation of the other sqlite3VdbeChange*() routines. (check-in: 0a5b00e4 user: drh tags: trunk)
18:19
Add the sqlite3VdbeAddGoto(v,i) routine as a shorthand for sqlite3VdbeAddOp2(v,OP_Goto,0,i). (check-in: be78f413 user: drh tags: trunk)
17:55
Change sqlite3_sql() so that it always returns the SQL text of the prepared statement, if the text is available, even if the the prepared statement was generated using sqlite3_prepare() instead of sqlite3_prepare_v2(). Also include some minor comment fixes and code simplifications. (check-in: 2f5472cf user: drh tags: trunk)
17:34
Fix a problem with fts5 synonyms and phrase queries. Also fix an OOM handling bug in fts5. (check-in: a4c35fa2 user: dan tags: fts5-incompatible)
16:51
Small simplification to the EXPLAIN QUERY PLAN logic. (check-in: d1592d20 user: drh tags: trunk)
15:37
Use sqlite3XPrintf() instead of sqlite3StrAccumAppend() in a few places for better performance and a smaller footprint. (check-in: 82355e41 user: drh tags: trunk)
14:56
The sqlite3_memory_alarm() interface has been deprecated and undocumented for almost 8 years (since version 3.5.3). Change it into a no-op. (check-in: 5d3f5df4 user: drh tags: trunk)
14:17
Fix a problem handling OOM conditions within fts5 queries that feature synonyms. (check-in: 11fa9808 user: dan tags: fts5-incompatible)
12:52
This change is not correct for the boundary case of nCellKey==0. Was: Small performance gain and size reduction in sqlite3VdbeIdxKeyCompare(). (Closed-Leaf check-in: 6e0298cd user: drh tags: mistake)
08:22
Fix a problem with fts5 synonyms and the xQueryPhrase() auxiliary function API. (check-in: cf3e45e7 user: dan tags: fts5-incompatible)
2015-09-01
23:51
Very minor optimizations in the unix VFS. (check-in: 6db3ff45 user: drh tags: trunk)
22:29
Performance improvement in sqlite3VarintLen(). (check-in: adf9fefb user: drh tags: trunk)
20:09
Small size reduction and performance increase in sqlite3DbMallocSize(). (check-in: 8a80967f user: drh tags: trunk)
19:51
Reduce the number of calls to sqlite3BeginBenignMalloc(). (check-in: 0bee6583 user: drh tags: trunk)
18:52
Merge recent enhancements from trunk. (check-in: cb772366 user: drh tags: sessions)
18:44
Fix a problem that occurs when more than 4 synonyms for a term appear within a single row. (check-in: cd359550 user: dan tags: fts5-incompatible)
18:40
Merge the latest trunk enhancements. (check-in: 4af79477 user: drh tags: apple-osx)
18:31
Merge enhancements from trunk. (check-in: 29570a60 user: drh tags: cursor-hints)
18:08
Add tests for fts5 synonyms implemented by adding extra terms to queries. And fixes for the same. (check-in: dbcb7380 user: dan tags: fts5-incompatible)
18:01
Merge the latest trunk enhancements. (check-in: 3dea0474 user: drh tags: begin-concurrent)
17:48
Fixes so that it builds without warnings both with and without SQLITE_ENABLE_CONCURRENT. (check-in: 5ed2a445 user: drh tags: begin-concurrent)
13:17
Rename SQLITE_FUNC_VARYING to SQLITE_FUNC_SLOCHNG - a more descriptive name for what that bit means. (check-in: ff5137a6 user: drh tags: index-expr)
00:42
Remove unreachable branches. (check-in: fd4da231 user: drh tags: index-expr)
2015-08-31
23:09
Fix a bug in error reporting when a UNIQUE index on expressions fails its uniqueness test. (check-in: 5a2c0e90 user: drh tags: index-expr)
21:16
Not only date/time functions, but also functions like sqlite_version() and changes() need to be prohibited from use inside of indexes. (check-in: 48713130 user: drh tags: index-expr)
20:06
Begin changes to allow synonym support by adding multiple terms to a query (an alternative to adding multiple terms to the FTS index). (check-in: ad7feaed user: dan tags: fts5-incompatible)
19:38
Always assume that indexed expressions can generate a NULL. Get indexed expressions working for the case of two or more expressions in the same index. (check-in: cc60321a user: drh tags: index-expr)
18:13
Case should not be significant when comparing function names. (check-in: e2f1caf1 user: drh tags: index-expr)
17:34
Make the distinction between truly deterministic functions and date/time functions which only return the same answer for a single query. Only truly deterministic functions are allowed in indexes. Add new expression index test cases. (check-in: c77554b5 user: drh tags: index-expr)
15:58
Improved analysis and usage of indexed expressions in the query planner. (check-in: f8893696 user: drh tags: index-expr)
14:27
Merge the latest enhancements from trunk. (check-in: 7bde6d4d user: drh tags: index-expr)
2015-08-29
19:41
Enhance the json_extract() function so that if given multiple PATH arguments it will return a JSON array with all of the answers. Also update comments within the json1 extension to reflect stricter interpretation of JSON and PATH arguments. (check-in: 1da60c3d user: drh tags: trunk)
19:03
Link the json1 extension into the command-line shell by default. (check-in: 2e8e239c user: drh tags: trunk)
18:46
Add a test for an fts5 tokenizer that supports synonyms by adding multiple entries to the fts index. (check-in: 98d07d16 user: dan tags: fts5-incompatible)
18:30
New test cases for the json1 extension. (check-in: daff4832 user: drh tags: trunk)
17:22
Fix the build with -DSQLITE_OMIT_VIRTUALTABLE. (check-in: 752918de user: drh tags: trunk)
16:02
Do not consider an empty string to be valid JSON. Add some additional JSON test cases. (check-in: fd19ff02 user: drh tags: trunk)
15:44
Another change to the fts5 tokenizer API. (check-in: fc718684 user: dan tags: fts5-incompatible)
00:54
Change the json1.c module so that it throws an error if any of the JSON selector paths are malformed. (check-in: 3aa0855f user: drh tags: trunk)
2015-08-28
20:07
Back out the json_check() routine. Instead, throw an error if the input to a json function (other than json_valid()) is not valid JSON. (check-in: dc9ce7b1 user: drh tags: trunk)
19:56
Change the fts5 tokenizer API to allow more than one token to occupy a single position within a document. (check-in: 90b85b42 user: dan tags: fts5-incompatible)
16:41
Fix compiler warnings in rbu code. (check-in: 0fdc36fe user: dan tags: trunk)
16:18
When searching the wal file for a frame, do not search that part that was already checkpointed when the transaction was opened. (check-in: a84cf4f5 user: dan tags: trunk)
15:50
Merge latest trunk into this branch. (Closed-Leaf check-in: ab93024d user: dan tags: wal-read-change)
15:35
Fix a potential segfault in the VFS logic that checks for fail renames out from under SQLite. (check-in: 650111f6 user: drh tags: apple-osx)
13:27
Disable the read-only WAL-mode database tests on the apple-osx branch because read-only WAL-mode databases are specifically disallowed by Apple-specific changes. (check-in: bd911496 user: drh tags: apple-osx)
09:27
Merge latest trunk changes with this branch. (check-in: 57bc0194 user: dan tags: begin-concurrent)
03:48
Add the json_check() function, which returns its argument if the argument is well-formed JSON or which throws an error otherwise. (check-in: 64abb65d user: drh tags: trunk)
03:33
Enhance the json_insert(), json_replace(), and json_set() functions with the ability to add JSON instead of text if the argument is text and if the PATH begins with '$$' instead of just '$'. (check-in: 44f103d8 user: drh tags: trunk)
02:12
Merge trunk enhancements into the apple-osx branch. Most tests works, but there are yet a few issues to be resolved. (check-in: da864658 user: drh tags: apple-osx)
2015-08-27
23:42
Fix the OR-optimization so that it always ignores subplans that do not use an index. (check-in: cf452028 user: drh tags: index-expr)
23:18
Fix the OR-optimization so that it always ignores subplans that do not use an index. (check-in: 66f92a16 user: drh tags: trunk)
20:33
Fix EXPLAIN QUERY PLAN output for indexed-expressions. Fix another obscure fault in the WHERE term scanner. (check-in: 73d361ce user: drh tags: index-expr)
19:57
Add header comments for new methods in pager.c. (check-in: 437c7e21 user: dan tags: begin-concurrent)
19:56
Fix problems in the indexed-expression handling in the optimizer. (check-in: 03375017 user: drh tags: index-expr)
19:22
Add test cases for concurrent transactions and long-lived SELECT statements. (check-in: fd4798cb user: dan tags: begin-concurrent)
18:24
Activate the ability to use expressions in indexes in a query. There are some test failures, but mostly this seems to work. (check-in: 42f93f58 user: drh tags: index-expr)
17:42
Fix a problem whereby concurrent transactions would not consider pages read by the transaction before the first write statement. (check-in: fc17f731 user: dan tags: begin-concurrent)
16:07
Merge changes from trunk. (check-in: c80e9e8e user: drh tags: index-expr)
15:58
Adjustments to the WHERE term scanning, to better handle scanning terms of an index. (check-in: 5611130a user: drh tags: index-expr)
2015-08-26
21:08
Reduce the size of the WhereScan object by 24 bytes while also clarifying its operation. (check-in: cbc3c9a8 user: drh tags: trunk)
18:54
Fix an assert() in pager.c that could fail in a concurrent transaction. (check-in: 69394dda user: dan tags: begin-concurrent)
18:04
Merge enhancements from trunk. (check-in: ec6ddb3d user: drh tags: index-expr)
18:02
Fix a problem allowing some conflicting transactions to be committed. (check-in: a0566382 user: dan tags: begin-concurrent)
14:01
Evaluate expressions only once when the same expression is used in both the result set and in the ORDER BY clause. (check-in: c2f3bbad user: drh tags: trunk)
11:40
Refactor With.a.zErr into With.a.zCteErr. No logic changes. (check-in: 58ba7363 user: drh tags: trunk)
11:34
Update the TreeView output for compound SELECT statements so that all entries are shown vertically aligned rather than each successive entry being indented. (check-in: 65a89187 user: drh tags: trunk)
2015-08-25
19:42
Move sqlite3IndexColumnAffinity() inside of SQLITE_ENABLE_STAT3_OR_STAT4. (check-in: b3732a4e user: drh tags: trunk)
19:24
Merge trunk enhancements. (check-in: e8b02902 user: drh tags: index-expr)
19:20
Use the sqlite3IndexColumnAffinity() routine to quickly and correctly find the affinity of an index column. (check-in: 1ee089a7 user: drh tags: trunk)
19:10
Add miscellaneous test cases for concurrent transactions. (check-in: 779b1d0e user: dan tags: begin-concurrent)
17:16
If "PRAGMA integrity_check" is run while the database is being written by a CONCURRENT transaction, do not consider unreferenced pages to be an error. They may be part of the free-page list, which is not visible at the b-tree layer when running a CONCURRENT transaction. (check-in: f32b57b4 user: dan tags: begin-concurrent)
16:57
Add code to maintain indexes with expression arguments across DELETE, INSERT, and UPDATE statements. Legacy tests pass, but the new code paths are still largely untested. The query planner currently makes no effort to use expression indexes. (check-in: efaabdb7 user: drh tags: index-expr)
16:01
Test that if a corrupt wal-index header is encountered when attempting to commit a concurrent transaction, SQLITE_BUSY_SNAPSHOT is returned to the caller. (check-in: c746e0bd user: dan tags: begin-concurrent)
14:37
Fix a segfault that could occur following an OOM condition in the concurrent transaction code. (check-in: 231b5880 user: dan tags: begin-concurrent)
11:16
Merge latest trunk changes with this branch. (check-in: 3e7d6dd6 user: dan tags: begin-concurrent)
00:34
Fix a memory leak that might occur when compiling with SQLITE_OMIT_CHECK. (check-in: 8f1d9f1f user: drh tags: trunk)
00:27
Changes toward being able to process indexes on expressions. Not there yet - this check-in is just movement in that direction. Some tests are failing. (check-in: 0ad0f8d7 user: drh tags: index-expr)
2015-08-24
22:06
Remove duplicated line of code. (check-in: 47280f2a user: mistachkin tags: begin-concurrent)
20:54
Remove some redundant code: Call sqlite3ResolveExprListNames() rather than calling sqlite3ResolveExprNames() in a loop - in two places. (check-in: bdaf6646 user: drh tags: trunk)
20:21
Enhances the parser so that it accepts arbitrary expressions for the arguments of an index, though the code generator still rejects everything other than simple column names. The sqlite3RestrictColumnListSyntax() routine is removed since that feature is now handled by the parser. (check-in: bed42116 user: drh tags: trunk)
19:56
Change "BEGIN UNLOCKED" to "BEGIN CONCURRENT". (check-in: ba1ab858 user: dan tags: begin-concurrent)
19:08
Fix handling of attempts to modify the database schema, application_id or user_version within an UNLOCKED transaction. (check-in: 5b9f2721 user: dan tags: begin-concurrent)
17:42
Enhance the CREATE VIEW syntax so that the names of columns of the view can be specified after the view name. (check-in: d794b34d user: drh tags: trunk)
17:18
Enhancements to the batch build tool for MSVC. (check-in: a1ae20cd user: mistachkin tags: trunk)
16:00
Fix compilation without SQLITE_ENABLE_UNLOCKED. Also other code organization issues. (check-in: 04113557 user: dan tags: begin-concurrent)
15:39
Disallow the use of COLLATE clauses and the ASC and DESC keywords within foreign key constraints and in the argument list to common table expressions. (check-in: 83cbc4d8 user: drh tags: trunk)
12:42
Improvements to JSON string dequoting. (check-in: 196d66d3 user: drh tags: trunk)
10:05
Consolidate two blocks of similar code in btreeFixUnlocked(). (check-in: 701302b4 user: dan tags: begin-concurrent)
06:44
Merge trunk changes with this branch. (check-in: 876810c2 user: dan tags: begin-concurrent)
06:43
Fix another problem involving unlocked transactions and wal-file restarts. (check-in: 4460764e user: dan tags: begin-concurrent)
02:32
Fix corner-case problems in the type and atom columns of json_each() and json_tree(). (check-in: f0aba0e1 user: drh tags: trunk)
2015-08-23
20:48
Fix a comment typo on sqlite3ExprAlloc(). No code changes. (check-in: 518d6220 user: drh tags: trunk)
20:44
Fix minor glitches in the json1.c extension, mostly having to do with OOM behavior. (check-in: cc520414 user: drh tags: trunk)
02:42
Fixes to json_each() and json_tree(). Improved json_parse() debugging output. (check-in: fc1b24f3 user: drh tags: trunk)
2015-08-22
20:32
Fix a problem to do with detecting unlocked transaction conflicts if another client restarts the wal while the transaction is running. (check-in: e3968b25 user: dan tags: begin-concurrent)
19:39
Add the json_valid() function to the json1.c extension. Fix various minor problems in the json1.c extension. (check-in: 380a9734 user: drh tags: trunk)
17:28
Add further tests for deferred page allocation. And fixes for the same. (check-in: ed0a31be user: dan tags: begin-concurrent)
07:56
Merge further trunk changes. (check-in: c2327a3b user: dan tags: begin-concurrent)
07:55
Merge trunk changes into this branch. (check-in: 9021f736 user: dan tags: begin-concurrent)
03:05
Fix a couple instances of OOM handling in the json extension. (check-in: 213a6c5c user: drh tags: trunk)
01:32
Do not apply the WHERE-clause pushdown optimization to terms that originate in the ON or USING clause of a LEFT JOIN. Fix for ticket [c2a19d81652f40568c]. (check-in: 351bc22f user: drh tags: trunk)
2015-08-21
20:43
Add extension functions for processing JSON. (check-in: 178f9a35 user: drh tags: trunk)
20:37
Fixes for compiler warnings and errors in the makefiles. Rename the one test script to json101.test. (Closed-Leaf check-in: 9ff6ccde user: drh tags: json)
20:12
Change the name of the json loadable extension to "json1.c", in anticipation of having future major changes to the interface. (check-in: d0d4bec9 user: drh tags: json)
20:11
Fix many minor issues in the unlocked transaction code. (check-in: 53aaeea6 user: dan tags: begin-concurrent)
20:02
Add the fullkey column to both json_each() and json_tree(). (check-in: 15dd9943 user: drh tags: json)
19:56
Merge header file fixes from trunk. (check-in: 7c2713e9 user: drh tags: json)
19:53
Add a missing #define for sqlite3_vsnprintf to sqlite3ext.h. (check-in: da3c9df0 user: drh tags: trunk)
18:55
When committing an UNLOCKED transaction, try to move pages allocated at the end of the file to free slots within the file (like an incremental-vacuum operation does). (check-in: 06967916 user: dan tags: begin-concurrent)
17:57
Fix a problem with UNLOCKED transactions that free pages allocated within the same transaction. (check-in: 227bb8a1 user: dan tags: begin-concurrent)
17:39
Reserve the SQLITE_IOERR_VNODE error code name. (check-in: 53b593fc user: drh tags: trunk)
17:33
Add the json_tree() virtual table. (check-in: 08c36e45 user: drh tags: json)
17:16
Merge in trunk fixes for table-valued functions. (check-in: 67375f32 user: drh tags: json)
17:14
Fix a corner-case bug in table-valued functions. Update the generate_series() virtual table to increase the performance estimate penalty for being underspecified. (check-in: 552bc9cb user: drh tags: trunk)
16:22
Merge trunk changes with this branch. (check-in: deaf3b18 user: dan tags: begin-concurrent)
14:21
Add extra tests and a fix for rollbacks of UNLOCKED transactions. (check-in: 82cd837e user: dan tags: begin-concurrent)
12:37
Fix typo in comment. No changes to code. (check-in: 7b8d17dd user: drh tags: trunk)
2015-08-20
23:54
Merge recent trunk enhancements, include table-valued functions. (check-in: e9196d56 user: drh tags: sessions)
23:45
Merge recent enhancements from trunk, including table-valued expressions. (check-in: b9927c87 user: drh tags: cursor-hints)
23:39
Merge the latest changes from trunk, including the table-valued function implementation. (check-in: 10c44432 user: drh tags: json)
23:33
Compiler-warning fixes in the sqldiff.exe utility. (check-in: 64d13339 user: drh tags: trunk)
23:28
Fix a couple C99-isms that cause compile errors on MSVC. (check-in: bc577fe6 user: drh tags: trunk)
23:21
Fix corner-case memory management issues in table-valued functions. Change virtual table handling so that if xDestroy is missing the table is eponymous only even if xCreate is present. (check-in: 774e6a14 user: drh tags: trunk)
21:14
Skip calling the virtual table xDestroy method when it is null. (check-in: b73ad305 user: mistachkin tags: trunk)
21:09
Fix compiler warnings in the sqldiff tool seen with MSVC. (Closed-Leaf check-in: 072279d4 user: mistachkin tags: msvcWarn)
20:25
Fix a problem causing corruption when an UNLOCKED transaction is rolled back. (check-in: 7c361478 user: dan tags: begin-concurrent)
20:21
Fix stray variable declaration for C89. (check-in: 17eb7f18 user: mistachkin tags: trunk)
20:13
Correctly handle empty function argument lists on table-valued functions. (check-in: a7acc787 user: drh tags: trunk)
19:55
Add support for table-valued functions in the FROM clause implemented as virtual tables. (check-in: 9b718b06 user: drh tags: trunk)
18:28
Prevent the series.c extension from loading on older versions of SQLite that do not support xCreate==NULL. (Closed-Leaf check-in: 3efc7942 user: drh tags: table-valued-functions)
17:18
Make SQLITE_BUSY_SNAPSHOT and SQLITE_BUSY_RECOVERY retryable, just as a plain SQLITE_BUSY is. (check-in: fd13dd95 user: drh tags: trunk)
16:16
Fix a typo in series.c. (check-in: 23db7f50 user: dan tags: table-valued-functions)
2015-08-19
23:02
Fix the path lookup for objects so that it can handle quoted identifier names and non-alphanumerics in the identifier. (check-in: 87f58730 user: drh tags: json)
22:47
Add the json_each(JSON,PATH) table-valued-function. (check-in: 3335ac17 user: drh tags: json)
20:27
When committing an unlocked transaction, relocate newly allocated database pages within the file to avoid conflicting with committed transactions. There are lots of things still to fix in this code. (check-in: 3bbc31d5 user: dan tags: begin-concurrent)
19:26
Merge the table-valued-function rowid fix. (check-in: a06a6392 user: drh tags: json)
19:01
Fix eponymous virtual tables so that they do not automatically make the first column the rowid. Enhance the generate_series virtual table to support rowid. (check-in: a325a085 user: drh tags: table-valued-functions)
18:31
Merge support for table-valued functions. (check-in: 96a5d44d user: drh tags: json)
18:19
Improved comments on the generate_series virtual table. Test cases for ORDER BY rowid DESC with generate_series. (check-in: fef44c37 user: drh tags: table-valued-functions)
17:11
A list of arguments following a table name translates into equality constraints against hidden columns in that table. (check-in: 40e12cfe user: drh tags: table-valued-functions)
15:20
Minor refactor of the SrcList object so that it is able to hold the argument list to a table-valued-function in the FROM clause. (check-in: b9193761 user: drh tags: table-valued-functions)
13:54
Virtual table modules with a null xCreate method act as eponymous-only modules - they cannot be used in a CREATE VIRTUAL TABLE statement. Add the series.c extension that implements a postgres-like generate_series virtual table to demonstrate this capability. (check-in: c58426db user: drh tags: table-valued-functions)
12:52
Merge changes from trunk. (check-in: dddd792d user: drh tags: table-valued-functions)
12:45
Simplification to error handling in addModuleArgument() in the virtual table processing. (check-in: c573b0a1 user: drh tags: trunk)
08:34
When updating a zipvfs database with RBU, set journal_mode=off to prevent the upper-level pager from creating a large temporary file. (check-in: dec14a39 user: dan tags: trunk)
02:32
Initial implementation of eponymous virtual table instances. (check-in: c1f43a77 user: drh tags: table-valued-functions)
2015-08-18
19:09
Add test file spellfix2.test, which should have been checked in some time ago. (check-in: 85994020 user: dan tags: trunk)
16:32
Fix harmless compiler warning in FTS5. (check-in: 02448a9f user: mistachkin tags: trunk)
15:58
Provide hints for all terms in a range constraint if there are any equality terms anywhere in the constraint. Range constraint terms are only omitted for a pure range constraint with no equality prefix. (check-in: b5897bc0 user: drh tags: cursor-hints)
12:59
Comment clarification. No changes to code. (check-in: 71a96695 user: drh tags: json)
02:28
Initial implementation of json_set() and json_insert(). (check-in: 4aa49656 user: drh tags: json)
2015-08-17
21:22
Initial implementation of json_replace(). (check-in: 3c4bee65 user: drh tags: json)
20:14
Add an initial implementation for json_remove(). (check-in: 2a826720 user: drh tags: json)
17:19
Avoid generating hints using constraints that are also used to initialize the cursor, since presumably the cursor already knows about those constraints. (check-in: 142b048a user: drh tags: cursor-hints)
15:17
Initial implementation for json_array_length(), json_extract(), and json_type(). (check-in: 39983204 user: drh tags: json)
11:28
Abandon the JSONB format for now. (We may return to it in the future.) Add a function to render a JSON parse. (check-in: 9703c0aa user: drh tags: json)
2015-08-15
21:29
Fix off-by-one error when parsing primitive JSON types "true", "false", and "null". (check-in: 42c15c1e user: drh tags: json)
21:25
Add a prototype JSON parser. (check-in: 789ba487 user: drh tags: json)
18:16
Handle writes to auto-vacuum databases within UNLOCKED transactions in the same way as for non-UNLOCKED transactions. (check-in: de1ea450 user: dan tags: begin-concurrent)
16:32
Minor fix to the display of oversized KeyInfo structures in the P4 operand of Open opcodes in EXPLAIN output. (check-in: f65a9b4a user: drh tags: trunk)
00:51
Change the display of the P4 operand of CursorHint in EXPLAIN output to function notation. (check-in: bee73d42 user: drh tags: cursor-hints)
2015-08-14
23:57
Always provide the BTREE_BULKLOAD hint, even when SQLITE_ENABLE_CURSOR_HINTS is not defined, as that hint gives a 4% performance increase. (check-in: 83a84435 user: drh tags: cursor-hints)
20:08
Updated testing of cursor-hints. Remove the test_cursorhint.c file and associated logic in the core and do tests based purely on the newly enhanced EXPLAIN output. (check-in: bf383e66 user: drh tags: cursor-hints)
18:50
Fix the cursor hint mechanism so that it does the right thing for indexed lookups. (check-in: 581e3d49 user: drh tags: cursor-hints)
15:05
Refactor the sqlite3BtreeCursorHint() interface for improved maintainability. (check-in: fc3fb5cd user: drh tags: cursor-hints)
12:53
Duplicate the output of releasetest.tcl into releasetest-out.txt (check-in: 5e06a9c1 user: drh tags: trunk)
01:03
Fix the CursorHint so that it includes the scan boundary constraints. On the expression text for the CursorHint opcode, show rowid correctly. (check-in: f0d428d1 user: drh tags: cursor-hints)
2015-08-13
21:38
Fix a harmless compiler warning. (check-in: 608ab4ac user: drh tags: cursor-hints)
21:32
Convert the hint expression of the CursorHint opcode into a string for display by EXPLAIN. (check-in: 20688471 user: drh tags: cursor-hints)
20:34
Fix a bug in sqlite3ExprContainsSubquery(). (check-in: be254715 user: drh tags: cursor-hints)
20:23
When searching the wal file for a frame, do not search that part that was already checkpointed when the snapshot being read was at the head of the wal file. (check-in: 90760e72 user: dan tags: wal-read-change)
20:07
Merge in all the trunk changes from the previous year. This breaks the cursor-hint mechanism, but provides a baseline for trouble-shooting. (check-in: 82a7a61b user: drh tags: cursor-hints)
18:26
Add the sqlite3rbu_savestate() function to the rbu extension. To force rbu to save its state to disk without closing the sqlite3rbu* handle. (check-in: 851a875a user: dan tags: trunk)
13:54
Experimental code (untested) for a JSONB datatype. (check-in: e3596ac7 user: drh tags: json)
11:46
Avoid invoking system call unlink() directly from RBU code. Use the xDelete method of the default VFS instead. (check-in: ee966af8 user: dan tags: trunk)
2015-08-12
19:42
Avoid reading frames that have already been checkpointed from the wal file. (check-in: 5669ac4a user: dan tags: wal-read-change)
17:23
Add the json_object() function. (check-in: 414a95f3 user: drh tags: json)
16:49
Begin adding an extension that provides JSON SQL functions. (check-in: dde8afdd user: drh tags: json)
15:36
Minor optimization for fts5 API xInst(). (check-in: efb7c9c5 user: dan tags: trunk)
12:11
Add the xPhraseFirst() and xPhraseNext() fts5 APIs, for faster iteration through a single phrases position list. Also optimize xInst() and xInstCount() a bit. (check-in: f7682435 user: dan tags: trunk)
2015-08-11
14:25
Merge fixes from the fts5NoWarn branch. (check-in: 61cb2fc6 user: dan tags: trunk)
13:41
Add some extra timestamps to the experimental log output. (Leaf check-in: b09e3ea7 user: dan tags: experimentalIoLog)
10:59
Add a tcl interface for the experimental logging functionality. (check-in: e844304d user: dan tags: experimentalIoLog)
01:45
Two more places where logging of freelist trunk pages is needed. (check-in: 56ff336e user: drh tags: experimentalIoLog)
2015-08-10
20:53
Record when an allocated page is taken from the freelist trunk. (check-in: bb5d7782 user: drh tags: experimentalIoLog)
20:22
Add the sqlite3_experimental_log_open() interface. This is for diagnostic use only and is not intended to ever go on trunk. (check-in: ac5d2e9d user: drh tags: experimentalIoLog)
2015-08-08
23:30
Fix compiler warnings and remove unreachable code. (check-in: fd5608fb user: drh tags: trunk)
23:23
Fix an assert() that was in the wrong spot. (Closed-Leaf check-in: 962b6cd6 user: drh tags: warnings)
22:47
Fix compiler warnings and remove unreachable code. (check-in: be190fe7 user: drh tags: warnings)
15:13
Update RBU to avoid repreparing a statement immediately after it is prepared. (check-in: 1d75a41b user: dan tags: trunk)
2015-08-07
20:57
Enhance the query planner so that it is able to use partial indexes that use AND-connected terms in the WHERE clause. (check-in: 06576590 user: drh tags: trunk)
20:06
Add a specially formatted comment to shell.c to make it easier for scripts to edit. No code changes. (check-in: 6d47b35a user: dan tags: trunk)
09:42
Within a write-transaction on a wal database in mmap mode, check the page-cache for an entry before the wal file. This can be faster if the wal file is very large. (Leaf check-in: 3a82c8e6 user: dan tags: mmap-wal-bigtrans)
2015-08-06
12:54
increase the version number to 3.8.12 (check-in: e596a6b6 user: drh tags: trunk)
03:19
Fix harmless compiler warnings in FTS5 code. (Closed-Leaf check-in: 0ddb2532 user: mistachkin tags: fts5NoWarn)
03:09
Fix duplicate test numbering in the FTS5 matchinfo tests. (check-in: 483ebe89 user: mistachkin tags: trunk)
2015-08-05
19:35
Add tests for the matchinfo-like test function. Fix problems found in test and fts5 code by doing so. (check-in: 9e3aafe4 user: dan tags: trunk)
15:29
Update the spellfix virtual table extension so that an explicit "top = ?" constraint works even if there is also a "distance < ?" or "distance <= ?" constraint. (check-in: 08888383 user: dan tags: trunk)
08:01
Fix some problems in test code detected by cppcheck. (check-in: c9ff4ca4 user: dan tags: trunk)
07:43
Remove all references to "docid" within fts5 source code and comments. Replace with "rowid". (check-in: dffd358f user: dan tags: trunk)
2015-08-04
20:29
Add new test file fts5_test_mi.c, containing an implementation of a function similar to FTS4 matchinfo() for FTS5. (check-in: 4f9520a9 user: dan tags: trunk)
19:06
Improve the usage comment on sqlite3_analyzer: show the available switches. (check-in: 783f78e3 user: drh tags: trunk)
15:29
Update the [showdb] program so that the database file is read directly (bypassing the SQLite VFS) only if the --raw option is specified. Otherwise, it is read using the default VFS. Also, the URI syntax may be used on the command line to specify the name of the database file to examine, so an alternative VFS may be requested using a URI parameter. (check-in: e3c6d4b6 user: dan tags: trunk)
15:23
Update the [showdb] program so that the database file is read directly (bypassing the SQLite VFS) only if the --raw option is specified. Otherwise, it is read using the default VFS. An alternative VFS may be specified by specifying the database file to open using the URI syntax. (Closed-Leaf check-in: 9699e9bd user: dan tags: showdb-uri-option)
14:18
In the sqlite3_analyzer.exe utility, show the depth of each btree and report the average fanout of indexes and WITHOUT ROWID tables. (check-in: cd997770 user: drh tags: trunk)
2015-08-03
17:03
Add the "--uri" option to utility program "showdb". This option causes showdb to use sqlite with the SQLITE_OPEN_URI option to open the database file, instead of opening it directly using the OS open() function. (check-in: 90e34d51 user: dan tags: showdb-uri-option)
13:44
Allow a VIEW to reference undefined tables and functions when initially created. The error report is deferred until the VIEW is used. This allows views to be created before subviews and tables that the view references. (check-in: 70b57daf user: drh tags: trunk)
2015-08-01
18:18
Add extra tests for RBU and FTS3/4. (check-in: 34190449 user: dan tags: trunk)
2015-07-31
19:52
Add support for "fossil deltas" to RBU and "sqldiff --rbu". (check-in: e26ef165 user: dan tags: trunk)
18:59
Fix the sqlite3_stmt_busy() interface so that it always returns FALSE after the statement has returned SQLITE_DONE, even for ROLLBACK statements. Clarify the documentation. (check-in: 047d3475 user: drh tags: trunk)
17:48
Remove a duplicate "typedef struct Fts5Global Fts5Global;" from fts5_main.c (duplicate is in fts5Int.h). (check-in: 54a771fe user: dan tags: trunk)
15:14
When building the VSIX package for UAP, omit the AppLocal suffix for the MSVC runtime library because it is no longer needed. (check-in: fee7ad73 user: mistachkin tags: trunk)
15:13
Fix a problem causing [sqldiff --rbu] to fail on tables for which all columns are part of the PRIMARY KEY. (check-in: 93449e70 user: dan tags: trunk)
14:43
Fix a bug in the fts5 porter tokenizer preventing it from passing xCreate() arguments through to its parent tokenizer. (check-in: c3c672af user: dan tags: trunk)
2015-07-30
20:26
Add the --rbu switch to the "sqldiff" utility. (check-in: 098bea26 user: dan tags: trunk)
11:38
Allow RBU tables to be named "data[0-9]*_<target>" instead of strictly "data_<target>". Also update RBU so that it always processes data tables in order sorted by name. (check-in: 287aa306 user: dan tags: trunk)
11:26
Return an error message (instead of segfaulting) if test function fts5_expr() is invoked with no arguments. (check-in: 8e818b89 user: dan tags: trunk)
2015-07-29
22:38
Support building VSIX packages for UAP using Visual Studio 2015 and the Windows 10 SDK. (check-in: 96559adb user: mistachkin tags: trunk)
22:37
Update Windows 10 SDK version for RTM. (Closed-Leaf check-in: 80ab338c user: mistachkin tags: msvc2015)
21:47
Add SQLITE_DISABLE_INTRINSIC define to disable use of intrinsic functions (e.g. for certain older compilers and/or platforms). (check-in: f0075d73 user: mistachkin tags: trunk)
20:24
Fix the releasetest.tcl script so that it ignore cast overflow errors that recent versions of clang generate but which are unavoidable given the test input. (check-in: a0020c57 user: drh tags: trunk)
20:00
Version 3.8.11.1 (check-in: cf538e27 user: drh tags: trunk, release, version-3.8.11.1)
15:22
Restore an undocumented side-effect of PRAGMA cache_size: it forces the database schema to be parsed. Also increase the version number to 3.8.11.1. (check-in: e4628de3 user: drh tags: trunk)
14:58
Update comments in fts5.h describing the xColumnCount() API function. (check-in: a623eb55 user: dan tags: trunk)
14:46
Increase the version number to 3.8.11.1 (Closed-Leaf check-in: 326d746d user: drh tags: branch-3.8.11)
14:10
The "PRAGMA cache_size" reads the database schema, as it has done in all prior versions of SQLite. This side-effect of cache_size is undocumented, but apparently it does get used and its absence from 3.8.11 was causing problems. (check-in: 4489722a user: drh tags: branch-3.8.11)
12:14
Only allow UNLOCKED transactions to commit if none of the pages read by the transaction have been modified since it was opened. (check-in: 0b971842 user: dan tags: begin-concurrent)
2015-07-28
19:35
Update batch build tool library paths for MSVC 2015. (check-in: d431d4e1 user: mistachkin tags: msvc2015)
18:53
Fix the xfer optimization for WITHOUT ROWID tables so that it correctly updates the change count returned by sqlite3_changes(). (check-in: eff43715 user: drh tags: trunk)
16:46
Add some test cases and fix some small problems with BEGIN UNLOCKED transactions. (check-in: 6da0e962 user: dan tags: begin-concurrent)
2015-07-27
19:57
Clarification to the documentation for sqlite3_result_zeroblob64(). No changes to code. (check-in: c98175e9 user: drh tags: trunk)
19:31
Add an experimental "BEGIN UNLOCKED" command. (check-in: 80794216 user: dan tags: begin-concurrent)
13:49
Version 3.8.11 (check-in: b8e92227 user: drh tags: trunk, release, version-3.8.11)
12:19
Merge the fts5-btree-index branch with this one. FTS5 changes only. (check-in: 9f1dcdc3 user: dan tags: trunk)
11:49
Bump the "version" field in the fts5 config table. (Closed-Leaf check-in: 92c91789 user: dan tags: fts5-btree-index)
11:43
Minor tweak to the SQL schema used by fts5. (check-in: 427bf09b user: dan tags: fts5-btree-index)
11:01
Remove a potentially undefined behaviour involving signed integers and bitshift operations from fts5_hash.c. (check-in: ad6286ab user: dan tags: fts5-btree-index)
10:46
Merge latest trunk changes with this branch. (check-in: 5ec933c2 user: dan tags: fts5-btree-index)
2015-07-25
19:26
Remove a duplicated "if" condition from fts3.c. (check-in: ee348b12 user: dan tags: trunk)
14:26
Fix the rowallock.test script so that it works with builds that do not support mmap mode. (check-in: 7efed578 user: dan tags: trunk)
14:12
Fix the wal3.test module so that it works with the memsubsys1 permutation. (check-in: af85b01d user: drh tags: trunk)
12:03
Fix a test script problem in memsubsys2.test. (check-in: 70885729 user: dan tags: trunk)
03:10
Disable the page cache bulk allocation for the shrink.test and wal.test modules. (check-in: 3418f1f1 user: drh tags: trunk)
2015-07-24
23:28
Fix the zeroblob.test script so that it works even on builds where the SQLITE_MAX_LENGTH has been raised to 2147483645. (check-in: db129149 user: drh tags: trunk)
22:21
Merge test improvements and minor fixes from trunk. (check-in: 0298a9a7 user: drh tags: sessions)
21:19
Enable the RBU extension to compile cleanly on Windows using MSVC. (check-in: cca79fdc user: mistachkin tags: trunk)
20:43
For Windows CE, a different header is required for the byteswap intrinsics. (check-in: 2d572b8c user: mistachkin tags: trunk)
20:34
Fix warnings in fts5 code. (check-in: bd4f156d user: dan tags: trunk)
19:56
Fix the pragma2.test module so that it works with SQLITE_ENABLE_MEMORY_MANAGEMENT. (check-in: de281a4f user: drh tags: trunk)
18:58
Allow the RBU module to read data from appropriately named SQL views created within the RBU database. (check-in: 45c6a760 user: dan tags: trunk)
18:22
Fix a test script bug introduced by [562687d9]. (check-in: a343745d user: dan tags: trunk)
17:36
Add the sqlite3_bind_zeroblob64() API. (check-in: 1997ee54 user: dan tags: trunk)
17:26
New makefile target "fastfuzztest" runs the same tests as "fuzztest" but with a 100M memory size limit. This more than doubles the speed. The original unlimited "fuzztest" is still run on a "fulltest". (check-in: cfeb1b1c user: drh tags: trunk)
17:14
Fix compiler warnings. Get the new sqlite3_result_zeroblob64() working on loadable extensions. (check-in: f8991e6f user: drh tags: trunk)
16:24
Add the sqlite3_result_zeroblob64() API. Use it in the SQL zeroblob() function. (check-in: c6445b9f user: dan tags: trunk)
15:49
More robust handling of zeroblob() with oversized arguments. Fix fuzzcheck so that it can be run with limited heap memory. (check-in: 4e3e516a user: drh tags: trunk)
14:17
Modify a few test scripts to avoid leaving the sqlite3Config structure in a non-default state. (check-in: 562687d9 user: dan tags: trunk)
00:02
Update RBU description comment in the header file. No changes to code. (check-in: 119883a2 user: mistachkin tags: trunk)
2015-07-23
21:59
Merge all changes in the latest 3.8.11 beta into the sessions branch. Changes include the rename of OTA to RBU, the WITHOUT-ROWID-OR-Skipscan fix, and improvements to pcache1. (check-in: 7f0ee770 user: drh tags: sessions)
20:44
Change the name of the OTA extension to RBU: Resumable Bulk Update. (check-in: 017c5019 user: drh tags: trunk)
17:16
When SQLITE_OMIT_LOOKASIDE is set, do not allocate any lookaside memory since it will never be used. (check-in: 0ffd499f user: drh tags: trunk)
16:39
The sqlite3ExprCodeGetColumn() is not guaranteed to put the result in the register requested. Fix the skip-scan code generator for WITHOUT ROWID tables so that it always checks the register and copies the result if it lands in the wrong register. Fix for ticket [8fd39115d8f46ece70e7d4b3]. (check-in: 793e206f user: drh tags: trunk)
2015-07-21
19:22
Fix harmless compiler warning in MSVC 2015. (check-in: 01c8b9cc user: mistachkin tags: trunk)
2015-07-19
19:53
Cleanup the 'config.h' file in the appropriate distclean targets. (check-in: e0a99780 user: mistachkin tags: trunk)
2015-07-17
12:42
More adjustments to the malloc5.test module so that it works correctly with the new pcache1 bulk allocation. (check-in: 2a7b3a44 user: drh tags: trunk)
01:16
Avoid a harmless compiler warning. (check-in: 2288842b user: drh tags: trunk)
2015-07-16
20:24
Merge trunk changes, including fixes for compiler warnings in fts5 code, with this branch. (check-in: 7190d79b user: dan tags: fts5-btree-index)
20:17
Fix compiler warnings in fts5 code. (check-in: e9bf275c user: dan tags: trunk)
18:37
Fix harmless compiler warnings. (check-in: 9a592cf9 user: drh tags: trunk)
18:18
Defer the bulk pcache1 memory allocation until the first page allocation request. Limit the size of the pcache1 bulk allocation to the cache_size setting. Deallocate the bulk allocation on a sqlite3_db_release_memory() request, if the bulk allocation is completely unused. (check-in: b79a4aff user: drh tags: trunk)
17:29
Fix compilation issues with SQLITE_OMIT_COMPOUND_SELECT defined. (check-in: 9c39d464 user: mistachkin tags: trunk)
2015-07-15
23:15
Enable memory-mapped I/O on FreeBSD and DragonFly. (check-in: 2cdd6479 user: drh tags: trunk)
21:00
Make the debugging line numbers in the amalgamation more accurate. (check-in: 3b34e95c user: mistachkin tags: trunk)
19:46
Use a WITHOUT ROWID table to index fts5 btree leaves. This is faster to query and only slightly larger than storing btree nodes within an intkey table. (check-in: 862418e3 user: dan tags: fts5-btree-index)
18:35
Fix some harmless compiler warnings. (check-in: 110cd84f user: drh tags: trunk)
18:04
Attempt to fix harmless warnings generated by GCC and Clang runtime analyzers. (check-in: b522c95d user: drh tags: trunk)
13:56
Fix the fuzz3.test script so that it works with the new bulk pagecache allocation feature. (check-in: 829a2dba user: drh tags: trunk)
2015-07-14
22:43
Amplify the comment on renderLogMsg() that explains the problems associated with calling sqlite3_log() from deep within the memory allocator. (check-in: a73d7128 user: drh tags: trunk)
21:56
Further refine FTS5 cleanup in Makefiles. (check-in: b53a9506 user: mistachkin tags: trunk)
21:56
Skip trying to include 'intrin.h' when compiling for WinCE with MSVC. (check-in: 6db90ca2 user: mistachkin tags: trunk)
17:18
Fix some harmless compiler warnings. (check-in: 3de030c9 user: mistachkin tags: trunk)
15:39
Merge trunk changes, including the addition of FTS5 and pcache1 performance enhancements. (check-in: db4cbefb user: drh tags: sessions)
14:48
Always invoke the profile callback even if the statement does not run to completion. (check-in: 202479aa user: drh tags: trunk)
00:36
Refine cleaning of FTS5 files by Makefile targets. (check-in: e548d77b user: mistachkin tags: trunk)
2015-07-13
23:55
Fix the origination date on the loadfts.c utility program. (check-in: 5c76c062 user: drh tags: trunk)
18:01
Fix the header comment on the loadfts.c utility program. (check-in: 955ad4ae user: drh tags: trunk)
2015-07-10
17:55
Fix inconsistencies in formatting of fts5 docs. (check-in: 5fb4c771 user: dan tags: trunk)
2015-07-09
20:46
Improve the performance of docid merges in fts5. (check-in: b2de77a0 user: dan tags: trunk)
19:02
Reduce the number of calls to malloc() made by fts5. (check-in: 898618cc user: dan tags: trunk)
2015-07-08
17:59
Fix two problems that could cause fts3 auxiliary functions to occasionally misbehave if used with match expressions that contain both OR and NEAR. (check-in: 372c1db2 user: dan tags: trunk)
16:22
Enhance the pcache1 page cache so that it tries to allocate a block of SQLITE_DEFAULT_PCACHE_INITSZ pages from malloc() on startup, and uses those preallocated pages when possible rather than going to malloc() for each individual page. About a 5% performance increase for some workloads. (check-in: 5348ffc3 user: drh tags: trunk)
14:13
Comment fix. No changes to code. (Closed-Leaf check-in: c1e2ed0e user: drh tags: pcache-bulk-local)
13:40
Do not do the bulk pcache1 allocations if SQLITE_CONFIG_PAGECACHE specifies a global page cache buffer. (check-in: 75d98dae user: drh tags: pcache-bulk-local)
12:25
Early detection of file corruption in a debugging routine, before the invalid data can cause problems. (check-in: b27a47fe user: drh tags: trunk)
01:22
Avoid left-shifting bits into the sign of a signed integer, as such behavior is technically undefined. (check-in: 9417b402 user: drh tags: pcache-bulk-local)
2015-07-07
21:14
Add a compile-time constant for configuring the default pagecache setup. (check-in: ad5fdfba user: drh tags: pcache-bulk-local)
19:35
Merge the Fts5MultiSegIter and Fts5IndexIter objects. (check-in: 6ace7354 user: dan tags: trunk)
19:07
Add a test case to verify that "PRAGMA data_version" works as expected when an OTA client writes to the database. (check-in: 6441f2dc user: dan tags: trunk)
15:14
No need to test sqlite3GlobalConfig.bCoreMutex when SQLITE_THREADSAFE==0. (check-in: 26db0fee user: drh tags: pcache-bulk-local)
14:06
Simplify the page recycling condition in pcache1. Fix test cases to work with the latest changes. (check-in: 5b60df55 user: drh tags: pcache-bulk-local)
08:29
Further optimizations for fts5 b-tree seeks. (check-in: f3789968 user: dan tags: trunk)
2015-07-06
20:57
A unified cache is now only used for SQLITE_ENABLE_MEMORY_MANAGEMENT, or if SQLITE_CONFIG_PAGECACHE defines a shared start-time page cache buffer and the application is single-threaded. (check-in: d5ff1d69 user: drh tags: pcache-bulk-local)
20:27
Speed up seek operations on fts5 b-tree structures. (check-in: 7b7da1eb user: dan tags: trunk)
18:54
Enhance separate pcache1 to allocate a block of pages from heap on startup, if possible, for a 5.2% performance improvement. (check-in: aa7341c8 user: drh tags: pcache-bulk-local)
2015-07-05
22:15
Do not allow recursive CTEs that use aggregate queries in the recursive part. (check-in: 6d2999af user: drh tags: trunk)
2015-07-04
18:44
Optimize seek operations on fts5 b-trees. (check-in: 8cf02090 user: dan tags: trunk)
18:15
Preserve the number of requested PAGECACHE pages even if the memory pointer or size is zero. Enhance the pcache1.c header comment to explain the memory layout of a page cache line. (check-in: dacb2a61 user: drh tags: trunk)
15:35
Fix a problem in the fts5 integrity-check. (check-in: 4e473559 user: dan tags: trunk)
11:14
Do not preserve the btreeInitPage() results in PRAGMA integrity_check if there were cell sizing errors because PRAGMA cell_size_check was turned off during the btreeInitPage() call. (check-in: 743bf1f1 user: drh tags: trunk)
00:04
Sync up Makefile clean targets for FTS5. (check-in: 43ead44e user: mistachkin tags: trunk)
2015-07-03
23:29
Correction to check-in [1025873fdf], tighten up the number of static test mutexes. (check-in: 4e515897 user: mistachkin tags: trunk)
23:12
Update clean target in MSVC makefile. (check-in: e6c03e72 user: mistachkin tags: trunk)
23:11
Enhance mutex testing to include APP and VFS static mutexes. (check-in: 1025873f user: mistachkin tags: trunk)
21:38
Add static mutexes for use by the built-in / third-party VFSs and use the built-in VFS mutex where appropriate. (check-in: b202e2a1 user: mistachkin tags: trunk)
20:47
Rework the Fts5MultiSegIter structure a bit to make it more efficient. (check-in: 0778825d user: dan tags: trunk)
19:13
Speed up eof checks on fts5 cursors. (check-in: 3df4af5d user: dan tags: trunk)
17:54
Enable use of the __builtin_bswap32() only with GCC 4.3 and higher. (check-in: 030f60a7 user: mistachkin tags: trunk)
17:14
Avoid freeing the array of instance matches each time the fts5 xNext() method is called. (check-in: b9b0c1e5 user: dan tags: trunk)
14:34
New command-line options for speedtest1: --multithread, --nomemstat, --serialized, and --singlethread (check-in: 2b756722 user: drh tags: trunk)
2015-07-02
20:12
Copy fts5.h into the build directory as part of building fts5.c. Also remove code to edit fts5parse.c from various Makefiles and add it to mkfts5c.tcl. (check-in: 4d8f03dc user: dan tags: trunk)
19:47
When doing coverage analysis of a btree page for pragma integrity_check, make the first entry (that covers the header, cell index, and gap) implied, for a performance boost and size reduction. (check-in: e53d497c user: drh tags: trunk)
18:52
Minor change to mkfts5c.tcl so that fts5.c can be used according to the instructions in loadext.html. (check-in: edbcccd3 user: dan tags: trunk)
18:47
Merge in the latest enhancements from trunks, especially the use of _byteswap_ulong() and similar intrinsics on MSVC. (check-in: 85ca4409 user: drh tags: sessions)
18:16
Add fts5_source_id() SQL function, similar to sqlite_source_id(). (check-in: ec257348 user: dan tags: trunk)
16:52
Fix harmless compiler warnings and one macro VVA_ONLY macro usage issue. (check-in: bcc8a755 user: mistachkin tags: trunk)
16:50
Simplify FTS5 handling in the MSVC makefile. (check-in: f022e043 user: mistachkin tags: trunk)
16:29
Fix a (harmless) shadowed local variable definition in the integrity_check logic. (check-in: 3a26a919 user: drh tags: trunk)
16:17
Smaller and faster PRAGMA integrity_check that also does a better job of detecting errors. Some output text describing discovered file corruption has changed for clarity. (check-in: 251a7590 user: drh tags: trunk)
15:52
Remove "#ifdef SQLITE_ENABLE_FTS5" from individual fts5 source files. Add a single "#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS5)" to fts5.c. (check-in: 7819002e user: dan tags: trunk)
01:38
Add the --shrink-memory option to the speedtest1 test program. (check-in: c9ddbd88 user: drh tags: trunk)
2015-07-01
19:59
Avoid create a stack from in sqlite3BackupUpdate() in the common case where the first argument is NULL. (check-in: 2a897b9e user: drh tags: trunk)
17:53
Simplification of PRAGMA integrity_check logic. Make sure that the depth of the right-most subtree is correct. Size reduction and performance increase, with no change in output. (check-in: 550705fc user: drh tags: trunk)
17:13
Rework the PRAGMA integrity_check logic. Simplify the checkTreePage() routine and clean up the error messages generated. (Closed-Leaf check-in: 1c522123 user: drh tags: integrity-check-refactor)
04:08
Fix some harmless compiler warnings. (check-in: 307195c8 user: drh tags: trunk)
01:31
Change integrity_check to analyze the cells of a page in reverse order, as this will tend to insert the cells into the analysis heap in increasing order by address, which is the most efficient way to load a min-heap. (check-in: 59ad912c user: drh tags: trunk)
2015-06-30
17:28
Make use of the _byteswap_ushort() and _byteswap_ulong() compiler intrinsics for MSVC, when available. (check-in: fe144dd7 user: mistachkin tags: trunk)
16:29
Merge all the latest enhancements from trunk. This merge include FTS5 and a number of notable performance enhancements. (check-in: 39936b33 user: drh tags: sessions)
15:10
Make use of built-in bswap32() and bswap16() functions in GCC/Clang for a significant performance improvement there. (check-in: 8bfcda3d user: drh tags: trunk)
14:01
Only use __builtin_bswap16() with GCC 4.8 and later. (Closed-Leaf check-in: ce8177e3 user: drh tags: bswap-functions)
13:28
Remove the use of htonl() in the previous check-in due to linkage issues. Add the get2byteAligned() macro and use it for access to the cell offsets on btree pages for about a 1% performance gain. (check-in: 79ff36b7 user: drh tags: bswap-functions)
12:47
Make use of htonl() and __builtin_bswap32() for faster implementations of sqlite3Get4byte() and sqlite3Put4byte(). (check-in: bc27ebd7 user: drh tags: bswap-functions)
11:07
Change an unreachable branch into an assert() in sqlite3PagerAcquire() and optimize sqlite3PcacheOpenSavepoint() by factoring out rarely used code into a subroutine. (check-in: b406b20e user: drh tags: trunk)
03:57
Optimization to the sqlite3PcacheFetch() logic. (check-in: d9a0481c user: drh tags: trunk)
03:34
Put all variable declarations for sqlite3PagerWrite() at the beginning of the block. Syntax only - no logic changes. (check-in: a0fa6b3b user: drh tags: trunk)
03:18
Implement sqlite3Strlen30() using strlen() from the C library. (check-in: 8001aa52 user: drh tags: trunk)
03:13
Change sqlite3ApiExit() so that its first argument is never NULL. (check-in: 791b706e user: drh tags: trunk)
02:47
Put BtCursor objects on a singly-linked list instead of a doubly-linked list. Add the BTCF_Multiple flag. Only invoke saveAllCursors() when using a cursor that has BTCF_Multiple set. (check-in: 429ccef2 user: drh tags: trunk)
01:25
Convert several 5-year-old and older NEVER() macros into assert(). (check-in: ed54c14e user: drh tags: trunk)
2015-06-29
23:01
From sqlite3BtreeInsert(), bypass the btreeMoveto() routine for table inserts and go directly to sqlite3BtreeMovetoUnpacked(). (check-in: 53fe685d user: drh tags: trunk)
20:53
Add a bypass path in sqlite3PagerWrite() for pages with the PGHDR_WRITEABLE bit set, for about a 1% performance increase. (check-in: ba425a6a user: drh tags: trunk)
19:08
Combine subjRequiresPage() and subjournalPage() into a single subjournalPageIfRequired() routine. (check-in: 3b65eb56 user: drh tags: trunk)
18:29
Add the PGHDR_WRITEABLE bit for PgHdr.flags which is used to distinguish between pages that are on the dirty list and pages that are safe to modify. (check-in: 7c4ef7b7 user: drh tags: trunk)
18:14
Fix over-length source code lines in pager.c. (check-in: 14de3d39 user: drh tags: trunk)
15:41
Fix minor problems in the ota demo application. (check-in: 6aaaec6e user: dan tags: trunk)
14:11
Simplifications and performance improvement in pager_write(). (check-in: ab7aeeea user: drh tags: trunk)
04:21
Add the new PGHDR_CLEAN bit to PgHdr.flags in pcache.c. This bit is always the opposite of PGHDR_DIRTY. Use the extra bit to avoid a comparison for a small performance boost. (check-in: 8619fc34 user: drh tags: trunk)
03:28
Very small size reduction and performance increase in sqlite3BitvecTest(). (check-in: 9b3a7281 user: drh tags: trunk)
00:52
Move an assert() and testcase() into their correct position within getAndInitPage(). (check-in: 18115164 user: drh tags: trunk)
00:21
Use tail recursion in pcache1Unpin() to get a small size reduction and speed improvement. (check-in: fde70472 user: drh tags: trunk)
2015-06-28
17:33
Comment typo fix and minor cleanup in the pager. No logic changes. (check-in: 94ef1701 user: drh tags: trunk)
02:58
Avoid unnecessary calls to sqlite3VdbeSerialTypeLen() for integer serial types, for a small size reduction and a speed increase. (check-in: 9cd30d33 user: drh tags: trunk)
2015-06-27
23:55
Make greater use of BtCursor.curIntKey. (check-in: 63998471 user: drh tags: trunk)
22:49
Add the BtCursor.curIntKey field and use it for a small size reduction and performance boost. (check-in: 4a17df13 user: drh tags: trunk)
20:55
Enhancements to the previous check-in to make it a little smaller and faster. (check-in: 291d9e0c user: drh tags: trunk)
19:45
Performance improvements in moveToChild() by shifting some work over to getAndInitPage(). Net improvement is about 800K cycles at cost of 30 bytes. (check-in: 1956a4ce user: drh tags: trunk)
15:51
Manually inline the call from getAndInitPage() to btreeGetPage() for a savings of 2.5 million cycles at a cost of less than 100 bytes. (check-in: 7f65b96b user: drh tags: trunk)
14:59
Add releasePageNotNull() as an alternative to releasePage() when the argument is guaranteed to be non-NULL, and use it for a small performance gain. (check-in: 9383a688 user: drh tags: trunk)
03:58
Add the Mempage.aDataOfst field and use it in sqlite3BtreeMovetoUnpacked() for about a 2 million cycle gain. (check-in: bee94dc3 user: drh tags: trunk)
2015-06-26
20:45
Treat compilation of FTS5 for the loadable extension specially with MSVC. (check-in: 7c610276 user: mistachkin tags: trunk)
20:25
Merge fts5 branch into trunk. (check-in: d27d9965 user: dan tags: trunk)
20:14
Merge latest trunk with this branch. (Closed-Leaf check-in: 8671b9e1 user: dan tags: fts5)
20:13
Remove unnecessary lines from fts3.h and main.mk. (check-in: c1b268ce user: dan tags: fts5)
20:08
Fix a segfault that could follow an OOM error in fts5. (check-in: 713239b8 user: dan tags: fts5)
19:43
Small size reduction and performance increase on the OP_IdxInsert opcode. (check-in: b6bedc2e user: drh tags: trunk)
19:33
Merge latest trunk changes with this branch. (check-in: 2a1af0f2 user: dan tags: fts5)
18:50
Fix some cases in the fts5 code where a corrupt database could cause a buffer overread. (check-in: 360c57bb user: dan tags: fts5)
18:47
Further optimization of SQL function dispatch. Improvements to opcode documentation. (check-in: eaddbf29 user: drh tags: trunk)
18:16
Cache the sqlite3_context structure in the P4 operand of VDBE programs for faster SQL function dispatch. (check-in: 2abc44eb user: drh tags: trunk)
17:10
Merge changes to get FTS5 working with MSVC. (check-in: 954231d2 user: mistachkin tags: fts5)
16:55
Merge upstream changes. Get the test fixture working with FTS5. Fix compiler warnings. (Closed-Leaf check-in: bfcd1608 user: mistachkin tags: fts5Msvc)
16:42
Remove fts5 initialization code from core file main.c. (check-in: c91a93b3 user: dan tags: fts5)
16:17
Add FTS5 DLL target for MSVC. (check-in: be85b824 user: mistachkin tags: fts5Msvc)
13:31
Cache the most recently sqlite3_context used by OP_Function and reuse it on subsequent calls, if appropriate. This gives a noticable performance boost. (Closed-Leaf check-in: 2f31bdd1 user: drh tags: function-ctx-cache)
04:34
Initial changes to get FTS5 working with MSVC. (check-in: ef2052f8 user: mistachkin tags: fts5Msvc)
03:12
Fix harmless compiler warning in assert statement. (check-in: 7097716c user: mistachkin tags: trunk)
02:41
Simplify the pcache by not keeping continuous track of page 1 but instead just loading page 1 on the rare occasions when it is actually needed. (check-in: 015302f1 user: drh tags: trunk)
2015-06-25
23:52
Optimization to sqlite3_value_bytes() for the common case that does not require a data transformation. (check-in: 8d79f3a1 user: drh tags: trunk)
20:36
Fix Makefile.in to account for recent changes. Update fts5 test scripts so that they do not run if SQLITE_ENABLE_FTS5 is not defined. (check-in: 31752207 user: dan tags: fts5)
20:16
Merge latest trunk changes into this branch. (check-in: fcd8f7ce user: dan tags: fts5)
20:10
Add a script to combine all fts5 code into a single file - fts5.c - that can be used to build an SQLite loadable extension. (check-in: 46e86b06 user: dan tags: fts5)
19:53
Simplifications and performance improvements in insertCell(). (check-in: 7d02e6c9 user: drh tags: trunk)
18:36
More simplifications and performance improvements to cell allocation logic associated with allocateSpace(). (check-in: 78da0f69 user: drh tags: trunk)
16:01
Reorder the terms of a conditional for a small performance gain. (check-in: d67b0ed1 user: drh tags: trunk)
15:44
Merge all the latest enhancements from trunk. (check-in: 924f4712 user: drh tags: sessions)
15:21
Remove a NEVER() that is in fact reachable. (check-in: f824e66b user: drh tags: trunk)
15:04
Minor optimization to allocateSpace(). (check-in: d007bc33 user: drh tags: trunk)
13:03
Enhance the Btree object to remember whether or not it is holding an Incrblob cursor. Use this knowledge to improve performance in the common case where it does not. (check-in: 476b1156 user: drh tags: trunk)
02:26
Remove a line of code that doesn't do any useful work. (check-in: 3ee888be user: drh tags: trunk)
02:25
Increase the default timeout on fuzzcheck to 120 seconds - sufficient for running under valgrind on a slow workstation. (check-in: fad0eacc user: drh tags: trunk)
2015-06-24
23:44
Add the --timeout option to fuzzcheck. (check-in: a8f4f7fa user: drh tags: trunk)
23:17
Fix fuzzcheck so that it works with SQLITE_OMIT_PROGRESS_CALLBACK. (check-in: 7a9c4eb3 user: drh tags: trunk)
18:22
Add "ON CONFLICT" handling to the spellfix module. (check-in: 07937a81 user: drh tags: trunk)
17:21
Add "ON CONFLICT" handling to the spellfix module. (Closed-Leaf check-in: 1d04def7 user: dan tags: spellfix-constraints)
14:45
In the fuzzcheck test program, use the progress handler to limit the number of VDBE cycles to avoid getting stuck if the SQL under test contains an infinite CTE loop. Add the --limit-vdbe command-line option. (check-in: fbf9c432 user: drh tags: trunk)
14:36
Fix the progress handler so that it does not fire too soon during an sqlite3_step() call other than the first. (check-in: b41ef5d6 user: drh tags: trunk)
13:32
Fix a harmless compiler warning. (check-in: 3b6fa95e user: drh tags: trunk)
13:25
Rig the fuzzcheck test program so that it times out after 10 seconds in case of an infinite loop in the test case. (check-in: 659cfc9d user: drh tags: trunk)
13:05
Update the database fuzz test cases to cover all recent findings. (check-in: 47ba7d96 user: drh tags: trunk)
12:44
Add the --rebuild object to fuzzcheck. (check-in: db87664a user: drh tags: trunk)
12:24
Prevent an infinite loop while searching a corrupt freelist. (check-in: 4e5424fe user: drh tags: trunk)
12:07
Strengthen the new balance_nonroot() code against various corrupt database problems. (check-in: 5ba98343 user: drh tags: trunk)
10:46
Adjustment to a malloc test so that it accepts a narrow range of values to account for variations in malloc subsystems. (check-in: e0195070 user: drh tags: trunk)
01:07
Remove an invalid NEVER() and add a test case to cover it. (check-in: 14b73d20 user: drh tags: trunk)
00:05
Performance optimization on balance_nonroot() and related routines. 2.6% faster overall with a size increase of less than 750 bytes. (check-in: 25131e70 user: drh tags: trunk)
2015-06-23
23:31
Mark some branches as unreachable after the recent change that recognizes mismatch result set sizes on compound SELECT statements sooner. (check-in: c8d1f305 user: drh tags: trunk)
21:35
Testability improvement. (Closed-Leaf check-in: eed6a331 user: drh tags: btree-opt2)
18:47
Improve test coverage of fts5. (check-in: df5ccea8 user: dan tags: fts5)
18:24
Multiple overflow cells are always adjacent and sequential. Exploit this invariant for a small size reduction and performance increase and add assert()s to prove the invariant. (check-in: f77f2f48 user: drh tags: btree-opt2)
17:09
Faster loading of cell pointers into the b.apCell array in balance_nonroot. (check-in: fda89b05 user: drh tags: btree-opt2)
16:00
Avoid unnecessary cachedCellSize() calls in the cell partition adjustment phase of balance_nonroot(). (check-in: 6319ee12 user: drh tags: btree-opt2)
15:36
Change pageInsertArray() and pageFreeArray() so that they use the CellArray object and compute cell sizes as needed, resulting in smaller and faster code. (check-in: f7f41818 user: drh tags: btree-opt2)
15:06
Merge latest trunk changes with this branch. Add tests for columnsize=0. (check-in: ef44c71a user: dan tags: fts5)
14:49
Improvements to the way balance_nonroot() constructs the b.apCell array of pointers to cells. (check-in: ee44bb25 user: drh tags: btree-opt2)
13:02
Merge the compound SELECT operator fix from trunk. (check-in: a7be554f user: drh tags: btree-opt2)
12:19
Test that the left and right sides of a compound SELECT operator have the same number of expressions in the expanded expression list before beginning to generate code. (check-in: 4df852ce user: dan tags: trunk)
02:37
Avoid computing cell sizes in balance_nonroot() until they are really needed. This gives an overall 1.7% performance gain for about 1000 extra bytes of code space. (check-in: 43844537 user: drh tags: btree-opt2)
2015-06-22
20:02
Change the way that balance_nonroot() partitions cells between the sibling pages such that a scan of the cell size array is not required. (check-in: 16872871 user: drh tags: btree-opt2)
2015-06-20
18:13
Split out all four cases of cellSizePtr() into different methods, each optimized for the specific page type. This gives a 0.36% performance increase at a cost of about 300 bytes of code. (Leaf check-in: 522502ec user: drh tags: btree-opt)
14:11
Update the fuzztest data using the latest test vectors discovered by AFL. (check-in: b97f9cf7 user: drh tags: trunk)
13:18
Make sure that the likelihood() function does not mess up generation of result-set code when it is used (inappropropriately) in a result-set expression. (check-in: 7cdbae62 user: drh tags: trunk)
2015-06-19
20:31
Performance improvements in btreeParseCell() by inlining the varint decoder. (check-in: 172a864d user: drh tags: trunk)
20:08
Fix corner cases involving corrupt varint values in record headers. (Closed-Leaf check-in: 3189116b user: drh tags: btree-opt)
18:24
Performance improvements in btreeParseCell() by inlining the varint decoder. (check-in: faab0ed9 user: drh tags: btree-opt)
17:19
Add the MemPage.xParseCell method and provide various implementations (variations on the former btreeParseCellPtr()) depending on the page type. (check-in: 41d03d88 user: drh tags: trunk)
15:07
Make cellSizePtr() a method on the MemPage object, with alternative implementations depending on the page type. This results is a small performance improvement and size reduction. (check-in: 02f7e9d7 user: drh tags: trunk)
2015-06-18
15:26
Further #ifdef changes in speedtest1.c in order to support SQLite back to version 3.3.9 and perhaps even earlier. (check-in: 9246eca5 user: drh tags: trunk)
14:32
Pervent the likelihood() function from moving ON clause terms of a LEFT JOIN into the WHERE clause. Fix for ticket [5f60b11fc8e23490e2] (check-in: ed96e14a user: drh tags: trunk)
14:09
Show the values of Expr.flag in the AST of ".selecttrace" (check-in: a84d1004 user: drh tags: trunk)
12:37
Add #ifdefs to some features speedtest1.c so that it compiles with older versions of SQLite, going back to version 3.5.1. (check-in: f50dd154 user: drh tags: trunk)
2015-06-17
23:28
Performance improvement in sqlite3VdbeMemShallowCopy() for the common case where the receiver does not require prior resource deallocation. (check-in: d718ea36 user: drh tags: trunk)
19:06
Use 'binary' mode for popen with MSVC. (Closed-Leaf check-in: 7b84641e user: mistachkin tags: popenMsvc)
18:57
Improve spacing and comment style for the shell. No changes to code. (check-in: 5b547da0 user: mistachkin tags: trunk)
18:24
Improved comments on the fuzzcheck.c test program. No changes to code. (check-in: a7e27d19 user: drh tags: trunk)
18:18
Merge all recent enhancements and fixes from trunk. (check-in: 199bfb67 user: drh tags: sessions)
17:08
Fix a uninitialized variable use in the command-line shell when the ".open" command is invoked without any arguments. (check-in: fc4f4d1e user: drh tags: trunk)
13:20
Performance optimization and comment fixes for the LIKE and GLOB operators. (check-in: c89d7726 user: drh tags: trunk)
02:11
Make getCellInfo() a real function instead of a macro, for a size reduction and a 0.2% performance gain. (check-in: 55c393ea user: drh tags: trunk)
01:31
Optimizations to two VDBE accessory routines for a 0.2% performance increase. (check-in: 66d033b9 user: drh tags: trunk)
2015-06-16
16:39
Ensure that the CREATE TABLE AS statement correctly undoes partial changes to the sqlite_master table if the SELECT on the right-hand side aborts with an error. Fix for ticket [873cae2b6e25b] (check-in: 400e025e user: drh tags: trunk)
2015-06-15
16:40
Adjust ICU tests to account for recent changes in the official Unicode definition of whitespace. (check-in: 08165253 user: drh tags: trunk)
16:09
Fix a harmless comment typo. No code changes. (check-in: ae687652 user: drh tags: trunk)
14:43
Fix harmless compiler warnings. (check-in: b0badb99 user: drh tags: trunk)
12:58
Improved detection of database corruption in freeSpace(). (check-in: 29bcb568 user: drh tags: trunk)
10:49
Comment typo fix. No code changes. (check-in: 17f185ad user: drh tags: trunk)
2015-06-13
19:05
Added test cases based on Bruce Momjian's talk on SQL NULLs. (Leaf check-in: 68c168b5 user: drh tags: is-distinct-from)
11:48
Add the IS DISTINCT FROM and IS NOT DISTINCT FROM operators. (check-in: 0be44782 user: drh tags: is-distinct-from)
11:19
Omit mutex calls in pcache1 when the mutex is NULL, for a significant performance improvement. (check-in: caf8f574 user: drh tags: trunk)
11:10
Avoid unnecessary mutex usage in pcache1, for a significant speedup. (Closed-Leaf check-in: dcf4fb8d user: drh tags: faster-pcache1-fetch)
2015-06-12
13:49
Add a fast-path implementation of pcache1Fetch() for the common case of separate caches that do not use a mutex. (check-in: 760700ed user: drh tags: faster-pcache1-fetch)
13:04
Minor performance optimization in pcache1.c. (check-in: 2e8ad2ea user: drh tags: trunk)
12:54
Add the OP_ColumnsUsed opcode (when compiled with SQLITE_ENABLE_COLUMN_USED_MASK) as a hint to the b-tree layer as to which columns of a btree cursor will be used. (check-in: 711a176c user: drh tags: trunk)
2015-06-11
18:01
Merge recent trunk enhancements and fixes. (check-in: c39cb0e2 user: drh tags: sessions)
17:58
Merge trunk fixes. (Leaf check-in: 1df8cbbe user: drh tags: view-optimization)
17:26
Add the sqlite3changegroup_xxx() APIs to the sessions module. For combining multiple changesets or patchsets. (check-in: 0c1a901c user: dan tags: sessions)
14:19
Remove stray outputs from the test suite. (check-in: afc6db9b user: drh tags: trunk)
13:58
When generating code for partial indexes, be sure not to modify the index condition expression in the schema. (check-in: e63d01c6 user: drh tags: trunk)
2015-06-10
23:02
More test output refinements. (Closed-Leaf check-in: e64a5681 user: mistachkin tags: testerOutput)
22:51
Remove possibly stray output from various tests. (check-in: f38e0be5 user: mistachkin tags: testerOutput)
22:03
Fix minor typo in the quicktest MSVC makefile target. (check-in: 75b65f9d user: mistachkin tags: trunk)
20:00
Merge enhancements from trunk. (check-in: 0e23a079 user: drh tags: view-optimization)
18:53
"test" targets on all makefiles use --verbose=file --output=test-out.txt. Add the new "quicktest" target to all makefiles - designed to run in under three minutes. The --quick option on releasetest.tcl now uses quicktest. (check-in: 6ddef2ad user: drh tags: trunk)
17:20
Resolve FROM-clause subqueries after query planning instead of before. Greatly reduce the estimated cost of automatic indexes for VIEWs and ephemeral tables since performance problems there cannot be mitigated via a CREATE INDEX. (check-in: a1eaf171 user: drh tags: view-optimization)
14:27
Avoid passing constraints that are unusable due to LEFT or CROSS joins to virtual table xBestIndex() methods. (check-in: 7b446771 user: dan tags: trunk)
10:45
Fix the fts5 xRename() method. (check-in: 0f7fd513 user: dan tags: fts5)
2015-06-09
20:58
Add the "columnsize=" option to fts5, similar to fts4's "matchinfo=fts3". (check-in: aa12f9d9 user: dan tags: fts5)
15:58
Add the --output=$file and --verbose=(0|1|file) options to tester.tcl. (check-in: f7b2c703 user: dan tags: trunk)
10:58
Remove some repeated lines of source code. Probably introduced by careless cut'n'pasting. (Closed-Leaf check-in: a34cd71c user: dan tags: vtab-left-join)
2015-06-08
22:59
Code refactoring to try to shift FROM-clause subquery manifesting until after the query planner runs. Except this does not currently work because the query planner needs an estimated of the number of rows in the manifested table. Work in progress. (check-in: cabf2187 user: drh tags: view-optimization)
19:15
Add the valgrindfuzz target to unix makefile. (check-in: e62aed01 user: drh tags: trunk)
18:48
If a query contains "FROM t1 LEFT JOIN t2, t3, t4", ensure that tables t3 and t4 are not scanned before t2. The trunk already does this. (check-in: 0d9edfab user: dan tags: vtab-left-join)
18:05
Avoid passing constraints that are unusable due to LEFT or CROSS joins to virtual table xBestIndex() methods. (check-in: 80ee56dd user: dan tags: vtab-left-join)
17:42
Fix typo in comment. No changes to code. (check-in: e49c2917 user: mistachkin tags: trunk)
17:40
Split out some source code into new files: wherecode.c, whereexpr.c, and treeview.c. Other minor refactoring changes. (check-in: 50f33681 user: drh tags: trunk)
15:08
Factor out the TreeView parse tree printing module into a separate file. (check-in: c32ce54c user: drh tags: view-optimization)
14:23
Split more subfunctions of where.c out into a new whereexpr.c source file, for improved maintainability. (check-in: 46ef95c1 user: drh tags: view-optimization)
2015-06-06
20:12
Split out the bulk of the actual VDBE code generation logic from where.c into a new file, leaving behind the analysis logic. This makes the original where.c smaller and hopefully easier to edit. (check-in: faa0e420 user: drh tags: view-optimization)
19:23
Fix a comment in fts5.h. (check-in: e964b587 user: dan tags: fts5)
18:30
Code simplifications in select.c and where.c. (check-in: 4f20ac90 user: drh tags: view-optimization)
16:28
Fix handling of fts5 rowid constraints in the absence of a MATCH clause. Add tests to cover recently added branches. (check-in: 3a9cb648 user: dan tags: fts5)
00:18
Minor cleanup of the sqlite3Select() procedure. (check-in: f4c90d06 user: drh tags: view-optimization)
2015-06-05
22:33
Split FROM-clause subquery flattening and code generation into separate loops. (check-in: be8e3fc7 user: drh tags: view-optimization)
20:27
Provide one final Select tree dump prior to WHERE clause analysis when ".selecttrace 0x400" tracing bit is set with SELECTTRACE_ENABLED. Analysis and debug changes only - normal builds are unaffected. (check-in: 283bf0b6 user: drh tags: trunk)
19:05
Make use of range constraints on the rowid field of an fts5 table in full-text queries. (check-in: 32cbc0ed user: dan tags: fts5)
15:59
Add a new opcode to the VDBE that gives the b-tree a hint about the set of columns in a table or index that are actually used by the query. (Closed-Leaf check-in: f167bba4 user: drh tags: column-usage-hint)
2015-06-04
12:08
Change the name of SrcList.a[].zIndex to the more descriptive SrcList.a[0].zIndexedBy. (check-in: 6a9cf063 user: drh tags: trunk)
2015-06-03
11:23
Fix an fts5 problem in extracting columns from position lists containing large varints. (check-in: 4ea015ab user: dan tags: fts5)
2015-06-02
19:38
Change the fts5 multi-column syntax to use parenthesis instead of square brackets. (check-in: ab85a6fc user: dan tags: fts5)
19:36
Always check for cell overflow before returning a slot from the pageFindSlot routine in btree.c. (check-in: 9f035c45 user: drh tags: trunk)
18:09
For FROM-clause subqueries that cannot be flattened, try to push relevant WHERE clause terms of the outer query down into the subquery in order to help the subquery run faster and/or use less memory. (check-in: 6df18e94 user: drh tags: trunk)
18:07
Merge latest trunk changes with this branch. (check-in: c9ffda4a user: dan tags: fts5)
17:57
Reimplement [ec69e09a] so that each call to the xNext() method does not involve two iterations of the match expression tree (only one). (check-in: 80fe305b user: dan tags: fts5)
17:25
Add test cases for type affinity rules. (check-in: 9678646d user: drh tags: trunk)
16:19
Rename SQLITE_AFF_NONE to SQLITE_AFF_BLOB to avoid confusion with "no affinity". (check-in: 29ad9e91 user: drh tags: trunk)
16:09
Add the built-in affinity() SQL function. This turns out to be not as useful as originally envisioned, so abandon it on a branch. (Leaf check-in: 80889306 user: drh tags: affinity-func)
15:32
Rename SQLITE_AFF_NONE to SQLITE_AFF_BLOB. (Closed-Leaf check-in: bce3f041 user: drh tags: blob-affinity-rename)
14:02
Fix a faulty assert() in btree.c. Update the database fuzz test file with new test cases. (check-in: 4e621af1 user: drh tags: trunk)
09:20
Add the "finish_test" command to the end of new test script sessionE.test. (check-in: fb391407 user: dan tags: sessions)
09:19
Modify the sessions module to ignore all operations on tables with no primary keys as documented. (check-in: bdaf9575 user: dan tags: sessions)
2015-06-01
20:28
For FROM-clause subqueries that cannot be flattened, try to push WHERE clause terms of the outer query down into the subquery in order to help the subquery run faster and/or use less memory. (Closed-Leaf check-in: 297fae75 user: drh tags: subquery-opt)
19:17
Improve performance of the fts5 AND operator. (check-in: b43e9a5b user: dan tags: fts5)
18:13
Corrections to comments in expr.c. No code changes. (check-in: f925389e user: drh tags: trunk)
17:32
Break out the query flattener into a separate source-code file. (Closed-Leaf check-in: e3fa8b93 user: drh tags: flattener-in-new-file)
11:10
Typo fixes and additional background information in README.md. (check-in: 9b8e5823 user: drh tags: trunk)
09:15
Change fts5 expression processing to avoid linear scans of long doclists caused by phrases that match specific columns only. (check-in: ec69e09a user: dan tags: fts5)
2015-05-30
22:57
Updates to configure.ac to help it find where the TCL libraries hidden on Ubuntu 14.04. (check-in: c864ff91 user: drh tags: trunk)
22:05
Fix minor typo in comment. No changes to code. (check-in: 73fc058b user: mistachkin tags: trunk)
11:49
Remove the "#include sqlite3Int.h" from fts5Int.h. (check-in: e008c3c8 user: dan tags: fts5)
2015-05-29
19:04
Import recent enhancements from trunk. (check-in: 54bec164 user: drh tags: sessions)
19:00
Add extra tests and fixes for multi-column matches. (check-in: ae6794ff user: dan tags: fts5)
18:42
Ensure that allocateBtreePage() always clears the MemPage pointer when it fails due to an I/O or memory allocation error. (check-in: 09a38bf6 user: drh tags: trunk)
17:51
Move two unreachable conditionals inside of NEVER() or assert(). (check-in: db4e9728 user: drh tags: trunk)
17:13
Remove a corruption test in balance_nonroot that is superceded by a prior better check. (check-in: 00693682 user: drh tags: trunk)
15:55
Add syntax to fts5 used to specify that a phrase or NEAR group should match a subset of columns. For example "[col1 col2 ...] : <phrase>". (check-in: 0fc0ea20 user: dan tags: fts5)
15:15
Omit the rowallock.test script (Read-Only WAL lock) from the inmemory_journal permutation. (check-in: d21db330 user: drh tags: trunk)
14:47
Add support for automatic indexes on FROM-clause subqueries that are implemented via co-routine. (check-in: 020b8b10 user: drh tags: trunk)
14:36
Add some extra source-code comments and a test case. (Closed-Leaf check-in: 6d410442 user: drh tags: coroutine-autoindex)
13:55
An attempt to allow automatic index creation on subqueries accessed via co-routine. (check-in: 521345ad user: drh tags: coroutine-autoindex)
01:35
Using "SELECT ALL" instead of just "SELECT" on a query that uses a single unflattenable subquery or view in its FROM clause will force the subquery to be manifested into a temporary table rather than run incrementally using a co-routine. This is a stop-gap means of controlling the decision to manifest while we try to work out a better to make that decision automatically. (check-in: a29e117d user: drh tags: trunk)
2015-05-28
19:57
Optimizations for fts5 queries that match against a specific column. (check-in: b29ac50a user: dan tags: fts5)
15:14
Added comments and testcase() macros to error cases in the btree search. (check-in: 7da7dc71 user: drh tags: trunk)
14:37
Remove some dead code from fts5. Add auxiliary function api tests to the same. (check-in: 0f9df202 user: dan tags: fts5)
11:23
Earlier detection of incompatible sibling pages in balance_nonroot. (check-in: 60a09f17 user: drh tags: trunk)
03:45
Add new test cases to the fuzzdata3.db set of database fuzz tests. (check-in: 467b13a4 user: drh tags: trunk)
03:28
Add the btreeGetUnusedPage() routine to btree.c, and use it to detect content pages on the freelist and to cause that condition to trigger an SQLITE_CORRUPT. (check-in: fe15d1f7 user: drh tags: trunk)
00:54
Do not attempt to take any write lock on a read-only database on Windows. (check-in: a47ff0cd user: drh tags: trunk)
2015-05-27
19:35
The fuzzoomtest makefile target is no longer supported, so update releasetest.tcl accordingly. (check-in: 06959d4a user: drh tags: trunk)
18:19
Fix a minor and harmless memory leak in fuzzcheck. Adjust the makefiles to run fuzzcheck with --quiet on valgrind tests. (check-in: 8bfe8344 user: drh tags: trunk)
18:13
All bytes of a page are initialized, even bytes that follow a 2-byte cell on a malformed page. (check-in: 7373a004 user: drh tags: trunk)
15:42
A different approach to preventing buffer overreads when comparing a vector of values with a corrupt index record that spans at least one overflow page. (check-in: 95eaa49f user: drh tags: trunk)
15:10
Disallow the use of "rowid" in CTEs - it has never worked correctly and it makes no sense, so we might as well make it an explicit error. Also: add the PRAGMA cell_size_check=ON command. (check-in: 19e2cebc user: drh tags: trunk)
14:21
A different approach to preventing buffer overreads when comparing a vector of values with a corrupt index record that spans at least one overflow page. (Closed-Leaf check-in: 7e9e1b61 user: dan tags: avoid-buffer-overread)
13:06
CTEs have never had working rowids. So disallow the use of the "rowid" column within CTEs. (Closed-Leaf check-in: 0055df04 user: drh tags: no-rowid-in-cte)
03:46
Add the "PRAGMA cell_size_check=ON" command. (Closed-Leaf check-in: 2ead43f0 user: drh tags: cell-size-check-pragma)
2015-05-26
20:31
Avoid a buffer overread when comparing against a corrupt record that spans at least one overflow page. (check-in: 62a5b363 user: dan tags: trunk)
20:07
Avoid branching on an uninitalized variable when comparing SQL values with the undefined serial types 10 and 11 (which only appear in corrupt databases). (check-in: b4a45d3b user: dan tags: trunk)
19:08
The "make fuzztest" target now uses fuzzcheck instead of fuzzershell. Test data is added for database fuzz testing. (check-in: 5e3e410b user: drh tags: trunk)
19:01
Merge accidental fork. (Closed-Leaf check-in: e85628e3 user: dan tags: test-using-fuzzcheck)
18:58
Fix a one-byte buffer overread that may follow a syntax error while preparing an SQL statement. (check-in: 07500393 user: dan tags: test-using-fuzzcheck)
18:58
Fix fuzzcheck so that it responds correctly to the TEST_FAILURE environment variable. (check-in: 76770c9e user: drh tags: test-using-fuzzcheck)
18:22
Simplifications and minor optimizations to fts5 prefix queries that cannot use a prefix index. (check-in: aef89d9f user: dan tags: fts5)
18:15
The "make fuzztest" target now uses fuzzcheck instead of fuzzershell. (check-in: 4a5f6f1f user: drh tags: test-using-fuzzcheck)
17:57
Enhance fuzzcheck with the ability to store descriptions in each source database and to run multiple source databases in a single invocation. (check-in: 193364c8 user: drh tags: trunk)
17:33
Add a cast to one side of the test added by [97806a78] in order to avoid a signed/unsigned comparison warning. (check-in: 5b46d2a7 user: dan tags: trunk)
17:29
Avoid using a zero-sized array within a struct in fts3 code. (check-in: b05cae36 user: dan tags: trunk)
16:12
Fix another bug in the in-memory VFS for fuzzcheck. (check-in: 16878a31 user: drh tags: trunk)
14:57
Update test cases in corruptI.test so that they work with both SQLITE_ENABLE_OVERSIZE_CELL_CHECK and SQLITE_DEFAULT_AUTOVACUUM builds. (check-in: 22a14663 user: dan tags: trunk)
12:18
Return SQLITE_CORRUPT to the user if an attempt is made to add database page 1 to the free page list. (check-in: 68876003 user: dan tags: trunk)
11:53
Fix a problem with ignoring UNIQUE constraints on WITHOUT ROWID tables rendered redundant by the PRIMARY KEY. (check-in: 3b936913 user: dan tags: trunk)
03:31
Silence harmless compiler warnings when building the command line utilities with MSVC. (check-in: d26060c4 user: mistachkin tags: trunk)
03:24
Add fuzzcheck to makefile clean targets. Also, for consistency, replace a few tabs with spaces. (check-in: eda2a437 user: mistachkin tags: trunk)
00:28
Add the --result-trace option to fuzzcheck, and other interface enhancements. (check-in: c415bb7b user: drh tags: trunk)
2015-05-25
23:14
Fix an important bug in the xRead method of the in-memory VFS for fuzzcheck. (check-in: 58cd40e8 user: drh tags: trunk)
22:38
Add the fuzzcheck test program. (check-in: 341cb6ab user: drh tags: trunk)
22:29
Add fuzzcheck to all makefiles and fix compiler warnings. (Closed-Leaf check-in: 7b3d2190 user: drh tags: fuzzcheck)
22:18
Merge in trunk fixes. (check-in: c71c2e1a user: drh tags: fuzzcheck)
22:17
Improved tracing capabilities in fuzzcheck. (check-in: 864bfdbf user: drh tags: fuzzcheck)
21:59
Add the --native-vfs option on fuzzcheck. (check-in: 12e95e3f user: drh tags: fuzzcheck)
20:04
Fix a case of a corrupt database causing SQLite to read from up to 4 bytes before the start of a memory allocation. (check-in: 7d2c4f7b user: dan tags: trunk)
19:37
Merge the btree fixes out of trunk. (check-in: f3cd8cec user: drh tags: fuzzcheck)
19:35
Add the --dbid and --sqlid parameters to fuzzcheck. Other fuzzcheck fixes. (check-in: 75ec9299 user: drh tags: fuzzcheck)
19:24
Have the b-tree layer return SQLITE_CORRUPT to any attempt to open a cursor with a root page number less than 1. (check-in: aa18c8e9 user: dan tags: trunk)
18:48
First code for a new utility program to rerun checks on a large number of fuzzer-generated test cases. (check-in: c5b4e363 user: drh tags: fuzzcheck)
18:47
Fix a couple of btree asserts that would fail when encountering 32-bit rollover in cell payload size fields (cell payloads this large always indicate corruption). (check-in: 8fa0937a user: dan tags: trunk)
17:07
Fix a case where database corruption may cause SQLite to write past the end of a buffer. (check-in: 97806a78 user: dan tags: trunk)
15:03
Fix an assert() in btree routine freeSpace() that may be false if the database is corrupt. (check-in: 00a473c5 user: dan tags: trunk)
11:46
Avoid redundant loads from the %_data table in the fts5 code. (check-in: 02069782 user: dan tags: fts5)
10:57
Fix an fts4 matchinf() problem triggered by deferred tokens that are part of phrases that are part of AND expressions. (check-in: f1e942a1 user: dan tags: trunk)
10:29
Fix an obsolete comment - no changes to code. (check-in: 4e4228c4 user: drh tags: trunk)
09:33
Remove an incorrect and pointless assert(). (check-in: 8c3929bd user: drh tags: trunk)
2015-05-24
21:46
The assert() changes removed in the previous check-in are needed after all. (check-in: 336fccc8 user: drh tags: trunk)
21:09
Better detection of corruption in allocateSpace() in btree.c. (check-in: bf7bb53e user: drh tags: trunk)
10:18
Detect database corruption in the modifyPagePointer() routine and abort. (check-in: 4f0bba42 user: drh tags: trunk)
2015-05-23
19:53
Instead of early detection of corruption in balance_nonroot, simply ignore the error, as it is harmless and exceedingly uncommon. (check-in: 7bbf9b3c user: drh tags: trunk)
19:29
Earlier detection of a specific kind of corruption in the balance_nonroot() routine. (check-in: ee6dc991 user: drh tags: trunk)
15:43
Avoid making redundant copies of position-lists within the fts5 code. (check-in: 5165de54 user: dan tags: fts5)
02:44
Minor documentation improvements. No changes to code. (check-in: e446d9ce user: drh tags: trunk)
2015-05-22
23:51
Merge bug fixes from trunk. (check-in: 519054bb user: drh tags: sessions)
23:50
Improved error messages in fuzzershell when unable to open the database. (check-in: c404fcac user: drh tags: trunk)
23:45
Fix a bug in fuzzershell caused by an uninitialized local variable. (check-in: 745deab8 user: drh tags: trunk)
23:39
Fix another bad assert() in btree - one that can be false on a corrupt database file. (check-in: 89f0bbfd user: drh tags: trunk)
23:26
Merge enhancements from trunk, including the new sqlite3_value_dup() API and the addition of the apSqlParam field in the sqlite3_rtree_query_info object of R-Tree. (check-in: cdc0ca6f user: drh tags: sessions)
23:17
Fix incorrect validation of the size of the BLOB returned by a geometry function on the RHS of a MATCH operator in RTree. The old code worked for 64-bit systems (by chance) but fails on 32-bit. (check-in: 10cc44f5 user: drh tags: trunk)
21:12
Add the sqlite3_value_dup() and sqlite3_value_free() interfaces. Use these interfaces to enhance R-Tree to add the sqlite3_rtree_query_info.apSqlParam field. (check-in: c1814242 user: drh tags: trunk)
21:04
Make sure sqlite3_value_dup() works correctly even for sqlite3_value objects that are marked SQLITE_STATIC. (Closed-Leaf check-in: f332ffc3 user: drh tags: value-dup)
19:55
Fix minor issues with the sqlite3_value_dup() interface. (check-in: 95edcf50 user: drh tags: value-dup)
18:40
Update with fixes and enhancements from trunk. (check-in: 9605d008 user: drh tags: value-dup)
17:29
The SRT_Table type for the SelectDest object is now just an SRT_EphemTab for which the ephemeral table has already been allocated. (check-in: b9727e6b user: drh tags: trunk)
16:08
Have r-tree prefer to use the constraint "col MATCH ?" over "rowid = ?". (check-in: b9fb9519 user: dan tags: trunk)
13:09
Fix two faulty assert statements discovered by fuzzing. (check-in: 799817bf user: drh tags: trunk)
12:37
Fix an assert in btree.c that can be false when using a corrupted database file. (check-in: a6eb2a39 user: drh tags: trunk)
11:38
Add the --database option to the fuzzershell test program. (check-in: c6d5512f user: drh tags: trunk)
07:44
Increase test coverage of fts5_vocab.c. (check-in: 065ab83a user: dan tags: fts5)
06:08
Improve test coverage of fts5_unicode2.c. (check-in: fea8a4db user: dan tags: fts5)
2015-05-21
20:26
Have r-tree prefer to use the constraint "col MATCH ?" over "rowid = ?". drh added later: All changes on this branch have been cherrypicked to trunk and will be merged into sessions from trunk. So this branch can close. (Closed-Leaf check-in: b9e45596 user: dan tags: sessions-value-dup)
17:24
Prevent a virtual table from being destroyed while it is in use. Also: replace Vdbe.inVtabMethod with sqlite3.nVDestroy. Simplify the EXPLAIN output for P4.pVtab to only show the sqlite3_vtab pointer. Cherrypick of [cbeb9a1aed8c]. (check-in: b3bb660a user: dan tags: branch-3.8.6)
17:21
Avoid ever writing before the start of an allocated buffer in the DIRECT_OVERFLOW_READ code. Fix for [e3a290961a6]. Cherrypick of [c3c15d20c691]. (check-in: 31b13eb5 user: dan tags: branch-3.8.6)
2015-05-20
22:01
Add the sqlite3_value_dup() and sqlite3_value_free() interfaces and use those to add the sqlite3_rtree_query_info.apSqlParam field to the query callback in R-Tree. (check-in: 2007391c user: drh tags: sessions-value-dup)
21:28
Add the sqlite3_value_dup() and sqlite3_value_free() interfaces. Use these interfaces to enhance R-Tree to add the sqlite3_rtree_query_info.apSqlParam field. (check-in: a7ee40c4 user: drh tags: value-dup)
20:50
Fix a problem in test file e_reindex.test. Cherrypick of [5b3de9390f2f]. (check-in: 80633682 user: dan tags: branch-3.8.6)
20:34
Fix a problem causing the fts3 integrity-check to fail if run inside a transaction. Cherrypick of [3b925189a75e]. (check-in: 7d7d633c user: dan tags: branch-3.8.6)
20:30
Ensure that tables names are dequoted exactly once by the trigger and FK logic. Cherrypick of [59e92bd9521f] and [9d887b92f808]. (check-in: bd357739 user: dan tags: branch-3.8.6)
20:27
Fix an obscure problem with "INSERT INTO tbl(cols) SELECT" statements where the SELECT is a compound with an ORDER BY and "cols" is a strict subset of tbl's columns. Cherrypick of [718d5d0eab04]. (check-in: 3cd2b772 user: dan tags: branch-3.8.6)
18:17
Version 3.8.10.2 (check-in: 2ef4f3a5 user: drh tags: release, version-3.8.10.2, branch-3.8.10)
17:36
Fix the initialization logic in CREATE TABLE AS so that the correct affinities are applied to all values being inserted into the new table, even if the RHS is a compound SELECT. Fix for ticket [f2ad7de056ab1dc9200]. (check-in: 6a0cf3ce user: drh tags: trunk)
17:25
Add a test case to verify that CREATE TABLE AS does not store INT values in TEXT columns. Ticket [f2ad7de056ab1dc92]. (Closed-Leaf check-in: 0e45e8f1 user: drh tags: create-table-as-type-fix)
17:18
Simplification of the initialization code for CREATE TABLE AS. (check-in: 937f659e user: drh tags: create-table-as-type-fix)
15:51
A proposed fix for the problem of CREATE TABLE AS generating a table that has INTEGER values in a TEXT column. Ticket [f2ad7de056ab1dc92]. (check-in: d5e2c1fc user: drh tags: create-table-as-type-fix)
09:27
Improve test coverage of fts5_tokenize.c. (check-in: 0e91a6a5 user: dan tags: fts5)
00:15
Fix handling of queries with VALUES on the left and UNION ALL SELECT on the right and a LIMIT clause. (check-in: c403502c user: drh tags: trunk)
2015-05-19
23:56
Enhance the selecttrace display by showing Select.selFlags. (check-in: 45d3893c user: drh tags: trunk)
23:04
Merge the Makefile.msc fix and the compiler warning fix from trunk. Also fix another compiler warning in sqlite3session_diff(). (check-in: 7530e1bf user: drh tags: sessions)
22:56
Fix the MSVC makefile so that it works with OTA. Fix a harmless compiler warning in FTS3. (check-in: c7b16645 user: drh tags: trunk)
22:42
Merge recent trunk changes, include the R-Tree enhancement that allows 8-byte BLOB arguments to geometry functions, and the fix for the TEXT affinity problem that could cause corrupt indexes. (check-in: 0a0de8b7 user: drh tags: sessions)
22:20
Allow R-Tree geometry functions to take 8-byte BLOB arguments which are passed directly through to the underlying callback, and which can be used to pass pointers into the callback. (check-in: b271ed56 user: drh tags: trunk)
19:52
Ensure that when the VM applies TEXT affinity to a value it discards any existing REAL or INTEGER value. Fix for [34cd55d6]. Increase the version number to 3.8.10.2. (check-in: 40f67265 user: drh tags: branch-3.8.10)
19:44
Ensure that when the VM applies TEXT affinity to a value it discards any existing REAL or INTEGER value. Fix for [34cd55d6]. (check-in: f5d0ce80 user: dan tags: trunk)
19:37
Add tests for fts5 tokenizers. (check-in: 4f90ba20 user: dan tags: fts5)
17:48
Remove the sqlite3ota_open_v2() API. Add a new parameter to sqlite3ota_open() instead. (check-in: c74e0bc4 user: dan tags: trunk)
16:50
Merge the ota-update branch with trunk. (check-in: 08e2864e user: dan tags: trunk)
16:26
Add a comment for SQLITE_FCNTL_OTA to sqlite.h.in. (Closed-Leaf check-in: efa20f8e user: dan tags: ota-update)
16:22
Allow OTA update state data to be stored in a database separate from the OTA update database. (check-in: 5af8db56 user: dan tags: ota-update)
14:14
Merge latest trunk changes with this branch. (check-in: 6055a672 user: dan tags: ota-update)
11:38
Update Makefile.in so that the amalgamation files built by "make sqlite3.c" include fts5. (check-in: 2870a805 user: dan tags: fts5)
11:32
Fix a memory leak that could follow an OOM condition in fts5. (check-in: de9f8ef6 user: dan tags: fts5)
2015-05-18
20:34
Improve test coverage of fts5_storage.c. (check-in: 4dfe2e58 user: dan tags: fts5)
18:24
Fix a bug in test script fts5fault4.test. (check-in: a5080593 user: dan tags: fts5)
18:03
Add a test for an untested branch in fts5_expr.c. (check-in: ce08206b user: dan tags: fts5)
17:50
Improve test coverage of fts5_config.c. (check-in: 47dbfadb user: dan tags: fts5)
12:28
Transitive constraints should only work if operands have compatible affinities and collating sequences. (check-in: 5df40564 user: drh tags: trunk)
12:18
Use an ALWAY() on conditionals in the transitive constraint logic that are always true as far as we know. (Closed-Leaf check-in: 204e567f user: drh tags: transitive-constraints)
11:34
Refinements to the determination of when an A==B term is an equivalence. Add test cases. (check-in: 6bfaf525 user: drh tags: transitive-constraints)
04:24
Make a hard copy of the results of a subquery lest the result of the subquery be referenced after a change to the table that generated the subquery result. (check-in: 9c0d8090 user: drh tags: trunk)
2015-05-16
20:51
Further restrictions on the use of the transitive property in WHERE clauses. (check-in: 8c886c43 user: drh tags: transitive-constraints)
20:04
Further test coverage improvements for fts5. (check-in: 927d9a64 user: dan tags: fts5)
19:17
Fix the transitive constraint processing to only allow transitivity if the operands of the == or IS operator have compatible affinities. (check-in: a46a247f user: drh tags: transitive-constraints)
18:31
Fix a typo in a comment. No changes to code. (check-in: ee4b7425 user: drh tags: trunk)
03:41
Improve the clean target in the MSVC makefile. (check-in: 2c1039d4 user: mistachkin tags: trunk)
2015-05-15
22:20
Update the README.md file at the top of the repository so that the homepage of Git mirrors of SQLite direct users to the official repository. (check-in: 08f11980 user: drh tags: trunk)
20:14
Minor coding style change, adjust new local variable casing for consistency. (check-in: 1a4628c6 user: mistachkin tags: trunk)
19:59
Do not assume that "col IS ?" matches at most a single row of a UNIQUE column unless the column is also NOT NULL. (check-in: e038ce89 user: dan tags: trunk)
18:13
Improve test coverage of fts5_index.c. (check-in: 7aea8c6d user: dan tags: fts5)
12:18
Add test cases. And some fixes. (check-in: adee7885 user: dan tags: fts5)
04:13
Simplifications to error message processing. Fix a possible problem in error message formatting when vacuuming a database with a corrupt schema. (check-in: 56ef98a0 user: drh tags: trunk)
2015-05-14
15:39
Increase the version number to 3.8.11. Upgrade autoconf from 2.62 to 2.69. (check-in: be438d04 user: drh tags: trunk)
15:17
Merge in the IS-operator enhancements and other recent changes from trunk. (check-in: 4f922944 user: drh tags: sessions)
14:32
The IS operator can now use indexes the same as the == operator. (check-in: 3428043c user: drh tags: trunk)
14:03
A few more test cases for the IS operator. (Closed-Leaf check-in: f397c862 user: drh tags: index-is-operator)
13:41
More test cases. Remove some invalid testcase() macros. Rearrange some code for improved testability. (check-in: b3676377 user: drh tags: index-is-operator)
13:18
Add testcase() macros. Get transitive WHERE clause constraints on IS operators working again. (check-in: d195d4a6 user: drh tags: index-is-operator)
09:53
Merge changes from the index-is-operator branch into this one. Drop the partial support added for IS on this branch by [52e73eec]. (check-in: 16ab9caf user: dan tags: ota-update)
08:58
Merge latest trunk changes with this branch. (check-in: 299ed55c user: dan tags: ota-update)
01:05
A new implementation of indexing with the IS operator that works correctly when the IS operator is in the WHERE clause and the operands are from opposite sides of a LEFT JOIN. (check-in: 4541688b user: drh tags: index-is-operator)
2015-05-13
19:33
Simplified implementation of indexing with the IS operator. (check-in: 95b1f9bf user: drh tags: index-is-operator)
18:12
Merge latest trunk changes with this branch. (check-in: b5f0e8c5 user: dan tags: fts5)
17:54
Add testcase() macros and comments and a few test-cases. (check-in: 24263d08 user: drh tags: index-is-operator)
17:15
Change fts5 doclist-index structures to be trees instead of flat lists. This only makes a difference for databases that contain millions of instances of the same token. (check-in: aa34bf66 user: dan tags: fts5)
15:24
An early attempt to get indexes to work with the IS operator. This code passes tests, but much more testing is needed to verify that it works on all corner cases. (check-in: 6f7f1673 user: drh tags: index-is-operator)
04:52
Merge updates from trunk. (Leaf check-in: 10ee36d0 user: mistachkin tags: get-trace)
04:50
Enhancements to the MSVC makefile. (check-in: 59e3e9e7 user: mistachkin tags: trunk)
2015-05-12
23:33
Use the database mutex where applicable. (check-in: 28cfdabc user: mistachkin tags: get-trace)
23:31
Fix a couple of typos in comments. (check-in: e908365f user: mistachkin tags: get-trace)
23:28
Improve API armor integration. Fix harmless compiler warnings. (check-in: fbf29b45 user: mistachkin tags: get-trace)
23:20
Modify the new functions to make them return a standard return code. (check-in: 02f694d5 user: mistachkin tags: get-trace)
21:27
Experimental API extension for recovering the current trace and profile callbacks on a database connection. (check-in: 9de33768 user: drh tags: get-trace)
19:53
Fix typo in Win32 VFS code enabled when the SQLITE_WIN32_USE_UUID compile-time option is used. (check-in: b33f1bac user: mistachkin tags: trunk)
19:10
Attempt to get DBSTAT to compile without warnings across all build configurations. (check-in: c3cbe3b0 user: drh tags: trunk)
14:22
Fix a compiler warning when building with tclsqlite3.c and without SQLITE_ENABLE_DBSTAT_VTAB. (check-in: aad3ff25 user: drh tags: trunk)
13:32
Improvements to documentation of the sqlite3_column_xxxxx() interfaces. No code changes. (check-in: f1aa951a user: drh tags: trunk)
12:24
Try to get recent sqlite3_analyzer and sqldiff tests working for all tested combinations of compile-time options, especially SQLITE_OMIT_VIRTUALTABLE and SQLITE_OMIT_LOAD_EXTENSION. (check-in: 07c7d392 user: drh tags: trunk)
00:46
Fix sqldiff.exe so that it always runs in single-thread mode. (check-in: c223910e user: drh tags: trunk)
2015-05-11
19:01
Add new fts3 matchinfo option 'b'. Also optimize existing option 'y'. (check-in: 2e7679a1 user: dan tags: trunk)
18:48
Add missing "finish_test" commands to the end of the two new test scripts for sqlite3_analyzer and sqldiff. (check-in: 1d5e72b1 user: drh tags: trunk)
18:46
Merge latest trunk changes into this branch. (Closed-Leaf check-in: 82e5a6e0 user: dan tags: fts3-matchinfo-y)
17:46
Test cases for sqlite3_analyzer and sqldiff. Fix a problem with sqlite3_analyzer related to the renaming of the initialization routine. (check-in: 85a4a46c user: drh tags: trunk)
16:27
Fix minor Makefile typos. Improve consistency of MSVC makefile. Add new targets to clean. (check-in: f84fbe98 user: mistachkin tags: trunk)
12:15
Build the sqlite3_analyzer.exe and sqldiff.exe programs on "make test" and "make smoketest" and other similar test targets. (check-in: 1b83f2e7 user: drh tags: trunk)
11:59
Revamp the way the DBSTAT virtual table is registered. (check-in: 4e652015 user: drh tags: trunk)
06:22
Change autoconf/Makefile.am to avoid building target sqlite3.o as part of both the shared library and shell tool. Doing so causes problems for parallel builds. (check-in: 85bfa9a6 user: dan tags: trunk)
2015-05-10
02:01
Fix the sqlite3_memory_used() and sqlite3_memory_highwater() interfaces so that they really do provide a 64-bit answer. (check-in: 8a0d5d5e user: drh tags: trunk)
2015-05-09
18:28
Allow the fts5vocab table to optionally provide data on a per-column basis. (check-in: 39222761 user: dan tags: fts5)
12:14
Version 3.8.10.1 (check-in: 05b4b1f2 user: drh tags: trunk, release, version-3.8.10.1)
10:27
Bump the version number to 3.8.10.1 (check-in: 9c6bf0c1 user: drh tags: trunk)
2015-05-08
20:21
Add the fts5vocab module, for direct access to the fts5 index. (check-in: 6bf93e3b user: dan tags: fts5)
09:21
Improve the error message returned by FTS5 if it encounters an unknown file format. (check-in: f369caec user: dan tags: fts5)
01:04
Fix harmless compiler warning with MSVC. (check-in: 902d0cb8 user: mistachkin tags: trunk)
00:58
Remove a couple stray test breakpoint calls. (check-in: 2860cebe user: mistachkin tags: trunk)
2015-05-07
20:26
Add an entry to sqlite3_compileoption_used() for SQLITE_ENABLE_DBSTAT_VTAB. (check-in: 480b4cb0 user: drh tags: trunk)
19:29
Change to storing all keys in a single merge-tree structure instead of one main structure and a separate one for each prefix index. This is a file-format change. Also introduce a mechanism for managing file-format changes. (check-in: a684b5e2 user: dan tags: fts5)
18:29
Testing improvements and corner-case bug fixes for the dbstat virtual table. (check-in: d51ce539 user: drh tags: trunk)
14:41
Enhance the dbstat virtual table with the ability to analyze ATTACHed databases. (check-in: 25ec0940 user: drh tags: trunk)
12:29
Merge in the 3.8.10 release changes. (check-in: 0404ef88 user: drh tags: sessions)
11:53
Version 3.8.10 (check-in: cf975957 user: drh tags: trunk, release, version-3.8.10)
00:09
Remove a faulty assert() statement. (check-in: 5f2539da user: drh tags: trunk)
2015-05-06
18:15
Merge latest trunk changes with this branch. (check-in: 8a13e1fd user: dan tags: fts3-matchinfo-y)
17:51
Remove some dead code from fts3_snippet.c. (check-in: 46b2d3ce user: dan tags: fts3-matchinfo-y)
17:41
More optimization for the 'y' and 'b' matchinfo directives. (check-in: 8c5b9fed user: dan tags: fts3-matchinfo-y)
14:18
Have the autoconf package build the shell tool with SQLite linked in statically. (check-in: 31834c3a user: dan tags: trunk)
08:43
Further optimizations for the 'y' and 'b' matchinfo operators. (check-in: fbd038bb user: dan tags: fts3-matchinfo-y)
2015-05-05
20:39
Add the fts3 matchinfo 'b' flag. (check-in: b9b77972 user: dan tags: fts3-matchinfo-y)
19:37
Optimizations for the matchinfo() function, particularly the 'y' flag. (check-in: dddd7e18 user: dan tags: fts3-matchinfo-y)
18:52
Remove four lines of superfluous code identified by clang scan-build. (check-in: 04afa3fe user: drh tags: trunk)
17:12
Merge all trunk enhancements and fixes into the sessions branch. (check-in: de7083cf user: drh tags: sessions)
16:57
Fix a minor coding inefficiency found during pre-release inspection. (check-in: cc50883d user: drh tags: trunk)
11:08
Add #ifdef statements to test_blob.c so that it will build with SQLITE_OMIT_INCRBLOB. (check-in: b8f090e6 user: drh tags: trunk)
10:46
Spell SQLITE_OMIT_VIRTUALTABLE correctly in a #if in dbstat.c. (check-in: d2cb1bec user: drh tags: trunk)
10:03
Fix a faulty assert() in the btree part of the "PRAGMA page_size = ?" code. (check-in: 90b19748 user: dan tags: trunk)
01:09
Fix a problem in Makefile.in that only comes up on Windows with MinGW. (check-in: 5f3cd68b user: drh tags: trunk)
00:48
Fix #ifdef problem in tclsqlite.c. (check-in: fe723bb5 user: drh tags: trunk)
2015-05-04
20:25
Automatically enable the dbstat virtual table on all new database connections with the SQLITE_ENABLE_DBSTAT_VTAB compile-time option is used. (check-in: 1c9c6eaa user: drh tags: trunk)
19:13
In the command-line shell, and the ".binary" command and additional C-style backslash escapes. (check-in: 850c1186 user: drh tags: trunk)
19:06
Add the "dbstat" virtual table as a standard component in the SQLite amalgamation, though turned off unless compiled with SQLITE_ENABLE_DBSTAT_VTAB. (check-in: e7529705 user: drh tags: trunk)
18:31
Rename the test_stat.c source file to dbstat.c and rework the makefiles to make dbstat.c a first-class source module. (Closed-Leaf check-in: a24480a4 user: drh tags: dbstat-in-amalgamation)
17:06
Include the "dbstat" virtual table in the amalgamation. (check-in: fc6504aa user: drh tags: dbstat-in-amalgamation)
16:09
Fix a faulty assert() in the SELECT code generator and add a test case to prevent regression. (check-in: 1421c8ff user: drh tags: trunk)
15:04
Fix a bug in --changeset output for sqldiff.exe for floating-point values. Also fix harmless compiler warnings in sqldiff.exe. (check-in: 9f428530 user: drh tags: trunk)
13:25
Add the --lib option to the sqldiff.exe command-line utility. (check-in: a117e8f6 user: drh tags: trunk)
12:29
Add the 'y' flag to the fts3/4 matchinfo() function. (check-in: aef1e8f4 user: dan tags: trunk)
2015-05-02
20:35
Reorganize some of the fts5 expression parsing code. Improve test coverage of the same. (check-in: c4456dc5 user: dan tags: fts5)
19:54
Improvements to fuzzershell: Avoid excess memory allocations when loading many files. Show the total runtime on final output. Show individual filenames as they are processed even if they are single test-case files. (check-in: 34a722a2 user: drh tags: trunk)
18:25
Add the SQLITE_LIMIT_PRINTF_WIDTH setting for sqlite3_limit() and associated logic for preventing DOS attacks using printf() with oversized widths or precisions. (Leaf check-in: f8b15979 user: drh tags: limit-printf-width)
17:40
Add the ".limit" command to the command-line shell. (check-in: 803cb60e user: drh tags: trunk)
12:40
Reorganize some multi-threaded code in vdbesort.c so that full MC/DC test coverage does not depend on the outcome of a race condition. (check-in: 78c7ec95 user: dan tags: trunk)
11:45
Cleanup of the sqlite3StrAccumInit() function. No functionality changes. (check-in: 7952c322 user: drh tags: trunk)
09:44
Add the experimental matchinfo 'y' flag to fts3/4. (Closed-Leaf check-in: 92941609 user: dan tags: fts3-matchinfo-y)
2015-05-01
20:38
Further improvements to test coverage of fts5 code. (check-in: d4331943 user: dan tags: fts5)
20:34
Enhance the fuzzershell --uniquecases option to output results in order of increasing runtime and to include the runtime in the comment separator of the output. (check-in: 04630b98 user: drh tags: trunk)
19:21
Enhance fuzzershell to accept multiple input files. Add the test/fuzzdata2.txt fuzz test content. (check-in: ab5523aa user: drh tags: trunk)
18:00
Fix an assert in RTREE that would fire if the rtree table is misdeclared. (check-in: 9a45409c user: drh tags: trunk)
16:57
Fix an assert() failure caused by setting "PRAGMA journal_mode=off" on an database in exclusive-mode that has already opened the journal file. (check-in: 40db3e40 user: dan tags: trunk)
15:25
Remove obselete comment text from the description of the Table object. No changes to code. (check-in: 6566b72a user: drh tags: trunk)
14:07
Use the sqlite3Fts3ErrMsg() function to set error message text in FTS3, and to ensure that error messages are not overwritten and thus leaked. (check-in: 605347e0 user: drh tags: trunk)
12:14
Improve test coverage of fts5.c. (check-in: add4f468 user: dan tags: fts5)
2015-04-30
20:35
Enhance the CLI to initialize the dbstat virtual table if compiled using SQLITE_ENABLE_STAT_VTAB. (check-in: 822dfc00 user: drh tags: trunk)
20:33
Fix a harmless comment typo. (check-in: 012a0c4e user: drh tags: trunk)
20:26
Avoid dropping an error code in test function sqlite3_dbstat_register(). (check-in: 9a9f633f user: dan tags: trunk)
13:06
Modify the mkfuzzdata1.tcl script so that it retains the culled test vectors in the tmp2 subdirectory. (check-in: 431a958f user: drh tags: trunk)
12:31
Fix signed/unsigned comparison compiler warnings. Add the SQLITE_OMIT_RANDOMNESS compile-time option to cause the PRNG to be seeded identically on every run, for testing purposes. (check-in: 93ce2bca user: drh tags: trunk)
2015-04-29
20:54
Improve fts5 tests. (check-in: c1f07a3a user: dan tags: fts5)
16:50
Use sqlite3_malloc64() in place of sqlite3_malloc() internally. (check-in: 48f553b0 user: drh tags: trunk)
00:35
Improved support for OSTRACE on Windows. (check-in: ca43812b user: drh tags: trunk)
2015-04-28
20:24
Fix an fts5 bug in handling writes while there are active cursors. (check-in: 07f70955 user: dan tags: fts5)
18:35
Improve coverage of fts5 tests. (check-in: 8e8136f2 user: dan tags: fts5)
14:49
Update the test/fuzzdata1.txt file with the latest cases discovered by AFL. (check-in: f2063f53 user: drh tags: trunk)
14:07
Fix an assert() failure that could occur if the internal sqlite3_rename_parent() SQL scalar function was invoked directly. (check-in: 36e51526 user: dan tags: trunk)
14:00
Fix sqlite3VdbeMakeWritable() to always clear the MEM_Ephem flag. Change the OP_Move opcode to always deephemeralize moved content. (check-in: fbb06727 user: drh tags: trunk)
13:11
Oops - the deephemerialization needs to occur before the move, not after. Was: Rather than try to keep track of the parent of an ephermeral register when the register moves, just deephemeralize all registers touched by the OP_Move opcode. (Closed-Leaf check-in: 091cfe8e user: drh tags: mistake)
12:44
Shift the Mem.pScopyFrom pointer in the correct direction in OP_Move. Fix for a defective check-in [a2135ad13049] and ticket [d6352363751]. Debugging code only - does not affect normal operation. (check-in: add4e043 user: drh tags: trunk)
12:27
Add code to the shell to optionally initialize the dbstat virtual table. (Closed-Leaf check-in: 7ed86dd3 user: drh tags: stat-vtab-in-shell)
01:28
Fix comment typos. No code changes. (check-in: 60174cf5 user: drh tags: trunk)
00:53
Add a TCL script that can be run to generate the fuzzdata1.txt file. (check-in: fdc79fd1 user: drh tags: trunk)
2015-04-27
19:53
Add fault-injection tests for the code in test_stat.c. (check-in: ea5e0b74 user: dan tags: trunk)
16:21
Change the fts5 content= option so that it matches fts5 columns with the underlying table columns by name, not by their position within the CREATE TABLE statement. (check-in: e38e2bb6 user: dan tags: fts5)
15:08
Update the fuzzer test data after having run it through afl-cmin to remove redundant test cases. (check-in: 8134d41b user: drh tags: trunk)
11:31
Further tests for fts5. (check-in: ffeb3ef3 user: dan tags: fts5)
2015-04-25
20:29
Improve coverage of fts5_index.c slightly. (check-in: e5aaa013 user: dan tags: fts5)
18:56
Add tests for fts5. (check-in: e748651c user: dan tags: fts5)
18:39
Fix compiler warnings in sqldiff. (check-in: 5f48d6f6 user: drh tags: trunk)
17:45
Update the AFL fuzzer data with newly discovered paths. (check-in: d9821980 user: drh tags: trunk)
16:39
Fuzzershell: change the error summary output to work with releasetest.tcl. Reduce the maximum number of OOM interations. (check-in: f5e6c4b2 user: drh tags: trunk)
13:39
Add the fuzzoomtest target to the makefiles. Invoke fuzzoomtest from releasetest.tcl. (check-in: f60657c2 user: drh tags: trunk)
12:20
Fix an obscure memory leak that could follow an OOM in where.c. (check-in: 08ec9f2f user: dan tags: trunk)
11:35
In fuzzershell: (1) comment fixes. (2) Set and clear g.zTestName[] correctly. (3) Use the value in g.zTestName[] in error messages. (check-in: b7394755 user: drh tags: trunk)
11:19
In the fuzzershell, always invoke the trace and log callbacks even if output is suppressed. Keep track of the current test name in a global variable for simplified debugging. (check-in: 3045f454 user: drh tags: trunk)
00:32
Do not send the extra ";" and "\000" tokens to the parser if a prior error has occurred. (check-in: 9aa70ddf user: drh tags: trunk)
00:20
Add fflush() calls to fuzzershell to keep stderr and stdout synchronized. (check-in: 2b98a252 user: drh tags: trunk)
2015-04-24
23:45
Add the --oom option to fuzzershell. (check-in: 14a9e4a3 user: drh tags: trunk)
20:18
Merge latest trunk changes with this branch. (check-in: 1c78d892 user: dan tags: fts5)
19:41
Add the "unindexed" column option to fts5. (check-in: 86309961 user: dan tags: fts5)
18:31
Fix fuzzershell so that it works with SQLITE_OMIT_TRACE. (check-in: dc88fe7e user: drh tags: trunk)
17:50
Add the --with-tcl=DIR option to the test/releasetest.tcl script. (check-in: 4dda916a user: drh tags: trunk)
16:53
Run fuzzershell as part of the valgrindtest makefile target. (check-in: 0bb96a03 user: drh tags: trunk)
16:16
Add the fuzztest target to the MSVC makefile. (check-in: 98edc615 user: drh tags: trunk)
16:09
Add AFL-generated test cases in the test/fuzzdata1.txt file. Automatically run fuzzershell against those cases on a "make test". (check-in: 627ea83c user: drh tags: trunk)
15:56
Add extra tests for corrupt database handling in fts5. (check-in: 41449f7a user: dan tags: fts5)
14:47
Add the --unique-cases option to fuzzershell. (check-in: 7cb71849 user: drh tags: trunk)
13:00
Fuzzershell enhancements: (1) Add the --verbose and --quiet flags (2) Show percentage complete and final test count for multi-test inputs (3) Omit trace and result logs unless the --verbose flag is used. (check-in: ed202ffa user: drh tags: trunk)
06:02
Fix an fts5 build problem in main.mk. (check-in: 60045ced user: dan tags: fts5)
2015-04-23
19:38
Fix a problem in the "ota" utility program causing it to crash if SQLite failed to open the target database. (check-in: a1a2b4a2 user: dan tags: ota-update)
19:32
Merge latest trunk changes into this branch. (check-in: 1506e99e user: dan tags: ota-update)
17:22
Modify the sqlite3session_diff() API so that tables with no PRIMARY KEYs are ignored. This matches the other sessions APIs. Also change sqlite3session_diff() so that it returns SQLITE_SCHEMA, instead of SQLITE_ERROR, if the tables being compared do not have compatible schemas. (check-in: aada0ad0 user: dan tags: sessions)
15:03
Fix the error message returned by sqlite3session_diff() for tables with no PRIMARY KEY. (check-in: 4d34a3d4 user: dan tags: sessions)
14:40
Fix a performance problem in sqlite3session_diff(). (check-in: ea400eca user: dan tags: sessions)
13:49
Merge the latest trunk enhancements and fixes into the sessions branch. (check-in: 4e5f17d1 user: drh tags: sessions)
13:37
Fix a faulty assert() in the "AS" alias resolution logic of the parser. (check-in: b5e43602 user: drh tags: trunk)
13:00
Improvement to "ID" formatting on the ".selecttrace 0x1ff" debugging function. (check-in: 01c50cee user: drh tags: trunk)
11:52
Fix a problem causing the fts3 integrity-check to fail if run inside a transaction. (check-in: 3b925189 user: dan tags: trunk)
2015-04-22
20:58
Add extra OOM tests for fts5. (check-in: 2dd59b57 user: dan tags: fts5)
20:14
Fix problems with doclist-indexes involving very large rowids. (check-in: 1e599409 user: dan tags: fts5)
14:41
Prototype for an sqlite3_db_log() interface. (Leaf check-in: 658e20f5 user: drh tags: sqlite3_db_log)
13:16
Improved filtering of input for fuzzershell for modes other than generic. (check-in: 025e8370 user: drh tags: trunk)
11:16
Change the printf, strftime, and glob modes of fuzzershell so that they reject all inputs that do not start with a string literal followed by a comma. This helps the fuzzer focus in on the kinds of behavior those modes are intended to test. (check-in: 1cceefa7 user: drh tags: trunk)
09:40
Update this branch with latest trunk changes. (check-in: 9797482d user: dan tags: fts5)
01:33
When compiling for UAP, link against the new minimal MSVC runtime. (check-in: 2cb94511 user: mistachkin tags: trunk)
2015-04-21
17:17
Alternative fix for the double-initialization of type and collating sequence problem that leaves the estimated table size intact. (check-in: 623ddbdb user: drh tags: trunk)
17:07
Make sure the datatype and collating sequence of transients tables are not initialized more than once. Otherwise a memory leak results. (check-in: 9e6beda2 user: drh tags: trunk)
16:38
Ensure that tables names are dequoted exactly once by the trigger logic. (check-in: 9d887b92 user: dan tags: trunk)
16:09
Fix a memory leak in the SELECT code generator tracing logic (code that is omitted in non-debugging builds). (check-in: b623ebd8 user: drh tags: trunk)
15:49
Fix an obscure problem with "INSERT INTO tbl(cols) SELECT" statements where the SELECT is a compound with an ORDER BY and "cols" is a strict subset of tbl's columns. (check-in: 718d5d0e user: dan tags: trunk)