Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a parsing issue associated with a corrupt sqlite_master table. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | corrupt-schema |
Files: | files | file ages | folders |
SHA3-256: |
5f779ff6b48ec97efacd49b1715b7e52 |
User & Date: | mistachkin 2018-03-16 19:10:05.855 |
Context
2018-03-16
| ||
20:15 | Better error message text when the schema is corrupted by a CREATE TABLE AS entry. (Closed-Leaf check-in: e13993cf83 user: drh tags: corrupt-schema) | |
19:10 | Fix a parsing issue associated with a corrupt sqlite_master table. (check-in: 5f779ff6b4 user: mistachkin tags: corrupt-schema) | |
07:48 | Fix a problem in test script thread001.test causing a spurious "-1 files were left open" error when run separately. (check-in: 1774f1c3ba user: dan tags: trunk) | |
Changes
Changes to src/parse.y.
︙ | ︙ | |||
165 166 167 168 169 170 171 | temp(A) ::= TEMP. {A = 1;} %endif SQLITE_OMIT_TEMPDB temp(A) ::= . {A = 0;} create_table_args ::= LP columnlist conslist_opt(X) RP(E) table_options(F). { sqlite3EndTable(pParse,&X,&E,F,0); } create_table_args ::= AS select(S). { | > | | > > > > | 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | temp(A) ::= TEMP. {A = 1;} %endif SQLITE_OMIT_TEMPDB temp(A) ::= . {A = 0;} create_table_args ::= LP columnlist conslist_opt(X) RP(E) table_options(F). { sqlite3EndTable(pParse,&X,&E,F,0); } create_table_args ::= AS select(S). { if( pParse->db->init.busy==0 ){ sqlite3EndTable(pParse,0,0,0,S); sqlite3SelectDelete(pParse->db, S); }else{ sqlite3SelectDelete(pParse->db, S); sqlite3ErrorMsg(pParse, "corrupt schema"); } } %type table_options {int} table_options(A) ::= . {A = 0;} table_options(A) ::= WITHOUT nm(X). { if( X.n==5 && sqlite3_strnicmp(X.z,"rowid",5)==0 ){ A = TF_WithoutRowid | TF_NoVisibleRowid; }else{ |
︙ | ︙ |