Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | For the shell '.import' command, make sure the last column value present is considered before NULL filling any missing ones. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
9c5bcad1f7d04c16f3ec7fc483280059 |
User & Date: | mistachkin 2015-02-12 22:45:25 |
Context
2015-02-13
| ||
12:05 | Make sure the prepared statement auto-resets on extended error codes of SQLITE_BUSY and SQLITE_LOCKED even when compiled using SQLITE_OMIT_AUTORESET. (check-in: 3c6ca414 user: drh tags: trunk) | |
2015-02-12
| ||
22:45 | For the shell '.import' command, make sure the last column value present is considered before NULL filling any missing ones. (check-in: 9c5bcad1 user: mistachkin tags: trunk) | |
2015-02-09
| ||
18:28 | Propagate COLLATE operators upward through function calls and CASE operations. And do not flatten an aggregate subquery into a query that uses other subqueries. Fixes for tickets [ca0d20b6cdddec5] and [2f7170d73bf9], respectively. (check-in: 24e78b8d user: drh tags: trunk) | |
Changes
Changes to src/shell.c.
︙ | ︙ | |||
3017 3018 3019 3020 3021 3022 3023 | */ if( p->mode==MODE_Ascii && (z==0 || z[0]==0) && i==0 ) break; sqlite3_bind_text(pStmt, i+1, z, -1, SQLITE_TRANSIENT); if( i<nCol-1 && sCtx.cTerm!=sCtx.cColSep ){ fprintf(stderr, "%s:%d: expected %d columns but found %d - " "filling the rest with NULL\n", sCtx.zFile, startLine, nCol, i+1); | | | 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 | */ if( p->mode==MODE_Ascii && (z==0 || z[0]==0) && i==0 ) break; sqlite3_bind_text(pStmt, i+1, z, -1, SQLITE_TRANSIENT); if( i<nCol-1 && sCtx.cTerm!=sCtx.cColSep ){ fprintf(stderr, "%s:%d: expected %d columns but found %d - " "filling the rest with NULL\n", sCtx.zFile, startLine, nCol, i+1); i += 2; while( i<=nCol ){ sqlite3_bind_null(pStmt, i); i++; } } } if( sCtx.cTerm==sCtx.cColSep ){ do{ xRead(&sCtx); i++; |
︙ | ︙ |
Changes to test/shell5.test.
︙ | ︙ | |||
401 402 403 404 405 406 407 408 | SELECT * FROM t5; }] # Handle platform end-of-line differences regsub -all {[\n\r]?\n} $x <EOL> x set x } "0 \{\"test 1\"\x1F,test 2<EOL>\x1Etest 3\x1Ftest 4<EOL>\x1E\}" finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 | SELECT * FROM t5; }] # Handle platform end-of-line differences regsub -all {[\n\r]?\n} $x <EOL> x set x } "0 \{\"test 1\"\x1F,test 2<EOL>\x1Etest 3\x1Ftest 4<EOL>\x1E\}" do_test shell5-4.1 { forcedelete shell5.csv set fd [open shell5.csv w] puts $fd "1,2,3" puts $fd "4,5" puts $fd "6,7,8" close $fd catchcmd test.db [string trim { .mode csv CREATE TABLE t6(a, b, c); .import shell5.csv t6 }] db eval { SELECT * FROM t6 ORDER BY a } } {1 2 3 4 5 {} 6 7 8} do_test shell5-4.2 { forcedelete shell5.csv set fd [open shell5.csv w] puts $fd "1,2,3" puts $fd "4,5" puts $fd "6,7,8,9" close $fd 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 |