drh
d718bde6da
Do not allow an ALTER TABLE ADD COLUMN on a STRICT table if the added column
...
contains a DEFAULT clause that would violate the type of the added column.
FossilOrigin-Name: 75b075863eaa56e36635a1d27740d37de8600ba92099b3fad9378a1e6ce12c0e
2023-10-14 20:24:52 +00:00
drh
56a410741b
Address various harmless compiler warnings from
...
[forum:/forumpost/d526da8ee4|forum post d526da8ee4].
FossilOrigin-Name: 365caf2f97e8f15842f52536e8d05d359e9d6e863182e020ce14a9a9f27ee057
2023-06-16 14:39:21 +00:00
larrybr
bc91738e66
Add a C-source spell-checking facility. make misspell (on Nix)
...
FossilOrigin-Name: 26c1bb4bd9e9f56613c3aa87407a7f562fd4ebde5bfd6dece02078001d9a45f8
2023-06-07 08:40:31 +00:00
drh
731a1aaeb2
Fix an obscure issue with ALTER TABLE RENAME that comes up with triggers
...
that have UPDATE statements that contain errors.
[forum:/forumpost/ff3840145a|Forum post ff3840145a].
FossilOrigin-Name: c4845a7c5f7f219848d3ee32eef0f9c69ad6dc6e8509da84d612f41e1e05f007
2023-04-13 18:44:59 +00:00
drh
de5f3af2b9
Additional fixes for yet more completely harmless compiler warnings.
...
FossilOrigin-Name: 7d3772f0bd0e2602fe919573b49001da4e2b9f3874cb0183dea675204afa7abd
2022-12-23 11:46:57 +00:00
drh
abe1ff38dd
Minor simplification to ALTER TABLE logic.
...
FossilOrigin-Name: 01beb0365c529481605f1864b1b6760e2484fad08d56a72e00e34acff37e23f8
2022-05-27 17:36:21 +00:00
dan
ca29bbce2f
Fix another problem with ALTER TABLE and UPDATE...FROM in triggers.
...
FossilOrigin-Name: 33cf12235e6469ba17cfb72cef0e480dfd0dea81ed412fb1fb24b05dbeb8dc02
2022-05-27 15:33:51 +00:00
dan
4209d553e7
Fix further issues with ALTER TABLE and triggers that contain UPDATE..FROM statements.
...
FossilOrigin-Name: 53fbc269ddbabc4a97d297e881e5f9cd2bfbcd24af4af1b7cf9db412a3a51813
2022-05-27 15:04:43 +00:00
drh
8d2f661ab8
Omit an unnecessary branch.
...
FossilOrigin-Name: f56473f9cc1b476b3219fe5b70ba2e4b269b20c880b99ba34c744ed893042081
2022-05-27 14:41:48 +00:00
dan
b8bbe3e2db
Fix issues with ALTER TABLE and triggers containing "UPDATE...FROM" statements.
...
FossilOrigin-Name: 2fba0d41b781d226915fa2bf888a7bc640c046ce22670ceb53f62a09f3975259
2022-05-26 19:10:11 +00:00
drh
d88fd53989
Organize the various flag bits of the ExprList_item object into a substructure
...
so that the whole lot can be copied all at once. Faster and smaller code.
FossilOrigin-Name: 5341d4bbe9a943f9cdbbdea829e18f108e98972ebb706396c50fc62fcc6a6328
2022-05-02 20:49:30 +00:00
drh
d44f8b2385
Improved technique for parsing the ON and USING clauses of a join is faster
...
and uses less memory.
FossilOrigin-Name: 158156a3e3d50042cafc75dea3aaaa68b1f2efb9c3d178518ea6e68e32e0d21c
2022-04-07 01:11:13 +00:00
drh
fde3043200
Stronger defenses against corrupt schemas in the ALTER TABLE logic.
...
FossilOrigin-Name: 13fbde28173332522a7ad307c1aad2b83c9aa1fe737583afa2b29f6da4de6370
2022-03-10 21:04:49 +00:00
drh
4e532958c1
Provide sqlite3_error_offset() data for some new errors.
...
FossilOrigin-Name: 1269206db810460e55a52e178ba3332add42a11f66c5f292f8f0d29ccd61a4b8
2022-02-08 13:41:23 +00:00
drh
89e9baa2ca
With the new ALTER TABLE under PRAGMA writable_schema=ON processing, do not
...
ignore non-parser errors such as OOMs.
FossilOrigin-Name: 36653ccef68cf61b6001000a713b06e951cb6fddced6b6a906c3b17d70a8af87
2022-02-06 21:13:59 +00:00
drh
569c10566e
Fix a NULL pointer dereference that can occur after OOM. Problem
...
introduced by check-in [197cbabf1767d060].
FossilOrigin-Name: d4e6b9f0f7567b76760a667a701bca4d6158ade39f9a69d205b583c5a1c0c7f4
2022-02-05 12:05:43 +00:00
drh
10d29c7a94
One more case of disabling errors for ALTER TABLE RENAME when
...
writable_schema=ON.
FossilOrigin-Name: c52d0dd8f4f8fab4c3f33cbd26b4012569e76562282e85654018c836dca7b564
2022-02-04 20:07:24 +00:00
drh
5a80050dd3
Allow ALTER TABLE RENAME COLUMN to proceed even if there are errors in
...
the schema, as long as PRAGMA writable_schema=ON is active.
FossilOrigin-Name: 197cbabf1767d0603928462fb75cf8100f6999f725e0db60d096c7ca20e3da28
2022-02-04 16:43:30 +00:00
drh
0c7d3d399d
Remove many redundant checks for sqlite3.mallocFailed now that any OOM should
...
cause Parse.nErr to be non-zero.
FossilOrigin-Name: 1f7fa46126ea33ed30e93186aff3df51068aeb4be6f79a102bfe8c4e44941d71
2022-01-24 16:47:12 +00:00
drh
c692df2784
Make it so that any Parse object is always linked into the database conenction
...
while it is active. Hence, an OOM will cause Parse.nErr to be set.
FossilOrigin-Name: 6a45d8fe8bfbc11a5b86d25237e1f8bccfb0f22f3dcaf004ba797aeb57b365ec
2022-01-24 15:34:55 +00:00
drh
85b70e009f
Fix ALTER TABLE DROP COLUMN so that it invokes the authorizer. Fix for
...
[forum:/forumpost/fd82b85947541dec|forum post fd82b85947541dec].
FossilOrigin-Name: aca6c61d79215519fb006af19d9011029df68f195a4ce65aff7a1bf4e36efb94
2022-01-18 16:16:32 +00:00
drh
72e30421c8
Fix ALTER TABLE so that it works even when compiled using -DSQLITE_DQS=0.
...
[forum:/forumpost/3c1a00b66fca81fe|Forum post 3c1a00b66fca81fe].
FossilOrigin-Name: 092ad64faa4ae93b1e09ccd52159621d619e6817bcb4573331e9053d97f731fd
2022-01-16 15:15:39 +00:00
drh
54bc63815a
Simplify the sqlite3RunParser() routine by omitting the third parameter.
...
Results in a binary that is about 100 bytes smaller and 1.4M cycles faster.
FossilOrigin-Name: 6fb2a1bb0280d6e31291e3fd06bbcbbb28ef5fb27d3898e2327a50ac738ae1f3
2021-12-31 19:20:42 +00:00
drh
a4a871c286
Show the preferred schema table names in the output of "PRAGMA table_list".
...
FossilOrigin-Name: 9147390d9885a37a62edc1058f313434627f1b59965c890877d2cb119e355c78
2021-11-04 14:04:20 +00:00
drh
ac894af85e
Improved the error message that results when a schema parse fails after
...
ALTER TABLE ADD COLUMN.
FossilOrigin-Name: b007a39dd3a46d13fe06f2a1eeb4e3fd4cad1a77892be6d175b31db1edd6f6a8
2021-11-03 15:59:17 +00:00
drh
61a8ad7cf9
Ensure that ALTER TABLE RENAME recognizes OOM errors while parsing
...
dependent triggers and handles them appropriately.
dbsqlfuzz 53e245eee15d3f19639d773048aa955c30708785.
FossilOrigin-Name: 1d9004cd015073853ce0ca811a68ea5411733eedee993b97a38a42ba139d7590
2021-11-02 17:55:01 +00:00
drh
0fbc19eabd
Remove an incorrect assert() added 4 days ago by check-in [9e2f06b84f994277].
...
Replace it with a testcase() macro.
FossilOrigin-Name: 03dff7196bb00f8e32f574f65745ceafb33ee3fdd169263121342859c362eca5
2021-10-17 10:31:09 +00:00
drh
febf0352cd
Remove a NEVER() macro in ALTER TABLE due to an
...
obscure case of a nested CTE inside an UPDATE within a
trigger. dbsqlfuzz e89174cbfad2d904f06b5e24df0a22510b6a1c1e
FossilOrigin-Name: 9e2f06b84f9942772c30bed2ac71b3296c9adf9661dbf8916d56996253ee8d28
2021-10-13 14:01:44 +00:00
drh
477572b9f1
Protect access to the Expr.y union using nearby assert()s and branches.
...
FossilOrigin-Name: 87e2f5eb436fc448427b0e24fb70f29688796b513b8c7b12f1a21540dae1e56d
2021-10-07 20:46:29 +00:00
drh
78b2fa8610
Protect every access to the Table.u union using a nearby assert() or branch.
...
FossilOrigin-Name: 50e08338aed7ac0cee600098d2ecd4b3b7bfd31a597bb26773badf3d2e2582c8
2021-10-07 12:11:20 +00:00
drh
0019774e78
Add NEVER() macros on branches that are not reachable since [a0df216f7c3f8963].
...
FossilOrigin-Name: 5d771f3554f3c98872cd0c9f12f415e685f26fcb923e3fb7f1a7a760c7a53255
2021-09-29 20:17:19 +00:00
dan
a7f7c1c4af
Fix a potential ALTER TABLE problem with expressions like ( (<sub-select>) IN () ).
...
FossilOrigin-Name: df0d7e36dbf98ab5405d8366ce92fb85176d4388b47a57b0ca1aa1ba6ae5212e
2021-09-28 10:44:54 +00:00
dan
5a69d19eea
Fix a problem in ALTER TABLE causing table or column references in sub-selects ton the RHS of a vector SET clause in an UPDATE within a trigger (i.e. "SET (a,b) = ( (SELECT...), <expr> )").
...
FossilOrigin-Name: 255b0eeed113d83b474efc5bc8fc790a270bc43ee598df4b2c378e1ad2d729b7
2021-09-27 15:44:03 +00:00
drh
b6dad520e5
Add lots of new "const" on internal function parameters. There is opportunity
...
for many more - this is a work in progress.
FossilOrigin-Name: a3c71a673ddd1c299bdae550fb955077b77088329a8ca2895dfb23538b524a8e
2021-09-24 16:14:47 +00:00
drh
e73e957c1e
For ALTER TABLE RENAME COLUMN, do not try to filter virtual tables out of
...
calls to sqlite_rename_column(). Let the function filter them itself.
The WHERE clause can mistakenly let virtual tables through if the
sqlite_schema table is corrupt. The sqlite_rename_column() function must
deal with them. We might as well let it deal with them always.
FossilOrigin-Name: 7c82b43b7cdb825f431d3a778f8b34e32666ccb3b067f1f2533d3b3dcca7bdc9
2021-09-16 13:20:29 +00:00
drh
65b400931d
Store the collating sequence name for each column of a table as an
...
extension to the column name, for an additional savings in the heap space
needed to hold the schema.
FossilOrigin-Name: 832ac4c1ee384be0de72a4bdd55ed87e0f8294e7df5eefcf6b4942db3d85a69e
2021-08-05 15:27:19 +00:00
drh
3edc927ecd
Always prefer built-in SQL functions over app-defined SQL functions within
...
sqlite3NestedParse(). Formerly this was the case for a few calls to
sqlite3NestedParse(), but not for all of them.
FossilOrigin-Name: 164662ef01ad45ca570c44631a1117cccce6e34b00dbba7f422c089e8ffaa932
2021-08-04 13:42:12 +00:00
drh
cf9d36d1b3
Refactor field names in the Column object, zCnName and zCnColl, to make them
...
unique and thus easier to find amid all the other code.
FossilOrigin-Name: 8b781dcaf68e0cf12a844708c82eee00193e340195cbca915d077e4846983bf3
2021-08-02 18:03:43 +00:00
drh
f38524d20d
Refactor the Table object to reduce its memory footprint.
...
FossilOrigin-Name: bbb6759bcf6e01d36dfc787a82a610d359f50aaeac8104b73883a84906d54e1f
2021-08-02 16:41:57 +00:00
drh
79cf2b7120
Refactor the way that DEFAULT expressions are stored on columns, in order
...
to save memory in the common case where the column has no DEFAULT clause.
FossilOrigin-Name: 8646547e54211d44c415663c33775c4268550f8332949c4731a4bb6ec9cc663a
2021-07-31 20:30:41 +00:00
drh
55b8b73e74
Fix ALTER TABLE DROP COLUMN so that it generates valid bytecode even when
...
operating on a corrupt database and using PRAGMA writable_schema=ON.
dbsqlfuzz 5f09e7bcc78b4954d06bf9f2400d7715f48d1fef
FossilOrigin-Name: b65f4f763979ee9e0b943c787609ea22d6f7e01d41dfc1e084ec50a085a3550c
2021-07-22 18:22:51 +00:00
drh
0f91a5352b
Fix issues in the new ADD COLUMN constraint checking. Add preliminary
...
test cases.
FossilOrigin-Name: 48434ad3fa9504c063d812d119bc8f622548fd02b3d478ff247b11474c4ce5db
2021-07-20 08:23:54 +00:00
drh
b4d9b2b537
Demonstration code to show how NOT NULL and CHECK constraints can be
...
verified after an ALTER TABLE ADD COLUMN.
FossilOrigin-Name: 039f540373b03af9e0c87499e5e0423eb093d1d343829282a5ac1de2d600b881
2021-07-20 07:35:07 +00:00
drh
236bcdf3e4
Enhanced defense against integer overflow in ALTER TABLE.
...
FossilOrigin-Name: fb7f094e4e0f03622c2e7fa02483c17671a8899c7ad8aba8659177180f406704
2021-06-16 11:32:54 +00:00
drh
11e489d6cb
Fix typos in testcase() macros from check-in [c09d90eec2a49b94].
...
FossilOrigin-Name: d4d9869c30710914b7ba51221b2c2223a9cf16b913bd6f3866ae747494a116af
2021-06-14 20:49:33 +00:00
dan
ac67f56726
Fix an ALTER TABLE problem with handling infinite loops of CTEs in the database schema.
...
FossilOrigin-Name: c09d90eec2a49b948c60971294d146db5c82438855cd3fa48ddc3d2e6b44c26c
2021-06-14 20:08:48 +00:00
drh
24ce9446a8
This is an alternative approach to the use-after-free problem fixed
...
by [193b14a58e378ab3], saved here for historical reference.
FossilOrigin-Name: 6796b7a2485eca279db9d777595a886bc0d1dd7ec9551e1797e0032ef5493559
2021-06-12 17:45:32 +00:00
drh
35e6cd09f2
Reapply two recent ALTER TABLE error checks that turned out to be necessary
...
after all. dbsqlfuzz fc5a9deefda00dda914748985155a6d4c44174e5.
FossilOrigin-Name: 230fedd923c87741d20caf55f29e8464cc6df344536f9b89331e0a0059a926f7
2021-06-11 13:18:56 +00:00
dan
d03d3a9b74
Fix a crash in new ALTER TABLE code that could follow an OOM.
...
FossilOrigin-Name: 6f1f2a0a9cd75ca43b81cc325296b843ccefe6f8040da8f2e873f49928423f10
2021-06-11 12:14:58 +00:00
dan
6065686d9c
Remove an unreachable branch added by the previous commit.
...
FossilOrigin-Name: 852ee0e91ceae090157c4ab2805530f5d7985a490ce77f54d7b148f56e466f79
2021-06-11 12:02:00 +00:00