SQLite

Timeline
Login

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

204 check-ins using file src/vdbe.c version 005e691ea4

2023-02-16
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: 0c21b6a5f8 user: drh tags: branch-3.26)
01:21
Update test cases so that they work with TCL 8.7 and later. (check-in: e9b762de0e user: drh tags: branch-3.26)
2023-02-15
13:00
Update the configure script so that it contains the correct version number. (check-in: a7cbf30808 user: drh tags: branch-3.26)
2019-02-05
19:15
Fix memory leaks on this branch. (check-in: e9c5e1891f user: dan tags: reuse-schema)
2019-02-04
21:02
Fix a problem with reloading the schema on this branch. (check-in: 5dfbef8349 user: dan tags: reuse-schema)
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: 9e8e5f52cf user: dan tags: reuse-schema)
2019-01-22
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: 8790368b4a user: mistachkin tags: branch-3.26)
2018-12-12
11:57
OSSFuzz found a case where an assert() inside sqlite3ExprCompare() can be true. Test case added to TH3. (check-in: bc891ac6b6 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: 6b7567fc0c 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: c1c735a8c6 user: drh tags: branch-3.26)
2018-12-10
16:52
Make SQLITE_MFS_NSHARD a compile time setting. (check-in: b9a7415190 user: dan tags: mutexfree-shmlock)
15:51
Add extra tests to shmlock.test (direct testing of xShmLock methods). (check-in: d2c785f94c user: dan tags: mutexfree-shmlock)
15:24
Rework the SQLITE_MUTEXFREE_SHMLOCK code to reduce contention. (check-in: d9157dd176 user: dan tags: mutexfree-shmlock)
09:45
Avoid a mutex in-and-out in unixShmBarrier() on this branch. Use __sync_synchronize() instead. (check-in: a8c5fd86ce user: dan tags: mutexfree-shmlock)
2018-12-07
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: 65aafb5531 user: drh tags: branch-3.26)
2018-12-06
18:58
Experiment with using an atomic CPU primitive instead of a mutex for intra-process locking with the unix-excl VFS. (check-in: 8f4cb9dd33 user: dan tags: mutexfree-shmlock)
16:50
When saving off the value of sqlite3.flags, take care to preserve all 64 bits. (check-in: 9c6dbcfab5 user: drh tags: trunk)
16:11
Issue a warning whenever a double-quoted string literal is used. (check-in: ac9ad50430 user: drh tags: trunk)
14:24
Bump the version number to 3.26.1. (check-in: e97e053b78 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: 99a0951fdc 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: e066b4e171 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: ec63d3506b user: drh tags: trunk)
02:01
Remove the unused pColHash field from the Table object. (check-in: 3a2c047989 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: ea50815bf8 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: 1a1a59c6c5 user: drh tags: trunk)
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: 272dc74fd0 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: e8540377ec user: drh tags: trunk)
23:25
Bungled checkin. Ignore. (Closed-Leaf check-in: 9b6e9a6e45 user: drh tags: mistake)
21:55
Fix an imbalanced lock problem in sqlite3Normalize() introduced by the simplification in [94ea6379178e3ff6a]. (check-in: f69624373e user: drh tags: trunk)
19:42
Increase the version number to 3.27.0 for the next development cycle. (check-in: 8f8d682825 user: drh tags: trunk)
17:48
Simplifications to the sqlite3_normalized_sql() implementation. (check-in: 94ea637917 user: drh tags: trunk)
13:49
Ensure that ALTER TABLE modifies table and column names embedded in WITH clauses that are part of views and triggers. (check-in: f44bc7a8b3 user: dan tags: trunk)
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: 7da617e97e 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: 28643d837d user: mistachkin tags: execWithNormalize)
16:51
Add the "index_usage" utility program. (check-in: df95455213 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: e28584e8bc user: drh tags: trunk)
13:51
Small performance increase in sqlite3_step() for the common case where it returns SQLITE_ROW. (check-in: 8934482652 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: 6770ed0873 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: 70fe8ec2ae user: drh tags: trunk)
17:40
Remove the unused sqlite3Fts5UnicodeNCat() function. (check-in: 7149dacf1d user: drh tags: trunk)
16:14
Add the "remove_diacritics=2" option to the unicode61 tokenizer in both FTS5 and FTS3/4. (check-in: 06177f3f11 user: dan tags: trunk)
14:58
Update the autoconf makefile for MSVC. (check-in: 675aba1f8b user: mistachkin tags: trunk)
01:58
Remove two lines of unnecessary code, for a very small performance increase and size decrease. (check-in: 15824ccda0 user: drh tags: trunk)
01:47
Fix a parser bug in the use of parentheses around table-valued functions. (check-in: 58a51123d1 user: drh tags: trunk)
2018-12-02
01:15
Omit a line of code that has no affect on the outcome. (check-in: 5d933aa659 user: drh tags: trunk)
2018-12-01
21:13
Very slightly smaller and faster. (check-in: 27798f17f5 user: drh tags: trunk)
12:34
Version 3.26.0 (check-in: bf8c1b2b7a 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: 23684cb841 user: drh tags: trunk)
2018-11-29
12:00
Fix the name of the trig function approximation in geopoly. No functional changes to the code. (check-in: 33576b12b4 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: 62360ceae9 user: drh tags: trunk)
19:12
Update incrvacuum.test so that it works with builds that do not support mmap(). (check-in: 8eb62fd5fa user: dan tags: trunk)
11:49
Update some test cases to account for SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: b53a9a3dc6 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: 5c040fdb01 user: drh tags: trunk)
08:24
Changes to Makefile.in to allow testfixture to be built with SQLITE_USER_AUTHENTICATION. (check-in: 7b510f59fd 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: 8c41024fbb user: dan tags: trunk)
08:02
Fixes for SQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 9bcdec85e2 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: d362dedba3 user: drh tags: trunk)
2018-11-27
19:47
Fix a failing assert() in sqlite3ResetAllSchemasOfConnection(). (check-in: 0ea049f342 user: dan tags: trunk)
17:02
Improvements to two cases in pragma4.test. (check-in: 3c893d9bcc user: drh tags: trunk)
14:41
Remove the sqlite3PagerUseWal() routine which was made obsolete by the [81629ba91475938b6ad] change. (check-in: 4331b4990c user: drh tags: trunk)
14:34
Add a simple test case for Lemon. Always include assert.h in the Lemon-generated parser. (check-in: 9c9c46dcbe 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: c6dfc59eb1 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: 6f4b0d0494 user: dan tags: trunk)
2018-11-26
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: 6e1330545e user: drh tags: trunk)
15:00
Minor comment enhancement in alter.c. No changes to code. (check-in: 12920bcb99 user: drh tags: trunk)
2018-11-24
20:44
Fix a bug in the geopoly_ccw() function. Test cases in TH3. (check-in: 773c5c1d9c 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: ffce4aac18 user: drh tags: trunk)
16:07
Remove the unused mmapSizeActual field from the Windows sqlite3_file implementation. (check-in: 0e7aa62227 user: drh tags: trunk)
2018-11-22
19:10
Fix a problem reading from temp databases in SQLITE_DIRECT_OVERFLOW_READ builds. (check-in: 81629ba914 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: d343f7d6b0 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: 6982f52f57 user: dan tags: trunk)
2018-11-17
14:59
Fix the regexp used to recognize libdl errors on OS-X. (check-in: 1740025307 user: drh tags: trunk)
14:26
Fix harmless compiler warnings that appear with SQLITE_OMIT_EXPLAIN. (check-in: 5fff00b0d5 user: drh tags: trunk)
14:19
Remove a C++-style comment. (check-in: 645232f2b9 user: drh tags: trunk)
13:08
Fix a problem in test script e_fkey.test. (check-in: acfd0a05a8 user: dan tags: trunk)
2018-11-16
20:50
Fix a test case so that it works on windows. (check-in: 2d92d25fae user: drh tags: trunk)
20:18
Add SQLITE_CONSTRAINT support to the xBestIndex methods on dbstat, sqlite_dbpage, and zipfile. (check-in: 5cd24e552b user: drh tags: trunk)
19:19
Update the explain virtual table to make use of SQLITE_CONSTRAINT. (check-in: b2d41ff702 user: drh tags: trunk)
16:04
Fix the JSON table-valued functions to make use of SQLITE_CONSTRAINT. (check-in: 3f34f4f561 user: drh tags: trunk)
15:41
Add an assert() to the generate_series virtual table to verify assumptions about the design. (check-in: cd13b499a2 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: 4372ad644d 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: d584a0cb51 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: 684013cef6 user: drh tags: trunk)
13:06
Fix comments and make magic numbers into #defines in the fsdir implementation. (check-in: c537c9c363 user: drh tags: trunk)
08:36
Fix a problem with virtual table "fsdir" and some join queries. (check-in: 7fffcee0fc user: dan tags: trunk)
01:42
Improvements to the CSV virtual table. (check-in: 0406ecbbe7 user: drh tags: trunk)
2018-11-15
19:12
Fix typos in the previous check-in. (check-in: 9b37bbf5f3 user: mistachkin tags: trunk)
16:56
Include geopoly in the compiler-warning script. (check-in: 3d947e1ec0 user: drh tags: trunk)
13:51
New fuzztest cases. (check-in: e8316ba47f 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: a62e6b593b user: drh tags: trunk)
19:51
Turn on ASAN for the dbfuzz2 utility. Fix a buffer overread associated with sqlite3_deserialize(). (check-in: 4e38f27b55 user: drh tags: trunk)
2018-11-12
15:20
New hyperlinks in comments used to generate documentation. No changes to code. (check-in: f9755f81b1 user: drh tags: trunk)
13:20
Fix a use-after-free problem in the fts5vocab virtual table. (check-in: ac69d169c6 user: dan tags: trunk)
2018-11-10
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: 9c685171c4 user: drh tags: trunk)
17:37
Add the "changesetfuzz" program. For fuzzing changeset blobs. (check-in: 2bae0e7c1c user: dan tags: trunk)
17:36
Merge latest trunk changes. (Closed-Leaf check-in: b6d549c988 user: dan tags: changesetfuzz)
04:14
Remove a NEVER() that is reachable after all. Reverts checkin [9292d3351c40339]. (Closed-Leaf check-in: c5dc7fb873 user: drh tags: read-only-shadow)
03:47
Merge fixes from trunk. (check-in: bf88efcec4 user: drh tags: read-only-shadow)
2018-11-09
23:41
Fix invalid use of unprotected sqlite3_value objects in the sqldiff utility, when using the --changeset option. (check-in: a8d65214a5 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: ae9638e9c0 user: dan tags: trunk)
18:44
Merge latest trunk changes with this branch. (check-in: ae88f8e1ff user: dan tags: reuse-schema)
14:17
Fix for ticket [787fa716be3a7f650cac] (check-in: 531eca6104 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: 8d663bfaaa 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: 8c74065f00 user: drh tags: trunk)
17:32
Improved documentation for SQLITE_DBCONFIG_DEFENSIVE. Add a NEVER() macro on an unreachable branch. (check-in: 9292d3351c user: drh tags: read-only-shadow)
14:59
Add tests and a fix for program "changesetfuzz". (check-in: 09b90db56c user: dan tags: changesetfuzz)
2018-11-07
20:13
Merge latest trunk changes into this branch. (check-in: 53cd91d005 user: dan tags: changesetfuzz)
20:07
Fix minor issues in the changesetfuzz program. (check-in: 5c7f024073 user: dan tags: changesetfuzz)
17:52
Update the "changesetfuzz" program to work with patchsets as well as changesets. (check-in: 75b00fbe88 user: dan tags: changesetfuzz)
16:46
Performance improvement in subroutine that decides whether or not a table is read-only. (check-in: 6e4968b005 user: drh tags: read-only-shadow)
16:12
Merge the onefile permutation fix from trunk. (check-in: e543bff87d user: drh tags: read-only-shadow)
14:41
More test-case adjustments for defensive mode. (check-in: 911e8a17a3 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: 13e21b7da8 user: dan tags: trunk)
13:41
Merge the permutations fix from trunk. (check-in: b753d849fe user: drh tags: read-only-shadow)
11:56
Partially revert [3e1a2f661], as some test scripts require separate $presql and $dbconfig variables. (check-in: cbf85284be 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: 3212733cb6 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: 141a93c843 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: a1d6c6712c user: drh tags: read-only-shadow)
15:57
Turn on defensive mode for running test scripts. Does not yet work. (check-in: 1c1d24edbb 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: d890c65825 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: f79b47c985 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: 31942b3dd3 user: drh tags: read-only-shadow)
20:37
Add preliminary version of "changesetfuzz" program. For fuzzing changeset data without creating corrupt changesets. (check-in: 81ac8745fa user: dan tags: changesetfuzz)
19:37
Add the SQLITE_DBCONFIG_DEFENSIVE flag. (check-in: 11d98414ea 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: b8d35c4a7c user: drh tags: trunk)
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: af39661e60 user: drh tags: trunk)
2018-11-03
17:31
Correct the internal logic for SQLITE_DBCONFIG_DEFENSIVE. (Closed-Leaf check-in: 7609434582 user: drh tags: dbconfig-defensive)
16:51
Add extra defenses against strategically corrupt databases to fts3/4. (check-in: d44318f590 user: dan tags: trunk)
16:09
Add the SQLITE_DBCONFIG_DEFENSIVE flag. (check-in: af3f29d493 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: dcb8c73594 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: 1fa74930ab 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: 4a6ad5190b 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: 790ea39a65 user: drh tags: trunk)
18:24
Tweaks to the test_intarray documentation and tests. (check-in: 7107f0dacf user: drh tags: trunk)
01:12
Merge fuzz test cases computed by dbfuzz2. (check-in: e0d30c1862 user: drh tags: trunk)
01:04
Improved corrupt database detection in the relocatePage() routine of the b-tree module. (check-in: d57873337a user: drh tags: trunk)
2018-10-30
23:45
Add new fuzzer cases generated by dbfuzz2. (Closed-Leaf check-in: 79fdad8b42 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: bf93f7b56b 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: 4f9878107a 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: 90b2a684f7 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: 3cc01a0eaf 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: 7989bbda70 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: 5e0129ee9a user: drh tags: trunk)
00:06
Improvements to the -fsanitize=fuzzer based database file fuzzer. (Closed-Leaf check-in: 585c94db09 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: 3afec26014 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: 147a9429a5 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: cb874fd873 user: drh tags: trunk)
17:53
Add the sqlite3_normalized_sql() API. (Closed-Leaf check-in: 592b66e805 user: mistachkin tags: normalized_sql)
17:08
In the sessions module, avoid collecting rebase data if the user has not requested it. (check-in: de72a773dd user: dan tags: trunk)
16:07
Harden the dbstat extension against corrupt database files. (check-in: a0d47f25ae user: drh tags: trunk)
2018-10-27
21:06
Improvements to the dbfuzz2.c test module. (check-in: d60eff493b 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: a4a083ed8c 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: 90d12094d3 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: 1e69f3ff05 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: 4d46685f28 user: dan tags: trunk)
2018-10-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: 5d5b596f15 user: drh tags: trunk)
2018-10-24
23:55
Add the ENABLE_GEOPOLY case to the compile_options pragma. (check-in: de940296d2 user: drh tags: trunk)
2018-10-23
13:48
Fix a problem with using window functions in compound (UNION, INTERSECT etc.) queries. (check-in: 059ff53a46 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: cbedcb9aae user: dan tags: trunk)
2018-10-18
15:17
Take steps to avoid a potential integer overflow in sessionBufferGrow(). (check-in: f7affa2e70 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: d4b6406e7f user: dan tags: trunk)
2018-10-12
15:01
Test case modifications to support SEE. (check-in: 02b6f8f277 user: drh tags: trunk)
2018-10-11
18:41
Add the textkey and textrekey pragmas. (check-in: f03164d454 user: drh tags: trunk)
16:53
Fix harmless compiler warnings in the CLI. (check-in: 1916d2912a user: drh tags: trunk)
16:38
Always reset the pager before changing the codec. (check-in: 0bf0fd242b user: drh tags: trunk)
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: 90cf32cde0 user: drh tags: trunk)
10:37
In the CLI, fix a file descriptor leak following OOM and a missing va_end() call. (check-in: ec36d15a9e 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: 7fbb083c5c 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: 696e82f7c8 user: drh tags: trunk)
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: 3869b2106b user: drh tags: reuse-schema)
20:57
Fix a problem with using virtual tables via reuse-schema connections. (check-in: e5897dafda user: dan tags: reuse-schema)
20:37
Merge fixes from trunk. (check-in: 9c8255a199 user: drh tags: reuse-schema)
20:04
Fix an issue with the new memstat.c extension. (check-in: ce6e80b130 user: drh tags: trunk)
18:58
Merge latest trunk changes into this branch. (check-in: 2ac72114a1 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: 075066944b user: drh tags: trunk)
12:58
Add the geopoly_reverse() function to the GeoPoly extension. (check-in: 690dd18a57 user: drh tags: trunk)
2018-10-06
14:38
Fix the ".help -all" option in the command-line shell. (check-in: aac8f1dff0 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: dac285474a 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: ff10d2c7de 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: 5c243eec7b user: drh tags: unique-constraint-weights)
15:10
Changes to geopoly to silience false-positive warnings coming out of clang. (check-in: 11d9015f31 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: 857a1b01df 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: ebcd452317 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: bf0a6634cd 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: cb1511065d 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: 9280774a4b 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: 3e9f163527 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: defa0515b8 user: drh tags: trunk)
21:36
Test case for PRAGMA table_xinfo. (Closed-Leaf check-in: 7694b9bc30 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: 2fdd068987 user: drh tags: pragma-table-vinfo)
18:28
Add the extra "hidden" column to the end of the PRAGMA table_vinfo output. (check-in: cf1b76135f 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: 310b4b65b8 user: dan tags: trunk)
17:15
Bring the PRAGMA table_vinfo statement up to date with trunk. (check-in: 6f606f9923 user: drh tags: pragma-table-vinfo)
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: 8ac2cdda68 user: drh tags: trunk)
07:04
Fix a problem with ALTER TABLE commands when the schema features an INSTEAD of trigger that uses NEW.* or OLD.*. (check-in: c52f457e56 user: dan tags: trunk)
2018-09-28
23:53
Fix test cases so that they work with ICU. (check-in: d04b2013b5 user: drh tags: trunk)
20:46
Have sqlite3changegroup_output_strm() call its output function more regularly. (check-in: 8467c31aa0 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: 8a758a8721 user: drh tags: trunk)
14:01
Add the geopoly_regular(X,Y,R,N) function to the geopoly extension. (check-in: 4505bbae58 user: drh tags: trunk)
13:18
Make most geopoly functions pure. (check-in: 944e167a98 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: 470c6c07d0 user: drh tags: trunk)
2018-09-27
23:57
Small performance optimization in the JSON parser of Geopoly. (check-in: fb520e7103 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: dc35f7b175 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: 322ab1fc61 user: drh tags: trunk)