SQLite

Check-in [5ca0ea2e9b]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Extra backwards-compatibility tests verify that UNIQUE and PRIMARY KEY indices are created in the correct order. Other backwards-compatibility tests already cover this, but it does not hurt to double up.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | omit-rowid
Files: files | file ages | folders
SHA1: 5ca0ea2e9b40a7fa133d2af8a2ecc676de7a8723
User & Date: drh 2013-10-22 10:23:26.180
Context
2013-10-22
14:28
Add a procedure to handle the messy details of allocating an Index object from the heap. (check-in: 45efc94f9a user: drh tags: omit-rowid)
10:23
Extra backwards-compatibility tests verify that UNIQUE and PRIMARY KEY indices are created in the correct order. Other backwards-compatibility tests already cover this, but it does not hurt to double up. (check-in: 5ca0ea2e9b user: drh tags: omit-rowid)
01:18
Previous refactor is not going to be helpful because implied indices must be created in the same order that they appear in the CREATE TABLE statement for backwards compatibility. This is a much smaller change to clean up a few loose ends. (check-in: 824b549f9b user: drh tags: omit-rowid)
Changes
Unified Diff Ignore Whitespace Patch
Changes to test/backcompat.test.
196
197
198
199
200
201
202

































203
204
205
206
207
208
209
  code2 { sqlite3 db test.db }

  set same [expr {[sql2 {SELECT md5sum(a), md5sum(b) FROM t1}] == $cksum2}]
  do_test backcompat-1.2.6 [list set {} $same] 1

  do_test backcompat-1.2.7 { sql1 { PRAGMA integrity_check } } {ok}
  do_test backcompat-1.2.8 { sql2 { PRAGMA integrity_check } } {ok}

































}
foreach k [lsort [array names ::incompatible]] {
  puts "ERROR: Detected journal incompatibility with version $k"
}
unset ::incompatible









>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







196
197
198
199
200
201
202
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
237
238
239
240
241
242
  code2 { sqlite3 db test.db }

  set same [expr {[sql2 {SELECT md5sum(a), md5sum(b) FROM t1}] == $cksum2}]
  do_test backcompat-1.2.6 [list set {} $same] 1

  do_test backcompat-1.2.7 { sql1 { PRAGMA integrity_check } } {ok}
  do_test backcompat-1.2.8 { sql2 { PRAGMA integrity_check } } {ok}

  do_test backcompat-2.1 {
    sql1 {
      CREATE TABLE t2(a UNIQUE, b PRIMARY KEY, c UNIQUE);
      INSERT INTO t2 VALUES(1,9,5),(5,5,1),(9,1,9);
      SELECT * FROM t2 ORDER BY a;
    }
  } {1 9 5 5 5 1 9 1 9}
  do_test backcompat-2.2 {
    sql2 {
      SELECT * FROM t2 ORDER BY a;
    }
  } {1 9 5 5 5 1 9 1 9}
  do_test backcompat-2.3 {
    sql1 {
      SELECT * FROM t2 ORDER BY b;
    }
  } {9 1 9 5 5 1 1 9 5}
  do_test backcompat-2.4 {
    sql2 {
      SELECT * FROM t2 ORDER BY b;
    }
  } {9 1 9 5 5 1 1 9 5}
  do_test backcompat-2.5 {
    sql1 {
      SELECT * FROM t2 ORDER BY c;
    }
  } {5 5 1 1 9 5 9 1 9}
  do_test backcompat-2.6 {
    sql2 {
      SELECT * FROM t2 ORDER BY c;
    }
  } {5 5 1 1 9 5 9 1 9}
}
foreach k [lsort [array names ::incompatible]] {
  puts "ERROR: Detected journal incompatibility with version $k"
}
unset ::incompatible