mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-11 01:42:22 +03:00
Add SQLITE_TESTCTRL_FK_NO_ACTION.
FossilOrigin-Name: 563cf5f782cdddbbd7f727c65118edfd109aeb731c8aaf0d6ee5ee7030e61ea9
This commit is contained in:
18
src/main.c
18
src/main.c
@@ -4170,6 +4170,24 @@ int sqlite3_test_control(int op, ...){
|
||||
}
|
||||
#endif
|
||||
|
||||
/* sqlite3_test_control(SQLITE_TESTCTRL_FK_NO_ACTION, sqlite3 *db, int b);
|
||||
**
|
||||
** If b is true, then activate the SQLITE_FkNoAction setting. If b is
|
||||
** false then clearn that setting. If the SQLITE_FkNoAction setting is
|
||||
** abled, all foreign key ON DELETE and ON UPDATE actions behave as if
|
||||
** they were NO ACTION, regardless of how they are defined.
|
||||
*/
|
||||
case SQLITE_TESTCTRL_FK_NO_ACTION: {
|
||||
sqlite3 *db = va_arg(ap, sqlite3*);
|
||||
int b = va_arg(ap, int);
|
||||
if( b ){
|
||||
db->flags |= SQLITE_FkNoAction;
|
||||
}else{
|
||||
db->flags &= ~SQLITE_FkNoAction;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
** sqlite3_test_control(BITVEC_TEST, size, program)
|
||||
**
|
||||
|
||||
@@ -10911,6 +10911,7 @@ static int do_meta_command(char *zLine, ShellState *p){
|
||||
{"byteorder", SQLITE_TESTCTRL_BYTEORDER, 0, "" },
|
||||
{"extra_schema_checks",SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS,0,"BOOLEAN" },
|
||||
/*{"fault_install", SQLITE_TESTCTRL_FAULT_INSTALL, 1,"" },*/
|
||||
{"fk_no_action", SQLITE_TESTCTRL_FK_NO_ACTION, 0, "BOOLEAN" },
|
||||
{"imposter", SQLITE_TESTCTRL_IMPOSTER,1,"SCHEMA ON/OFF ROOTPAGE"},
|
||||
{"internal_functions", SQLITE_TESTCTRL_INTERNAL_FUNCTIONS,0,"" },
|
||||
{"localtime_fault", SQLITE_TESTCTRL_LOCALTIME_FAULT,0,"BOOLEAN" },
|
||||
@@ -10981,6 +10982,7 @@ static int do_meta_command(char *zLine, ShellState *p){
|
||||
|
||||
/* sqlite3_test_control(int, db, int) */
|
||||
case SQLITE_TESTCTRL_OPTIMIZATIONS:
|
||||
case SQLITE_TESTCTRL_FK_NO_ACTION:
|
||||
if( nArg==3 ){
|
||||
unsigned int opt = (unsigned int)strtol(azArg[2], 0, 0);
|
||||
rc2 = sqlite3_test_control(testctrl, p->db, opt);
|
||||
|
||||
@@ -8245,6 +8245,7 @@ int sqlite3_test_control(int op, ...);
|
||||
#define SQLITE_TESTCTRL_PRNG_SAVE 5
|
||||
#define SQLITE_TESTCTRL_PRNG_RESTORE 6
|
||||
#define SQLITE_TESTCTRL_PRNG_RESET 7 /* NOT USED */
|
||||
#define SQLITE_TESTCTRL_FK_NO_ACTION 7
|
||||
#define SQLITE_TESTCTRL_BITVEC_TEST 8
|
||||
#define SQLITE_TESTCTRL_FAULT_INSTALL 9
|
||||
#define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS 10
|
||||
|
||||
Reference in New Issue
Block a user