/ Timeline
Login

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

200 most recent check-ins using file src/status.c version 46e7aec1

2020-01-17
15:33
More restrictions on changes to shadow tables when in defensive mode. Leaf check-in: b302b260 user: drh tags: branch-3.28
15:24
Validate the type, name, and tbl_name fields of the sqlite_master table when loading the schema, unless writable_schema is engaged. check-in: 3d13fbf2 user: drh tags: branch-3.28
14:56
Do not allow shadow tables to be dropped in defensive mode. check-in: ad1f760f user: drh tags: branch-3.28
14:30
Import the 3.31.0-beta FTS3/4 code directly into the 3.28 branch, thus providing 3.28 with all the latest 3.31 fixes. FTS3 has not been enhanced to use any core functionality that was not already available in 3.23, so no modifications were made to FTS3 sources for this import. check-in: be4269c6 user: drh tags: branch-3.28
2020-01-02
21:30
Do not allow the zipfile virtual table to start a transaction if no filename has been specified. check-in: 7405e982 user: drh tags: trunk
19:50
Fix some test logic in the OP_Delete opcode so that it works after a cursor-trip. check-in: 28900e5c user: drh tags: trunk
18:37
Ifdef-out code that is only possible with the sessions extension. check-in: 4fcf07f7 user: drh tags: trunk
17:46
Have the OP_ReleaseReg opcode also invalidate the registers if P5 is non-zero. check-in: 937be221 user: drh tags: trunk
16:24
Handle blobs that are the return values of functions being cast to text in utf16 databases in the same way as blobs read directly from the database. Fix for [771fe617]. check-in: e782096a user: dan tags: trunk
15:02
Fix the OP_Move opcode so that it correctly manages dependency tracking. This change impacts debugging builds only. check-in: 5377add4 user: drh tags: trunk
14:42
Enhancements to aid testing and debugging: In PRAGMA vdbe_trace=on output, show pScopyFrom dependencies on register values. Add the sqlite3VdbeRegisterDump() procedure, callable from a debugger, that shows the values of all registers. Pass the VDBE pointer into test_trace_breakpoint() so that sqlite3VdbeRegisterDump() is callable from the breakpoint. check-in: 9886cb4b user: drh tags: trunk
13:26
Add the test_trace_breakpoint() subroutine that is invoked after each instruction is printed while running PRAGMA vdbe_trace=on. Only works for SQLITE_DEBUG builds. Also add parameters "pc" and "pOp" to test_addop_breakpoint() to make it easier to set conditionals. check-in: 49a6368c user: drh tags: trunk
02:50
Use OP_Copy instead of OP_SCopy to move the results of a scalar subquery. check-in: 435c272d user: drh tags: trunk
00:45
The sqlite3WhereEnd() call now unwinds all Expr modifications made by the sqlite3WhereBegin(). check-in: 7bfd42f1 user: drh tags: trunk
2020-01-01
23:02
Provide the -DSQLITE_ENABLE_INTERNAL_FUNCTIONS=1 compile-time option. Fix the ".testctrl internal_function" command in the CLI so that it does not signal an error on a valid input. check-in: 8ee2ce92 user: drh tags: trunk
21:14
When generating code for a subquery, make a copy of the Select object and generate the code out of the copy, in case the code generator makes modifications to expression and the Select object needs to be reused. check-in: 4edddcc0 user: drh tags: trunk
20:17
Ensure that when code for a scalar SELECT featuring window functions is generated more than once by the planner, separate ephemeral tables are opened for each instance. check-in: ce141732 user: dan tags: trunk
16:43
Fix the sqlite3ExprImpliesNonNullRow() routine so that it correctly handles a numeric comparison of two AND subexpressions. check-in: 07e504d5 user: drh tags: trunk
15:43
New test-only SQL functions: implies_nonnull_row(), expr_compare(), and expr_implies_expr(). The SQLITE_TESTCTRL_INTERNAL_FUNCTIONS test-control is modified to toggle internal function access on and off for a single database connection. check-in: 473892a8 user: drh tags: trunk
13:55
Factor out code generation for in-line SQL functions into a separate routine inside of expr.c. check-in: 586a65a2 user: drh tags: trunk
01:26
Issue OP_ReleaseReg opcodes against the array of registers used to compute index records after the index record has been computed. check-in: e3330861 user: drh tags: trunk
2019-12-31
23:17
Remove an incorrect assert() statement. Ticket [46fcd700b855e6d1] check-in: eca7ec9c user: drh tags: trunk
22:52
Experimental branch with new sqlite3_db_config() options that could possible enhance security for applications reading potentially compromised database files. check-in: 96a2db26 user: drh tags: new-security-options
18:39
Also set the SQLITE_DIRECTONLY flag on the load_extension() function. check-in: 3bd095a5 user: drh tags: trunk
18:12
Set the SQLITE_DIRECTONLY flag on the fts3_tokenizer() function of FTS3, thus preventing that function from being called from within a trigger or view. check-in: f3171dc2 user: drh tags: trunk
12:18
The OP_ResultRow opcode releases the SCopy dependences on all its registers, as the values in those registers will not be reused. check-in: 1dc83c5d user: drh tags: trunk
2019-12-30
23:50
Back out the NEVER() from check-in [40d10e7aad5b8992] because it is reachable after all. Ticket [892575cdba4e1e36] check-in: f481636f user: drh tags: trunk
23:41
Add an ALWAYS() to a conditional which is apparently always true. check-in: ea44c607 user: drh tags: trunk
20:42
Put a NEVER() on a defensive branch. check-in: 40d10e7a user: drh tags: trunk
20:42
Fix a typo in a comment. No changes to code. check-in: d4813a8d user: drh tags: trunk
14:32
Do not use HIDDEN columns for NATURAL joins. Fix for [7c0e06b16]. check-in: ab09ef42 user: dan tags: trunk
06:55
In ALTER TABLE, rename columns and tables in expressions that are optimized out by the "AND 0" optimization. Doing this also fixes an otherwise harmless assert() failure. check-in: a9e0354c user: dan tags: trunk
2019-12-29
22:08
Do not allow triggers that run as part of REPLACE conflict resolution during an UPDATE to modify the the table being updated. Otherwise, those triggers might delete content out from under the update operation, leading to all kinds of problems. Ticket [314cc133e5ada126] check-in: db4b7e1d user: drh tags: trunk
00:52
Add the OP_FinishSeek opcode which completes an OP_DeferredSeek if the seek has not already completed. Also add the sqlite3WhereUsesDeferredSeek() interface to the query planner. The UPDATE implementation adds an OP_FinishSeek before running the final OP_Insert if one is needed. Ticket [ec8abb025e78f40c] and also an assertion fault reported by Yongheng. check-in: 21ef6e99 user: drh tags: trunk
2019-12-28
18:25
Do not attempt to flatten compound sub-queries in a FROM clause into the parent if any component of the sub-query uses a window function. check-in: eeb76f62 user: dan tags: trunk
18:08
Change an assert() in where.c to a testcase() macro, since the condition may be false. This was a problem with the assert() only, there is no bug in release builds that omit assert(). check-in: 82be135d user: dan tags: trunk
16:20
Disable early coding of transitive constraints at the end of each loop in the WHERE clause processing if the loop being coded is for a LEFT JOIN, even if the loop is part of an OR-clause optimization for virtual tables. Test cases in TH3. check-in: 9421b442 user: drh tags: trunk
15:24
Fix an instance where the planner might choose to use the OR-optimization when it adds no benefit. The same quirk causes an assert() to fail. This is not a bug in released versions - without the assert() the library still gets the right answer, it just does so less efficiently than it should. check-in: f4bed1d7 user: dan tags: trunk
14:33
Further improvements to .wheretrace during loop code generation. check-in: c4d5b75c user: drh tags: trunk
14:07
New enhancements to .wheretrace. The 0x20000 flag shows the WHERE clause before and after coding each loop. The 0x800 flag shows status at the start and at the end of each loop. An extra "C" tag is shown on coded terms. check-in: 59cc46e5 user: drh tags: trunk
13:39
Expose some of the Where data structure debug printing routines to the entire WHERE-clause processing module. check-in: 85e76887 user: drh tags: trunk
13:17
Add the --enable-all option to the main configure script as a short-hand to enable FTS4, FTS5, Geopoly/Rtree, JSON, and Sessions. In the amalgamation-autoconf, the --enable-rtree option (which is enabled by default) also now activates Geopoly. check-in: 52ea0672 user: drh tags: trunk
13:01
Simplifications to the initialization of the sqlite3_index_info structure that is used to communicate with virtual table modules. Avoid adding unused constraints to the sqlite3_index_info structure. Extra constraints are harmless, but might be confusing to people trying to understand the code. check-in: 5e6357fc user: drh tags: trunk
12:33
If the ".wheretrace 0x10000" bit is set, print WhereTerm.prereqAll and .prereqRight fields in the WhereTerm trace output. check-in: a4f330b1 user: drh tags: trunk
11:55
Two new test cases added to test/fuzzdata8.db. check-in: 1be2c18f user: drh tags: trunk
09:08
Second attempt to fix a problem with unwinding the WITH stack of the Parse object following an error. check-in: 315d1f1a user: dan tags: trunk
08:33
Merge latest trunk changes with this branch. Closed-Leaf check-in: d693be37 user: dan tags: better-error-handling-1
08:26
Fix an assert() failure in altertable3-22.4. check-in: c566a91d user: dan tags: better-error-handling-1
03:55
Fix a faulty assert() associated with query search limiting query plans. check-in: 0d743585 user: drh tags: trunk
02:40
Convert an assert() back into a conditional. The conditional was converted into an assert() by check-in [6ae4ad6ebee4db88] (2009-05-28) because we were unable to find a test case for it. Yongheng's fuzzer just now found that test case. check-in: 4d0b9109 user: drh tags: trunk
01:52
When an INSERT is receiving content from a SELECT, run an OP_ReleaseReg opcode at the top of each iteration of the loop in order to prevent spurious OP_SCopy misuse complaints. Ticket [de4b04149b9fdeae] check-in: 6afadd3b user: drh tags: trunk
00:36
Recompute the values for all generated columns after NOT NULL ON CONFLICT REPLACE constraints fire. Tickets [37823501c68a09f9] and [5fbc159eeb092130]. check-in: 4cc12c18 user: drh tags: trunk
2019-12-27
20:54
Do not attempt to unwind the WITH stack in the Parse object following an error. This fixes a separate case to [de6e6d68], but also causes an assertion fault at select.c:4666 for test case altertab3-22.4. check-in: d29edef9 user: dan tags: better-error-handling-1
20:06
Remove a NEVER() that is no longer true. Fix for [36ffedcb9]. check-in: 597896ed user: dan tags: trunk
19:46
Fix a problem involving window function aliases being referenced from sub-selects. check-in: e3b5fc05 user: dan tags: trunk
18:15
Add a missing "ifcapable rtree {...}" line to the window1.test test module. check-in: 4e6fbb1a user: drh tags: trunk
16:25
Fix a problem with window functions in aggregate queries that do not have GROUP BY clauses. check-in: 99609786 user: dan tags: trunk
15:31
Do not mistake constant integers in a PARTITION BY expression for references to ORDER BY style references to values returned by the SELECT statement. check-in: 45c64d39 user: dan tags: trunk
13:30
Follow-up to check-in [c8c6dd0e6582ec91] - change the xAccess() method to return true if the file exists and it is anything other than a regular file, or if it is a regular file with a non-zero file size. check-in: 8a39803e user: drh tags: trunk
08:57
When determining if an aggregate within a sub-query should be processed as part of the sub-query or an outer query, consider any FILTER clause in the same way as the arguments to the aggregate. check-in: 1ffc045d user: dan tags: trunk
01:50
Ensure that the Pager.changeCountDone flag is cleared whenever dropping the write lock, even when transitioning from EXCLUSIVE locking mode into NORMAL locking mode while in WAL mode. Ticket [fb3b3024ea238d5c]. check-in: 846b1de6 user: drh tags: trunk
00:19
Fix buffer underflows in the zipfile extension associated with zero-length or NULL filename in the ZIP archive. But report on the mailing list by Yongheng and Rui. check-in: 465a15c5 user: drh tags: trunk
2019-12-26
23:40
If an UPSERT can cause an Abort due to a constraint failure, make sure the query planner knows this. Ticket [7c13db5c3bf74001]. check-in: f14ce948 user: drh tags: trunk
23:16
An UPDATE of a table that is indexed by a constant virtual column that uses the one-pass optimization might cause the table seek to be omitted before reaching row DELETE/INSERT. Fix this by coding an extra OP_Column in that circumstance. Ticket [ec8abb025e78f40c] check-in: e5456049 user: drh tags: trunk
14:36
Fix an assert() in fts5 that could fail if an xSavepoint() call on another vtab fails. Fix for [167b2aac] . check-in: a5d7f5d2 user: dan tags: trunk
01:10
Makefile.in fix so that it works on systems that require a .EXE suffix on executables. check-in: f482a4cd user: drh tags: trunk
01:02
Add two new fuzzer test cases from dbsqlfuzz. check-in: f8d5586a user: drh tags: trunk
00:56
In the xAccess() method of the unix VFS, return true if the named object is a directory, regardless of what stat() reports as the st_size for the object. Different filesystems report st_size differently for directories. Problem reported on the mailing list by Stefan BrĂ¼ns. check-in: c8c6dd0e user: drh tags: trunk
00:54
Fix an FTS3 test case that depends on the ICU extension so that it only runs if SQLite is compiled with ICU. check-in: 19c6240b user: drh tags: trunk
00:53
Fix an incorrect assert() added by check-in [fa58aad48a788802]. Problem found by dbsqlfuzz. check-in: a17b29f0 user: drh tags: trunk
00:20
Disable the optimization that tries to pull the value of an expression from an index on that expression if the expression is a constant. check-in: e5fd8b50 user: drh tags: trunk
2019-12-25
23:54
When the sqlite3WindowRewrite() routine detects and error, have it convert the SELECT statement into just "SELECT null" so that it does not leave the parse tree in a goofy state that can cause problems with subsequent code before the stack has a chance to unwind and report the error. Ticket [d87336c81c7d0873] check-in: fa58aad4 user: drh tags: trunk
2019-12-24
21:42
Fix a minor performance regression from check-in [401c9d30e06191d9] check-in: 76f54ee8 user: drh tags: trunk
21:01
Backout the early VTable cursor close change from yesterday, as Yongheng and Rui have found a test case for which it fails. The new test case is added to fuzzcheck. check-in: ddb10f03 user: drh tags: trunk
20:51
Fix a problem causing fts5 integrity-check failures if numeric values are inserted into a table within a utf-16 database. Fix for [752fdbf6]. check-in: bae060f3 user: dan tags: trunk
18:53
Make the zipfile() extension function more robust against zero-length filenames. check-in: b9c2005f user: drh tags: trunk
16:20
Fix another case where malformed utf-8 was being mishandled in fts5. Fix for [df46a6f3]. check-in: 1c0a05b0 user: dan tags: trunk
15:35
Fix an assert() added as part of commit [a11b393dc] that can fail if fts5 database records are corrupt. check-in: 4630c1ec user: dan tags: trunk
15:01
Extra defense against problems following an OOM. dbsqlfuzz find. Also import the latest dbsqlfuzz test cases. check-in: 0a70f5dd user: drh tags: trunk
14:27
Fix a spurious report of corruption that could be made by the fts5 integrity-check in SQLITE_DEBUG builds if the fts5 index contains malformed utf text. Ticket [d62981b76de521e3] check-in: a11b393d user: dan tags: trunk
13:41
Convert an ALWAYS() into an assert() with an extra error term. Dbsqlfuzz find, with test case in TH3. check-in: b473ad35 user: drh tags: trunk
01:53
Allow comparison operators of a register against itself. Ticket [188f912b51cd802a], check-in: 401c9d30 user: drh tags: trunk
2019-12-23
21:11
Test case for the zipfile-extension bug fix of the previous check-in. check-in: bc8bfc7f user: drh tags: trunk
21:04
Fix the zipfile() function in the zipfile extension so that it is able to deal with goofy filenames that contain embedded zeros. check-in: cc0fb00a user: drh tags: trunk
20:41
Thoroughly reset the rtree cursor at the start of each VFilter operation, including clearing its cache. This prevents left over pages in the cache which can cause problems on shutdown after a LEFT JOIN. Ticket [5eadca17c4dde90c] check-in: 4c50afaf user: drh tags: trunk
20:07
Remove an extra deflateInit2() call accidently left in check-in [f5ee30426e8876e7] check-in: 953e6aa6 user: drh tags: trunk
19:28
Do an early close of virtual table cursors to avoid unnecessary cursor contention in UPDATE for some virtual table implementations. Ticket [56a74875be799b85] check-in: eb95dac7 user: drh tags: trunk
18:02
Early detection of database corruption in balance_deeper(). check-in: 61c22336 user: drh tags: trunk
15:17
Fix a case in which SQLite could fail to identify "x BETWEEN ? AND ?" being true as implying that x is not null. Ticket [dfd66334]. check-in: 2f179749 user: dan tags: trunk
14:20
For expressions like (x, y) IN (SELECT ...) where the SELECT uses window-functions, require that all columns on the LHS be indexed before an index can be used. Fix for [d9ed4ebe]. check-in: 0b1dbd60 user: dan tags: trunk
13:24
Fix a shift-overflow problem in yesterday's check-in [36fdeb4f0a66970a] that OSSFuzz helpfully discovered overnight. Thanks Google. check-in: bff38e2b user: drh tags: trunk
03:37
Fix the OP_Cast operator so that when casting to TEXT, it always leaves the result in the encoding of the database. Ticket [0911b5d161b039c6]. Test cases in TH3. check-in: f347744e user: drh tags: trunk
02:43
Change the assert() back into a testcase(). See also check-ins [9ab985a9c8160b90] and [ddb17d92df194337] and other check-ins that those reference. Fix for ticket [9d708e474201c001] check-in: 2c44c734 user: drh tags: trunk
02:18
Enhance the sqlite3VdbeMemAboutToChange() shallow-copy validation mechanism by adding the new OP_ReleaseReg opcode to tell MemAboutToChange() that a range of registers is no longer needed so that the source register can be freely changed. This is a change to debugging and test builds only and does not impact release builds. Fix for ticket [c62c5e58524b204d] and [5ad2aa6921faa1ee]. The previous fix to ticket [5ad2aa6921faa1ee] is backed out by this change since this change is a better fix. check-in: 36fdeb4f user: drh tags: trunk
2019-12-22
23:48
Change the code generator for the IN operator so that it avoids creating OP_Eq and OP_Ne opcode with the same P1 and P3 arguments. This enables us to back out check-in [ddb17d92df194337] and also fix ticket [188f912b51cd802]. check-in: 9ab985a9 user: drh tags: trunk
20:29
Make a hard copy of strings in constraint checks prior to applying OP_RealAffinity, to avoid problems with a pointer accounting assert. This change is not strictly necessary - the correct answer is obtained without it and no UB occurs - however the pointer accounting asserts are useful to prevent other problems so it is a simple matter to bring this piece into compliance. Ticket [5ad2aa6921faa1ee] check-in: 89a9dad6 user: drh tags: trunk
20:03
When constructing the virtual MATCH term of the WHERE clause for a virtual table that is in a LEFT JOIN, be sure to set the correct Expr.iRightJoinTable value. This value does not appear to ever be used, except inside of a single assert(). But it is good to set it correctly, nevertheless. This fixes ticket [7929c1efb2d67e98], which as far as I can tell is completely harmless. check-in: ef604882 user: drh tags: trunk
19:41
In the WHERE clause debugging output (the .wheretrace output) show the parent index of any WhereTerm that is a child. check-in: 7fc73332 user: drh tags: trunk
18:55
Fix to the optimization of check-in [a47efb7c8520a011] that reads the values of expressions used in an index-on-expression directly from the index rather than recomputing the value. If the expression has a top-level COLLATE or unlikely() operator, be sure to clear the corresponding flags prior to converting it into a TK_COLUMN expression. Failure to do this is most likely harmless in production, but might cause an assertion fault in debugging builds. Ticket [b0cb8aff561a6dcd]. Test cases in TH3. check-in: 56539e1c user: drh tags: trunk
18:23
Back out the asserts of check-ins [a500893b6f64aced] and [d9c9fe9f5ad3fc91] as ticket [1b06916e01c82b66] demonstrates a case that refutes them. check-in: ddb17d92 user: drh tags: trunk
18:06
When parsing a CREATE TABLE from the sqlite_master table, delete the CHECK constraints if there are any errors, since there might otherwise be attempts to use those CHECK constraints if PRAGMA writable_schema=ON is set. This undoes the fix in check-in [ea721b34477ab8b4] for a more general solution. check-in: a982e643 user: drh tags: trunk
17:32
Ensure sqlite3WindowRewrite() is called on a SELECT statement before any terms aremoved from it as part of IN() clause processing. Fix for [f00d096ca]. check-in: 8c856404 user: dan tags: trunk
14:29
Fix "PRAGMA data_version" so that it works the same way with locking_mode=PERSIST and journal_mode=PERSIST configured. Fix for 7a458c2a5f. check-in: 45748e2d user: dan tags: trunk
2019-12-21
20:43
Fix a spurious report of corruption from the fts3/4 integrity-check triggered by using the languageid option. check-in: 70815e27 user: dan tags: trunk
19:37
When creating a new virtual table, ensure that the OP_ParseSchema opcode processes the correct entry in the sqlite_master table even if there is a second entry with the same name and table values due to database corruption and the use of writable_schema=ON. Dbsqlfuzz find. check-in: 4dbb6e1c user: drh tags: trunk
14:09
When a corrupt schema is loaded using writable_schema=ON, the CHECK constraints (or other expressions in the table definition) might not be fully resolved. Ensure that the code generator can deal with this if the table is subsequently used in a DML statement. dbsqlfuzz find. check-in: ea721b34 user: drh tags: trunk
2019-12-20
22:46
Do not try to access a generated column through an index if the collating sequence for the generated column is non-standard. Part 2 of ticket [e0a8120553f4b082] check-in: 056bb8dc user: drh tags: trunk
20:45
Apply real affinity to generated columns of type REAL that are extract from an index. Ticket [e0a8120553f4b082] check-in: 728ad39e user: drh tags: trunk
20:08
Debugging enhancment: Show the Expr.y.pTab pointer on TK_COLUMN nodes of an expression tree in the treeview. check-in: 64154ac4 user: drh tags: trunk
20:03
Fix a bad interaction between RBU and [df51ae19]. check-in: 0b9d8a12 user: dan tags: trunk
19:41
Fix two more cases in fts5 where sqlite3_value_bytes() was being called before sqlite3_value_text(). Fix for e431c355. check-in: a1ba9a37 user: dan tags: trunk
17:41
Export the public RBU entry points from the Win32 DLL. check-in: e62d1791 user: mistachkin tags: trunk
17:25
Debugging improvement: when tracing the VDBE, output the register value for OP_Cast after the cast is completed. check-in: dc5f1d28 user: drh tags: trunk
15:35
When computing dependencies on WHERE-clause terms, be sure to take into account the FILTER clause of aggregate functions. Problem reported by Manuel Rigger. check-in: 3cc2b570 user: drh tags: trunk
14:37
Improved assert() statements on the OP_Column opcode. check-in: c538601e user: drh tags: trunk
14:24
Load new dbsqlfuzz test cases into test/fuzzdata8.db. check-in: 01aeeb5c user: drh tags: trunk
14:18
Fix a potential problem with ALTER TABLE commands on schemas that contains a triggers or view featuring a sub-query that uses an ON clause with a join that is not a LEFT JOIN. check-in: 365dd8b6 user: dan tags: trunk
14:08
Fix harmless compiler warnings. check-in: 2bbd014c user: drh tags: trunk
13:24
Ensure fts5 consistently calls sqlite3_value_text() before sqlite3_value_bytes(). This matters when storing blobs in fts5 tables within utf-16 databases. Fix for [cf36cb4e02]. check-in: c16305eb user: dan tags: trunk
12:55
Do not continue an ALTER TABLE tree walk of a subquery if a prior error is seen in the tree. Report the problem immediately, without continuing. check-in: 01ca865f user: drh tags: trunk
12:33
Fix an assert() in btree.c that can fail if an INSERT is attempted on a corrupted database while in PRAGMA writable_schema=ON. check-in: 07beb362 user: drh tags: trunk
2019-12-19
22:08
Continuation of [e2bddcd4c55ba3cb]: Add another spot where it is necessary to abort early due to prior errors in sqlite3WindowRewrite(). check-in: cba2a2a4 user: drh tags: trunk
21:11
Fix the regexp extension so that it correctly translates all over-length 3-byte UTF8 sequences into 0xfffd. check-in: 3d4c0bf8 user: drh tags: trunk
20:37
When an error occurs while rewriting the parser tree for window functions in the sqlite3WindowRewrite() routine, make sure that pParse->nErr is set, and make sure that this shuts down any subsequent code generation that might depend on the transformations that were implemented. This fixes a problem discovered by the Yongheng and Rui fuzzer. check-in: e2bddcd4 user: drh tags: trunk
17:42
Detect the invalid use of NULLS LAST on an INTEGER PRIMARY KEY definition of a WITHOUT ROWID table. check-in: 4417c5bf user: drh tags: trunk
15:15
Fix the zipfile extension so that INSERT works even if the pathname of the file being inserted is a NULL. Bug discovered by the Yongheng and Rui fuzzer. check-in: a80f84b5 user: drh tags: trunk
13:17
Fix incorrect SQL generated by the Lemon change of the previous check-in. check-in: fccfb8a9 user: drh tags: trunk
12:29
Modify the parse.sql output file from Lemon so that the RULE table contains a column with the complete text of the rule. check-in: 329cbb37 user: drh tags: trunk
03:14
More restrictions on changes to shadow tables when in defensive mode. Leaf check-in: 4146c629 user: drh tags: branch-3.30
00:59
Minor enhancement to Win32 locking semantics. Leaf check-in: ed66ffce user: mistachkin tags: win32LockFlags
2019-12-18
21:22
Change an unreachable testcase() into an assert() check-in: 062e00c4 user: drh tags: trunk
20:51
Continue to back away from the LEFT JOIN optimization of check-in [41c27bc0ff1d3135] by disallowing query flattening if the outer query is DISTINCT. Without this fix, if an index scan is run on the table within the view on the right-hand side of the LEFT JOIN, stale result registers might be accessed yielding incorrect results, and/or an OP_IfNullRow opcode might be invoked on the un-opened table, resulting in a NULL-pointer dereference. This problem was found by the Yongheng and Rui fuzzer. check-in: 86297431 user: drh tags: trunk
13:42
Add the --vdbe-debug option to fuzzcheck. check-in: 289158aa user: drh tags: trunk
13:02
Enhancements to fuzzcheck on unix so that it captures signals and prints the current test file and test number prior to terminating. check-in: ae7cbb24 user: drh tags: trunk
09:17
Add a test case for fix in check-in [1ca0bd982ab1183b] check-in: 519864da user: drh tags: trunk
02:12
Correctly unwind the savepoint stack if the database goes read-only in the middle of a savepoint. check-in: a96d02b4 user: drh tags: trunk
01:31
Remove an assert() in the code generator that can fail due to an invalid INSERT statement. The same assert() appears again in the VDBE and will fire there if the problem persists in an SQL statement that does not contain errors. Gramfuzz find. check-in: 9bdd57cb user: drh tags: trunk
00:05
When processing constant integer values in ORDER BY clauses of window definitions (see check-in [7e4809eadfe99ebf]) be sure to fully disable the constant value to avoid an invalid pointer dereference if the expression is ever duplicated. This fixes a crash report from Yongheng and Rui. check-in: 1ca0bd98 user: drh tags: trunk
2019-12-17
12:03
Clean up the ExprList that holds the names of columns in a CTE before checking for unused references in the ALTER TABLE implementation. check-in: 8223e79f user: drh tags: trunk
2019-12-16
16:52
When a table is part of a LEFT JOIN and should be a completely NULL row due to the semantics of a LEFT JOIN, make sure any generated columns on that row evaluate to NULL. Ticket [3b84b42943644d6f] check-in: 02714914 user: drh tags: trunk
2019-12-15
02:49
Ensure that all ON CONFLICT REPLACE indexes are sorted to the end of the list of indexes for a table, even for weird cases where the same UNIQUE constraint occurs twice with the ON CONFLICT REPLACE clause only on the second one. This avoids an out-of-order contraint processing problem that can arise due to the optimization of check-in [469a62ca33081854]. check-in: 1e3918ca user: drh tags: trunk
00:36
Abort the OP_Savepoint opcode early if a virtual table xSync method fails, perhaps due to an interrupt. check-in: 672e749a user: drh tags: trunk
2019-12-14
19:55
When a generated column expression is initially parsed, if it contains errors convert the expression to a simple NULL. This prevents additional pieces of the expression tree that are allocated from lookaside from leaking into the schema, where lookaside allocations are not allowed. check-in: a89b3860 user: drh tags: trunk
18:08
Due to the previous change, the p5 parameter to OP_VColumn no longer ever contains extraneous bits, so change a testcase() into an assert() to show as much. check-in: 5b4a88cd user: drh tags: trunk
17:43
Do not set OP_Column flags on the instructions generated by sqlite3ExprCodeGetColumn() if the opcode generated is not really an OP_Column, which might happen if the column is virtual. Fix for ticket [b439bfcfb7deedc6] check-in: 2401e047 user: drh tags: trunk
15:01
Make the sqlite3ExprCodeTarget() expression code generator routine robust in the face of unknown opcodes - it simply generates a NULL value. check-in: f8e876c8 user: drh tags: trunk
14:15
Fix problems in fts3 with processing corrupt records and undefined integer overflows. check-in: 3b873029 user: dan tags: trunk
2019-12-13
23:38
Fix an utterly harmless "applying zero offset to null pointer" UB warning in sqlite3AtoF(): check-in: 052fdf5e user: drh tags: trunk
22:59
Initial exploration of blocky APIs, starting with a variant of sqlite3_exec. Leaf check-in: fd849d5b user: numist tags: blocky-exec
21:24
Patch to the page cache to avoid harmless pointer arithmetic that due to bugs in the STD-C spec is technically UB. This is to fix a harmless UBSAN complaint that OSSFuzz is hitting. check-in: c29fc212 user: drh tags: trunk
11:42
Ensure that there is a containing SELECT statement when processing a normal aggregate function as if it were a window function. check-in: c1014e80 user: drh tags: trunk
11:32
*Remove* the macros, not just comment them out. check-in: e5dc2939 user: drh tags: trunk
11:31
Remove unused macros formerly used to define built-in aggregate functions. check-in: 3ef0d44e user: drh tags: trunk
2019-12-12
15:19
Factor out the conditional (which is only true for rare errors) from the notValid() function in resolve.c, for a performance improvement and size reduction. Also cause failures to set the Expr node to a NULL operator so that it does not cause problems later in case PRAGMA writable_schema=ON has been set. Test cases in TH3. check-in: c6af9f65 user: drh tags: trunk
00:20
Fix goofy string formatting in lemon.c that dates from the K&R-C days. check-in: 48ba5e5a user: drh tags: trunk
2019-12-11
18:53
Improved tracing output from the LEMON-generated parser. check-in: 4d6d2fc0 user: drh tags: trunk
16:22
Strengthen check-in [83da4d4104ee1870] by ignoring *all* WHERE-clause constraints for a virtual table that is the right table of a LEFT JOIN, as such constraints are never useful. This fixes an issue discovered by Manuel Rigger. check-in: 840de36d user: drh tags: trunk
15:07
When trying to drop a virtual table that has no xDestroy method, invoke the xDisconnect method rather than doing nothing, to avoid a memory leak. check-in: 1fa29a5f user: drh tags: trunk
14:25
The xDestroy method of a module might be NULL if the schema is corrupt. check-in: 0457e7d1 user: drh tags: trunk
2019-12-10
20:41
Enhance LEMON to provide the ability to mark a rules as one that will never reduce due to intervention of actions. Use this new capability to designate the EXPLAIN rule as NEVER-REDUCES. check-in: 136cdefb user: drh tags: trunk
18:10
Use a statement journal on a CREATE VIRTUAL TABLE statement in case the VCreate opcode fails. check-in: aa3b0eb8 user: drh tags: trunk
15:05
Fix parser bugs: require a semicolon after an EXPLAIN command. check-in: 707a058a user: drh tags: trunk
03:40
Avoid a buffer overread in fts5 that could occur when parsing corrupt configuration records. check-in: 355afd77 user: dan tags: trunk
02:48
Set the affinity of regular columns prior to computing the values of generated columns. Ticket [d7c3f125c925c522] check-in: d47d66e3 user: drh tags: trunk
2019-12-09
19:44
Rename a local variable to avoid masking a function parameter and thus causing a harmless compiler warning. check-in: f065cf00 user: drh tags: trunk
19:29
Add a NEVER() to the ALTER TABLE fix in check-in [1d2e53a39b87e364] check-in: c7309ed3 user: drh tags: trunk
18:22
The previous check-in was not quite correct, and introduced a new problem with the USING clause. Use this version instead. check-in: ed28aaa4 user: drh tags: trunk
17:14
Ensure that the SrcList_item.colUsed field is set correctly (set to have a 1 for all columns of the table) when a generated column appears in the USING clause of a join. check-in: 1923efb2 user: drh tags: trunk
15:52
Fix the NOT NULL verification logic in PRAGMA integrity_check so that it works for generated columns whose value is the result of a comparison operator. Ticket [bd8c280671ba44a7] check-in: f3b39c71 user: drh tags: trunk
14:34
Fix a gramfuzz find. If a partial index that does not reference any column of its table is used by an UPDATE statement in one-pass mode, then avoid the use of OP_DeferredSeek since the seek might not be resolved prior to the OP_Delete and OP_Insert that implement the UPDATE. check-in: e3398c5f user: drh tags: trunk
08:13
Avoid infinite recursion in the ALTER TABLE code when a view contains an unused CTE that references, directly or indirectly, the view itself. check-in: 1d2e53a3 user: dan tags: trunk
02:20
Fix possible null pointer dereferences in the fts5_expr() scalar function. check-in: c5d44143 user: dan tags: trunk
2019-12-08
00:06
Fix incorrect column-usage accounting associated with generated columns and added by check-in [6601da58032d18ae]. Fix for ticket [b92e5e8ec2cdbaa1]. check-in: 9d75e1cc user: drh tags: trunk
2019-12-07
13:42
Correctly deal with multi-row VALUES clauses that contain window functions. check-in: 26d991f2 user: drh tags: trunk
12:13
Ignore type affinity for auxiliary columns in RTREE as it is too error-prone to try to parse out the type from other constraints. Ticket [8bf76328ac940d52] check-in: 7fa664ea user: drh tags: trunk
00:22
Fix a problem with foreign keys and generated columns discovered by Manuel Rigger. check-in: 27c0fdab user: drh tags: trunk
2019-12-06
19:07
Early detection and reporting of too few columns in an rtree CREATE VIRTUAL TABLE statement. check-in: ef73107f user: drh tags: trunk
13:10
In the rtree extension, actively suppress extra tokens on the column names, and be pedantic about column affinities. Ticket [367a86e28859f1ff] check-in: 97fb5a72 user: drh tags: trunk
11:48
The check-in [b7810062ec2489e1] was not quite right in that it allowed an oversized shift operation (which is UB in C) on some obscure inputs. OSSFuzz found the problem for us overnight. check-in: 62f2235a user: drh tags: trunk
01:38
Further enhancements to RTREE, following up to check-in [f898d04cf272ef01] so that constraints are allowed to be compared to strings that look like numbers. Ticket [aa573a787b8f1fdf] check-in: 32772dfd user: drh tags: trunk
01:23
Do not allow UPSERT of a view. check-in: ebf897e8 user: drh tags: trunk
2019-12-05
21:46
Fix to the rowvalue logic that avoids disabling rowvalue inequality contraints on a virtual table when the virtual table sets the omit flag. The logic has been incorrect since row-values were added. However, this does not come up often as very few virtual tables implement inequality constraints using the omit flag. Ticket [f096d191b6641daa] check-in: b7810062 user: drh tags: trunk
18:29
Documentation update: Clarify that the sqlite3_index_info.aConstraintUsage.omit flag is a hint only and that the code generator is not obligated to follow the hint. check-in: 7d3e3f6e user: drh tags: trunk
17:31
Additional debugging information printed with the ".wheretrace 0x100" option. No changes to normally delivered code. check-in: fc72ec52 user: drh tags: trunk
14:42
Make sure the rowid of an RTREE virtual table has integer affinity. Ticket [9fe487ba3c064b4e] check-in: 7ae8c0d5 user: drh tags: trunk
14:31
Fix a problem in ALTER TABLE that could occur if an index, view or trigger in the schema features an expression of the form ((SELECT ...) IN ()) where the SELECT statement uses a CTE. check-in: 7e5ad8e0 user: dan tags: trunk
13:34
Be strict about type enforcement on rowid look-ups in the RTREE extension. Ticket [30e2c183b6b356e4] check-in: d43e0efb user: drh tags: trunk
00:44
Enhance the RTREE extension so that it give correct query results even if the query uses non-numeric constraints. Ticket [a55ab6d97d01ecbc] check-in: f898d04c user: drh tags: trunk
2019-12-04
19:45
Window functions are never constant. check-in: 35f0b5a8 user: drh tags: trunk
15:08
Ensure that an ALWAYS() in the rename logic really is always true, even for faulty inputs. check-in: 54410f0e user: drh tags: trunk
14:26
Fix an assert() failure that could occur in ALTER TABLE code when the schema contains a view that uses a CTE. check-in: 75b04a4b user: dan tags: trunk
03:46
Fix a buffer overread that could occur in fts3 with corrupt %_stat records. check-in: e01fdbf9 user: dan tags: trunk
03:31
Fix an incorrect NEVER() macro. check-in: 96b6a76d user: drh tags: trunk
01:42
Fix a double-free that could occur when a component of a compound SELECT with an ORDER BY clause uses named window definitions. check-in: 92893b79 user: dan tags: trunk
2019-12-03
03:34
Avoid a crash that could occur when a database containing a table with a temp trigger that has the same name as a temp table is detached. check-in: c4cb9708 user: dan tags: trunk
03:31
Avoid a harmless zero offset of a null pointer in FTS3, so as to not provoke unnecessary warnings from run-time checkers. check-in: 85d95abe user: drh tags: trunk
02:51
Avoid computing a zero offset of a null pointer, which though this is technically harmless, is upsetting to pedantic run-time checkers. check-in: 3ce804e9 user: drh tags: trunk
2019-11-30
19:29
Do not allow a term in the WHERE clause of the query to qualify a partial index on the right table of a LEFT JOIN. Ticket [7f39060a24b47353] check-in: 4066a34d user: drh tags: trunk
2019-11-29
13:01
Add comments in the parse.sql file to help demonstrate how rules are encoded. check-in: 2c4f7148 user: drh tags: trunk
12:51
Fix the parse.sql output file so that it is readable into a database where foreign keys are enforced. check-in: 3a82c554 user: drh tags: trunk