OLD | NEW |
1 # 2004 November 12 | 1 # 2004 November 12 |
2 # | 2 # |
3 # The author disclaims copyright to this source code. In place of | 3 # The author disclaims copyright to this source code. In place of |
4 # a legal notice, here is a blessing: | 4 # a legal notice, here is a blessing: |
5 # | 5 # |
6 # May you do good and not evil. | 6 # May you do good and not evil. |
7 # May you find forgiveness for yourself and forgive others. | 7 # May you find forgiveness for yourself and forgive others. |
8 # May you share freely, never taking more than you give. | 8 # May you share freely, never taking more than you give. |
9 # | 9 # |
10 #************************************************************************* | 10 #************************************************************************* |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 SELECT * FROM t1; | 209 SELECT * FROM t1; |
210 } | 210 } |
211 } {235 1 1235 2 1236 3 1237 4 1238 5} | 211 } {235 1 1235 2 1236 3 1237 4 1238 5} |
212 do_test autoinc-2.27 { | 212 do_test autoinc-2.27 { |
213 execsql { | 213 execsql { |
214 SELECT * FROM sqlite_sequence; | 214 SELECT * FROM sqlite_sequence; |
215 } | 215 } |
216 } {t1 1238} | 216 } {t1 1238} |
217 do_test autoinc-2.28 { | 217 do_test autoinc-2.28 { |
218 execsql { | 218 execsql { |
219 UPDATE sqlite_sequence SET seq='12345678901234567890' | 219 UPDATE sqlite_sequence SET seq='-12345678901234567890' |
220 WHERE name='t1'; | 220 WHERE name='t1'; |
221 INSERT INTO t1 VALUES(NULL,6); | 221 INSERT INTO t1 VALUES(NULL,6); |
222 SELECT * FROM t1; | 222 SELECT * FROM t1; |
223 } | 223 } |
224 } {235 1 1235 2 1236 3 1237 4 1238 5 1239 6} | 224 } {235 1 1235 2 1236 3 1237 4 1238 5 1239 6} |
225 do_test autoinc-2.29 { | 225 do_test autoinc-2.29 { |
226 execsql { | 226 execsql { |
227 SELECT * FROM sqlite_sequence; | 227 SELECT * FROM sqlite_sequence; |
228 } | 228 } |
229 } {t1 1239} | 229 } {t1 1239} |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 SELECT 1, * FROM main.sqlite_sequence; | 420 SELECT 1, * FROM main.sqlite_sequence; |
421 SELECT 2, * FROM temp.sqlite_sequence; | 421 SELECT 2, * FROM temp.sqlite_sequence; |
422 } | 422 } |
423 } {} | 423 } {} |
424 } | 424 } |
425 | 425 |
426 # Make sure AUTOINCREMENT works on ATTACH-ed tables. | 426 # Make sure AUTOINCREMENT works on ATTACH-ed tables. |
427 # | 427 # |
428 ifcapable tempdb&&attach { | 428 ifcapable tempdb&&attach { |
429 do_test autoinc-5.1 { | 429 do_test autoinc-5.1 { |
430 file delete -force test2.db | 430 forcedelete test2.db |
431 file delete -force test2.db-journal | 431 forcedelete test2.db-journal |
432 sqlite3 db2 test2.db | 432 sqlite3 db2 test2.db |
433 execsql { | 433 execsql { |
434 CREATE TABLE t4(m INTEGER PRIMARY KEY AUTOINCREMENT, n); | 434 CREATE TABLE t4(m INTEGER PRIMARY KEY AUTOINCREMENT, n); |
435 CREATE TABLE t5(o, p INTEGER PRIMARY KEY AUTOINCREMENT); | 435 CREATE TABLE t5(o, p INTEGER PRIMARY KEY AUTOINCREMENT); |
436 } db2; | 436 } db2; |
437 execsql { | 437 execsql { |
438 ATTACH 'test2.db' as aux; | 438 ATTACH 'test2.db' as aux; |
439 SELECT 1, * FROM main.sqlite_sequence; | 439 SELECT 1, * FROM main.sqlite_sequence; |
440 SELECT 2, * FROM temp.sqlite_sequence; | 440 SELECT 2, * FROM temp.sqlite_sequence; |
441 SELECT 3, * FROM aux.sqlite_sequence; | 441 SELECT 3, * FROM aux.sqlite_sequence; |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 } | 513 } |
514 } {1 {AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY}} | 514 } {1 {AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY}} |
515 | 515 |
516 | 516 |
517 # Ticket #1283. Make sure that preparing but never running a statement | 517 # Ticket #1283. Make sure that preparing but never running a statement |
518 # that creates the sqlite_sequence table does not mess up the database. | 518 # that creates the sqlite_sequence table does not mess up the database. |
519 # | 519 # |
520 do_test autoinc-8.1 { | 520 do_test autoinc-8.1 { |
521 catch {db2 close} | 521 catch {db2 close} |
522 catch {db close} | 522 catch {db close} |
523 file delete -force test.db | 523 forcedelete test.db |
524 sqlite3 db test.db | 524 sqlite3 db test.db |
525 set DB [sqlite3_connection_pointer db] | 525 set DB [sqlite3_connection_pointer db] |
526 set STMT [sqlite3_prepare $DB { | 526 set STMT [sqlite3_prepare $DB { |
527 CREATE TABLE t1( | 527 CREATE TABLE t1( |
528 x INTEGER PRIMARY KEY AUTOINCREMENT | 528 x INTEGER PRIMARY KEY AUTOINCREMENT |
529 ) | 529 ) |
530 } -1 TAIL] | 530 } -1 TAIL] |
531 sqlite3_finalize $STMT | 531 sqlite3_finalize $STMT |
532 set STMT [sqlite3_prepare $DB { | 532 set STMT [sqlite3_prepare $DB { |
533 CREATE TABLE t1( | 533 CREATE TABLE t1( |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
659 END; | 659 END; |
660 INSERT INTO va69637_2 VALUES(123); | 660 INSERT INTO va69637_2 VALUES(123); |
661 SELECT * FROM ta69637_1; | 661 SELECT * FROM ta69637_1; |
662 } | 662 } |
663 } {1 124 2 10123} | 663 } {1 124 2 10123} |
664 } | 664 } |
665 | 665 |
666 | 666 |
667 | 667 |
668 finish_test | 668 finish_test |
OLD | NEW |