-C Make\ssure\sORDER\sBY\sclauses\son\sjoins\sthat\sinvolve\svirtual\stables\sand\sthat\nhave\sa\sDISTINCT\sclause\swork\scorrectly.\s\sThis\sis\sa\scandidate\sfix\sfor\nticket\s[388d01d4bb8f9].\s\sTest\scases\sfor\sthat\sticket\swill\sbe\schecked\sin\nseparately.
-D 2014-04-25T14:42:17.085
+C Add\stest\scases\sto\sensure\scorrect\soperation\sof\sjoins\swith\sa\svirtual\stable\nthat\sinclude\sDISTINCT\sand\sORDER\sBY\sclauses.\s\sVerification\sfor\sticket\n[388d01d4bb8f9].
+D 2014-04-25T17:37:16.863
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F test/orderby4.test 4d39bfbaaa3ae64d026ca2ff166353d2edca4ba4
F test/orderby5.test 2490183fef54417209d1df253633a605d46bd350
F test/orderby6.test 8b38138ab0972588240b3fca0985d2e400432859
+F test/orderby7.test 3d1383d52ade5b9eb3a173b3147fdd296f0202da
F test/oserror.test 50417780d0e0d7cd23cf12a8277bb44024765df3
F test/pager1.test 1acbdb14c5952a72dd43129cabdbf69aaa3ed1fa
F test/pager2.test 67b8f40ae98112bcdba1f2b2d03ea83266418c71
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
-P 4e88042f9d3e678914da96c0eb276f3d8fca5a94
-R 1db9e5d4fb5773f03fcd55df7d35ffca
+P 171138122690faafde0dcab0201b90bdf02d3637
+R a91060e3dc13463e0dda2e961246be75
U drh
-Z 5fd090bfe2e284c7964226b5abb1772a
+Z 5a55daa8fd800f752600937698ffd8a1
--- /dev/null
+# 2014-04-25
+#
+# The author disclaims copyright to this source code. In place of
+# a legal notice, here is a blessing:
+#
+# May you do good and not evil.
+# May you find forgiveness for yourself and forgive others.
+# May you share freely, never taking more than you give.
+#
+#***********************************************************************
+# This file implements regression tests for SQLite library. The
+# focus of this file is testing ORDER BY optimizations on joins
+# that involve virtual tables.
+#
+
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+set ::testprefix orderby7
+
+ifcapable !fts3 {
+ finish_test
+ return
+}
+
+do_execsql_test 1.0 {
+ CREATE VIRTUAL TABLE fts USING fts3(content TEXT);
+ INSERT INTO fts(rowid,content)
+ VALUES(1,'this is a test of the fts3 virtual'),
+ (2,'table used as part of a join together'),
+ (3,'with the DISTINCT keyword. There was'),
+ (4,'a bug at one time (2013-06 through 2014-04)'),
+ (5,'that prevented this from working correctly.'),
+ (11,'a row that occurs twice'),
+ (12,'a row that occurs twice');
+
+ CREATE TABLE t1(x TEXT PRIMARY KEY, y);
+ INSERT OR IGNORE INTO t1 SELECT content, rowid+100 FROM fts;
+} {}
+do_execsql_test 1.1 {
+ SELECT DISTINCT fts.rowid, t1.y
+ FROM fts, t1
+ WHERE fts MATCH 'that twice'
+ AND content=x
+ ORDER BY y;
+} {11 111 12 111}
+do_execsql_test 1.2 {
+ SELECT DISTINCT fts.rowid, t1.x
+ FROM fts, t1
+ WHERE fts MATCH 'that twice'
+ AND content=x
+ ORDER BY 1;
+} {11 {a row that occurs twice} 12 {a row that occurs twice}}
+do_execsql_test 1.3 {
+ SELECT DISTINCT t1.x
+ FROM fts, t1
+ WHERE fts MATCH 'that twice'
+ AND content=x
+ ORDER BY 1;
+} {{a row that occurs twice}}
+do_execsql_test 1.4 {
+ SELECT t1.x
+ FROM fts, t1
+ WHERE fts MATCH 'that twice'
+ AND content=x
+ ORDER BY 1;
+} {{a row that occurs twice} {a row that occurs twice}}
+do_execsql_test 1.5 {
+ SELECT DISTINCT t1.x
+ FROM fts, t1
+ WHERE fts MATCH 'that twice'
+ AND content=x;
+} {{a row that occurs twice}}
+do_execsql_test 1.6 {
+ SELECT t1.x
+ FROM fts, t1
+ WHERE fts MATCH 'that twice'
+ AND content=x;
+} {{a row that occurs twice} {a row that occurs twice}}
+
+do_execsql_test 2.1 {
+ SELECT DISTINCT t1.x
+ FROM fts, t1
+ WHERE fts.rowid=11
+ AND content=x
+ ORDER BY fts.rowid;
+} {{a row that occurs twice}}
+do_execsql_test 2.2 {
+ SELECT DISTINCT t1.*
+ FROM fts, t1
+ WHERE fts.rowid=11
+ AND content=x
+ ORDER BY fts.rowid;
+} {{a row that occurs twice} 111}
+do_execsql_test 2.3 {
+ SELECT DISTINCT t1.*
+ FROM fts, t1
+ WHERE fts.rowid=11
+ AND content=x
+ ORDER BY t1.y
+} {{a row that occurs twice} 111}
+
+
+
+
+finish_test