SQLite

Check-in [d7ec7b5970]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Help the parser run faster by avoiding the "explain ::= ." production.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: d7ec7b5970df9e542401f8299e098a5039d1875e2e3383dad06a0ec998589b6e
User & Date: drh 2018-04-11 17:10:54.632
Context
2018-04-13
16:23
Remove an always-true branch from the preupdate hook logic. (check-in: 0ab4518811 user: drh tags: trunk)
2018-04-12
12:25
Merge changes from trunk. (check-in: 9f6f11805e user: drh tags: upsert)
2018-04-11
17:10
Help the parser run faster by avoiding the "explain ::= ." production. (check-in: d7ec7b5970 user: drh tags: trunk)
16:04
Prohibit bound parameters in the arguments to table-valued functions within a trigger. Problem discovered by OSSFuzz. (check-in: b717820915 user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/parse.y.
110
111
112
113
114
115
116
117
118
119

120
121
122
123
124
125
126
} // end %include

// Input is a single SQL command
input ::= cmdlist.
cmdlist ::= cmdlist ecmd.
cmdlist ::= ecmd.
ecmd ::= SEMI.
ecmd ::= explain cmdx SEMI.
explain ::= .
%ifndef SQLITE_OMIT_EXPLAIN

explain ::= EXPLAIN.              { pParse->explain = 1; }
explain ::= EXPLAIN QUERY PLAN.   { pParse->explain = 2; }
%endif  SQLITE_OMIT_EXPLAIN
cmdx ::= cmd.           { sqlite3FinishCoding(pParse); }

///////////////////// Begin and end transactions. ////////////////////////////
//







|
<

>







110
111
112
113
114
115
116
117

118
119
120
121
122
123
124
125
126
} // end %include

// Input is a single SQL command
input ::= cmdlist.
cmdlist ::= cmdlist ecmd.
cmdlist ::= ecmd.
ecmd ::= SEMI.
ecmd ::= cmdx SEMI.

%ifndef SQLITE_OMIT_EXPLAIN
ecmd ::= explain cmdx.
explain ::= EXPLAIN.              { pParse->explain = 1; }
explain ::= EXPLAIN QUERY PLAN.   { pParse->explain = 2; }
%endif  SQLITE_OMIT_EXPLAIN
cmdx ::= cmd.           { sqlite3FinishCoding(pParse); }

///////////////////// Begin and end transactions. ////////////////////////////
//