Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add the --valid-sql option to the optfuzz test program. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
a8dfeec73b069f2dd7371c2792b36f15 |
User & Date: | drh 2018-03-22 11:28:31.684 |
Context
2018-03-22
| ||
12:00 | Add the left join strength reduction optimization. Enhance the push-down optimization so that it works with many LEFT JOINs. (check-in: dd568c27b1 user: drh tags: trunk) | |
11:28 | Add the --valid-sql option to the optfuzz test program. (check-in: a8dfeec73b user: drh tags: trunk) | |
2018-03-21
| ||
20:21 | Get the optfuzz program working. (check-in: 21346bbce9 user: drh tags: trunk) | |
Changes
Changes to test/optfuzz.c.
︙ | ︙ | |||
203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 | int main(int argc, char **argv){ int nIn = 0; /* Number of input files */ char **azIn = 0; /* Names of input files */ sqlite3 *dbOut = 0; /* Database to hold results */ sqlite3 *dbRun = 0; /* Database used for tests */ int bTrace = 0; /* Show query results */ int nRow, nStmt; /* Number of rows and statements */ int i, rc; for(i=1; i<argc; i++){ const char *z = argv[i]; if( z[0]=='-' && z[1]=='-' ) z++; if( strcmp(z,"-help")==0 ){ printf("Usage: %s [OPTIONS] FILENAME ...\n", argv[0]); printf("Options:\n"); printf(" --help Show his message\n"); printf(" --output-trace Show each line of SQL output\n"); return 0; } else if( strcmp(z,"-output-trace")==0 ){ bTrace = 1; } else if( z[0]=='-' ){ printf("unknown option \"%s\". Use --help for details\n", argv[i]); return 1; } else { nIn++; | > > > > > | 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 | int main(int argc, char **argv){ int nIn = 0; /* Number of input files */ char **azIn = 0; /* Names of input files */ sqlite3 *dbOut = 0; /* Database to hold results */ sqlite3 *dbRun = 0; /* Database used for tests */ int bTrace = 0; /* Show query results */ int bShowValid = 0; /* Just list inputs that are valid SQL */ int nRow, nStmt; /* Number of rows and statements */ int i, rc; for(i=1; i<argc; i++){ const char *z = argv[i]; if( z[0]=='-' && z[1]=='-' ) z++; if( strcmp(z,"-help")==0 ){ printf("Usage: %s [OPTIONS] FILENAME ...\n", argv[0]); printf("Options:\n"); printf(" --help Show his message\n"); printf(" --output-trace Show each line of SQL output\n"); printf(" --valid-sql List FILEs that are valid SQL\n"); return 0; } else if( strcmp(z,"-output-trace")==0 ){ bTrace = 1; } else if( strcmp(z,"-valid-sql")==0 ){ bShowValid = 1; } else if( z[0]=='-' ){ printf("unknown option \"%s\". Use --help for details\n", argv[i]); return 1; } else { nIn++; |
︙ | ︙ | |||
241 242 243 244 245 246 247 248 249 250 251 252 253 254 | sqlite3_open(":memory:", &dbOut); sqlite3_open(":memory:", &dbRun); sqlite3_deserialize(dbRun, "main", data001, sizeof(data001), sizeof(data001), SQLITE_DESERIALIZE_READONLY); for(i=0; i<nIn; i++){ char *zSql = readFile(azIn[i], 0); sqlite3_stmt *pCk; sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS, dbRun, 0); if( bTrace ) printf("%s: Optimized\n", azIn[i]); rc = optfuzz_exec(dbRun, zSql, dbOut, "opt", &nStmt, &nRow, bTrace); if( rc ){ printf("%s: optimized run failed: %s\n", azIn[i], sqlite3_errmsg(dbRun)); }else{ | > > > > > > > | 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 | sqlite3_open(":memory:", &dbOut); sqlite3_open(":memory:", &dbRun); sqlite3_deserialize(dbRun, "main", data001, sizeof(data001), sizeof(data001), SQLITE_DESERIALIZE_READONLY); for(i=0; i<nIn; i++){ char *zSql = readFile(azIn[i], 0); sqlite3_stmt *pCk; sqlite3_exec(dbRun, "ROLLBACK", 0, 0, 0); if( bShowValid ){ rc = sqlite3_exec(dbRun, zSql, 0, 0, 0); if( rc==SQLITE_OK ) printf("%s\n", azIn[i]); sqlite3_free(zSql); continue; } sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS, dbRun, 0); if( bTrace ) printf("%s: Optimized\n", azIn[i]); rc = optfuzz_exec(dbRun, zSql, dbOut, "opt", &nStmt, &nRow, bTrace); if( rc ){ printf("%s: optimized run failed: %s\n", azIn[i], sqlite3_errmsg(dbRun)); }else{ |
︙ | ︙ |