]> git.ipfire.org Git - thirdparty/sqlite.git/log
thirdparty/sqlite.git
5 years agoFix obsolete comment. No changes to code. reuse-shm
drh [Wed, 27 Nov 2019 12:03:24 +0000 (12:03 +0000)] 
Fix obsolete comment.  No changes to code.

FossilOrigin-Name: 0ff59edbbba6211c98f1025018c0f7405cc6367bec3ebe2e9874f22f0f7c48ba

5 years agoExperimental file-controls for controlling the use of the -shm file.
drh [Mon, 25 Nov 2019 23:55:14 +0000 (23:55 +0000)] 
Experimental file-controls for controlling the use of the -shm file.

FossilOrigin-Name: 12b8fa233697f9f4026eb14fb7454c180f61aa639b1834ccdc8dcfde4420d3a4

5 years agoAbort the window function tree rewrite early following an OOM.
drh [Sat, 23 Nov 2019 16:34:40 +0000 (16:34 +0000)] 
Abort the window function tree rewrite early following an OOM.

FossilOrigin-Name: d66f95a51530259ab48f78c9f91acc38055caf338b6fee846b99a8c077466e95

5 years agoAvoid evaluating PARTITION BY or ORDER BY expressions multiple times for window funct...
dan [Sat, 23 Nov 2019 15:10:28 +0000 (15:10 +0000)] 
Avoid evaluating PARTITION BY or ORDER BY expressions multiple times for window function queries that use multiple window functions with the same window-definition.

FossilOrigin-Name: 57070c68bbe15fc1d19a765182432e844c082909bdbc63b58fd86b96e2c521dd

5 years agoEnhance the path arguments in JSON functions to access "#-N" array indexes.
drh [Sat, 23 Nov 2019 08:51:21 +0000 (08:51 +0000)] 
Enhance the path arguments in JSON functions to access "#-N" array indexes.

FossilOrigin-Name: ffeec62cb5223ae70bc1889df4c0b241f5d17b1a10156362ca59953028741480

5 years agoFix a memory leak in fts5 error handling code.
dan [Sat, 23 Nov 2019 08:36:35 +0000 (08:36 +0000)] 
Fix a memory leak in fts5 error handling code.

FossilOrigin-Name: de6637e15d95b7aee2caea8b8d5b9865f276cbbf152ecf0401c4c7bfdf6dee6f

5 years agoExtend the json-path mechanism with array indexes of the form "#" or "#-n" for json-path-enhancement
drh [Fri, 22 Nov 2019 17:37:56 +0000 (17:37 +0000)] 
Extend the json-path mechanism with array indexes of the form "#" or "#-n" for
some positive number "n", to reference the end of an array.

FossilOrigin-Name: 35ed68a651f4cf8740597433b0f1c3b345841868022e0904e9f342840ba0e502

5 years agoFix a harmless compiler warning.
drh [Fri, 22 Nov 2019 11:49:39 +0000 (11:49 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: 34343c4b0657767f2676a2a9feb670cf000824e3eadfb1a6d87b57404191d8f9

5 years agoFix an indentation error and improve the placement of an assert() based
drh [Fri, 22 Nov 2019 11:47:04 +0000 (11:47 +0000)] 
Fix an indentation error and improve the placement of an assert() based
on a tweet from Yuri Kotov.

FossilOrigin-Name: e6314e386c6877c669bd32788d3886253b0a187bee2c3889f4eaba219f5e52c7

5 years agoAdd more test cases from Yongheng Chen and Rui Zhong.
drh [Fri, 22 Nov 2019 11:38:40 +0000 (11:38 +0000)] 
Add more test cases from Yongheng Chen and Rui Zhong.

FossilOrigin-Name: f24e6ca4f23008212ec05cace9202dbeb37ee34530ead91fac2f5e3eac7f6347

5 years agoFix a crash that could occur if a sub-select that uses both DISTINCT and window funct...
dan [Fri, 22 Nov 2019 10:14:01 +0000 (10:14 +0000)] 
Fix a crash that could occur if a sub-select that uses both DISTINCT and window functions also used an ORDER BY that is the same as its select list.

FossilOrigin-Name: bcdd66c1691955c697f3d756c2b035acfe98f6aad72e90b0021bab6e9023b3ba

5 years agoRevise the SQLITE_OPEN_NOFOLLOW so that it actually uses O_NOFOLLOW in the
drh [Fri, 22 Nov 2019 00:42:01 +0000 (00:42 +0000)] 
Revise the SQLITE_OPEN_NOFOLLOW so that it actually uses O_NOFOLLOW in the
open() system call.  This backs out the SQLITE_ACCESS_SYMLINK value but adds
the new SQLITE_OK_SYMLINK return code from the xFullPathname method of
sqlite3_vfs when that routine resolves symbolic links. O_NOFOLLOW is always
included in open() system calls for journal files.

FossilOrigin-Name: 6a64fb6a2da6c98f1e87b55ad5689967e1db4eae2e08345471d95e28cd567e0f

5 years agoAdd all fuzz-test cases received from Yongheng Chen and Rui Zhong. Also
drh [Thu, 21 Nov 2019 20:24:04 +0000 (20:24 +0000)] 
Add all fuzz-test cases received from Yongheng Chen and Rui Zhong.  Also
fix a minor problem in gencol1.test cases.

FossilOrigin-Name: ac080432b480062507452d3cdbe6c0f759e6f95b65d9862e0462017405ab2b8e

5 years agoFix an out-of-bounds array reference in the generated column logic.
drh [Thu, 21 Nov 2019 20:10:31 +0000 (20:10 +0000)] 
Fix an out-of-bounds array reference in the generated column logic.
Problem discovered by valgrind.

FossilOrigin-Name: a0ab42f779b9a96f4e43879210dfaba8fa593de77fc0ec0e2e6f116d9301ea59

5 years agoWhenever a generated column is used, assume that all columns are used.
drh [Thu, 21 Nov 2019 19:37:00 +0000 (19:37 +0000)] 
Whenever a generated column is used, assume that all columns are used.

FossilOrigin-Name: 6601da58032d18ae00b466c0f2077fb2b1ecd84225b56e1787724bea478eedc9

5 years agoFix a problem that comes up when using generated columns that evaluate to a
drh [Thu, 21 Nov 2019 18:28:44 +0000 (18:28 +0000)] 
Fix a problem that comes up when using generated columns that evaluate to a
constant in an index and then making use of that index in a join.

FossilOrigin-Name: 8b12e95fec7ce6e0de82a04ca3dfcf1a8e62e233b7382aa28a8a9be6e862b1af

5 years agoFix a recently introduced memory leak in the test code in test_vfs.c.
dan [Thu, 21 Nov 2019 17:14:55 +0000 (17:14 +0000)] 
Fix a recently introduced memory leak in the test code in test_vfs.c.

FossilOrigin-Name: 2d53a30cc23e53033af8e8666457654db5dcc453ed6cd176ce1d0bff4f528159

5 years agoPrevent direct and indirect recursive content= options in fts3/4 and fts5.
dan [Thu, 21 Nov 2019 14:20:59 +0000 (14:20 +0000)] 
Prevent direct and indirect recursive content= options in fts3/4 and fts5.

FossilOrigin-Name: 2eb997327c2c369c10b7835be80112d77cb2a7cfa9fe4d564042984c21d94698

5 years agoFix a use-after-free problem in the test suite. No changes to production code.
dan [Wed, 20 Nov 2019 16:10:40 +0000 (16:10 +0000)] 
Fix a use-after-free problem in the test suite. No changes to production code.

FossilOrigin-Name: 0d1055a5da8274a59f35170b1f9469597ce4c5a4c5e851a1b81d3be2ccd32871

5 years agoFurther improve detection of corrupt records in fts3.
dan [Wed, 20 Nov 2019 13:31:52 +0000 (13:31 +0000)] 
Further improve detection of corrupt records in fts3.

FossilOrigin-Name: a0f6d526baecd061a5e2bec5eb698fb5dfb10122ac79c853d7b3f4a48bc9f49b

5 years agoChanges to extensions and test logic so that the build works with gcc
drh [Wed, 20 Nov 2019 12:07:40 +0000 (12:07 +0000)] 
Changes to extensions and test logic so that the build works with gcc
and with -std=iso9899:1999

FossilOrigin-Name: 2575a68c3965e72f2ab211d933012442755afe6a9b7de9e9e50cdd2155fd1ec8

5 years agoEnhancements to DBSTAT: (1) Make name=? queries efficient. (2) Add the
drh [Tue, 19 Nov 2019 21:22:16 +0000 (21:22 +0000)] 
Enhancements to DBSTAT:  (1) Make name=? queries efficient.  (2) Add the
ability to aggregate results across each individual btree using the
aggregate=TRUE constraint in the WHERE clause.

FossilOrigin-Name: a48f6e17599d7ec794cfcd60858d6a69cf05caaae9321048b111fedd86a3b5b2

5 years agoGet the aggregate=TRUE feature working on the DBSTAT virtual table. dbstat-enhancements
drh [Tue, 19 Nov 2019 18:48:11 +0000 (18:48 +0000)] 
Get the aggregate=TRUE feature working on the DBSTAT virtual  table.

FossilOrigin-Name: 16fef3db063830884de46d53a289f637a7204fe84fcdee7ea81dbb8bca578952

5 years agoBegin an enhancement effort for the built-in DBSTAT virtual table.
drh [Tue, 19 Nov 2019 14:01:51 +0000 (14:01 +0000)] 
Begin an enhancement effort for the built-in DBSTAT virtual table.

FossilOrigin-Name: 9b5722f0fe666b99677e5f333dd8413aefb9ace7a461d74f6558f0ac53768719

5 years agoMake the result of sqlite3_normalized_sql() survive its statement being reprepared.
mistachkin [Tue, 19 Nov 2019 00:13:42 +0000 (00:13 +0000)] 
Make the result of sqlite3_normalized_sql() survive its statement being reprepared.

FossilOrigin-Name: 4330f0795dbc2ab41dddd41d5979331fb9b78c477c66367c4be52f929531a45f

5 years agoAdd support for the SQLITE_ACCESS_SYMLINK flag in the Win32 VFS.
mistachkin [Mon, 18 Nov 2019 23:48:03 +0000 (23:48 +0000)] 
Add support for the SQLITE_ACCESS_SYMLINK flag in the Win32 VFS.

FossilOrigin-Name: 175c15008e9f19b8f6762c2fe4a545735128765081980eed01d5e46ca4acb500

5 years agoEnsure all file names passed to the VFS layer are double-zero terminated.
mistachkin [Mon, 18 Nov 2019 22:34:07 +0000 (22:34 +0000)] 
Ensure all file names passed to the VFS layer are double-zero terminated.

FossilOrigin-Name: 251230cf43c591cf49cf9d2f392581c57d334b791bc3407814d216b5999c32f4

5 years agoIn the SQLITE_OPEN_NOFOLLOW processing, distinguish between an I/O error
drh [Mon, 18 Nov 2019 18:43:19 +0000 (18:43 +0000)] 
In the SQLITE_OPEN_NOFOLLOW processing, distinguish between an I/O error
on the xAccess() call and an actual symlink encounter.

FossilOrigin-Name: 2e98b42fcb7bc38e22808a9dc1d7a4231ed08ffa97c9f08f33e6e8cd8726856c

5 years agoAdd support for SQLITE_OPEN_NOFOLLOW.
drh [Mon, 18 Nov 2019 17:46:38 +0000 (17:46 +0000)] 
Add support for SQLITE_OPEN_NOFOLLOW.

FossilOrigin-Name: cb79c828496a703f1410f61458ebc1e15a92a63412b36f51945b2b5a32ec6e88

5 years agoImprovements to detection of corruption in the %_stat shadow table of FTS4.
drh [Mon, 18 Nov 2019 14:04:21 +0000 (14:04 +0000)] 
Improvements to detection of corruption in the %_stat shadow table of FTS4.

FossilOrigin-Name: 6b67eba54e7b4887a8cdab7537b12a95e9f17bcdaa0b423af5ed5bd91f69f2c6

5 years agoFurther improvements to shadow table corruption detection in FTS3.
drh [Mon, 18 Nov 2019 12:04:17 +0000 (12:04 +0000)] 
Further improvements to shadow table corruption detection in FTS3.

FossilOrigin-Name: e35d8c76aae59f57cc5193f79b21b4298029bea78e1aab7af67432162ce63e00

5 years agoDetect and prevent infinite recursion in fts3SelectLeaf() due to a
drh [Mon, 18 Nov 2019 11:14:59 +0000 (11:14 +0000)] 
Detect and prevent infinite recursion in fts3SelectLeaf() due to a
malformed FTS3 btree.

FossilOrigin-Name: dfcf081d842629a0b177be7eb2eb8ce719324068991040a581e33ea1d5db3d27

5 years agoImproved detection of corruption in the %_stat table of FTS4.
drh [Mon, 18 Nov 2019 10:37:57 +0000 (10:37 +0000)] 
Improved detection of corruption in the %_stat table of FTS4.
Chromium ticket 1025467.

FossilOrigin-Name: 10f8a3b718e0f47be528fba086c318e1dfe18ead383d01cfa24dedabad41e0a2

5 years agoFix an assert that can fail if the schema is corrupt.
drh [Sun, 17 Nov 2019 11:47:50 +0000 (11:47 +0000)] 
Fix an assert that can fail if the schema is corrupt.

FossilOrigin-Name: ed57c48e4bb337810521bda2da79614313e4835a317ca4eadb52bd67e4eadf98

5 years agoBetter detection of corruption in the %_stat and %_docsize shadow tables
drh [Sun, 17 Nov 2019 02:41:06 +0000 (02:41 +0000)] 
Better detection of corruption in the %_stat and %_docsize shadow tables
of FTS3.

FossilOrigin-Name: 1e449687881f4d388e54a0e51bcabba41ab10cf7e596ff65e31e88a23c70d497

5 years agoRemove a reachable NEVER() in FTS3.
drh [Sun, 17 Nov 2019 00:08:24 +0000 (00:08 +0000)] 
Remove a reachable NEVER() in FTS3.

FossilOrigin-Name: 8bd75bf636f72f32d66c6c38e1918f27daf2f13290f00a001f41d50838bbda47

5 years agoMore improvements to shadow table corruption detection in FTS3.
drh [Sat, 16 Nov 2019 23:47:40 +0000 (23:47 +0000)] 
More improvements to shadow table corruption detection in FTS3.

FossilOrigin-Name: 51525f9c3235967bc00a090e84c70a6400698c897aa4742e817121c725b8c99d

5 years agoImproved detection of corrupt shadow tables in FTS3. Enable the debugging
drh [Sat, 16 Nov 2019 21:40:49 +0000 (21:40 +0000)] 
Improved detection of corrupt shadow tables in FTS3.  Enable the debugging
special-inserts for FTS3 for both SQLITE_DEBUG and SQLITE_TEST.

FossilOrigin-Name: 04b2873be5aedeb1c4325cf36c4b5d180f929a641caf1e3829c03778adb29c8e

5 years agoMore restrictions on changes to shadow tables when in defensive mode.
drh [Sat, 16 Nov 2019 16:54:53 +0000 (16:54 +0000)] 
More restrictions on changes to shadow tables when in defensive mode.

FossilOrigin-Name: bae76a5c40703871e5ce4cd23d6fae5a3836606f524a63b01ac828c7a602c5e9

5 years agoDo not allow CREATE TABLE or CREATE VIEW of an object with a name that looks defensive-improvements
drh [Sat, 16 Nov 2019 14:15:19 +0000 (14:15 +0000)] 
Do not allow CREATE TABLE or CREATE VIEW of an object with a name that looks
like a shadow table name.

FossilOrigin-Name: 6aef58b629d89955f85f65191ba2be67b2adfac4f0327fe9a7141cb2705dbc00

5 years agoBreak out the test for writable shadow tables into a separate subroutine.
drh [Sat, 16 Nov 2019 13:51:31 +0000 (13:51 +0000)] 
Break out the test for writable shadow tables into a separate subroutine.

FossilOrigin-Name: 8ad34d36a141fa8f5d9bd784dfeb892c983897a6dc6b867607cc668508acf944

5 years agoDo not allow shadow tables to be dropped in defensive mode.
drh [Sat, 16 Nov 2019 12:04:38 +0000 (12:04 +0000)] 
Do not allow shadow tables to be dropped in defensive mode.

FossilOrigin-Name: 70390bbca49e706649ca5b7c031f0baf416fc38798c17e5f3b73746b3e66e3b5

5 years agoFix a potential NULL pointer dereference on a RENAME TABLE that references
drh [Sat, 16 Nov 2019 11:33:39 +0000 (11:33 +0000)] 
Fix a potential NULL pointer dereference on a RENAME TABLE that references
a VIEW with a logic error in a window function in the ORDER BY clause.

FossilOrigin-Name: 0adb273f7e7671efb0e0a1619887e369500dfd2db7ef1b1e125c2414ea96e96f

5 years agoModify three test cases so that they work even with unusual versions of the
drh [Fri, 15 Nov 2019 21:16:34 +0000 (21:16 +0000)] 
Modify three test cases so that they work even with unusual versions of the
library printf().

FossilOrigin-Name: 8f4a3750b7d272daf96831655ffee80d457875ee121fc4537008046b9a00d0e7

5 years agoFix table-valued functions so that they will work as the right table
drh [Fri, 15 Nov 2019 00:52:13 +0000 (00:52 +0000)] 
Fix table-valued functions so that they will work as the right table
in a LEFT JOIN.  Ticket [2ae0c599b735d59e]

FossilOrigin-Name: 2c35d3f67b67a53ead08b1c395e7ca8e5bf65f94a5a962a0562994a3c66c95d9

5 years agoAdd support for the sqlite3_hard_heap_limit64() interface and the
drh [Thu, 14 Nov 2019 18:07:28 +0000 (18:07 +0000)] 
Add support for the sqlite3_hard_heap_limit64() interface and the
hard_heap_limit pragma.

FossilOrigin-Name: 6399c47ea89c5766274bd6abdc9b6a85fe5b7f6c1078972c2f58e624bae59b7c

5 years agoFix a bug in the hard_heap_limit pragma so that it returns the new value of hard-heap-limit
drh [Thu, 14 Nov 2019 17:46:32 +0000 (17:46 +0000)] 
Fix a bug in the hard_heap_limit pragma so that it returns the new value of
the hard_heap_limit, not the soft_heap_limit.  Change SQLITE_MAX_MEMORY so
that it works by setting the default hard_heap_limit value.

FossilOrigin-Name: 33fd0c3abcad5555a150990a22d9c1bab99e79be01143fccb9fafc9b52cf92c8

5 years agoMerge recent enhancements from trunk.
drh [Thu, 14 Nov 2019 15:21:15 +0000 (15:21 +0000)] 
Merge recent enhancements from trunk.

FossilOrigin-Name: b8a631fd30d0732505679230684b3362c965438197a2b11518f01a77599c9202

5 years agoMinor documentation enhancements. No changes to code.
drh [Thu, 14 Nov 2019 15:10:48 +0000 (15:10 +0000)] 
Minor documentation enhancements.  No changes to code.

FossilOrigin-Name: 6153f3aada0cc9c5e773753797892ee78b518b0d76568382f5fbc9ee960f814c

5 years agoNew test cases added to fuzzdata8.db.
drh [Thu, 14 Nov 2019 13:57:15 +0000 (13:57 +0000)] 
New test cases added to fuzzdata8.db.

FossilOrigin-Name: 5baffcda7d5a42a99fa905faa834f14b94b1e2a26b5221f15d8ae8f1f5e3236a

5 years agoEnsure that the same subquery does not go through the window-function rewrite
drh [Thu, 14 Nov 2019 13:24:04 +0000 (13:24 +0000)] 
Ensure that the same subquery does not go through the window-function rewrite
more than once, even when that subquery is part of a virtual table constraint
that lacks the omit flag.

FossilOrigin-Name: d0bc7db6b0a53edc04815622c46250d26f526f56e59f14875f4e18c75b49000d

5 years agoAdd header guard to the expert extension.
mistachkin [Wed, 13 Nov 2019 18:50:36 +0000 (18:50 +0000)] 
Add header guard to the expert extension.

FossilOrigin-Name: 7e3151855fd4370fb7d4fff20516c2c2d1980134620df924106e6989bc130583

5 years agoFix the sqlite3TreeView() output to consistently use a colon and not a
drh [Wed, 13 Nov 2019 16:50:06 +0000 (16:50 +0000)] 
Fix the sqlite3TreeView() output to consistently use a colon and not a
comma after the table number in the AST dumps.

FossilOrigin-Name: fa2416f623d83fe93253137302a74fcd6cdd041da337a0756df344d7d09a19f5

5 years agoFor for the previous check-in: Always enable the nUri variable, even
drh [Tue, 12 Nov 2019 16:21:27 +0000 (16:21 +0000)] 
For for the previous check-in:  Always enable the nUri variable, even
when debugging is turned off.

FossilOrigin-Name: f84a15394c369cbdb6fba87c603a609722cf1f499626c7f20699060273ab5081

5 years agoEnsure that the main filename and the journal filenames in the pager
drh [Tue, 12 Nov 2019 14:43:47 +0000 (14:43 +0000)] 
Ensure that the main filename and the journal filenames in the pager
object are all correctly double-zero terminated.

FossilOrigin-Name: df51ae19c1aa4c26f2dcd427eddc1c9cc24b698e1ab0a948b198a57432e25e1e

5 years agoRemove a harmless unused variable.
drh [Tue, 12 Nov 2019 03:45:23 +0000 (03:45 +0000)] 
Remove a harmless unused variable.

FossilOrigin-Name: 28091a48aa6994f8d7c142b5851bcd6b4e9a93a7bbef6c927a6182d24f3245b4

5 years agoRemove an asm() block from build tool mksourceid.c, as it causes build failures on...
dan [Mon, 11 Nov 2019 15:13:11 +0000 (15:13 +0000)] 
Remove an asm() block from build tool mksourceid.c, as it causes build failures on some systems and performance is not important at build-time.

FossilOrigin-Name: 8e100e6c35c30e0d7e4014b9435f81f9f61ddab2386dfe9a4218d8190a6da3be

5 years agoProper surrogate pair decoding added to JSON functions. See the mailing list
drh [Sun, 10 Nov 2019 11:09:06 +0000 (11:09 +0000)] 
Proper surrogate pair decoding added to JSON functions.  See the mailing list
bug report and [https://bugs.python.org/issue38749].  More test cases
needed here, but it seems to work so far.

FossilOrigin-Name: 51027f08c0478f1bf9d7545d9e268c772c0a5cd5dda4b03d78f16c7d94f2f50d

5 years agoRemove an incorrect ALWAYS() macro.
drh [Sun, 10 Nov 2019 10:08:03 +0000 (10:08 +0000)] 
Remove an incorrect ALWAYS() macro.

FossilOrigin-Name: f7a74f89dbd58b47bbcb58ea2af71fbe1eb5ec2dbe36d90685c39cb28ecf5250

5 years agoChange the COLFLAG_NOTAVAIL bitmask so that it fits in the single-byte
drh [Sat, 9 Nov 2019 15:31:34 +0000 (15:31 +0000)] 
Change the COLFLAG_NOTAVAIL bitmask so that it fits in the single-byte
Walker.eCode field.

FossilOrigin-Name: 53847f5c28bdecfbc7b08685d4dcd0565526f6191491b4827c3c966a4b8d4a85

5 years agoNew dbsqlfuzz test cases added.
drh [Sat, 9 Nov 2019 14:44:18 +0000 (14:44 +0000)] 
New dbsqlfuzz test cases added.

FossilOrigin-Name: 18c3a17dc8c07b12427e372ff86668d5bcb6b34d653c46c48561ed576acefa5b

5 years agoMake sure the WITH stack in the Parse object is disabled following an error.
drh [Sat, 9 Nov 2019 14:38:58 +0000 (14:38 +0000)] 
Make sure the WITH stack in the Parse object is disabled following an error.

FossilOrigin-Name: de6e6d6846d6a41c4821454dfdc042096234df753be08c5567b79fe535d9b6ea

5 years agoWhen a virtual table reports orderByConsumed, that tells us nothing about
drh [Fri, 8 Nov 2019 20:13:44 +0000 (20:13 +0000)] 
When a virtual table reports orderByConsumed, that tells us nothing about
whether or not the SQLITE_DISTINCTBY constraint is met.
Fix for ticket [7e59041f9c4e5102].
Test cases in TH3.

FossilOrigin-Name: b59f94e4da9b1653f2004b214407a50340dd476b27e6ec7e29e501a95db9c963

5 years agoFix the xferCompatibleIndex() function so that it recognizes that a PRIMARY KEY
drh [Thu, 7 Nov 2019 14:51:24 +0000 (14:51 +0000)] 
Fix the xferCompatibleIndex() function so that it recognizes that a PRIMARY KEY
index for a WITHOUT ROWID table is different from a UNIQUE constraint index
on the primary key.  Ticket [302027baf1374498]

FossilOrigin-Name: 34f64f11ca481996b1ff1686bdc5e278946635b6856cd1fe2355fce8e298e0f8

5 years agoRestore generated column loop detection logic that was incorrectly removed
drh [Thu, 7 Nov 2019 02:32:54 +0000 (02:32 +0000)] 
Restore generated column loop detection logic that was incorrectly removed
from the previous check-in [9e07b48934e9a972].  This fixes ticket
[299b50ba812d8e54]

FossilOrigin-Name: 104a2beb57037f9353ffa77096aae0eb64e4682e667f31623bfd3d064dd8d881

5 years agoChange the way generated columns are computed so that no column is computed
drh [Wed, 6 Nov 2019 22:19:07 +0000 (22:19 +0000)] 
Change the way generated columns are computed so that no column is computed
inside branch code that might not be taken.  Ticket [4fc08501f4e56692]

FossilOrigin-Name: 9e07b48934e9a972dcf62e3538b3b21ffa044c553feba0441675ac0bbe13bcb2

5 years agoMinor simplification to the changes from check-in [36c11ad51f].
mistachkin [Wed, 6 Nov 2019 19:25:45 +0000 (19:25 +0000)] 
Minor simplification to the changes from check-in [36c11ad51f].

FossilOrigin-Name: 7bc8205dd9c1657c736a9c6a1a90dd9dad442accfbb77d296eaae2c09ab46bd1

5 years agoFix the OP_DeferredSeek index-to-table column map in P4 so that it works
drh [Wed, 6 Nov 2019 17:31:18 +0000 (17:31 +0000)] 
Fix the OP_DeferredSeek index-to-table column map in P4 so that it works
with generated columns.  Ticket [ce22a07731530118]

FossilOrigin-Name: 36c11ad51fe9ab1bde0b98d0ea9b8588e07d168cd8027486749372894941ad93

5 years agoFix the handling of NOT NULL constraint violations for generated columns in
drh [Wed, 6 Nov 2019 14:49:43 +0000 (14:49 +0000)] 
Fix the handling of NOT NULL constraint violations for generated columns in
a REPLACE statement.  Ticket [2399f5986134f79c]

FossilOrigin-Name: 77b1c90add514050fe62f22751362fecacd99f9775346cffc60e09c326e64e10

5 years agoChanges an unreachable testcase() into an assert().
drh [Mon, 4 Nov 2019 12:49:15 +0000 (12:49 +0000)] 
Changes an unreachable testcase() into an assert().

FossilOrigin-Name: 5710845b6314f924b490434b4446169f4bb50576aaa940472af68150db16e127

5 years agoFix a false-postive in the sqlite3ExprImpliesNonNullRow() decision routine,
drh [Mon, 4 Nov 2019 02:05:52 +0000 (02:05 +0000)] 
Fix a false-postive in the sqlite3ExprImpliesNonNullRow() decision routine,
that resulted in an incorrect LEFT JOIN strength reduction when the
WHERE clause contained a row-value comparison.
Ticket [02aa2bd02f97d0f2]

FossilOrigin-Name: ea20068e6d97c9349ebcc7d0a01e99ebf08c6f44363f71a0218a1abea209adc5

5 years agoThe optimization of check-in [9b2879629c34fc0a] is incorrectly reasoned.
drh [Sun, 3 Nov 2019 00:07:41 +0000 (00:07 +0000)] 
The optimization of check-in [9b2879629c34fc0a] is incorrectly reasoned.
The WHERE clause of the partial index might not be true if the table of
the partial index is the right table of a left join.  So disable the
optimization in that case.  Ticket [623eff57e76d45f6]

FossilOrigin-Name: 3be19e1151af1850b65991edb82420f9412a7798dd756c86eaa9ffdde573263a

5 years agoFix a problem in VIEW creation that was introduced by the generated columns
drh [Sat, 2 Nov 2019 17:59:10 +0000 (17:59 +0000)] 
Fix a problem in VIEW creation that was introduced by the generated columns
feature.

FossilOrigin-Name: 9c795c4d2b042d2932774bd1274fa0167ca2dc9838e127e0cf31eb9273a32f2c

5 years ago"STORED" is not actually a keyword. The parser looks for STORED as an
drh [Sat, 2 Nov 2019 13:45:03 +0000 (13:45 +0000)] 
"STORED" is not actually a keyword.  The parser looks for STORED as an
ordinary identifier.

FossilOrigin-Name: 167cd574d6a1d4fe2253f5bc5aaa7b031cbc82853e4d33b8d9b72eaf049003d4

5 years agoIn sqlite3GenerateIndexKey(), do not attempt to reuse column values from
drh [Sat, 2 Nov 2019 13:32:50 +0000 (13:32 +0000)] 
In sqlite3GenerateIndexKey(), do not attempt to reuse column values from
the previous index if the current index is a partial index as the partial
index test may have corrupted those values.  Ticket [a9efb42811fa41ee]

FossilOrigin-Name: 17e9f65814264de9c35bc5ba94e0a66fbbf1200c00d33ab9a19a0b6f92bc685a

5 years agoRestore the on-line ".help" for the ".explain" command in the CLI.
drh [Sat, 2 Nov 2019 00:00:14 +0000 (00:00 +0000)] 
Restore the on-line ".help" for the ".explain" command in the CLI.

FossilOrigin-Name: 28b8f1036d569bccce56b4e7042348024b5dd1ffa04850cbeddab1e35c49e5b7

5 years agoFix a harmless compiler warning.
drh [Fri, 1 Nov 2019 18:52:09 +0000 (18:52 +0000)] 
Fix a harmless compiler warning.

FossilOrigin-Name: f0ebea35d9d6b69a7bb4242fb79ff3db4267e429855fa6969f9f52ffee1c7a99

5 years agoThe SET DEFAULT and SET NULL conflict resolution actions for foreign key
drh [Fri, 1 Nov 2019 17:31:27 +0000 (17:31 +0000)] 
The SET DEFAULT and SET NULL conflict resolution actions for foreign key
constraints should cause an error when they appear on a generated column.

FossilOrigin-Name: b47513d2b32b61ba42c1e9b59287d28f6fee231e6c65de2a3aa19effbbaf1e7f

5 years agoFix a potential use-after-free bug that follows an OOM error in code
drh [Fri, 1 Nov 2019 16:37:53 +0000 (16:37 +0000)] 
Fix a potential use-after-free bug that follows an OOM error in code
added two days ago by check-in [84e02d773d60cffe].  Problem discovered
by OSSFuzz.

FossilOrigin-Name: 0a2eb949f8a759e5745d9468c8183d3c0b4b30e0fa2a14b3062620eb9e1d5c1d

5 years agoAdd another missing column number translation to the foreign key logic.
drh [Fri, 1 Nov 2019 16:08:20 +0000 (16:08 +0000)] 
Add another missing column number translation to the foreign key logic.

FossilOrigin-Name: 32df5edcfef2605009f45d6ef1b97c63a99df07c7b4e00dc70f93001cfb8d81f

5 years agoOmit the optimization that reduces the column-count on rowid-table cursors
drh [Fri, 1 Nov 2019 15:19:24 +0000 (15:19 +0000)] 
Omit the optimization that reduces the column-count on rowid-table cursors
when the table has generated columns, because we do not know what columns the
generator expressions might try to access.

FossilOrigin-Name: e6c96ed91e7a96d2bd30ea9df132644ac02d5a321a62f81f8f3984a8e49ed94b

5 years agoFix an fts3 assert() that could fail when operating on a database containing corrupt...
dan [Fri, 1 Nov 2019 13:37:26 +0000 (13:37 +0000)] 
Fix an fts3 assert() that could fail when operating on a database containing corrupt records.

FossilOrigin-Name: 7c52f5478f9ecf5c078208759143ae9de43c1bf191dfcd74acb8bd169d4dc883

5 years agoAdd missing column translations to foreign key logic.
drh [Fri, 1 Nov 2019 12:14:30 +0000 (12:14 +0000)] 
Add missing column translations to foreign key logic.
Ticket [c28a01da72f8957c]

FossilOrigin-Name: bc6a43e7ee6353b9ef3dea4309c77e170a1c798eefcfaa7636bf5a93e51c47ee

5 years agoFix a potential array bounds overflow in the mkkeywordhash.c code generator.
drh [Fri, 1 Nov 2019 10:49:15 +0000 (10:49 +0000)] 
Fix a potential array bounds overflow in the mkkeywordhash.c code generator.
Also add marks to omit keywords specific to generated columns when building
with -DSQLITE_OMIT_GENERATED_COLUMNS.

FossilOrigin-Name: cc6a40818387f78f89499f09e3f1c4655c7396af1cba2596c7fb2f23f3e9755f

5 years agoSlightly faster keyword hash table.
drh [Fri, 1 Nov 2019 02:30:54 +0000 (02:30 +0000)] 
Slightly faster keyword hash table.

FossilOrigin-Name: f12e743e19a04ecbf7eb69b675082f2e4dda05b38cd81f6588a1ce95dfc57ada

5 years agoCorrectly generate pre-UPDATE content for virtual columns that are used
drh [Thu, 31 Oct 2019 20:54:20 +0000 (20:54 +0000)] 
Correctly generate pre-UPDATE content for virtual columns that are used
by foreign key constraints.  Ticket [b9befa4b83a660cc]

FossilOrigin-Name: 40d3282ec285d9f724f6548283f48b601510cf5284da17485723fd650a68f436

5 years agoAdd a few simple TCL test cases for generated columns. (Full test coverage
drh [Thu, 31 Oct 2019 17:13:17 +0000 (17:13 +0000)] 
Add a few simple TCL test cases for generated columns.  (Full test coverage
of the generated column logic is provided separately by TH3.)

FossilOrigin-Name: acedb5c7f7dc1d68bef62098d42ca59e1be7a5083bb03dc07c03b9f9d817158b

5 years agoIgnore differences in Expr.op2 in sqlite3ExprCompare() in cases where it
drh [Thu, 31 Oct 2019 13:16:26 +0000 (13:16 +0000)] 
Ignore differences in Expr.op2 in sqlite3ExprCompare() in cases where it
does matter.  Ticket [1d2a8efc6c3a595a].

FossilOrigin-Name: 329820673a12ff6a6c8759f40989d4ccf272441064b0366a5f491695b55ad0e9

5 years agoEnhance the TreeView logic to show information about Expr.op2 for
drh [Thu, 31 Oct 2019 12:30:38 +0000 (12:30 +0000)] 
Enhance the TreeView logic to show information about Expr.op2 for
FUNCTION and COLUMN nodes.

FossilOrigin-Name: aceeaf9e28767a0880a16872867a1f57bff163acd0f10d19d5688068077590fa

5 years agoAlways disallow the use of non-deterministic functions in CHECK constraints,
drh [Wed, 30 Oct 2019 18:50:08 +0000 (18:50 +0000)] 
Always disallow the use of non-deterministic functions in CHECK constraints,
even date/time functions that use the 'now' or similar keywords.  Provide
improved error messages when this requirement is not met.
Ticket [830277d9db6c3ba1]

FossilOrigin-Name: 2978b65ebe25eeabe543b67cb266308cceb20082a4ae71565d6d083d7c08bc9f

5 years agoSimplify the bytecode generation for SQL function calls such that the
drh [Wed, 30 Oct 2019 16:29:02 +0000 (16:29 +0000)] 
Simplify the bytecode generation for SQL function calls such that the
OP_Function or OP_PureFunc opcodes are coded directly, rather than using
the intermediate OP_Function0 or OP_PureFunc0 - opcodes that are now removed.

FossilOrigin-Name: 84e02d773d60cffe619104991d21d7f0c68616c0f6bb99686bf54f5306c756d0

5 years agoNew tokens ALWAYS, GENERATED, and STORED used by generated columns should
drh [Wed, 30 Oct 2019 13:00:23 +0000 (13:00 +0000)] 
New tokens ALWAYS, GENERATED, and STORED used by generated columns should
all be fallback tokens.

FossilOrigin-Name: 13fe6978b7de208d2e27460d824f7fc778cf6ea0aabfe566b32bb410b8816f63

5 years agoRemove the legacy_file_format PRAGMA. In its place, provide the
drh [Tue, 29 Oct 2019 16:18:45 +0000 (16:18 +0000)] 
Remove the legacy_file_format PRAGMA.  In its place, provide the
SQLITE_DBCONFIG_LEGACY_FILE_FORMAT option to sqlite3_db_config().
Fix for ticket [6484e6ce678fffab]

FossilOrigin-Name: 4d424f3047b48fc441475137f30a719d2f079390c86fe2617710ddfb05c5e240

5 years agoTighten the generated column requirement such that every table must have
drh [Tue, 29 Oct 2019 03:39:17 +0000 (03:39 +0000)] 
Tighten the generated column requirement such that every table must have
at least one non-generated column.  Ticket [166347c6fc994155].

FossilOrigin-Name: 4fba090e678ef184736277c9ec9a9374c8bd4df4d41f51a3dc6818e2efcc103b

5 years agoAdd a missing translation from table column numbers to storage table numbers
drh [Tue, 29 Oct 2019 03:30:26 +0000 (03:30 +0000)] 
Add a missing translation from table column numbers to storage table numbers
while processing constraints on an UPDATE statement.
Ticket [9621dd78a024d07a]

FossilOrigin-Name: 361ea81ae8a13e7d2ec4c2412f30e049bb6ee320980d502c86bedc315cdd3bc0

5 years agoDisallow tables that have only virtual columns.
drh [Tue, 29 Oct 2019 01:26:24 +0000 (01:26 +0000)] 
Disallow tables that have only virtual columns.

FossilOrigin-Name: 591973217f1caf24cde91dc15b7edca2edda05dac8ae2b2cd8d71e7aa072f7d1

5 years agoFix a problem in fts3 causing it to report corruption if a doclist contains consectut...
dan [Mon, 28 Oct 2019 13:54:59 +0000 (13:54 +0000)] 
Fix a problem in fts3 causing it to report corruption if a doclist contains consectutive rowid entries that differ by more than 2^63.

FossilOrigin-Name: 0b0a3048f9df88bbc8979f2ac5247bee7d7bc1e585faca252610d2fcbe36d51d

5 years agoRemove a NEVER() comparison from sqlite3ExprCompare().
drh [Mon, 28 Oct 2019 13:07:01 +0000 (13:07 +0000)] 
Remove a NEVER() comparison from sqlite3ExprCompare().

FossilOrigin-Name: f4285297e1e7ebef90bfc0f71402a4e1726d31bc15b69fec13a1f0d98fed1f08

5 years agoALWAYS macro added for coverage.
drh [Mon, 28 Oct 2019 04:20:28 +0000 (04:20 +0000)] 
ALWAYS macro added for coverage.

FossilOrigin-Name: a1e1ba9145049491c593ac70d9e05149662d34770129c270d702f284cd19a481

5 years agoImproved detection of attempts to use a generated column as part of the
drh [Sun, 27 Oct 2019 22:22:24 +0000 (22:22 +0000)] 
Improved detection of attempts to use a generated column as part of the
primary key.  Ticket [91e86951016a6802]

FossilOrigin-Name: 6d1bbba9a004a2491c76b4a7d09edb9b738102c46fdcb3e0f7b22bffa719518e