Fix the pragma_foreign_key_check virtual table so that it accepts arguments.
FossilOrigin-Name: 07f849dee3d245ecf80ba3c3ce8dfc630e71ddb1e9c0bcc1f08cee22001fcb07
This commit is contained in:
parent
ec1650a239
commit
4b849b0b09
14
manifest
14
manifest
@ -1,6 +1,6 @@
|
||||
B 7a876209a678a34c198b54ceef9e3c041f128a14dc73357f6a57cadadaa6cf7b
|
||||
C Fix\sa\sproblem\swith\s"PRAGMA\sforeign_key_check"\swhere\sif\sa\stable\sin\sone\nschema\sappears\sto\shave\sforeign\skey\sconstraints\sagainst\sanother\stable\sin\na\sdifferent\sschema,\sthe\spragma\swill\stry\sto\scheck\sthe\sconstraints\seven\sthough\nthey\sdo\snot\sapply\sbecause\sthey\sare\sin\sdifferent\sschemas.
|
||||
D 2020-07-03T12:15:59.796
|
||||
C Fix\sthe\spragma_foreign_key_check\svirtual\stable\sso\sthat\sit\saccepts\sarguments.
|
||||
D 2020-07-03T12:32:04.573
|
||||
F Makefile.in 19374a5db06c3199ec1bab71ab74a103d8abf21053c05e9389255dc58083f806
|
||||
F Makefile.msc 48f5a3fc32672c09ad73795749f6253e406a31526935fbbffd8f021108d54574
|
||||
F autoconf/Makefile.am a8d1d24affe52ebf8d7ddcf91aa973fa0316618ab95bb68c87cabf8faf527dc8
|
||||
@ -15,6 +15,7 @@ F src/btreeInt.h 19267385aa3bc00067d48e0e4ba83ae82dc08b0c15a3b3df20ea653cb462b5b
|
||||
F src/build.c ba1bbe563a3dc02d5fed20537603181e5289c13ea30ae5e775f552e7557adbfa
|
||||
F src/expr.c a3ab84399b3415f66d2d0c25f5bcd98ef465c0c07ea1f19bf2a418b1c8fcad74
|
||||
F src/pragma.c 1c6a435c92e913a65be9875c14bd2976fa1bf05b76a54785378c32b04fa34a00
|
||||
F src/pragma.h 8dc78ab7e9ec6ce3ded8332810a2066f1ef6267e2e03cd7356ee00276125c6cf
|
||||
F src/resolve.c 79cee37182fea66703f90365b8b0a646ed7e9bfa9238b91fa90dfc74258b940e
|
||||
F src/select.c 860daa05592ed1b38f6266f067fa020b539548ab929aa60fa59e7681e7f3f8cb
|
||||
F src/shell.c.in d663152487d4bfddea0f6d21ebc2ed51575d22657a02c6828afd344bbd4651af
|
||||
@ -27,18 +28,19 @@ F test/altertab.test b8b2104212e8ea87c75c3cbe3cb78ed7236a6c828ee2e59ed09d3dbe981
|
||||
F test/busy2.test 415364312743992641f9bf679c84918327296067f85a5d00012b339dc35acbd7
|
||||
F test/decimal.test 12739a01bdba4c4d79f95b323e6b67b9fad1ab6ffb56116bd2b9c81a5b19e1d9
|
||||
F test/filter1.test 6c483ecf7886c8843a8612c021aa23f33c581f584151f251842b3a3592c95ac8
|
||||
F test/fkey5.test bb2261477c66b2631391f5c98cfae1bc87c65fad02573eff122290e808b057ea
|
||||
F test/fkey5.test 321fd41e8754389526b2b8e8769348dc9ff23a65d4d48b19c27df17459e82ec5
|
||||
F test/fts3corrupt4.test 35e88f7708868a67598f1f6d3666774f6c7b34c91e3b74bd2965030fc70fb928
|
||||
F test/fuzzdata8.db 0ae860b36b79fd41cafddc9e6602358b2d5c331cf200283221e659f86e196c0c
|
||||
F test/gencol1.test b05e6c5edb9b10d48efb634ed07342441bddc89d225043e17095c36e567521a0
|
||||
F test/ieee754.test b0945d12be7d255f3dfa18e2511b17ca37e0edd2b803231c52d05b86c04ab26e
|
||||
F test/speedtest1.c a8b5afe72d78ff365012aba48d3f0c579e957facb7630f765f58a6ae4656d20d
|
||||
F tool/mkautoconfamal.sh f62353eb6c06ab264da027fd4507d09914433dbdcab9cb011cdc18016f1ab3b8
|
||||
F tool/mkpragmatab.tcl ae5585ae76ca26e4d6ccd5ea9cdebaf5efefb318bf989497a0e846cd711d9ab1
|
||||
F tool/mksqlite3c.tcl f4ef476510eca4124c874a72029f1e01bc54a896b1724e8f9eef0d8bfae0e84c
|
||||
F tool/mksqlite3h.tcl 1f5e4a1dbbbc43c83cc6e74fe32c6c620502240b66c7c0f33a51378e78fc4edf
|
||||
F tool/showlocks.c 9cc5e66d4ebbf2d194f39db2527ece92077e86ae627ddd233ee48e16e8142564
|
||||
F tool/speed-check.sh 615cbdf50f1409ef3bbf9f682e396df80f49d97ed93ed3e61c8e91fae6afde58
|
||||
P 6ffd17b668a8ad561c37e89063afb6e7f8425e557e93025b7527fe3656585d77
|
||||
R 5351216f77b38761a595d358da98b9c2
|
||||
P 81bc4b65ae2a68128b0be75a7a3d4f47f05cc588ff130ba56366ab9b16289228
|
||||
R 959518f214ac8fa04f9479823db88ae3
|
||||
U drh
|
||||
Z 5a3fead9e5239b45d904ac903a47c04e
|
||||
Z df6c0f239cac29280d3b9659da8bad1e
|
||||
|
@ -1 +1 @@
|
||||
81bc4b65ae2a68128b0be75a7a3d4f47f05cc588ff130ba56366ab9b16289228
|
||||
07f849dee3d245ecf80ba3c3ce8dfc630e71ddb1e9c0bcc1f08cee22001fcb07
|
@ -281,7 +281,7 @@ static const PragmaName aPragmaName[] = {
|
||||
#if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
|
||||
{/* zName: */ "foreign_key_check",
|
||||
/* ePragTyp: */ PragTyp_FOREIGN_KEY_CHECK,
|
||||
/* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result0,
|
||||
/* ePragFlg: */ PragFlg_NeedSchema|PragFlg_Result0|PragFlg_Result1|PragFlg_SchemaOpt,
|
||||
/* ColNames: */ 37, 4,
|
||||
/* iArg: */ 0 },
|
||||
#endif
|
||||
|
@ -450,5 +450,39 @@ do_execsql_test 12.1 {
|
||||
PRAGMA foreign_key_check=t1;
|
||||
} {t1 9 t2 0}
|
||||
|
||||
# 2020-07-03: the pragma_foreign_key_check virtual table should
|
||||
# accept arguments for the table name and/or schema name.
|
||||
#
|
||||
do_execsql_test 13.0 {
|
||||
SELECT *, 'x' FROM pragma_foreign_key_check('t1');
|
||||
} {t1 9 t2 0 x}
|
||||
do_catchsql_test 13.1 {
|
||||
SELECT *, 'x' FROM pragma_foreign_key_check('t1','main');
|
||||
} {1 {no such table: main.t1}}
|
||||
do_execsql_test 13.2 {
|
||||
SELECT *, 'x' FROM pragma_foreign_key_check('t1','aux');
|
||||
} {t1 9 t2 0 x}
|
||||
|
||||
reset_db
|
||||
do_execsql_test 13.10 {
|
||||
PRAGMA foreign_keys=OFF;
|
||||
CREATE TABLE t1(a INTEGER PRIMARY KEY, b TEXT REFERENCES t2);
|
||||
CREATE TABLE t2(x TEXT PRIMARY KEY, y INT);
|
||||
CREATE TABLE t3(w TEXT, z INT REFERENCES t1);
|
||||
INSERT INTO t2 VALUES('abc',11),('def',22),('xyz',99);
|
||||
INSERT INTO t1 VALUES(5,'abc'),(7,'xyz'),(9,'oops');
|
||||
INSERT INTO t3 VALUES(11,7),(22,19);
|
||||
} {}
|
||||
do_execsql_test 13.11 {
|
||||
SELECT x.*, '|'
|
||||
FROM sqlite_schema, pragma_foreign_key_check(name) AS x
|
||||
WHERE type='table'
|
||||
ORDER BY x."table";
|
||||
} {t1 9 t2 0 | t3 2 t1 0 |}
|
||||
do_execsql_test 13.12 {
|
||||
SELECT *, '|'
|
||||
FROM pragma_foreign_key_check AS x
|
||||
ORDER BY x."table";
|
||||
} {t1 9 t2 0 | t3 2 t1 0 |}
|
||||
|
||||
finish_test
|
||||
|
@ -289,7 +289,7 @@ set pragma_def {
|
||||
IF: !defined(SQLITE_OMIT_FOREIGN_KEY)
|
||||
|
||||
NAME: foreign_key_check
|
||||
FLAG: NeedSchema Result0
|
||||
FLAG: NeedSchema Result0 Result1 SchemaOpt
|
||||
COLS: table rowid parent fkid
|
||||
IF: !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user