Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix the parse.sql output file so that it is readable into a database where foreign keys are enforced. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
3a82c554c3bde4640df6865686f8f70e |
User & Date: | drh 2019-11-29 12:51:00.835 |
Context
2019-11-29
| ||
13:01 | Add comments in the parse.sql file to help demonstrate how rules are encoded. (check-in: 2c4f714892 user: drh tags: trunk) | |
12:51 | Fix the parse.sql output file so that it is readable into a database where foreign keys are enforced. (check-in: 3a82c554c3 user: drh tags: trunk) | |
2019-11-27
| ||
20:40 | More details on the comment justifying the aleged data race in the WAL-mode checkpoint logic. (check-in: 0fab65c79f user: drh tags: trunk) | |
Changes
Changes to tool/lemon.c.
︙ | ︙ | |||
4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 | sql = file_open(lemp, ".sql", "wb"); if( sql==0 ){ fclose(in); fclose(out); return; } fprintf(sql, "CREATE TABLE symbol(\n" " id INTEGER PRIMARY KEY,\n" " name TEXT NOT NULL,\n" " isTerminal BOOLEAN NOT NULL,\n" | > | > | 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 | sql = file_open(lemp, ".sql", "wb"); if( sql==0 ){ fclose(in); fclose(out); return; } fprintf(sql, "BEGIN;\n" "CREATE TABLE symbol(\n" " id INTEGER PRIMARY KEY,\n" " name TEXT NOT NULL,\n" " isTerminal BOOLEAN NOT NULL,\n" " fallback INTEGER REFERENCES symbol" " DEFERRABLE INITIALLY DEFERRED\n" ");\n" ); for(i=0; i<lemp->nsymbol; i++){ fprintf(sql, "INSERT INTO symbol(id,name,isTerminal,fallback)" "VALUES(%d,'%s',%s", i, lemp->symbols[i]->name, |
︙ | ︙ | |||
4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 | "INSERT INTO rulerhs(ruleid,pos,sym)VALUES(%d,%d,%d);\n", i,j,sp->subsym[k]->index ); } } } } } lineno = 1; tplt_xfer(lemp->name,in,out,&lineno); /* Generate the include code, if any */ tplt_print(out,lemp,lemp->include,&lineno); if( mhflag ){ | > | 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 | "INSERT INTO rulerhs(ruleid,pos,sym)VALUES(%d,%d,%d);\n", i,j,sp->subsym[k]->index ); } } } } fprintf(sql, "COMMIT;\n"); } lineno = 1; tplt_xfer(lemp->name,in,out,&lineno); /* Generate the include code, if any */ tplt_print(out,lemp,lemp->include,&lineno); if( mhflag ){ |
︙ | ︙ |