Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Do not allow rowid in a UNIQUE or PRIMARY KEY constraint. (This restores the same behavior exhibited by all prior releases.) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
b1278301e37220a075c1bae88c0fcca2 |
User & Date: | drh 2015-09-19 03:07:30.685 |
Context
2015-09-19
| ||
11:57 | Fix an off-by-one error (really off-by-2 in this case) in the buffer resize logic of json1. (check-in: d2a027372a user: drh tags: trunk) | |
03:07 | Do not allow rowid in a UNIQUE or PRIMARY KEY constraint. (This restores the same behavior exhibited by all prior releases.) (check-in: b1278301e3 user: drh tags: trunk) | |
2015-09-18
| ||
18:09 | Fix a crash that can occur with a skip-scan on an index with expressions when SQLITE_ENABLE_EXPLAIN_COMMENTS is defined. (check-in: 25f34cb9b5 user: drh tags: trunk) | |
Changes
Changes to src/resolve.c.
︙ | ︙ | |||
351 352 353 354 355 356 357 | } } #endif /* !defined(SQLITE_OMIT_TRIGGER) */ /* ** Perhaps the name is a reference to the ROWID */ | > > > > | | > | 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 | } } #endif /* !defined(SQLITE_OMIT_TRIGGER) */ /* ** Perhaps the name is a reference to the ROWID */ if( cnt==0 && cntTab==1 && pMatch && (pNC->ncFlags & NC_IdxExpr)==0 && sqlite3IsRowid(zCol) && VisibleRowid(pMatch->pTab) ){ cnt = 1; pExpr->iColumn = -1; /* IMP: R-44911-55124 */ pExpr->affinity = SQLITE_AFF_INTEGER; } /* ** If the input is of the form Z (not Y.Z or X.Y.Z) then the name Z |
︙ | ︙ |
Changes to test/unique2.test.
︙ | ︙ | |||
70 71 72 73 74 75 76 77 78 | db eval $sql db eval {INSERT INTO t1(w,x,y,z) VALUES(1,2,3,4),(2,3,3,4)} } {} do_test $id.2 { catchsql {CREATE UNIQUE INDEX t1yz ON t1(y,z)} } {1 {UNIQUE constraint failed: t1.y, t1.z}} } finish_test | > > > > > > > > | 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | db eval $sql db eval {INSERT INTO t1(w,x,y,z) VALUES(1,2,3,4),(2,3,3,4)} } {} do_test $id.2 { catchsql {CREATE UNIQUE INDEX t1yz ON t1(y,z)} } {1 {UNIQUE constraint failed: t1.y, t1.z}} } do_catchsql_test 13.1 { CREATE TABLE err1(a,b,c,UNIQUE(rowid)); } {1 {no such column: rowid}} do_catchsql_test 13.2 { CREATE TABLE err1(a,b,c,PRIMARY KEY(rowid)); } {1 {no such column: rowid}} finish_test |
Changes to test/without_rowid6.test.
︙ | ︙ | |||
108 109 110 111 112 113 114 115 116 117 | do_execsql_test without_rowid6-510 { EXPLAIN QUERY PLAN SELECT a FROM t1 WHERE b>3 ORDER BY b; } {/SEARCH TABLE t1 USING PRIMARY KEY .b>../} do_execsql_test without_rowid6-520 { PRAGMA index_list(t1); } {/sqlite_autoindex_t1_1 1 pk/} finish_test | > > > > | 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | do_execsql_test without_rowid6-510 { EXPLAIN QUERY PLAN SELECT a FROM t1 WHERE b>3 ORDER BY b; } {/SEARCH TABLE t1 USING PRIMARY KEY .b>../} do_execsql_test without_rowid6-520 { PRAGMA index_list(t1); } {/sqlite_autoindex_t1_1 1 pk/} do_catchsql_test without_rowid6-600 { CREATE TABLE t6(a,b,c,PRIMARY KEY(a,rowid,b))WITHOUT ROWID; } {1 {no such column: rowid}} finish_test |