]>
git.ipfire.org Git - thirdparty/sqlite.git/log
numist [Fri, 13 Dec 2019 22:59:38 +0000 (22:59 +0000)]
Initial exploration of blocky APIs, starting with a variant of sqlite3_exec.
FossilOrigin-Name:
fd849d5b6a891c57facbfbba1de855b4349577dbc7afaa7f503e23bc4ca74e8f
drh [Fri, 13 Dec 2019 21:24:46 +0000 (21:24 +0000)]
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.
FossilOrigin-Name:
c29fc21288e37f81a1617c5e2961c575d3bca6a1d1b013b2e0a99774afb1dcdb
drh [Fri, 13 Dec 2019 11:42:56 +0000 (11:42 +0000)]
Ensure that there is a containing SELECT statement when processing a
normal aggregate function as if it were a window function.
FossilOrigin-Name:
c1014e80b26131200a115beb86929a8f0ded2dd65b075e47373346c0f170576a
drh [Fri, 13 Dec 2019 11:32:28 +0000 (11:32 +0000)]
*Remove* the macros, not just comment them out.
FossilOrigin-Name:
e5dc2939d3e8694d648fc9b73b1174da5b1349e20fbb9cf1c91268939f308f89
drh [Fri, 13 Dec 2019 11:31:47 +0000 (11:31 +0000)]
Remove unused macros formerly used to define built-in aggregate functions.
FossilOrigin-Name:
3ef0d44edd0354cda9b6237f992cb67a2170ee8f1f464b1f38ac36e3a133bc71
drh [Thu, 12 Dec 2019 15:19:18 +0000 (15:19 +0000)]
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.
FossilOrigin-Name:
c6af9f655b73200ecc0c4189698e421af6ca584babdc76e73a36d468b2eea1f9
drh [Thu, 12 Dec 2019 00:20:40 +0000 (00:20 +0000)]
Fix goofy string formatting in lemon.c that dates from the K&R-C days.
FossilOrigin-Name:
48ba5e5a2227257cebafacbb09e9dd91d9b89ab2d52a8b4e4113c1d017d95f41
drh [Wed, 11 Dec 2019 18:53:51 +0000 (18:53 +0000)]
Improved tracing output from the LEMON-generated parser.
FossilOrigin-Name:
4d6d2fc046d586a1e5989bbb2757f13d0371fbfad0acf45a0e2fd77dffd8d8f9
drh [Wed, 11 Dec 2019 16:22:53 +0000 (16:22 +0000)]
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.
FossilOrigin-Name:
840de36df1aaeb4bad9a7c18e97cc560ba3b8c629c4520a05bc456d67b3347b9
drh [Wed, 11 Dec 2019 15:07:09 +0000 (15:07 +0000)]
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.
FossilOrigin-Name:
1fa29a5f2a89b6a1ee067f9cb86de1b66455126349efe3502599fc7ad224170c
drh [Wed, 11 Dec 2019 14:25:11 +0000 (14:25 +0000)]
The xDestroy method of a module might be NULL if the schema is corrupt.
FossilOrigin-Name:
0457e7d1961ab1f63e31d9028a9064a895f5c3fcfb56ba25e4f37e90197e3a9f
drh [Tue, 10 Dec 2019 20:41:48 +0000 (20:41 +0000)]
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.
FossilOrigin-Name:
136cdefb2f7b582ff1771ac7f9e733dc24c357605526cbfb1834937697c8a922
drh [Tue, 10 Dec 2019 18:10:12 +0000 (18:10 +0000)]
Use a statement journal on a CREATE VIRTUAL TABLE statement in case the
VCreate opcode fails.
FossilOrigin-Name:
aa3b0eb8c3438ddd3b660bc6bce4b1f4a0e3b5ec897079445231ee1b61210d6a
drh [Tue, 10 Dec 2019 15:05:09 +0000 (15:05 +0000)]
Fix parser bugs: require a semicolon after an EXPLAIN command.
FossilOrigin-Name:
707a058a22bd00ef14431cee0d02048cf1be745c0ef5254eda76c325435738ff
dan [Tue, 10 Dec 2019 03:40:11 +0000 (03:40 +0000)]
Avoid a buffer overread in fts5 that could occur when parsing corrupt configuration records.
FossilOrigin-Name:
355afd77df21a2265871ca6d075f26b1fa121c7c2682cf512281944ff0c2186d
drh [Tue, 10 Dec 2019 02:48:41 +0000 (02:48 +0000)]
Set the affinity of regular columns prior to computing the values of
generated columns. Ticket [
d7c3f125c925c522 ]
FossilOrigin-Name:
d47d66e3d360d8aa6203a855228d2bc40d9a00d69c15f5066b7632d8fb1ed2cc
drh [Mon, 9 Dec 2019 19:44:45 +0000 (19:44 +0000)]
Rename a local variable to avoid masking a function parameter and thus
causing a harmless compiler warning.
FossilOrigin-Name:
f065cf003bd2a3a580cb5b9fa2eacd8be075fe8c2bbc5688e9a9406abbfb3804
drh [Mon, 9 Dec 2019 19:29:10 +0000 (19:29 +0000)]
drh [Mon, 9 Dec 2019 18:22:17 +0000 (18:22 +0000)]
The previous check-in was not quite correct, and introduced a new problem
with the USING clause. Use this version instead.
FossilOrigin-Name:
ed28aaa4851202111a502f883ca06359d89b25bba4055c29d7bce2b501cfcc68
drh [Mon, 9 Dec 2019 17:14:48 +0000 (17:14 +0000)]
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.
FossilOrigin-Name:
1923efb283e8840fa7436eb20b9d2174ef7cace1690d3b97b572a0db2048b8e3
drh [Mon, 9 Dec 2019 15:52:07 +0000 (15:52 +0000)]
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 ]
FossilOrigin-Name:
f3b39c71b88cb6721f443de56cdce4c08252453a5e340b00a2bd88dc10c42400
drh [Mon, 9 Dec 2019 14:34:37 +0000 (14:34 +0000)]
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.
FossilOrigin-Name:
e3398c5ffb060b2b26334b8598e2c63953741e2d6f5124dbd6bdfc8e94742539
dan [Mon, 9 Dec 2019 08:13:43 +0000 (08:13 +0000)]
Avoid infinite recursion in the ALTER TABLE code when a view contains an unused CTE that references, directly or indirectly, the view itself.
FossilOrigin-Name:
1d2e53a39b87e364685e21de137655b6eee725e4c6d27fc90865072d7c5892b5
dan [Mon, 9 Dec 2019 02:20:37 +0000 (02:20 +0000)]
Fix possible null pointer dereferences in the fts5_expr() scalar function.
FossilOrigin-Name:
c5d44143599f3fe98492b2b900fa3d77925c7be545096251055ceeab899a41f1
drh [Sun, 8 Dec 2019 00:06:39 +0000 (00:06 +0000)]
Fix incorrect column-usage accounting associated with generated columns
and added by check-in [
6601da58032d18ae ]. Fix for ticket [
b92e5e8ec2cdbaa1 ].
FossilOrigin-Name:
9d75e1ccc72e9f536f45df3b24e9ecd25076cc1f7cf16b806b19e0e1b68e8326
drh [Sat, 7 Dec 2019 13:42:47 +0000 (13:42 +0000)]
Correctly deal with multi-row VALUES clauses that contain window functions.
FossilOrigin-Name:
26d991f214db143976e2593d3564b5003eb3539a2728d1a0ccae2a2accece76f
drh [Sat, 7 Dec 2019 12:13:54 +0000 (12:13 +0000)]
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 ]
FossilOrigin-Name:
7fa664ea0ea1e0283a9af50c9ff8dd360ee6042f9e491a136f53d9bcbbc9c7ef
drh [Sat, 7 Dec 2019 00:22:18 +0000 (00:22 +0000)]
Fix a problem with foreign keys and generated columns discovered by
Manuel Rigger.
FossilOrigin-Name:
27c0fdab1ba4d4993b164eb4b777c63e82aa247c3fa406121dc8ed94970a0b35
drh [Fri, 6 Dec 2019 19:07:44 +0000 (19:07 +0000)]
Early detection and reporting of too few columns in an rtree CREATE VIRTUAL
TABLE statement.
FossilOrigin-Name:
ef73107f475e40e6bdd8b722e96992070f81fd2b7a3cb718ec8f251c89ca3e81
drh [Fri, 6 Dec 2019 13:10:29 +0000 (13:10 +0000)]
In the rtree extension, actively suppress extra tokens on the column names,
and be pedantic about column affinities. Ticket [
367a86e28859f1ff ]
FossilOrigin-Name:
97fb5a72f91a44d579466e67c33aa862384c4d1c95c2010cf4ae9dbd172bbcfb
drh [Fri, 6 Dec 2019 11:48:27 +0000 (11:48 +0000)]
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.
FossilOrigin-Name:
62f2235adf796c72882b26313489cf49804ec3ec4972e0eee5034176cbb07f84
drh [Fri, 6 Dec 2019 01:38:24 +0000 (01:38 +0000)]
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 ]
FossilOrigin-Name:
32772dfd50b602c049d8c30bc28cde60a18b7495a997d728081f689ff417c956
drh [Fri, 6 Dec 2019 01:23:38 +0000 (01:23 +0000)]
drh [Thu, 5 Dec 2019 21:46:23 +0000 (21:46 +0000)]
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 ]
FossilOrigin-Name:
b7810062ec2489e1c5ca6638dbeb0892e4ce376c5c1834a31d1a332ebab8a871
drh [Thu, 5 Dec 2019 18:29:52 +0000 (18:29 +0000)]
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.
FossilOrigin-Name:
7d3e3f6e7e55da41bf776fab094df54fb6a33b2967881d3184cf854c8a637518
drh [Thu, 5 Dec 2019 17:31:58 +0000 (17:31 +0000)]
Additional debugging information printed with the ".wheretrace 0x100" option.
No changes to normally delivered code.
FossilOrigin-Name:
fc72ec52c92ca6a953e765b48e21d52021fdb23a2cd84f737da4e43c642f6a5d
drh [Thu, 5 Dec 2019 14:42:26 +0000 (14:42 +0000)]
Make sure the rowid of an RTREE virtual table has integer affinity.
Ticket [
9fe487ba3c064b4e ]
FossilOrigin-Name:
7ae8c0d52f6aa7f27537216f85456ef49dade040366cfb250c789206ecd4dc5a
dan [Thu, 5 Dec 2019 14:31:43 +0000 (14:31 +0000)]
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.
FossilOrigin-Name:
7e5ad8e0ab7ee91a5ccb19a9654d6a036233f74d2fdc45f7315feb3d9d035fd4
drh [Thu, 5 Dec 2019 13:34:13 +0000 (13:34 +0000)]
Be strict about type enforcement on rowid look-ups in the RTREE extension.
Ticket [
30e2c183b6b356e4 ]
FossilOrigin-Name:
d43e0efb9642037dd751cfed13438e71cfceb50e14a0ec603880c6c3be2e93b1
drh [Thu, 5 Dec 2019 00:44:47 +0000 (00:44 +0000)]
Enhance the RTREE extension so that it give correct query results even if
the query uses non-numeric constraints. Ticket [
a55ab6d97d01ecbc ]
FossilOrigin-Name:
f898d04cf272ef0130dcae146cb86d8630b10a6f19aecfc2fa70e97e082bd51c
drh [Wed, 4 Dec 2019 19:45:52 +0000 (19:45 +0000)]
drh [Wed, 4 Dec 2019 15:08:58 +0000 (15:08 +0000)]
Ensure that an ALWAYS() in the rename logic really is always true, even
for faulty inputs.
FossilOrigin-Name:
54410f0e7710542d5159d0449898598d2b7f7676bfd993644ca47da1bf1fcdac
dan [Wed, 4 Dec 2019 14:26:38 +0000 (14:26 +0000)]
Fix an assert() failure that could occur in ALTER TABLE code when the schema contains a view that uses a CTE.
FossilOrigin-Name:
75b04a4b0d2e65bfcd02cf4e0b6d8f1954957c590814a9b8f9a9ee2adc2ec022
dan [Wed, 4 Dec 2019 03:46:50 +0000 (03:46 +0000)]
Fix a buffer overread that could occur in fts3 with corrupt %_stat records.
FossilOrigin-Name:
e01fdbf9f700e1bd9dd5283c65547d10d26ce4f4506d3cfef9e1087aecdc2305
drh [Wed, 4 Dec 2019 03:31:29 +0000 (03:31 +0000)]
dan [Wed, 4 Dec 2019 01:42:07 +0000 (01:42 +0000)]
Fix a double-free that could occur when a component of a compound SELECT with an ORDER BY clause uses named window definitions.
FossilOrigin-Name:
92893b7980cbb0c6e26bc0b21390a717193205c9897fea5f26476462928897f9
dan [Tue, 3 Dec 2019 03:34:06 +0000 (03:34 +0000)]
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.
FossilOrigin-Name:
c4cb9708d48ead10ee9543f86878be8382cd6e850950d5384c95254bac4a8d6e
drh [Tue, 3 Dec 2019 03:31:11 +0000 (03:31 +0000)]
Avoid a harmless zero offset of a null pointer in FTS3, so as to not provoke
unnecessary warnings from run-time checkers.
FossilOrigin-Name:
85d95abec4a596eb3ffd2ea19b4067dc1a6970264222ed5d69e75764ac21597c
drh [Tue, 3 Dec 2019 02:51:50 +0000 (02:51 +0000)]
Avoid computing a zero offset of a null pointer, which though this is
technically harmless, is upsetting to pedantic run-time checkers.
FossilOrigin-Name:
3ce804e99bbef83d49ec309157448a7c1422725606516cef904e6122aadd3922
drh [Sat, 30 Nov 2019 19:29:19 +0000 (19:29 +0000)]
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 ]
FossilOrigin-Name:
4066a34da7bcdcece6c438c27f3a11bc49b8c8373b7e1603f30f6225e2bc800a
drh [Fri, 29 Nov 2019 13:01:57 +0000 (13:01 +0000)]
Add comments in the parse.sql file to help demonstrate how rules are
encoded.
FossilOrigin-Name:
2c4f714892327a1a9a303267b1f9685e310cca5dcea9c61287d95e26291b0506
drh [Fri, 29 Nov 2019 12:51:00 +0000 (12:51 +0000)]
Fix the parse.sql output file so that it is readable into a database where
foreign keys are enforced.
FossilOrigin-Name:
3a82c554c3bde4640df6865686f8f70e2c1e07c581fed4772b6b0a8ec1b10bb6
drh [Wed, 27 Nov 2019 20:40:44 +0000 (20:40 +0000)]
More details on the comment justifying the aleged data race in the WAL-mode
checkpoint logic.
FossilOrigin-Name:
0fab65c79f675c825ed7e85c82b65ce6f990c9d0796ebb3886942d241df7b268
drh [Tue, 26 Nov 2019 14:24:12 +0000 (14:24 +0000)]
Fix various documentation typos suggested by Mark Benningfield.
No changes to code.
FossilOrigin-Name:
08f09dc4f986a27f4e4e69f8226dbfaf0cfe1269cefc2830bf0fbef7b9bbda48
drh [Tue, 26 Nov 2019 11:10:59 +0000 (11:10 +0000)]
Fix to check-in [
5d9a369301a65f32 ] so that it compiles without SQLITE_DEBUG.
FossilOrigin-Name:
fefe2d046725254367f9f82a8c8cb137e8b75dbbf4bc48debf0649479ff2f0c2
drh [Tue, 26 Nov 2019 02:22:39 +0000 (02:22 +0000)]
Add the new -S option to the lemon parser generator to cause it to output
SQL that describes the input grammar.
FossilOrigin-Name:
4dbd398d640852d4a696d68c72ee039968023d402a8053b5e6b4ef1d75e982a8
dan [Tue, 26 Nov 2019 02:03:16 +0000 (02:03 +0000)]
Fix an assert() in fts3 that could fail due to corrupt database records.
FossilOrigin-Name:
5d9a369301a65f320a0696fcf1f062ca5976ef34350590c07aecf5335c66d872
dan [Mon, 25 Nov 2019 04:15:33 +0000 (04:15 +0000)]
Modify journal3.test so that it can handle Tcl command "file attr <file> -perm" returning octal values in either "00755" or "0o755" format.
FossilOrigin-Name:
b0b655625cf491c832a259d29a67660b8d5943c201617900a83d0660b2673377
mistachkin [Mon, 25 Nov 2019 00:07:03 +0000 (00:07 +0000)]
Minor enhancements to the TclKit download tool.
FossilOrigin-Name:
75e31b1d56781fc4d28aea6c7f1393a18fd34870a5beb92df81c088d61351b4a
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
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
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
dan [Sat, 23 Nov 2019 08:36:35 +0000 (08:36 +0000)]
Fix a memory leak in fts5 error handling code.
FossilOrigin-Name:
de6637e15d95b7aee2caea8b8d5b9865f276cbbf152ecf0401c4c7bfdf6dee6f
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
drh [Fri, 22 Nov 2019 11:49:39 +0000 (11:49 +0000)]
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
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
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
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
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
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
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
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
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
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
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
dan [Wed, 20 Nov 2019 13:31:52 +0000 (13:31 +0000)]
Further improve detection of corrupt records in fts3.
FossilOrigin-Name:
a0f6d526baecd061a5e2bec5eb698fb5dfb10122ac79c853d7b3f4a48bc9f49b
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
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
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
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
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
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
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
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
drh [Mon, 18 Nov 2019 17:46:38 +0000 (17:46 +0000)]
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
drh [Mon, 18 Nov 2019 12:04:17 +0000 (12:04 +0000)]
Further improvements to shadow table corruption detection in FTS3.
FossilOrigin-Name:
e35d8c76aae59f57cc5193f79b21b4298029bea78e1aab7af67432162ce63e00
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
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
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
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
drh [Sun, 17 Nov 2019 00:08:24 +0000 (00:08 +0000)]
drh [Sat, 16 Nov 2019 23:47:40 +0000 (23:47 +0000)]
More improvements to shadow table corruption detection in FTS3.
FossilOrigin-Name:
51525f9c3235967bc00a090e84c70a6400698c897aa4742e817121c725b8c99d
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
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
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
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
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
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