Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix .import -skip issue reported at https://sqlite.org/forum/forumpost/4c0816c24fc9d16f?t=h |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
3aadbe17edc1efc7fa6c9600de84e232 |
User & Date: | larrybr 2021-10-28 19:49:23 |
Context
2021-10-29
| ||
09:59 | Fix the OP_Transaction opcode so that if an error other than SQLITE_SCHEMA occurs first, the original error is not overwritten by SQLITE_SCHEMA. dbsqlfuzz 85bf7e262017c6c7bddb03ff6d8541511985d36c. (check-in: 5374226d user: drh tags: trunk) | |
2021-10-28
| ||
19:49 | Fix .import -skip issue reported at https://sqlite.org/forum/forumpost/4c0816c24fc9d16f?t=h (check-in: 3aadbe17 user: larrybr tags: trunk) | |
12:07 | Minor changes to make it easier for static analyzers to reason about the code. (check-in: ba4104aa user: drh tags: trunk) | |
Changes
Changes to src/shell.c.in.
︙ | ︙ | |||
8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 | char *(SQLITE_CDECL *xRead)(ImportCtx*); /* Func to read one value */ int eVerbose = 0; /* Larger for more console output */ int nSkip = 0; /* Initial lines to skip */ int useOutputMode = 1; /* Use output mode to determine separators */ failIfSafeMode(p, "cannot run .import in safe mode"); memset(&sCtx, 0, sizeof(sCtx)); if( p->mode==MODE_Ascii ){ xRead = ascii_read_one_field; }else{ xRead = csv_read_one_field; } for(i=1; i<nArg; i++){ char *z = azArg[i]; | > > > > > | 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 | char *(SQLITE_CDECL *xRead)(ImportCtx*); /* Func to read one value */ int eVerbose = 0; /* Larger for more console output */ int nSkip = 0; /* Initial lines to skip */ int useOutputMode = 1; /* Use output mode to determine separators */ failIfSafeMode(p, "cannot run .import in safe mode"); memset(&sCtx, 0, sizeof(sCtx)); sCtx.z = sqlite3_malloc64(120); if( sCtx.z==0 ){ import_cleanup(&sCtx); shell_out_of_memory(); } if( p->mode==MODE_Ascii ){ xRead = ascii_read_one_field; }else{ xRead = csv_read_one_field; } for(i=1; i<nArg; i++){ char *z = azArg[i]; |
︙ | ︙ |
Changes to test/shell5.test.
︙ | ︙ | |||
451 452 453 454 455 456 457 458 459 | catchcmd test.db [string trim { .mode csv CREATE TABLE t7(a, b, c); .import shell5.csv t7 }] db eval { SELECT * FROM t7 ORDER BY a } } {1 2 3 4 5 {} 6 7 8} finish_test | > > > > > > > > > > > > > > > | 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 | catchcmd test.db [string trim { .mode csv CREATE TABLE t7(a, b, c); .import shell5.csv t7 }] db eval { SELECT * FROM t7 ORDER BY a } } {1 2 3 4 5 {} 6 7 8} do_test shell5-4.3 { forcedelete shell5.csv set fd [open shell5.csv w] puts $fd ",," puts $fd "1,2,3" close $fd catchcmd test.db [string trim { .mode csv CREATE TABLE t8(a, b, c); .import -skip 1 shell5.csv t8 .nullvalue # }] db eval { SELECT * FROM t8 } } {1 2 3} finish_test |