mirror of
https://github.com/sqlite/sqlite.git
synced 2026-10-23 21:49:02 +03:00
Limit the number of statements in a trigger to 65000.
FossilOrigin-Name: ed8d4fd91e6db4da342ac77282a15a95977e91db81f5a3fd204e6733d1eb262c
This commit is contained in:
13
manifest
13
manifest
@@ -1,5 +1,5 @@
|
||||
C Declare\sfts5\sstructure\srecords\scorrupt\sif\sthey\scontain\sa\spage\snumber\sgreater\sthan\s0x7FFFFF00.
|
||||
D 2026-08-18T00:30:58.486
|
||||
C Limit\sthe\snumber\sof\sstatements\sin\sa\strigger\sto\s65000.
|
||||
D 2026-08-18T09:23:44.292
|
||||
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
@@ -801,7 +801,7 @@ F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
|
||||
F src/threads.c 85d8b9f05f78211c61e3739ab5db761d7118766d1916ae7f2764735106bc4e13
|
||||
F src/tokenize.c e9d52d9f7374d82dadcd11726bea8a597d43709d6672704f3f0375bf1d726912
|
||||
F src/treeview.c feaa59f14db4f7b5aacca9c5ad5aeb562c1f98262c1ffd74371f4186ade91fc5
|
||||
F src/trigger.c 5028874dd1f4fd3085bacd55c30114b5ad651525508656f65af09adf227181d5
|
||||
F src/trigger.c 45f58ec58ab21753d9c681f3c0ab2c691f4b5116552ff71be76ac1f33652bd56
|
||||
F src/update.c 3e5e7ff66fa19ebe4d1b113d480639a24cc1175adbefabbd1a948a07f28e37cf
|
||||
F src/upsert.c dd9f0fcccbfb4f20e1026a21a7254ba3f2c08e9cfa92affaff5b5ec3b00ea549
|
||||
F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165
|
||||
@@ -2206,9 +2206,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
|
||||
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
|
||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
|
||||
P 9a367c177f4cf7b065e0361ef848ffb2eb4956ef94084f440bc07958ef076bf5
|
||||
Q +c97a940ceb4c21adc68123e084c8b8b688bcd309579a82951b2e160dc7bacf44
|
||||
R a42968ea2a15288b2f7cde30db8fc6c5
|
||||
P 14be580d240496f1615dad42c5442443c0629f3aff6ba8ac77485992d5e8d625
|
||||
R 545810402ddce0dd033c371b0fa28b76
|
||||
U drh
|
||||
Z 7fb5b1b193d7fb73656011a0d4d273b3
|
||||
Z 71813247949fb2820f27e78535db2809
|
||||
# Remove this line to create a well-formed Fossil manifest.
|
||||
|
||||
@@ -1 +1 @@
|
||||
14be580d240496f1615dad42c5442443c0629f3aff6ba8ac77485992d5e8d625
|
||||
ed8d4fd91e6db4da342ac77282a15a95977e91db81f5a3fd204e6733d1eb262c
|
||||
|
||||
@@ -331,6 +331,7 @@ void sqlite3FinishTrigger(
|
||||
DbFixer sFix; /* Fixer object */
|
||||
int iDb; /* Database containing the trigger */
|
||||
Token nameToken; /* Trigger name for error reporting */
|
||||
u64 n; /* Number of steps */
|
||||
|
||||
pParse->pNewTrigger = 0;
|
||||
if( NEVER(pParse->nErr) || !pTrig ) goto triggerfinish_cleanup;
|
||||
@@ -338,10 +339,15 @@ void sqlite3FinishTrigger(
|
||||
iDb = sqlite3SchemaToIndex(pParse->db, pTrig->pSchema);
|
||||
assert( iDb>=00 && iDb<db->nDb );
|
||||
pTrig->step_list = pStepList;
|
||||
while( pStepList ){
|
||||
for(n=0; pStepList; n++){
|
||||
pStepList->pTrig = pTrig;
|
||||
pStepList = pStepList->pNext;
|
||||
}
|
||||
if( n>65000 ){
|
||||
/* ^^^^^---- Backported value of the default SQLITE_LIMIT_TRIGGER_STEPS */
|
||||
sqlite3ErrorMsg(pParse, "trigger \"%w\" contains too many steps", zName);
|
||||
goto triggerfinish_cleanup;
|
||||
}
|
||||
sqlite3TokenInit(&nameToken, pTrig->zName);
|
||||
sqlite3FixInit(&sFix, pParse, iDb, "trigger", &nameToken);
|
||||
if( sqlite3FixTriggerStep(&sFix, pTrig->step_list)
|
||||
|
||||
Reference in New Issue
Block a user