SQLite

Timeline
Login

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

50 descendants and 50 ancestors of 5cc2a5a315a2f26b

2018-04-20
15:34
Add test cases for UPSERT. And a fix for a "REPLACE INTO ... ON CONFLICT" statement where the new row conflicts with both the IPK and the ON CONFLICT indexes. (check-in: d8eb9f8d9b user: dan tags: trunk)
13:18
Enhance UPSERT so that the UPDATE uses the same set of cursors as the INSERT. (check-in: c37f39d18d user: drh tags: trunk)
00:40
Minor simplification of the cursor allocation logic for update. (check-in: fdf71be658 user: drh tags: trunk)
2018-04-19
23:52
Fix the handling of "PRAGMA count_changes=ON" with UPSERT. Also improved the implementation of count_changes in other places, without changing the behavior. (check-in: c6f71115eb user: drh tags: trunk)
21:29
Minor simplification to the upsert logic. (check-in: e657c1d60f user: drh tags: trunk)
20:18
Avoid unnecessary OP_Goto instructions on an upsert of a table that only has a single secondary index. (Leaf check-in: 97dd21ab90 user: drh tags: upsert-opt)
20:06
Modify a test case in zipfile2.test to take into account that with some platform/file-system combinations it is possible to fopen() and fread() (but not fwrite()) a directory. (check-in: 893e6089c8 user: dan tags: trunk)
16:52
Add the --upsert option to the wordcount test program. (check-in: ee1e750baa user: drh tags: trunk)
16:14
Add the ext/misc/templatevtab.c template for virtual tables. This is a work-in-progress as it still needs improvements to the comments in order to be useful as a template. (check-in: 22358fb549 user: drh tags: trunk)
13:52
Fix a problem in the new upsert implemention, discovered by OSSFuzz. (check-in: b6d5ea59fe user: drh tags: trunk)
11:45
Fix the table name aliasing on INSERT so that it occurs before the column list rather than afterwards, just as it does for PostgreSQL. Add table name aliasing to UPDATE and DELETE. (check-in: 861a2e2a48 user: drh tags: trunk)
2018-04-18
19:56
Add the "sorter-reference" optimization, allowing SQLite to be configured so that some required values may be loaded from the database after external sorting occurs for SELECT statements with ORDER BY clauses that are not satisfied by database indexes. (check-in: ef74090a40 user: dan tags: trunk)
19:45
Minor changes to test script upsert4.test. (check-in: 0cb83c84d1 user: dan tags: trunk)
18:19
Fix a test case inside distinct.test. (check-in: 61cb8a391a user: drh tags: trunk)
18:18
Improved matching of COLLATE clauses within the ON CONFLICT conflict-target. (check-in: 8f4376e52b user: drh tags: trunk)
17:56
Add extra test cases for UPSERT. (check-in: 7ea08d0750 user: dan tags: trunk)
17:52
Fix a problem in the sqlite3ExprCompare() function that caused two dissimilar expressions to match if they have the same "COLLATE name" at the outer layer. (check-in: fb16348a5b user: drh tags: trunk)
16:03
Add support for PostgreSQL UPSERT syntax and functionality. (check-in: fba24aec23 user: drh tags: trunk)
15:33
Fix the build for SQLITE_OMIT_UPSERT (Closed-Leaf check-in: 3295651917 user: drh tags: upsert)
01:34
Add new testcase() macros and fix a bug that was revealed when trying to cover all the new test cases. (check-in: 266a99f7c0 user: drh tags: upsert)
2018-04-17
21:59
Remove unreachable branches. 100% MC/DC in TH3 now. (check-in: 558865d5c3 user: drh tags: upsert)
20:09
Added a comment on the assert() added to the previous check-in. (check-in: 542547c1ce user: drh tags: upsert)
20:06
Fixes to the logic for constraint check reordering during upsert. Improved comments on constraint check bytecode. Add an assert that prevents the same label from being resolved more than once. (check-in: 1ddbb0ff55 user: drh tags: upsert)
19:29
During PRAGMA vdbe_addoptrace=ON, show calls to sqlite3VdbeResolveLabel() in the debugging output. (check-in: 9ff07a06ce user: drh tags: upsert)
18:50
TK_REGISTER expressions nodes are probably not constant. Make sure sqlite3ExprIsConstant() knows this. (check-in: f3d91cad92 user: drh tags: upsert)
18:18
Simplification to the upsert logic. (check-in: f36d07a5b2 user: drh tags: upsert)
18:16
Add some more simple test cases for UPSERT. And a minor fix. (check-in: 27cd3b2fb2 user: dan tags: upsert)
16:16
New test cases for upsert. (check-in: 907b5a37c5 user: drh tags: upsert)
2018-04-16
14:36
Merge the Lemon enhancement from trunk, resulting in smaller parser tables. (check-in: 641f41722c user: drh tags: upsert)
13:26
Remove the MySQL upsert syntax. As an optional alias to the insert table name in order to finish out PostgreSQL upsert syntax emulation. (check-in: 810d9f63be user: drh tags: upsert)
13:00
Add support for the "excluded.*" names in the UPDATE clause of an upsert. (check-in: 0203f34faa user: drh tags: upsert)
10:47
Merge changes from trunk. (check-in: 54d96772e7 user: drh tags: upsert)
2018-04-14
22:35
Get upsert working on WITHOUT ROWID tables. (check-in: d3c53fd317 user: drh tags: upsert)
20:24
Make sure constraint checks occur in the correct order, even in the presence of upserts. (check-in: 07fb30c3de user: drh tags: upsert)
2018-04-13
21:55
First cut at logic to perform DO UPDATE for rowid tables. (check-in: a9080bc8b8 user: drh tags: upsert)
18:59
Add infrastructure for doing an UPDATE as part of an UPSERT. Still no actual UPDATE code, however. (check-in: 6d3017f92b user: drh tags: upsert)
16:29
Merge the preupdate hook change from trunk. (check-in: 7353caabb3 user: drh tags: upsert)
15:14
Get the ON CONFLICT DO NOTHING form of upsert working by mapping it into INSERT OR IGNORE. (check-in: d07f05e98b user: drh tags: upsert)
14:27
Get the conflict-target clause parsing working correctly, with test cases. This change involves an enhancement to sqlite3ExprCompare() which needs to be reviewed on trunk prior to merging. (check-in: 5bf7042562 user: drh tags: upsert)
13:44
Improved conflict-target matching logic. (check-in: 98d32ba661 user: drh tags: upsert)
13:06
Back off of the extended upsert syntax that allows multiple ON CONFLICT clauses. The syntax now is exactly as in PostgreSQL and MySQL. Add support for WHERE clauses on the conflict-target phrase, for partial indexes. (check-in: 2c1b1987d8 user: drh tags: upsert)
01:15
Begin adding upsert logic. This is an incremental check-in. (check-in: 8096964340 user: drh tags: upsert)
2018-04-12
21:42
Break out the upsert code into a separate source file. (check-in: 389806b05f user: drh tags: upsert)
20:21
Fix another typo in a comment. (check-in: 046bb6d258 user: drh tags: upsert)
19:51
Simple comment clarification. No code or logic changes. (check-in: a26f9c9f89 user: drh tags: upsert)
17:28
Extend the upsert syntax to allow a WHERE clause on the UPDATE. (check-in: e4396c540a user: drh tags: upsert)
15:43
Update the upsert parsing so that it accepts conflict-target labels using the PostgreSQL syntax, and also accepts the MySQL "ON DUPLICATE KEY" syntax. (check-in: c48f64d8ae user: drh tags: upsert)
13:15
Add the Upsert object for holding upsert clause information. (check-in: d83eaed539 user: drh tags: upsert)
12:25
Merge changes from trunk. (check-in: 9f6f11805e user: drh tags: upsert)
2018-04-10
00:30
Update the top-level README.md file to point to the whynotget.html document. (check-in: 7dfd4543da user: drh tags: upsert)
2018-04-07
15:04
More complete parsing of UPSERT, including UPSERT within a trigger. The sqlite3Insert() logic to actually perform the UPSERT is not yet implemented, however. (check-in: 5cc2a5a315 user: drh tags: upsert)
2018-04-06
19:36
Demonstration of how the parser can be augmented to recognize a PostgreSQL-style UPSERT. This check-in implements parsing only. (check-in: 9b22905b15 user: drh tags: upsert)
19:12
Enhance LEMON to show precendence of symbols and all rules in the report that is generated in parallel to the parser. (check-in: 602fbd8149 user: drh tags: trunk)
16:22
Fix a problem in the sessions module causing sqlite3session_apply_strm() to allocate enough memory for the entire input buffer - which defeats the point of a streaming interface. (check-in: 7594e60935 user: dan tags: trunk)
2018-04-05
16:26
Fix an instance where an uninitialized VM register might be accessed. Fix for [093420fc0]. This problem was found by OSSFuzz. (check-in: a3b02db746 user: dan tags: trunk)
12:02
Fix the sqlite3WhereTrace mechanism so that it compiles with the --disable-amalgamation and the --enable-debug options to ./configure using clang. (check-in: 813224363d user: drh tags: trunk)
2018-04-04
12:21
Fix segfault in 'eval.c' extension when used with 'empty_result_callbacks'. (check-in: e8b87bd495 user: mistachkin tags: trunk)
2018-04-03
20:44
Fix an error message in speedtest1.c and make the "trigger" testset sensitive to the --size parameter. (check-in: 5a6fd9e015 user: drh tags: trunk)
20:00
Update speedtest1.c with new testset "trigger" based on the tests in speed4p.test. (check-in: 7b7fa5fa0d user: dan tags: trunk)
17:05
Fix a few small test script issues affecting SQLITE_TEMP_STORE=3 builds. (check-in: e171f3722f user: dan tags: trunk)
14:25
Fix the generate_series virtual table so that it correctly returns no rows if any of its constraints are NULL. Ticket [fac496b61722daf28]. (check-in: 3328e828e2 user: drh tags: trunk)
14:04
Change the LEFT JOIN strength reduction optimization so that assumes that virtual table constraints can be true even if terms within the constraint are NULL. This works around dodgy virtual table implementations. Fix for ticket [fac496b61722daf2]. (check-in: cbb977fe19 user: drh tags: trunk)
2018-04-02
11:04
Version 3.23.0 (check-in: 736b53f57f user: drh tags: trunk, release, version-3.23.0)
00:16
Better solution to the LIKE problem from the previous check-in that works even if the SQLITE_LIKE_DOESNT_MATCH_BLOBS compile-time option is used. (check-in: b850dd1599 user: drh tags: trunk)
2018-03-31
23:28
Fix a logic error discovered by OSSFuzz that can cause an assert() fault if a LIKE operator is used on an INTEGER PRIMARY KEY. (check-in: fc06ddd458 user: drh tags: trunk)
16:31
Fix an assertion failure triggered by a SELECT with a compound sub-query that contains an incorrectly placed ORDER BY clause. This problem is just an assert() failure - non-DEBUG builds are not affected. Problem found by OSSFuzz. (check-in: 823779d31e user: dan tags: trunk)
2018-03-30
16:34
Fix a bug in the spellfix extension causing it to compute suboptimal answers. The problem was introduced by check-in [afd6fbc01052ccfc9]. (check-in: 3bf28fd9a7 user: drh tags: trunk)
15:59
Fix an off-by-one error in the dist3 algorithm of the spellfix extension. (check-in: 5c34af7b97 user: drh tags: trunk)
2018-03-29
16:54
Another change to test file zipfile.test to help it run on systems without "unzip". (check-in: b6252feb12 user: dan tags: trunk)
16:39
Fix a test script bug causing zipfile.test to fail on systems that do not have the "unzip" program installed. (check-in: d99022a5a8 user: dan tags: trunk)
13:47
Modify the sqlite3OsFileControl() interface to detect unopened sqlite3_file objects and return SQLITE_NOTFOUND. (check-in: 1fc72b707d user: drh tags: trunk)
11:02
Update memdb1.test so that it works with SQLITE_DEFAULT_AUTOVACUUM builds. (check-in: d67f1c7d18 user: dan tags: trunk)
2018-03-28
22:08
Fix a harmless compiler warning in the kvtest.exe program. (check-in: d48972cf87 user: drh tags: trunk)
21:45
Fix a harmless compiler warning. (check-in: f0d12354bb user: drh tags: trunk)
20:29
Add -DSQLITE_ENABLE_DESERIALIZE to the "Device-Two" configuration in releasetest.tcl. (check-in: 765a014d8e user: dan tags: trunk)
15:56
Remove tab characters. No logical changes to code. (check-in: eb29b3369e user: drh tags: trunk)
15:06
Minor comment changes. (check-in: d282f06469 user: drh tags: trunk)
2018-03-27
22:58
Fix a typo in the README file for ICU. No code changes. (check-in: 79c4383b66 user: drh tags: trunk)
15:13
The push-down optimization was being too aggressive such that it sometimes generated incorrect results. Reinstate the restriction (4) (with qualifications) that was removed by check-ins [b5d3dd8cb0b1e4] and [dd568c27b1d765]. (check-in: f08c1731b0 user: drh tags: trunk)
13:57
Provide the ability for the VFS to do a blocking wait on locks if compiled with SQLITE_ENABLE_SETLK_TIMEOUT. (check-in: e7dff982be user: drh tags: trunk)
2018-03-26
21:05
Do not inject OOM errors on SQLITE_FCNTL_LOCK_TIMEOUT calls as an OOM is not possible in that context. (Closed-Leaf check-in: 5474e560ee user: drh tags: lowlevel-lock-timeout)
20:43
Avoid a race condition that might cause a busy_timeout to last longer than it should. (check-in: b81960561b user: drh tags: lowlevel-lock-timeout)
17:56
Fix a typo preventing test script avtrans.test from running in auto-vacuum mode. (check-in: c7473bdb10 user: dan tags: trunk)
17:40
Add infrastructure to support for using F_SETLKW with a timeout on system that support that functionality. Requires SQLITE_ENABLE_SETLK_TIMEOUT. (check-in: 2e54a7433e user: drh tags: lowlevel-lock-timeout)
16:37
Refactor some internal object element names used by the busy handler, to simplify analysis. (check-in: 6c40c5574f user: drh tags: trunk)
2018-03-24
23:16
Fix a couple issues in the 'session' module tests. (check-in: ccf734f7d2 user: mistachkin tags: trunk)
20:06
Fix harmless compiler warning seen with MSVC. (check-in: e9508ab1f8 user: mistachkin tags: trunk)
18:01
Add testcase() macros and improve comments in the LEFT JOIN strength reduction optimization. (check-in: 5613457714 user: drh tags: trunk)
15:47
Yet another fault in the sqlite3ExprImpliesNotNull() routine, causing errors in the LEFT JOIN strength reduction optimization of check-in [dd568c27b1d76563]. (check-in: e88cf3d4df user: drh tags: trunk)
15:08
Fix a test script problem causing shell1.test to fail with -DSQLITE_OMIT_VIRTUAL_TABLE builds. (check-in: 2e06906e09 user: dan tags: trunk)
13:24
Bug fix in the LEFT JOIN strength reduction optimization of check-in [dd568c27b1d76563]. The sqlite3ExprImpliesNotNull() routine was mistakenly assuming that a CASE expression must always be NULL if contained any reference to a variable that was NULL. (check-in: cf171abe95 user: drh tags: trunk)
00:19
Prepend linkage macros to the sqlite3rebaser interfaces. (check-in: c64e8f377f user: drh tags: trunk)
2018-03-23
17:36
Fix typos in sqlite3session.h preventing documentation webpages from being generated. Also mark all new sessions functions (those related to rebasing) as experimental. (check-in: de974235a8 user: dan tags: trunk)
16:31
Fix minor problems with passing NULL pointers to memcmp() and memcpy() found by -fsanitize=undefined. (check-in: 0b06ce6d8e user: dan tags: trunk)
16:08
Fix the -readonly option on the CLI so that it actually works. (check-in: 0477fb3fd6 user: drh tags: trunk)
14:56
Add some more tests for the IS TRUE / IS FALSE operators. (check-in: 9fe5bebefe user: mistachkin tags: trunk)
14:50
Fix typo in a comment used for documentation. No changes to code. (check-in: 49974d3b30 user: drh tags: trunk)
14:24
Enhance .schema in shell to enable matching patterns with literal underscores. (check-in: 98e3f5247a user: mistachkin tags: trunk)
13:18
Fix an error in the CLI in the previous ([0249d9aecf69948]) check-in. Only the pattern to sqlite3_strlike() need to be escaped. (check-in: 71d5f6e632 user: drh tags: trunk)
12:59
Fix the ANALYZE command so that it will process tables whose names begin with "sqlite" as long as they do not being with "sqlite_". (check-in: 0249d9aecf user: drh tags: trunk)
00:31
Fix harmless compiler warnings seen with MSVC. (check-in: 2f2be1b181 user: mistachkin tags: trunk)