From: drh Date: Mon, 29 Apr 2019 13:48:45 +0000 (+0000) Subject: Do not de-duplicate columns index columns associated with a WITHOUT ROWID table X-Git-Tag: version-3.29.0~173 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4baa75b32f61727693ff2468ab927124e85c0e36;p=thirdparty%2Fsqlite.git Do not de-duplicate columns index columns associated with a WITHOUT ROWID table if the columns have different collating sequences. This is the fix for ticket [3182d3879020ef3b2]. There is one test case added, but most of the tests are done in TH3. FossilOrigin-Name: 1b1dd4d48cd79a585e1fa7ee79128e9f2a9ee9846339dc56bbd67b75112dcad5 --- 4baa75b32f61727693ff2468ab927124e85c0e36 diff --cc manifest index cf4308824d,688c836776..0576b14f7c --- a/manifest +++ b/manifest @@@ -1,5 -1,5 +1,5 @@@ - C Fix\sa\sbuffer\soverwrite\sin\sshell.c.in\s(part\sof\sthe\snew\s.recover\scode). - D 2019-04-29T11:41:46.359 -C Improved\sheader\scomment\sand\sprecondition\schecking\sfor\sthe\snew\sisDupColumn()\nfunction. -D 2019-04-29T13:30:16.066 ++C Do\snot\sde-duplicate\scolumns\sindex\scolumns\sassociated\swith\sa\sWITHOUT\sROWID\stable\nif\sthe\scolumns\shave\sdifferent\scollating\ssequences.\s\sThis\sis\sthe\sfix\sfor\nticket\s[3182d3879020ef3b2].\s\sThere\sis\sone\stest\scase\sadded,\sbut\smost\sof\sthe\ntests\sare\sdone\sin\sTH3. ++D 2019-04-29T13:48:45.899 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@@ -1707,7 -1707,7 +1707,7 @@@ F test/with2.test e0030e2f0267a910d6c0e F test/with3.test 8d26920c88283e0a473ceebd3451554922108ce7b2a6a1157c47eb0a7011212c F test/with4.test 257be66c0c67fee1defbbac0f685c3465e2cad037f21ce65f23f86084f198205 F test/withM.test 693b61765f2b387b5e3e24a4536e2e82de15ff64 --F test/without_rowid1.test b5ec93f7df2c1d684e0923247dac6aca8888e088bf50a9f244c3933e0e813a72 ++F test/without_rowid1.test 7ac016d20317e36a2f142e960679e558e74f6809ce5f27bde668af01782500df F test/without_rowid2.test af260339f79d13cb220288b67cd287fbcf81ad99 F test/without_rowid3.test ea4b59dd1b0d7f5f5e4b7cca978cdb905752a9d7c57dc4344a591dba765a3691 F test/without_rowid4.test 4e08bcbaee0399f35d58b5581881e7a6243d458a @@@ -1821,7 -1821,7 +1821,8 @@@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a9 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 - P c621fc668c6538f9f5bdac204f012c64998679a61aa8e224d212503820224c09 - R fab7a84bb2576871c69ae5af2474d189 - U dan - Z 238bfca672a6077522e49009580b426a -P b34fa5bff40d3d364bd8c80e7de55c606ef3caac47b14b5265ebcb38857eb85e -R 4500a529c2eaff26172712aaa84d5151 ++P 92facbc73a940d2844ac88fafd2d2dadb10886fb0b7c53e23f346d18fa6d6327 740d5ff6cc9bf7b151dfb8b27409e5923cfb2789b5398fe13d89563aff8ffc07 ++R 202811e2e95855247d322c66d5116799 ++T +closed 740d5ff6cc9bf7b151dfb8b27409e5923cfb2789b5398fe13d89563aff8ffc07 + U drh -Z 5d2313cdcb9e1838679491aff8b0ed48 ++Z b55be1ccaf3a50c1a3ba7b999ad660d8 diff --cc manifest.uuid index 491b1c92fc,e70eba18c7..e85adcff39 --- a/manifest.uuid +++ b/manifest.uuid @@@ -1,1 -1,1 +1,1 @@@ - 92facbc73a940d2844ac88fafd2d2dadb10886fb0b7c53e23f346d18fa6d6327 -740d5ff6cc9bf7b151dfb8b27409e5923cfb2789b5398fe13d89563aff8ffc07 ++1b1dd4d48cd79a585e1fa7ee79128e9f2a9ee9846339dc56bbd67b75112dcad5 diff --cc test/without_rowid1.test index c8f018737b,c8f018737b..4dd967234c --- a/test/without_rowid1.test +++ b/test/without_rowid1.test @@@ -391,5 -391,5 +391,13 @@@ do_execsql_test 10.6 SELECT * FROM t1; } {b a 3 b b 4} ++# 2019-04-29 ticket https://www.sqlite.org/src/info/3182d3879020ef3 ++do_execsql_test 11.1 { ++ CREATE TABLE t11(a TEXT PRIMARY KEY, b INT) WITHOUT ROWID; ++ CREATE INDEX t11a ON t11(a COLLATE NOCASE); ++ INSERT INTO t11(a,b) VALUES ('A',1),('a',2); ++ PRAGMA integrity_check; ++ SELECT a FROM t11 ORDER BY a COLLATE binary; ++} {ok A a} finish_test