SQLite

Timeline
Login

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

371 check-ins using file src/delete.c version a9c6d3f51c

2023-06-19
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: 4b08d4dad6 user: dan tags: bedrock)
2023-05-21
05:06
First serious stab at FIDDLE-build-ready. Fix a flub with absent -A option for some builds. (check-in: bfc36f0f10 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: b64ef7f92e user: larrybr tags: cli_extension)
2023-05-19
16:25
CLI resmanage used wherever resources should not be leaked upon abrupt (OOM) termination. (check-in: 1687d12339 user: larrybr tags: cli_extension)
2023-05-18
23:42
CLI resmanage use to 100% by commands, 84% by LOC. WIP (check-in: 48f81d8fc6 user: larrybr tags: cli_extension)
2023-05-17
15:22
More CLI resmanage use (75% LOC) (check-in: 3428ce8247 user: larrybr tags: cli_extension)
03:57
Further CLI resmanage use. (69% by LOC, 53% by command count) Some renames for clarity. (check-in: c010e1a7b2 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: adee1440bd user: stephan tags: branch-3.42)
00:32
Increase the version number to 3.42.1 (check-in: da0c662b31 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: 634fe4c238 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: 8504fe812c user: drh tags: trunk)
2023-05-16
20:37
Further extend use of CLI resmanage. (40% of dot commands) (check-in: 0cdab9f17a 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: 243085279c 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: 7874023cd4 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: 37d44e8c44 user: stephan tags: trunk)
13:11
Merge all 3.42.0 release enhancements into the reuse-schema branch. (check-in: d67b6c393f user: drh tags: reuse-schema)
13:04
Merge all 3.42.0 release changes into the bedrock branch. (check-in: 1348c2a590 user: drh tags: bedrock)
13:00
Merge all 3.42.0 release changes into the wal2 branch. (check-in: 137057f957 user: drh tags: wal2)
12:56
Merge all 3.42.0 release changes into the begin-concurrent branch. (check-in: 804bb138f5 user: drh tags: begin-concurrent)
12:36
Version 3.42.0 (check-in: 831d0fb283 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: 4254f08641 user: drh tags: trunk)
2023-05-15
23:43
CLI debug build ready for testing whether OOM handling is well-behaved. (check-in: 3cec1488f4 user: larrybr tags: cli_extension)
21:33
Fix CLI memory leak upon loading any shell extension. (check-in: b91cec479d user: larrybr tags: cli_extension)
19:17
Fix a C++-style variable declaration in the generate_series() extension. (check-in: 1d3e008905 user: drh tags: trunk)
17:24
Limit the number of nested NOT nodes in an fts5 expression to 256. (check-in: 01219e69b4 user: dan tags: trunk)
17:20
Increase the stack size available to fuzzcheck to 8MB on Windows. (check-in: 2290dc6876 user: drh tags: trunk)
17:14
Limit the number of nested NOT nodes in an fts5 expression to 256. (Closed-Leaf check-in: 0e5c1ee40a user: dan tags: fts5-expr-limit)
10:55
Add the --wait command-line option to fuzzcheck. (check-in: 5a479a2c76 user: drh tags: trunk)
03:48
Make generate_series() correct on ones complement ALUs and acceptable to UBSAN. (check-in: 4c5cd3e696 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: 4902015dcf user: drh tags: trunk)
01:02
Simplify the interface to constructAutomaticIndex(). (check-in: c5da165516 user: drh tags: trunk)
2023-05-13
20:01
Fix windows-specific problems in test scripts sessionnoop2.test and sessionrowid.test. (check-in: e4989c111d user: dan tags: trunk)
19:38
Remove unnecessary call to sqlite3_dbdata_init() from shell.c. (check-in: 84ca200000 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: 6f1a60fb7b user: dan tags: trunk)
16:54
Extend CLI resource manager usage. Improve interface to it for clarity and simplicity. (check-in: fd379f2292 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: d6971af74b user: dan tags: reuse-schema)
15:34
Mention that sqlite3_mutex_free() accepts NULL as a no-op. (no code change) (check-in: 603d9ad501 user: larrybr tags: trunk)
15:21
Merge the latest 3.42.0 changes into the reuse-schema branch. (check-in: 515bb26ee6 user: drh tags: reuse-schema)
15:17
Merge the latest 3.42.0 changes from trunk into the begin-concurrent branch. (check-in: 18c5e16b55 user: drh tags: begin-concurrent)
15:10
Merge the latest 3.42.0 beta changes into the bedrock branch. (check-in: d55ba8bb85 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: 3bbfbdcd9b user: drh tags: wal2)
15:00
Merge the latest 3.42.0 beta changes into the wal2 branch. (check-in: 771361e19e user: drh tags: wal2)
07:23
CLI closer to doing full cleanup on error exits. Needs testing with OOM simulation. (check-in: 8751f93fa5 user: larrybr tags: cli_extension)
05:13
Fix compilation issue seen with MSVC. (check-in: 6700188704 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: ce25a07950 user: larrybr tags: cli_extension)
19:06
Fix harmless compiler warning caused by [0772ddf56713d013]. (check-in: f06c16a8b0 user: drh tags: trunk)
19:02
Add multi-threaded test for "INSERT ... RETURNING ..." and SQLITE_BUSY errors. (check-in: 559cb1c6de 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: 0772ddf567 user: drh tags: trunk)
14:51
Fix unlikely strange result of CLI edit(). (check-in: ab3797e844 user: larrybr tags: trunk)
13:20
Ensure the _O_U16TEXT is defined for Windows builds of the CLI. Forum post c80aa942dc6bf2. (check-in: 504effa89b user: drh tags: trunk)
12:57
Remove a stray CR from end of line in a source file. (check-in: 48139fb904 user: drh tags: trunk)
12:45
Fix harmless typos in comments. (check-in: 607c3efbe0 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: 469718f106 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: efdcf1093b 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: 3e9c9bbdb5 user: drh tags: trunk)
18:03
Fix a minor typo in a comment. No code changes. (check-in: 607cfb5bc5 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: caca67d306 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: 0f55868e2c user: larrybr tags: cli_extension)
03:11
WIP, CLI resource manager worked in, barely used yet. (Leaking one object.) (check-in: dbd00bcaa0 user: larrybr tags: cli_extension)
2023-05-10
21:08
Doc typo fix. No code changes. (Closed-Leaf check-in: e841b142f5 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: c3d25c3a25 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: 4150e41626 user: drh tags: trunk)
13:56
Fix harmless compiler warnings from the CBMC compiler. (check-in: 5bc17cbccd 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: 5dae897431 user: drh tags: trunk)
10:03
Add a missing comma to the documentation for the OP_Jump opcode. No changes to code. (check-in: 7e2c2b1cee user: drh tags: trunk)
09:51
Begin use of a resource manager for CLI. (check-in: 1527d429d6 user: larrybr tags: cli_extension)
00:45
Get TCL extension to build and extensible shell tests to pass. (check-in: 05ecd8a59e 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: da3fba1874 user: drh tags: trunk)
00:20
Fix bug in fall-back logic of CLI .clone (check-in: 0dcd9785c1 user: larrybr tags: trunk)
00:15
Passes shell{1-8}.test . (check-in: 76734a4b6c user: larrybr tags: cli_extension)
2023-05-09
21:53
sqlite3x builds too. Fails a few shell2.test TCL tests. (check-in: 2749aea208 user: larrybr tags: cli_extension)
21:20
Made to build (again). (check-in: 3eb194957c user: larrybr tags: cli_extension)
2023-05-08
21:35
WIP, sync with trunk to pickup 22 weeks of shell library enhancements. (check-in: 00d0d5b105 user: larrybr tags: cli_extension)
16:26
Fix recover1.test so that it works with DEFAULT_AUTOVACUUM builds. (check-in: 4ffae48e83 user: dan tags: trunk)
13:47
Improved error handling when ".open" fails in the CLI. (check-in: 38544b11f0 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: a865e574e5 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: c335737c28 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: 832f6e9f79 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: 2bb8d97739 user: drh tags: trunk)
2023-05-05
20:22
Fix a comment in the JSON logic. No code changes. (check-in: 3f30ea5ec9 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: 910e770ad4 user: dan tags: trunk)
15:52
Reduce the maximum depth of nesting in json objects to 1000. (check-in: c7697a0d45 user: dan tags: trunk)
15:28
Do not attempt to run json502.test with SQLITE_OMIT_VIRTUALTABLE builds. (check-in: 6664850647 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: fece588b18 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: a77c8a780f 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: a17106494a user: dan tags: trunk)
11:33
Improved formatting of comments on SQLITE_CONFIG_xxx defines as those comments are used by documentation. (check-in: 2cb840bc9d user: drh tags: trunk)
2023-05-04
20:28
Add the "subsecond" modifier to the date/time functions. (check-in: 6fcb5a941f user: drh tags: trunk)
20:19
Add some tests of subsecond modifier for date/time functions. Sync with trunk. (Closed-Leaf check-in: 6499ebff54 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: 83683e108b user: drh tags: trunk)
14:41
Merge latest wal2 changes into this branch. (check-in: b2e0800b24 user: dan tags: bedrock)
14:31
Update this branch with latest changes from trunk. (check-in: 49777032f2 user: dan tags: wal2)
13:07
Add support for the comma (,) modifier to %f formats in the format() function. (Closed-Leaf check-in: 7080e196a1 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: d3370d59cf user: drh tags: trunk)
2023-05-03
14:10
Add another assert() to FTS5 to demonstrate that a pointer is never NULL. (check-in: b8a84a1bf5 user: drh tags: trunk)
13:57
Add an assert() to fts5_config to ensure that a potential OOM is being handled correctly. (check-in: fe9c207657 user: dan tags: trunk)
13:48
Protect a macro argument with parentheses in FTS5. (check-in: bc07fe51fe user: drh tags: trunk)
13:33
Add a comment to the [0512f82a2cde7447] change to link it to its TH3 test case. (check-in: 1281d4d9d7 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: 960dc97083 user: drh tags: trunk)
11:27
Conform CLI double-quoted escaping to what its doc says. (check-in: 910535ba51 user: larrybr tags: trunk)
10:56
Fix a problem in test script changebatch1.test. (check-in: 98ecffdfb6 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: 1b489d008b 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: 0512f82a2c 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: d40fd5924a 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: 9350a25ac0 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: 0bf94c77d9 user: drh tags: trunk)
02:32
Fix CLI mishandling of OOM during .import _of_ a DB. Reported by forum post 7ed4a250d3. (check-in: 30da3f0ebd 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: 776d1a47aa user: drh tags: trunk)
2023-05-02
21:26
Merge the latest trunk enhancements into the reuse-schema branch. (check-in: d08fa7d4d2 user: drh tags: reuse-schema)
21:10
Update this branch with latest changes from trunk. (check-in: 6f22c7679f user: dan tags: begin-concurrent)
20:34
Fix a problem with the sqlite3changeset_size() API and rowid tables. (check-in: 92ade220dc user: dan tags: trunk)
19:58
Merge the latest trunk enhancements into the wal2 branch. (check-in: 0215dcc76d user: drh tags: wal2)
19:33
Give CLI quoted args hex escapes (as documented.) (Closed-Leaf check-in: 90e434a6ae user: larrybr tags: cli-hex-escape)
18:03
Cure CLI hang on .import with high-ASCII column separator. (check-in: aac8ac631d user: larrybr tags: trunk)
17:33
Allow for lower-case "nan" to mean NaN in JSON. (check-in: 6bee0a19e2 user: drh tags: trunk)
16:34
Interpret negative arguments to sqlite3_sleep() as zero. (check-in: 2b542326aa user: drh tags: trunk)
11:12
Improved handling of NULL arguments to json_valid() and json_error_position(). Forum post 06c6334412. (check-in: ab78e6946b user: drh tags: trunk)
10:22
Fix typo in comment. Forum post 3da7d9c445. (check-in: 41a8a15c4b user: drh tags: trunk)
00:33
Minor code change in the CLI to make a UAF warning from scan-build go away. (check-in: ad6aae768a user: drh tags: trunk)
2023-05-01
20:42
Fix harmless compiler warnings. (check-in: 342af5b4fa 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: 62d703d83c user: drh tags: trunk)
19:59
Fix harmless compiler warnings in FTS5. (check-in: f6210017b3 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: f809de7f23 user: stephan tags: trunk)
18:52
Fix harmless compiler warnings. (check-in: 0a92699469 user: drh tags: trunk)
18:28
Add support for JSON5. (check-in: f8c3ed23a6 user: drh tags: trunk)
15:59
Fix typos in comments in sqlite3session.h preventing documentation from being correctly generated. (check-in: ab75170d56 user: dan tags: trunk)
15:57
New enhancements to the sqlite3_db_config() constants documentation. (check-in: d74011a3c4 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: 0a7024af3f 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: a371374148 user: stephan tags: trunk)
14:50
Fix typos in documentation comments in sqlite3.h. (check-in: 6a8b00788e 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: d095da0e7a 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: 1b991c7814 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: e18c0899cc user: drh tags: json5)
20:37
Accept the full ECMAScript 5.1 IdentifyName syntax for keys in objects. (check-in: 9be2c87518 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: fb551145e0 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: 34c4e900a9 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: 30d12edeba user: drh tags: json5)
18:31
Fix a crash that could occur in fts5 'secure-delete' mode when operating on corrupt records. (check-in: 2e85b0e3dc user: dan tags: trunk)
17:35
More ALWAYS() macros. (check-in: 770b09f7a7 user: drh tags: json5)
17:13
Add ALWAYS macros on unreachable branches in the new JSON5 logic. (check-in: 91e15ed9d9 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: 01ee613c07 user: drh tags: json5)
16:00
Do not allow leading zeros on non-zero numeric literals in JSON. (check-in: 3e91494390 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: 07383758d6 user: larrybr tags: trunk)
15:29
Replace duped generate_series() test with another corner case. (Closed-Leaf check-in: fb2f08783f user: larrybr tags: generate_series-revamp)
12:29
Sync w/trunk, improve generate_series() variable names. (check-in: ecbf7e13e6 user: larrybr tags: generate_series-revamp)
12:13
Minor fixes to to the JSON% parser. (check-in: 2fe684cdcd user: drh tags: json5)
00:59
Correctly recognize an isolated U+feff as a space character in JSON5. (check-in: 4473dc8e3a 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: 9605db4ae3 user: larrybr tags: generate_series-revamp)
23:38
Bug fixes in the logic to skip over JSON5 comments. (check-in: c736b77a2f user: drh tags: json5)
23:19
Bug fix in the offset computation for json_error(). (check-in: 8f7ab5d921 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: beeea3e1b0 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: 8d09dc1c45 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: 901ad995d5 user: drh tags: json5)
13:25
Fix indentation and omit trailing whitespace in the random JSON generator script. (check-in: 629db09fce 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: f56528d413 user: drh tags: json5)
10:23
Merge all the latest trunk fixes and enhancements into the json5 branch. (check-in: b5ca15cfc1 user: drh tags: json5)
10:10
Do not assert() a bad string representation in an sqlite3_value after an OOM. dbsqlfuzz c822a17a23c524a0ac7cfb203c7198209da15de8. (check-in: 91fee79a01 user: drh tags: trunk)
00:28
Make CLI .load slightly harder to abuse. (check-in: 2779f9270c 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: 2881978d7b 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: a63346d6a0 user: drh tags: trunk)
23:44
Remove a faulty assert() from the CLI. Forum post 726c4f7db0. (check-in: 4bbebb6bfb user: drh tags: trunk)
23:40
Remove an ALWAYS() macro that can in fact sometimes be false. Forum post f0e872fcee. (check-in: d85880e4ed user: drh tags: trunk)
23:29
Test cases added, and some bugs fixed. (check-in: bc84a82e4d user: drh tags: json5)
22:17
Fix compilation issues seen with older versions of MSVC. (check-in: 4ba2a65112 user: mistachkin tags: trunk)
21:31
Adjust OSTRACE usage so that it works with the changes in the previous check-in. (check-in: 1eb4573e90 user: mistachkin tags: trunk)
19:30
Further optimizations to the JSON parser. (check-in: bb8f1c16f2 user: drh tags: json5)
19:27
Dynamically resize the node hash table used by the rtree module. (Leaf check-in: f94f3da5de user: dan tags: rtree-batch-insert)
19:13
Faster implementation of numberic literal parsing in JSON. (check-in: 58398292e8 user: drh tags: json5)
18:28
Add support for hexadecimal integer literals in JSON. (check-in: 85e00c9e68 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: c13346afbe 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: d92a6ab287 user: drh tags: json5)
16:24
Fix the handling of escape solidus in the JSON routines. (check-in: 676877aca2 user: drh tags: json5)
15:48
JSON string literals may span multiple lines by escaping new line characters. (check-in: 66da4bd4a3 user: drh tags: json5)
15:11
Allow the labels on JSON objects to be unquoted identifier names. (check-in: fb428db3f6 user: drh tags: json5)
14:38
Performance optimization in the JSON parser. (check-in: 5a88ba743f 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: c22a39a6b2 user: dan tags: trunk)
13:44
Permit JSON5 whitespace in all contexts of objects and arrays. (check-in: 93f3ab26b5 user: drh tags: json5)
12:24
Translate JSON5-only string literal escape sequences into the JSON equivalents. (check-in: 14e82f36ee user: drh tags: json5)
2023-04-26
20:41
Fix some problems with the rtree module and existing tests on this branch. (check-in: 50e8a30be1 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: 9508efa9d6 user: drh tags: json5)
18:50
Fix a typo in a printf() format string the sessions module. (check-in: 14d1c4a828 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: 3e2da8a7e3 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: 78404dc370 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: ac411dbdcb user: drh tags: json5)
15:19
Work toward implementing JSON5 whitespace. Untested and incomplete. (check-in: d262c05945 user: drh tags: json5)
13:52
Fix to the json-speed-check.sh script. (check-in: d839c9544d user: drh tags: json5)
13:25
Add scripts for JSON performance testing. (check-in: 3051d6a7c1 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: 5d33ab7780 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: 5d4431bc44 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: 4011b9d340 user: drh tags: branch-3.41)
14:54
Remove unused variable ltoj accidentally added by [1783655e]. (check-in: faa1575ce0 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: 1783655ea4 user: dan tags: trunk)
11:52
Fixes to SQL extension functions base64() and base85(). (check-in: ab3331f41e 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: 8f637aae23 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: e6f9c0b1f9 user: larrybr tags: trunk)
2023-04-24
23:14
Allow trailing commas in objects and arrays of JSON. (check-in: 4031b231c2 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: b35cb7458f 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: 122431d3a7 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: 8a612f0860 user: dan tags: sessions-rowid-tables)
19:14
Mistake → branched off of the wrong branch. (Closed-Leaf check-in: 491bd51da5 user: drh tags: mistake)
04:25
Add a note about the journaling mode in the OPFS VFS. No code changes. (check-in: e79c95fc13 user: stephan tags: trunk)
2023-04-23
00:12
CLI to have "undocumented" dot-commands, not usually shown by .help (check-in: 17f5dd2d2a user: larrybr tags: trunk)
2023-04-22
23:43
Import fixes from trunk into the branch-3.41. (check-in: 58a1d94c59 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: f097ca70b5 user: drh tags: trunk)
20:47
Avoid a crash in fts5 when combining an empty expression with another. (check-in: 33681ff3d2 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: 5157fd1cf7 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: 4d5af42c65 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: f28256a96a user: drh tags: trunk)
16:46
Add --unsafe-testing invocation option to CLI. Needs some tests added and changed. (Closed-Leaf check-in: b3d9ac052d user: larrybr tags: shell-for-test)
12:47
Fix an incorrect assert() statement in btree.c as found by forum post d03345d572713fe6. (check-in: cd485b302c 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: 53a61f7423 user: drh tags: trunk)
12:11
Fix harmless compiler warning in [1489e7f53a4863b3]. (check-in: da907dbc60 user: drh tags: trunk)
11:33
Also fix no-length string intolerance for CLI json mode. (check-in: 3ac1984039 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: f35ce7c122 user: drh tags: trunk)
11:24
CLI to handle absurd string length limit better. forum post 5180af725f1cc375 (check-in: 1489e7f53a user: larrybr tags: trunk)
09:26
Avoid need for cast in CLI shell_check_oom() calls. (check-in: c88550ef67 user: larrybr tags: trunk)
09:14
Fix unchecked return in CLI .dbi command. (Forum post 79e2cd1bc) (check-in: 81a74ee9d6 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: 7809e7ce6a 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: 03f2a15e87 user: drh tags: subsec-modifier)
2023-04-20
20:07
Increase CLI tolerance of artificially low memory. (check-in: 13f2638622 user: larrybr tags: trunk)
16:15
CLI .ar made to enforce getting a proper subcommand. (check-in: 104ab105ac 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: 1864569bb9 user: drh tags: trunk)
10:26
Fix a broken assert() in the recovery extension. Forum post 82a88f5812. (check-in: 8a1ad13760 user: dan tags: trunk)
2023-04-19
20:29
Add tests for the progress-handler callback with the fts5 'secure-delete' feature. (check-in: 48505ad950 user: dan tags: trunk)
18:36
Improved rebustness of the pcache tracing logic. (check-in: 0a43235b83 user: drh tags: trunk)
18:32
Remove unreachable legacy code. (check-in: e3e7fb87d9 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: d37241585c 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: 020968f857 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: 551b9dacd0 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: 982b35563d user: drh tags: trunk)
14:26
Fix ambiguity in the header comment to the sqlite3PagerUnrefNotNull() routine. No code changes. (check-in: d419e65eef user: drh tags: trunk)
13:56
Fix a debugging printf() in pcache.c. This only comes up on custom builds. (check-in: f2d6756731 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: c81c968b45 user: stephan tags: trunk)
13:30
Add pager debug tracing of truncate operations. (check-in: 0daadf3622 user: drh tags: trunk)
12:08
Attempt to suppress harmless compiler warnings reported by forum post fc98845c06. (check-in: f6e6c5f94c user: drh tags: trunk)
2023-04-18
23:05
CLI to cease dumping back to OS shell on single ^C when interactive. (check-in: ba8e4378f2 user: larrybr tags: trunk)
22:53
Add comment on CLI ^C fix (because it is a bit subtle.) (Leaf check-in: 19c062f1cd user: larrybr tags: cli-no-dump)
22:28
CLI to cease dumping back to OS shell on single ^C when interactive. (check-in: 7b1f635268 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: 3c517ba5dc 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: 441f4e4a42 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: 8b0fe63f87 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: c37e76104b 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: 5acc3ef83e user: drh tags: trunk)
11:35
Add the --fullsync option to speedtest1. (check-in: 960fe54c82 user: drh tags: trunk)
11:33
Fix an assert() in fts5 that could fail following an OOM or IO error. (check-in: 49595083ba 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: 25edf60897 user: larrybr tags: trunk)
22:28
Minor coding style changes. (Leaf check-in: 481aa3ccf6 user: mistachkin tags: cli-utf8)
21:18
When CLI -utf8 active, do no translation to MBCS for output to Windows console. (check-in: cc1d4296d7 user: larrybr tags: cli-utf8)
18:32
Fix some problems with using fts5 options 'secure-delete' and detail=none together. (check-in: 4d3f27ba90 user: dan tags: trunk)
11:41
Fix problems handling corrupt records in new fts5 code. (check-in: 2f63d4a8ba user: dan tags: trunk)
10:39
Fix an assert() in fts5 that may be true when dealing with corrupt records. (check-in: e8de277446 user: dan tags: trunk)
2023-04-15
21:00
Change a memcpy() to memmove() in new fts5 code. (check-in: 8de4542553 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: 904be83d9f user: dan tags: trunk)
19:13
Avoid dropping the error code following an OOM in fts5 when using 'secure-delete' mode. (check-in: 9ee24a499c user: dan tags: trunk)
17:56
Add -utf8 option to CLI, for improved console behavior on Windows. (check-in: 414010d236 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: 394980e4fe 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: 543594a727 user: larrybr tags: cli-utf8)
2023-04-14
21:34
Fix stray edits in comments in last check-in. (check-in: fa3ce7f013 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: 047344a915 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: 73a5f54231 user: larrybr tags: cli-utf8)
18:00
Further tests for fts5 secure-delete mode. (Closed-Leaf check-in: c5a47063b7 user: dan tags: fts5-secure-delete)
17:00
Add extra OOM test for the new code on this branch. (check-in: 846ae7e099 user: dan tags: fts5-secure-delete)
16:11
Add tests for the new feature on this branch. (check-in: 0268d1a593 user: dan tags: fts5-secure-delete)
15:42
Fix a typo in the aggfault.test test script. (check-in: e915bff7ad user: drh tags: branch-3.41)
14:36
Fix SQLITE_OMIT_VIRTUALTABLE builds of testfixture. (check-in: 430ec1a615 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: 5135aab0c0 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: de61bdc9b9 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: 8d9dcd7cfd user: drh tags: trunk)
10:35
Fix a cosmetic indentation issue. (check-in: 90deb84486 user: drh tags: trunk)
00:23
Avoid double de-quoting of table names when processing RESTRICT actions in foreign key constraints. (check-in: 5af7abffe7 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: bb2b5ab172 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: cf651dee12 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: c4845a7c5f 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: fc12743763 user: drh tags: branch-3.41)
14:53
Add extra test cases to window1.test. (check-in: ebc844fbfb 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: 1ba22631a7 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: b4fa233d3d user: larrybr tags: cli-utf8)
2023-04-12
20:23
Unwrap the loop in the WAL hash function. (check-in: eb94ae1320 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: 2f7a36d2c3 user: drh tags: trunk)
18:57
Small performance enhancement to integer-to-text conversion. (check-in: cfb3dba9b0 user: drh tags: trunk)
18:18
Avoid leaking a database handle in test script rbuexlock.test. (check-in: 2edf98d128 user: dan tags: trunk)
18:06
Remove temporary debugging code accidentally left on this branch. (check-in: 0a0f64870f 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: 824382393d 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: 4240fd09b7 user: dan tags: fts5-secure-delete)
2023-04-11
19:38
New #ifdef to enable building with -DSQLITE_OMIT_WINDOWFUNC. (check-in: e1ff83fa25 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: c8fb143d64 user: drh tags: trunk)
02:10
Better handling of OOM errors in the cursor-hint logic. dbsqlfuzz 60cd5fff91974af91c2c3692beb4a2d7fdafef46 (check-in: 68fcfb58df user: drh tags: trunk)
2023-04-10
23:21
For sha3 extension, mention NIST standard implemented. (check-in: 529ab138a4 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: 4c5a3c5fb3 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: 49ba030080 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: 2b02862de6 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: 9ff69e5998 user: drh tags: trunk)
10:23
Fix a faulty assert() in whereRangeScanEst() that should only apply if there are not prior errors. (check-in: 450d8ad85c 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: 8ba9b08bd9 user: drh tags: trunk)
2023-04-08
19:27
Fix a couple harmless compiler warnings seen with MSVC. (check-in: 1b864a370f user: mistachkin tags: trunk)
19:23
Fix a typo in [83e84531b46814ae] that changed the value of SQLITE_DBCONFIG_STMT_SCANSTATUS. (check-in: b717765391 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: 0ff3d3d537 user: drh tags: trunk)
13:31
Fix a harmless compiler warning. (check-in: c9559ba621 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: 5c12c400fe user: drh tags: trunk)
2023-04-07
18:27
Guard against oversized cells in the newly enhanced pageFreeArray(). (Closed-Leaf check-in: 2dcdbb5035 user: drh tags: btree-freespace-opt)
16:30
Add NEVER on an unreachable branch. (check-in: 9b3febbd98 user: drh tags: btree-freespace-opt)
15:49
Fix an assert(). (check-in: 7eff46ba97 user: drh tags: btree-freespace-opt)
15:07
Tweaks to the new insertCellFast(). (check-in: 203a581a91 user: drh tags: btree-freespace-opt)
14:33
Clone insertCell() into insertCellFast() for use by sqlite3BtreeInsert() for a substantial performance increase. (check-in: f225afd90c 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: d8f50b31e8 user: dan tags: trunk)
13:21
Small performance improvement in freeSpace(). (check-in: 8dc5292ee5 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: 5d7e833f25 user: drh tags: deadend)
11:18
Add further tests for the rbu_exclusive_lock=1 URI option. (check-in: c07b62bef9 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: 27c59f1ea7 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: 9511d17e2a 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: 56ea2c2fe6 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: 4eee8401c9 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: 857d0f5e16 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: 5323ee77d7 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: 82609d5a2d 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: 46db2e42a5 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: 1cd993c45c 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: 3bfdb4103d user: drh tags: branch-3.41)
02:55
Add a test case for the ALWAYS() macro removed by the previous check-in. (check-in: 68a1a83749 user: drh tags: trunk)
02:50
Remove an ALWAYS() that might now be false due to the prior check-in. (check-in: fc68993501 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: b29dea0dae 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: cc5041f3f0 user: drh tags: trunk)
2023-04-04
19:56
Shell to use SQLITE_SHELL_HAVE_RECOVER consistently (correcting check-in 0421cc03e0efa8f1) (check-in: 5b980d72a0 user: larrybr tags: trunk)
18:59
Fix an incorrect entry in the array that maps sqlite3_value values into actual datatype numbers. (check-in: 80d518fb82 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: fa8537dc90 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: 93fb8c66c5 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: 2b23dd249d user: drh tags: trunk)
17:35
Expose the new SQLITE_VTAB_USES_ALL_SCHEMAS to JS. (check-in: b7ef09be66 user: stephan tags: trunk)
08:49
Omit shell call to sqlite3_dbdata_init() when it is omitted. (check-in: 0421cc03e0 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: 7ea98aba78 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: 898bfa1afd user: drh tags: trunk)
20:11
Improved diagnostic output from PRAGMA vdbe_addoptrace. (check-in: 050958c182 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: af0f55cfcb 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: cf6454ce26 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: bcd51abee0 user: drh tags: trunk)
12:48
Make the sqlite_dbdata and sqlite3_dbptr virtual tables accessible to the CLI. (check-in: c0eff02854 user: drh tags: trunk)
12:45
Stronger constraint checking in allocateSpace(). (check-in: 0f9e65b6c1 user: drh tags: branch-3.41)
12:33
Stronger constraint checking in allocateSpace(). dbsqlfuzz 93d4c9ff5ef7cd29f16e767af1ee71c29ec5a4c0 (check-in: 9e968f4fbc 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: 0a050e9013 user: drh tags: trunk)
20:46
More off-by-one errors in the new JSON parsing. (Closed-Leaf check-in: dbc9966208 user: drh tags: json-nan-inf)
20:27
Fix an off-by-one error in the recognition of -Infinity. (check-in: f7ebf3e628 user: drh tags: json-nan-inf)
18:49
Earlier detection of corruption in sqlite3BtreeDelete(). dbsqlfuzz a4c48c291d6e40157a1b749a05eaa7c7faf5a625. (check-in: 728633c0bd user: drh tags: branch-3.41)
16:43
Earlier detection of corruption in sqlite3BtreeDelete(). dbsqlfuzz a4c48c291d6e40157a1b749a05eaa7c7faf5a625. (check-in: 978dc71c38 user: drh tags: trunk)
14:53
Clear executable bit on base64.c (check-in: ec1ddbce7d 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: fc8793e5ac user: drh tags: json-nan-inf)
16:14
Swat grammar nit on README.md (check-in: 715c00e58b user: larrybr tags: trunk)
15:51
Fix harmless compiler warnings. (check-in: a4fb2864fe 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: a1cb152e69 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: 33ac62d8ee user: drh tags: trunk)
2023-03-31
23:59
Omit the the count-of-view optimization if there is a HAVING clause. (check-in: a8faea2842 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: babe2b5e59 user: drh tags: trunk)
16:27
Merge recent trunk fixes into the nan-inf branch. (Leaf check-in: a51fb9d72c user: drh tags: nan-inf)
2023-03-30
19:14
Earlier error detection for index expression usage by aggregate functions. dbsqlfuzz 29214ace4e25c98d2ddff8fbcf97afdda23f28b9 (check-in: cf8dd8cd08 user: drh tags: branch-3.41)
19:05
Earlier error detection for index expression usage by aggregate functions. dbsqlfuzz 29214ace4e25c98d2ddff8fbcf97afdda23f28b9 (check-in: 8e841e7f02 user: drh tags: trunk)
16:08
Omit a branch that is no longer needed following [c9c4f287652933eb]. (check-in: 960a488a2d user: drh tags: trunk)
12:19
Fix an error in new test script test/aggfault.test. (check-in: 8724fe7426 user: dan tags: trunk)
11:28
Cherrypick three fixes from trunk. (check-in: 5583ea82c6 user: drh tags: branch-3.41)
11:05
Fix a crash that could follow an OOM error while processing aggregate functions. (check-in: 804435a273 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: c9c4f28765 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: 1fa78fafa1 user: dan tags: trunk)
17:26
Back out elements (1) and (2) from [96ec8306457eebf5]. (check-in: d8b17615f1 user: drh tags: nan-inf)
16:28
Merge recent trunk fixes into the nan-inf branch. (check-in: 248bf62945 user: drh tags: nan-inf)
15:16
Another #ifdef to omit code that is only used by STAT4. (check-in: 445c75567d user: drh tags: trunk)
14:42
New #ifdefs to omit code that is unused except under STAT4. (check-in: 09a9b30ba7 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: fbc27e18aa 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: 7638d9755d 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: 242cb36c3b 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: 36fd948e34 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: c34fd9fe1b 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: b49816fcce 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: c8bedef0d6 user: drh tags: trunk)