drh
7dec804d42
Remove dead code. Fix RETURNING for INSERT into a virtual table.
...
FossilOrigin-Name: dbfa38699c87ab4bf390666e411dda8d375c7b53b9b4fb131adacbf575867a72
2021-02-04 22:59:19 +00:00
drh
e1db9343d5
Fix an issue with RETURNING from UPSERT.
...
FossilOrigin-Name: 757b74ba0fd64634a365bd73955181191767ad8816a33a362e32ece250299a51
2021-02-04 21:17:12 +00:00
drh
552562c48f
Snapshot. New design appears to work on a simple test case.
...
FossilOrigin-Name: 8a65fbeecf3597e30853c5f0ccd9b8b46c508854fa521e58e0db279deebca7d4
2021-02-04 20:52:20 +00:00
drh
381bdacc8f
Preliminary changes for a new implementation of RETURNING that captures all
...
results in a buffer and plays them all back after the DML statement
completes. This avoids problems with interleaved DML statements.
This particular check-in is a non-functional work in progress.
FossilOrigin-Name: 04b77d63216ce11b4e797946953bcde504fc005807c7a5ac757fbf47d78698dc
2021-02-04 17:29:04 +00:00
drh
8ab79d6135
Add NEVER() to a branch that check-in [5d54d9fd40638138] apparently made
...
unreachable.
FossilOrigin-Name: 5c8e6296aa9f69a092364524b716ba894f113f7f1e6024b9a2eaa01c239e65c1
2021-02-04 13:52:34 +00:00
drh
02c4aa39e7
Performance optimization in sqlite3FinishCoding().
...
FossilOrigin-Name: 0f34f241d37cc4f31dc657a6fc33815fa5e24298487121cb27c29118524b8ee7
2021-02-04 13:44:42 +00:00
mistachkin
8c333cfc0d
Corrections to the 'filepath_normalize' test suite helper procedure.
...
FossilOrigin-Name: 32f4d04470bf953b08eea285543f16e03de13d5448c1ebccbba1578ca3b5363e
2021-02-03 19:38:40 +00:00
drh
17b74817c0
Change the name of Vdbe.magic to Vdbe.iVdbeMagic to disambiguate with
...
sqlite3.magic.
FossilOrigin-Name: 6b29e549bb34933bfd0758e31085e65dcc0f75446c478fc775d96cf01c22cf43
2021-02-03 18:32:25 +00:00
dan
7937f63220
Avoid doing any foreign-key constraint related processing for an UPDATE statement that does not modify any columns that are part of FK constraints, even if the table has a self-referencing FK.
...
FossilOrigin-Name: 7f3b036e730153ac22933b03a52d4ec3978c9ecab1399d8cc79fe533893321e3
2021-02-03 14:20:56 +00:00
drh
c5eb176a09
Fix a harmless compiler warning.
...
FossilOrigin-Name: 1eb69c64ed4a11601698000573c507684bc4b0366336ba0748ebd661644d0902
2021-02-03 13:20:12 +00:00
drh
cd39cda00c
Add support for the RETURNING clause following PostgreSQL syntax.
...
FossilOrigin-Name: 416c898bfb8ff9639ffbaefcfb47fce3782763af1fc67969fa91c5f01a336676
2021-02-03 13:08:09 +00:00
drh
78197e0f8b
Fix an assert() that might be off-by-one in the case of a prior
...
errors in the parse.
FossilOrigin-Name: 06b15b17be38c804dd2641d8616a2a7bd396d2eb9901a0fbf94edd8bd508cf9c
2021-02-03 12:35:51 +00:00
drh
2aa41c82da
Modify the SQLITE_DBCONFIG_ENABLE_TRIGGER setting so that it only disables
...
main-schema triggers and allows TEMP trigger to continue operating. This is
safe, since only the application (not an attacker) can add TEMP triggers.
It will also all us to disengage SQLITE_DBCONFIG_ENABLE_TRIGGER on Fossil
databases since Fossil has no main-schema triggers but does use TEMP triggers.
FossilOrigin-Name: a10c5a2503ff2998f6ee40f721aab8c9579052e535dc141bd57d10551eaea387
2021-02-03 00:55:34 +00:00
drh
47600083f1
Load enhancements from trunk into the returning branch.
...
FossilOrigin-Name: b84c7f60c2e1e7debf9f50622087f87d60c6870061d61e14e59cc1ba0775ee92
2021-02-03 00:05:57 +00:00
drh
cb83dc9e95
Do not allow aggregates in a RETURNING clause. Fix a memory leak that
...
occurs when window functions are used in a RETURNING clause.
FossilOrigin-Name: 2e9bd94b9ad37c7e4123b7324f2fe42d3609a65af449eb8a0064057647709a73
2021-02-02 20:46:11 +00:00
dan
e0d2096afa
Modify the sessions extension to use more efficient SQL when applying a changeset or patchset.
...
FossilOrigin-Name: e4ccfac09b6fe8cc3aec29d10f4e4c83097964f29882343db52ed91f6f0dde1c
2021-02-02 20:41:13 +00:00
drh
709dd13927
Report an error if RETURNING is used for DELETE or UPDATE of a virtual table.
...
FossilOrigin-Name: bd5dee8425327fde0429043ce325b910f1b7951988d9a448a8eeeb713a46bc81
2021-02-02 12:01:22 +00:00
drh
c9be863098
Allow the RETURNING trigger to exist for virtual tables.
...
FossilOrigin-Name: 2f244ab4a2ba2bdb608cf44ef02e00738ad58c10a76d9e4222dc843a17103d92
2021-02-02 00:16:15 +00:00
drh
d33d3a2ba7
Add a few test cases for RETURNING together with UPDATE/DELETE LIMIT.
...
FossilOrigin-Name: 7611c77d6baa84086ff18cbd045127fd682c6d5c434af5404e34fbe631fedfe1
2021-02-01 21:26:09 +00:00
drh
9e673ace5b
Improved corrupt database detection in balance_nonroot().
...
FossilOrigin-Name: 5d54d9fd406381383afdf10612bfd590afc4142215d9bca09e227e3aa5baa102
2021-02-01 12:39:50 +00:00
drh
7baf3d411b
Modify RETURNING so that it does not return changes implemented by
...
cascading foreign keys or by triggers.
FossilOrigin-Name: 6e62470a737cbde7f3fdcd027b98eb0b3dd11d063c63501d3c18448e93f5959f
2021-02-01 01:57:55 +00:00
drh
9407b6ef29
Mark an unreachable branch as ALWAYS().
...
FossilOrigin-Name: cb8b797a64f65fca01c5faaeb30cbe4a53b56b81e696d1b62a90362d7ef8f924
2021-01-31 16:45:10 +00:00
drh
18e5607211
New opcode OP_ChngCntRow used to output the result of PRAGMA change_count.
...
Only this new opcode, and not OP_ResultRow, checks for foreign key errors.
Faster performance, and now also works with RETURNING.
FossilOrigin-Name: 154fc2b15465c7c92a1af0a93851421aec42a81bab54840a9701f2c78068e14e
2021-01-31 15:50:36 +00:00
drh
662fe79647
When setting the number of result columns in a RETURNING trigger, be sure
...
to set that value in the top-level bytecode program, not in the immediate
caller of the trigger.
FossilOrigin-Name: 1f1ce7ceb9807d22efea496f33908040ee196a31cd192f27ec0fb3e23afb729c
2021-01-31 12:41:20 +00:00
drh
28828c550f
Improved comments on the new code.
...
FossilOrigin-Name: a38f0c1d7c1d7635732ac370d8fbc7e6a2005378e4621da7bc4f51a2f99912d1
2021-01-30 21:55:38 +00:00
drh
1832f2921d
Add an ALWAYS() to an unreachable branch.
...
FossilOrigin-Name: 6bb6de42b62acd35ade6c95a11bb4c9b35e7e9a24620731ae36364c4d5c3bc31
2021-01-30 16:16:42 +00:00
drh
a8a64a078f
Chagne the OP_ResultRow opcode so that it does not cancel
...
pending statement transactions.
FossilOrigin-Name: fea91e3a511b14dafcc4da92c59188f927ec60ed91441335183da6b4e7866c1b
2021-01-30 14:17:18 +00:00
drh
0166df0bda
Fix a obsolete assert() in the bytecode engine. Improved OOM detection
...
in sqlite3AddReturning().
FossilOrigin-Name: 138b10d54a83e1e7d5b3cdbe593a5073b05e632d1823e1b74d85835435b9ee3d
2021-01-30 12:07:32 +00:00
drh
cf4108bbc6
Fix handling of an OOM condition in sqlite3AddReturning().
...
FossilOrigin-Name: 52204cd768f115d13249ff0e3a252b716620f7ad16a6962e1192a09137a78596
2021-01-30 03:06:19 +00:00
drh
658f0a3679
Fix a memory deallocation problem that comes up when doing a RETURNING query
...
on a corrupt database. I think I fixed this before, but it got unfixed with
stale editor content.
FossilOrigin-Name: 02b1415efb7d9849499afe4e9dbf7e470484bf144d6ca3d28fdc38fc0ac10afa
2021-01-30 02:43:26 +00:00
drh
343256b9b0
Another attempt to get trigger selection correct for RETURNING triggers.
...
FossilOrigin-Name: 1b8ed52275a54800df90682d694b482f55f26c6c4a420659f9a3b7bfc61e8abe
2021-01-30 02:34:47 +00:00
drh
16d861ffc2
When running the RETURNING trigger, if it is tagged as a DELETE trigger,
...
do not use it as INSERT or UPDATE.
FossilOrigin-Name: 3c7a6e04ddde34961d8e9d0443913e572a80853cf14a8263cec19523c39ca744
2021-01-30 02:22:38 +00:00
drh
ba71a8a01b
Test cases added. RETURNING works with UPSERT as does PG.
...
FossilOrigin-Name: f5698f96e27c9b8669ec6016bb9920ef7580c4146eb61d628a0f62be5135ce94
2021-01-30 01:30:26 +00:00
drh
8f4e2e25c4
Better handling of errors in RETURNING due to corrupt database files.
...
FossilOrigin-Name: 6aa2a058d136d0b24d94c5cbe1ce447eb435c1a1c7cdce5e435f1548bb3f05e7
2021-01-29 22:33:05 +00:00
drh
d086aa0a48
RETURNING works even if "PRAGMA count_changes=ON" is set.
...
FossilOrigin-Name: a9122d97577b239704cdee1a90a3b0dbff8bdf9dea2324d7315bd47238dcc8eb
2021-01-29 21:31:59 +00:00
drh
dac9a5f7df
Allow "*" wildcards in the RETURNING clause.
...
FossilOrigin-Name: b0e3ae303db2a035583a05848ab7977e612d7e40c77e31ea9e0166de443c901f
2021-01-29 21:18:46 +00:00
drh
b835247954
Working prototype.
...
FossilOrigin-Name: b7ef4dc21f187ff4ff679e823782535188c3814aa6ce720b3a01c6d3ba4ef9f5
2021-01-29 19:32:17 +00:00
drh
02d6f9b295
Fix possible division-by-zero in the new log() SQL functions.
...
Problemm discovered by OSSFuzz.
FossilOrigin-Name: 1ffd321a33b778e87614a26a91a8407ec7b9dec4f0f847b16b1dac4f3b910604
2021-01-29 16:20:16 +00:00
drh
2c99b84c95
Incorporate the sqlite3TriggerList() optimization from trunk. And move
...
the pReturning field to the uninitialized area in the Parse object, to
save memset() time.
FossilOrigin-Name: 29fbaf0e3eabda08500f350bc32e9f339e5732a65bfa62822eefb692a2ff0243
2021-01-29 14:22:56 +00:00
drh
f54a80fe5c
Performance optimization (and size reduction) in sqlite3TriggerList() for the
...
common case where there are no TEMP triggers.
FossilOrigin-Name: 0defaf730bdc82212a5d3feeb2e16f16423b1691b0aaa7da1787eb82ea39ae9e
2021-01-29 13:47:36 +00:00
drh
55d4c84b61
Merge recent enhancements from trunk.
...
FossilOrigin-Name: 5fbcb208d24d45169fc53ad8738dd3545d9bbd26b7434e31afc7f6419cd4e958
2021-01-27 20:35:22 +00:00
drh
16cd8b96d3
Fix an issue with IN operator optimization introduced by
...
check-in [4a43430fd23f8835] and described by ticket [ee51301f316c09e9].
FossilOrigin-Name: 9dc7fc9f04d5c14fc436e5ff5b4c06c1969ddde5857ebeb5dccd59b7c748c339
2021-01-27 19:15:06 +00:00
dan
df1b52e727
Ensure a cursor used by the SeekScan operator does not point to a valid row on the first iteration of the loop. Possible fix for [2d6e8400].
...
FossilOrigin-Name: 390cf60a286b13f454429f4652a133f95a7891a75c1ec6d16cd39990590fd3fb
2021-01-27 17:15:06 +00:00
drh
e5ceaac446
Add an extra log message in the case of an SQLITE_CORRUPT_INDEX error.
...
FossilOrigin-Name: 0571c24177d77ac966bcf42cb8ab00fdf541ce84af1468c8ef0b60c48c45a22f
2021-01-25 21:24:14 +00:00
drh
8ac090f51d
Enhance the query planner to enable it to use an index for IS NOT NULL
...
constraints, even if STAT4 is not enabled.
FossilOrigin-Name: 7b2a7c7314d2239992dc1d707280f3b75ba75bb074ba1e77b55cad01ca7fd51b
2021-01-22 21:23:12 +00:00
drh
17988aae5b
Merge fixes from trunk. Omit a conditional in
...
sqlite3IsLikeFunction() that was made unreachable by this enhancement.
FossilOrigin-Name: 0b42f9eb5dd710991af3cf4b16464b22db9539361d618e50eaa4d43c811577b4
2021-01-22 20:28:30 +00:00
drh
906602ac3f
Do not allow VACUUM to resize the page_size to 512 if the reserve_byte value
...
is 31 or greater. [forum:/forumpost/e807885dc5|forum post e807885dc5].
FossilOrigin-Name: d5ea75a09d4bf61262cead2604e35d8331b727c504807592d09f5d9e01ce794a
2021-01-21 21:36:25 +00:00
drh
71aff85503
Performance optimizations in exprAnalyze()
...
FossilOrigin-Name: 6d60cf540b8cc231448175f1e16e1f4f7a0aee26898570a5b8a09c89fae53c02
2021-01-21 20:42:36 +00:00
drh
6cca0aa9df
Always enable the IS NOT NULL optimization, even if STAT4 is not enabled.
...
FossilOrigin-Name: fc98218cf69e63bdb9e5f154521a341508502cd8cfe04cb870cabee2d99e0cb3
2021-01-21 17:54:41 +00:00
dan
7bb0a7d947
Fix a problem caused by using an SQL variable in an OVER clause within a trigger program.
...
FossilOrigin-Name: 02264ab6a02d6cc95cf865920bcbaf4307d034640e6e4f3371b009ae9818540e
2021-01-21 16:02:14 +00:00