From: drh Date: Thu, 26 Jul 2018 23:54:19 +0000 (+0000) Subject: Add a test case demonstrating the collation problem with constant propagation. X-Git-Tag: version-3.25.0~95^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7de7602eb7deac00e4bb5c2f44f82f5389cbcb83;p=thirdparty%2Fsqlite.git Add a test case demonstrating the collation problem with constant propagation. FossilOrigin-Name: 50add839fd95665bd67a6ae5de8346fd09e83904bbcbad26fad280dff86d9e93 --- diff --git a/manifest b/manifest index 4a1a680ce5..73c3e5b372 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Generalize\sthe\sconstant\spropagation\soptimization\sso\sthat\sit\sapplies\son\severy\nWHERE\sclose,\snot\sjust\sthose\sthat\scontain\sa\ssubquery.\s\sThis\sthen\sdemonstrates\nthat\sthe\scurrent\simplementation\sis\sinadequate\ssince\sit\sdoes\snot\stake\sinto\naccount\scollating\ssequences. -D 2018-07-26T23:47:11.108 +C Add\sa\stest\scase\sdemonstrating\sthe\scollation\sproblem\swith\sconstant\spropagation. +D 2018-07-26T23:54:19.662 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F Makefile.in 0a3a6c81e6fcb969ff9106e882f0a08547014ba463cb6beca4c4efaecc924ee6 @@ -1617,7 +1617,7 @@ F test/whereH.test e4b07f7a3c2f5d31195cd33710054c78667573b2 F test/whereI.test b7769ee8dbefd987fb266715fee887f05f9ff180016b06fca7fa402df739193b F test/whereJ.test 88287550f6ee604422403b053455b1ad894eeaa5c35d348532dfa1439286cb9a F test/whereK.test f8e3cf26a8513ecc7f514f54df9f0572c046c42b -F test/whereL.test eca38f3f9e056bec962c3cf9abb8825a1701311a3fdc281471460cc127618714 +F test/whereL.test 786ae3e0b6d8f7c9b83a98bffcd9d458b0de47c6a9f9dcf872043f54a4752c68 F test/wherefault.test 1374c3aa198388925246475f84ad4cd5f9528864 F test/wherelfault.test 9012e4ef5259058b771606616bd007af5d154e64cc25fa9fd4170f6411db44e3 F test/wherelimit.test 592081800806d297dd7449b1030c863d2883d6d42901837ccd2e5a9bd962edb0 @@ -1753,7 +1753,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 2fb82ad8ebb6434438c0d235b1239444fb08c8711cea2c5a9ed955fedd0acdec -R aac189787e29efcfb7af237e9604f0a0 +P 57eb2abd5b270d65be5e0f138f0d46899fa6091df3ba20b0ea7ef04244a15d48 +R 4901cf7d6c93780d74bf2f77c4b5611e U drh -Z b571d91896795a40b7aa465c4c8e4005 +Z e93689647fb1d0f73e5b2a94dfb414a1 diff --git a/manifest.uuid b/manifest.uuid index db9ef1c737..bcb4361963 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -57eb2abd5b270d65be5e0f138f0d46899fa6091df3ba20b0ea7ef04244a15d48 \ No newline at end of file +50add839fd95665bd67a6ae5de8346fd09e83904bbcbad26fad280dff86d9e93 \ No newline at end of file diff --git a/test/whereL.test b/test/whereL.test index 33e612b855..177efa1ddf 100644 --- a/test/whereL.test +++ b/test/whereL.test @@ -51,4 +51,20 @@ do_eqp_test 120 { `--SCAN TABLE t3 } +# Constant propagation in the face of collating sequences: +# +do_execsql_test 200 { + CREATE TABLE c3(x COLLATE binary, y COLLATE nocase, z COLLATE binary); + CREATE INDEX c3x ON c3(x); + INSERT INTO c3 VALUES('ABC', 'ABC', 'abc'); + SELECT * FROM c3 WHERE x=y AND y=z AND z='abc'; +} {ABC ABC abc} + +# If the constants are blindly propagated, as shown in the following +# query, the wrong answer results: +# +do_execsql_test 201 { + SELECT * FROM c3 WHERE x='abc' AND y='abc' AND z='abc'; +} {} + finish_test