1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-11 01:42:22 +03:00

Add the capability to track the maximum depth of the LALR(1) parser stack

so that critical applications can check to see if they are getting close
to limits. (CVS 5481)

FossilOrigin-Name: ef0250f3dc769a4acd534f31fa06d90922d4145b
This commit is contained in:
drh
2008-07-25 15:39:03 +00:00
parent 1bb14aca96
commit ec424a5be6
10 changed files with 70 additions and 23 deletions

View File

@@ -15,7 +15,7 @@
** individual tokens and sends those tokens one-by-one over to the
** parser for analysis.
**
** $Id: tokenize.c,v 1.146 2008/07/08 19:34:07 drh Exp $
** $Id: tokenize.c,v 1.147 2008/07/25 15:39:04 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@@ -455,6 +455,11 @@ abort_parse:
}
sqlite3Parser(pEngine, 0, pParse->sLastToken, pParse);
}
#ifdef YYTRACKMAXSTACKDEPTH
sqlite3StatusSet(SQLITE_STATUS_PARSER_STACK,
sqlite3ParserStackPeak(pEngine)
);
#endif /* YYDEBUG */
sqlite3ParserFree(pEngine, sqlite3_free);
if( db->mallocFailed ){
pParse->rc = SQLITE_NOMEM;