]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Increased test coverage. (CVS 5414)
authordrh <drh@noemail.net>
Tue, 15 Jul 2008 00:27:34 +0000 (00:27 +0000)
committerdrh <drh@noemail.net>
Tue, 15 Jul 2008 00:27:34 +0000 (00:27 +0000)
FossilOrigin-Name: 7cf91e08c08ce515c24c738c7d079f5b81eebee6

13 files changed:
manifest
manifest.uuid
src/printf.c
src/select.c
src/test_btree.c
test/expr.test
test/func.test
test/mutex1.test
test/select1.test
test/selectA.test
test/sqllimits1.test
test/subselect.test
test/where.test

index e98d15f8f231d09e5434838b138f12bd502a6ed0..eaaaac5a0a7559b28a3c4f2b76f973ba4df52863 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Delete\sall\sfts3\sindex\sdata\sthe\stable\sbecomes\sempty.\s\sPreviously,\ndeleting\sall\srows\sfrom\san\sfts3\stable\swould\sleave\sa\sbunch\sof\sindex\sdata\ndescribing\sthe\sterms\sof\sthe\soriginal\sdata,\splus\sdeletions\sof\sthose\nterms,\sperhaps\swith\ssome\samount\sof\sit\smerged\stogether\sso\sthe\sdeletions\nknocked\sout\sthe\soriginals.\s\sEven\swhen\sall\srows\swere\sdeleted\sthat\noriginal\sdata\swould\shang\sout,\sthough\seventually\sit\swould\smostly\sbe\noverwritten\sif\snew\sdata\scontained\sthe\ssame\sset\sof\sterms.\s(CVS\s5413)
-D 2008-07-14T20:43:15
+C Increased\stest\scoverage.\s(CVS\s5414)
+D 2008-07-15T00:27:35
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in a03f7cb4f7ad50bc53a788c6c544430e81f95de4
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -139,9 +139,9 @@ F src/pager.h 6aa3050a3c684475a5a9dbad5ff1cebad612acba
 F src/parse.y 097bff733e89fbf554a07d9327046718ce364011
 F src/pragma.c 6fad83fbcc7ec6e76d91fe2805fe972ff3af6a0c
 F src/prepare.c c9bb0aacb7a571d049805699ed18f2bb136ea091
-F src/printf.c 36895cfc04fd235af3a6cc162078d751b88bd811
+F src/printf.c 2174222bc346a11b1eac2a654ccc4f635355ae7e
 F src/random.c 5c754319d38abdd6acd74601ee0105504adc508a
-F src/select.c b909e21358f141627d1cadfdfbdb43ec08ed0a4b
+F src/select.c 972bdef5063d1ec2b6375f8bf07e3eec2d5bb1cb
 F src/shell.c 4b835fe734304ac22a3385868cd3790c1e4f7aa1
 F src/sqlite.h.in f85aad3e88f382474407672ad5950c5d4328826d
 F src/sqlite3ext.h 1e3887c9bd3ae66cb599e922824b04cd0d0f2c3e
@@ -161,7 +161,7 @@ F src/test8.c 3b85c05b15ccfc6844093791e83d5c8a1e0354ca
 F src/test9.c 904ebe0ed1472d6bad17a81e2ecbfc20017dc237
 F src/test_async.c da9f58f49faccd3a26ba89f58de125862351b6e2
 F src/test_autoext.c f53b0cdf7bf5f08100009572a5d65cdb540bd0ad
-F src/test_btree.c af13f421952807ceba599bdb63b652ac68cd6c9f
+F src/test_btree.c 7170e0c922ed3979f2d38f4a3f84728e5740dfc3
 F src/test_config.c 7d3c3bb37e12d8ed22c5e0900e1361178b0580a3
 F src/test_devsym.c 6012cb8e3acf812513511025a4fa5d626e0ba19b
 F src/test_func.c 24a556989685495013e08f311ae31c4ef86ddb8c
@@ -279,7 +279,7 @@ F test/eval.test 020a21a236667bd4c56205d999c9992f1d944cac
 F test/exclusive.test 5390ddf1f90a6d055111c0ebe6311045dd3035e1
 F test/exclusive2.test d13bf66753dca46e61241d35d36ab7c868b0d313
 F test/exec.test e949714dc127eaa5ecc7d723efec1ec27118fdd7
-F test/expr.test 5c606f12045dd640ede7f840270340baf5ef1450
+F test/expr.test a34267926f2f4b3a8ae6b7c8614fd8fb2fe251af
 F test/filectrl.test 524853082d5d7fb442599730ec3a0f3f84a3a936
 F test/filefmt.test 053b622009fbbb74dd37921ffad374d852c13cd8
 F test/fkey1.test dcb4f28eb22d5141f15161d6bdca9a4f58c95729
@@ -335,7 +335,7 @@ F test/fts3b.test b3a25180a633873d37d86e1ccd00ed690d37237a
 F test/fts3c.test 4c7ef29b37aca3e8ebb6a39b57910caa6506034e
 F test/fts3d.test 12ad44b84e2b71b4217288747a9744201f779892
 F test/fts3near.test 2d4dadcaac5025ab65bb87e66c45f39e92966194
-F test/func.test 1a2476c57e34c79aeb6323d3e3700a8c7a1ee0af
+F test/func.test 92f017ac3c1fb85c8015800aa578a1d588a237a4
 F test/fuzz.test 62fc19dd36a427777fd671b569df07166548628a
 F test/fuzz2.test ea38692ce2da99ad79fe0be5eb1a452c1c4d37bb
 F test/fuzz_common.tcl ff4bc2dfc465f6878f8e2d819620914365382731
@@ -420,7 +420,7 @@ F test/misc5.test 0b68dcb630d44af2dbcdca94dd2b17c8d580f6fa
 F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91
 F test/misc7.test b0d80b95dc2b46ce417cf3e06bfff18166e55181
 F test/misuse.test 30b3a458e5a70c31e74c291937b6c82204c59f33
-F test/mutex1.test c4fed76ad88646e6cfab0435fd89f5fc72da4dde
+F test/mutex1.test 7f5e21fd11fe22de079e5dcd394ee4f6c257e68e
 F test/mutex2.test 240cfcb5093d2702790a918b4666d5858323e006
 F test/nan.test 14c41572ff52dbc740b1c3303dd313a90dc6084c
 F test/notnull.test 44d600f916b770def8b095a9962dbe3be5a70d82
@@ -447,7 +447,7 @@ F test/rtree.test b85fd4f0861a40ca366ac195e363be2528dcfadf
 F test/safety.test b69e2b2dd5d52a3f78e216967086884bbc1a09c6
 F test/schema.test a8b000723375fd42c68d310091bdbd744fde647c
 F test/schema2.test 35e1c9696443d6694c8980c411497c2b5190d32e
-F test/select1.test 0c7ed6dbe1c54b45dc850d8a7df8a8462bb3e34e
+F test/select1.test e66c18df883aa2a3b883d5b0aeece3fa64053a9b
 F test/select2.test 272a3d3e35b1d3a0760168ababf555e656357fc4
 F test/select3.test 2ce595f8fb8e2ac10071d3b4e424cadd4634a054
 F test/select4.test 0618c9377013840194b7901e6224d841cd3e7193
@@ -456,7 +456,7 @@ F test/select6.test 1131113eb6ae398069a8bc2173eb6c9a2d8ff1cd
 F test/select7.test 7906735805cfbee4dddc0bed4c14e68d7f5f9c5f
 F test/select8.test 391de11bdd52339c30580dabbbbe97e3e9a3c79d
 F test/select9.test b4007b15396cb7ba2615cab31e1973b572e43210
-F test/selectA.test e4501789a1d0fe9d00db15187623fb5b7031357b
+F test/selectA.test 09c6b889f2307c8177b19bd3c58e4e0ea00aa79e
 F test/selectB.test 59c1caf267b0cab464b6f40846c6163816a95fa9
 F test/server1.test f5b790d4c0498179151ca8a7715a65a7802c859c
 F test/shared.test b9f3bbd3ba727c5f1f8c815b7d0199262aacf214
@@ -477,9 +477,9 @@ F test/speed3.test e312d7e442a5047d730569fdae2ba99bc94e1a13
 F test/speed4.test abc0ad3399dcf9703abed2fff8705e4f8e416715
 F test/speed4p.explain 6b5f104ebeb34a038b2f714150f51d01143e59aa
 F test/speed4p.test 0e51908951677de5a969b723e03a27a1c45db38b
-F test/sqllimits1.test bfa4ffaeb287f04f0f082abcb5d7581daaaa9bf3
+F test/sqllimits1.test 2f7ca3c7e7cef39a9c499e941e98b7f1708c4780
 F test/subquery.test d78fe135ff01a3f91f0b62915740f90b35f7e951
-F test/subselect.test 974e87f8fc91c5f00dd565316d396a5a6c3106c4
+F test/subselect.test 61267b87828155e9e67681252cfe1603641c3547
 F test/substr.test 4be572ac017143e59b4058dc75c91a0d0dc6d4e0
 F test/sync.test ded6b39d8d8ca3c0c5518516c6371b3316d3e3a3
 F test/table.test 13b1c2e2fb4727b35ee1fb7641fc469214fd2455
@@ -576,7 +576,7 @@ F test/vtabC.test 9f2d9eb84bf65e606d6616f20977c5a32a11f548
 F test/vtab_alter.test 3a299749fee97ca3d53bd55717f536e4a2284856
 F test/vtab_err.test 0d4d8eb4def1d053ac7c5050df3024fd47a3fbd8
 F test/vtab_shared.test c19b2555b807ef2ee014c882cdda5bc8d84fcf48
-F test/where.test a2b6b45a9f38a1b2bdc021aecfc677f6d9afde63
+F test/where.test 4f1b9a403bba6855681eb7e7e9230e5decb67309
 F test/where2.test 7012c0ad022a54430dd22c98288d3f4d6599dbcf
 F test/where3.test 97d3936e6a443b968f1a61cdcc0f673252000e94
 F test/where4.test e9b9e2f2f98f00379e6031db6a6fca29bae782a2
@@ -607,7 +607,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P 7d5e1c4375599a913d23e5954fa63c10ac9d7688
-R 7766dad7431ce3dddf87a600080fac2f
-U shess
-Z ce089cda99d0ad780780b717294a1a22
+P 8b872e426091d9ef108e52dbec0d968ed7452907
+R d48e30f805045313ee6396ef33f6a5cc
+U drh
+Z 8698cf385c48d5e8ab762a39892fd883
index 3b0fdb0b2ceff5ba89aedfbe45703c0a01e52ebc..c253dd35f1108f35e2ae11ca3f85580e56d08b47 100644 (file)
@@ -1 +1 @@
-8b872e426091d9ef108e52dbec0d968ed7452907
\ No newline at end of file
+7cf91e08c08ce515c24c738c7d079f5b81eebee6
\ No newline at end of file
index 3eb853b0ab5cce534a590bdf09b713ad804b70af..5935f97e48c6a82fe7dc4c15ddf2d7222a8b3345 100644 (file)
@@ -5,7 +5,7 @@
 ** an historical reference.  Most of the "enhancements" have been backed
 ** out so that the functionality is now the same as standard printf().
 **
-** $Id: printf.c,v 1.91 2008/07/14 12:52:53 drh Exp $
+** $Id: printf.c,v 1.92 2008/07/15 00:27:35 drh Exp $
 **
 **************************************************************************
 **
@@ -892,7 +892,7 @@ char *sqlite3_snprintf(int n, char *zBuf, const char *zFormat, ...){
   return z;
 }
 
-#if defined(SQLITE_TEST) || defined(SQLITE_DEBUG) || defined(SQLITE_MEMDEBUG)
+#if defined(SQLITE_DEBUG)
 /*
 ** A version of printf() that understands %lld.  Used for debugging.
 ** The printf() built into some versions of windows does not understand %lld
index 56ede613c7e5acbff6e8738d9672e326aad60033..30b9ddeb3ed98002faf33175f10a9b618773d812 100644 (file)
@@ -12,7 +12,7 @@
 ** This file contains C code routines that are called by the parser
 ** to handle SELECT statements in SQLite.
 **
-** $Id: select.c,v 1.455 2008/07/11 21:02:54 drh Exp $
+** $Id: select.c,v 1.456 2008/07/15 00:27:35 drh Exp $
 */
 #include "sqliteInt.h"
 
@@ -2281,6 +2281,7 @@ static int generateOutputSubroutine(
       break;
     }
 
+#if 0  /* Never occurs on an ORDER BY query */
     /* If any row exist in the result set, record that fact and abort.
     */
     case SRT_Exists: {
@@ -2288,6 +2289,7 @@ static int generateOutputSubroutine(
       /* The LIMIT clause will terminate the loop for us */
       break;
     }
+#endif
 
     /* If this is a scalar select that is part of an expression, then
     ** store the results in the appropriate memory cell and break out
index 1b33ef9b0587186b940beeccb46718890d6cbf78..006df8152b40c31626de4e673ea9bfab05a53153 100644 (file)
@@ -13,7 +13,7 @@
 ** is not included in the SQLite library.  It is used for automated
 ** testing of the SQLite library.
 **
-** $Id: test_btree.c,v 1.5 2008/07/11 21:02:54 drh Exp $
+** $Id: test_btree.c,v 1.6 2008/07/15 00:27:35 drh Exp $
 */
 #include "btreeInt.h"
 #include <tcl.h>
@@ -48,6 +48,7 @@ int sqlite3BtreeSharedCacheReport(
 ** Print debugging information about all cursors to standard output.
 */
 void sqlite3BtreeCursorList(Btree *p){
+#ifdef SQLITE_DEBUG
   BtCursor *pCur;
   BtShared *pBt = p->pBt;
   for(pCur=pBt->pCursor; pCur; pCur=pCur->pNext){
@@ -59,6 +60,7 @@ void sqlite3BtreeCursorList(Btree *p){
        (pCur->eState==CURSOR_VALID) ? "" : " eof"
     );
   }
+#endif
 }
 
 
index 9db3acd0d785fbaf7e4e73affbeabf10ec424f8d..4e54f4d1cc8e7e7f8b69a35668e723c23425b5e5 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this file is testing expressions.
 #
-# $Id: expr.test,v 1.62 2008/01/22 01:48:09 drh Exp $
+# $Id: expr.test,v 1.63 2008/07/15 00:27:35 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -144,6 +144,7 @@ test_expr expr-1.106 {i1=0} {(1<<63)/-1} -9223372036854775808
 test_expr expr-1.107 {i1=0} {(1<<63)%-1} 0
 test_expr expr-1.108 {i1=0} {1%0} {{}}
 test_expr expr-1.109 {i1=0} {1/0} {{}}
+test_expr expr-1.110 {i1=0} {-9223372036854775807/-1} 9223372036854775807
 
 test_expr expr-2.1 {r1=1.23, r2=2.34} {r1+r2} 3.57
 test_expr expr-2.2 {r1=1.23, r2=2.34} {r1-r2} -1.11
index f7daa45cad69ea182d4d4275a8bdf9d93cda778e..b4d0dbd569decafd40c8f3c518c92061986bc7da 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this file is testing built-in functions.
 #
-# $Id: func.test,v 1.81 2008/07/07 14:50:14 drh Exp $
+# $Id: func.test,v 1.82 2008/07/15 00:27:35 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -290,6 +290,18 @@ do_test func-8.4 {
     SELECT max('z+'||a||'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP') FROM t3;
   }
 } {z+67890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP}
+do_test func-8.5 {
+  execsql {
+    SELECT sum(x) FROM (SELECT '9223372036' || '854775807' AS x
+                        UNION ALL SELECT -9223372036854775807)
+  }
+} {0}
+do_test func-8.6 {
+  execsql {
+    SELECT sum(x) FROM (SELECT '9223372036' || '854775808' AS x
+                        UNION ALL SELECT -9223372036854775807)
+  }
+} {1.0}
 
 # How do you test the random() function in a meaningful, deterministic way?
 #
index 1769e7367bfe07fc9ff53f9f68100eb1638cc605..f52d4fe00333629cb2b66005729942a7b21c85f7 100644 (file)
@@ -9,7 +9,7 @@
 #
 #***********************************************************************
 #
-# $Id: mutex1.test,v 1.9 2008/07/12 15:55:55 danielk1977 Exp $
+# $Id: mutex1.test,v 1.10 2008/07/15 00:27:35 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -138,16 +138,18 @@ sqlite3_enable_shared_cache $enable_shared_cache
 
 # Open and use a connection in "nomutex" mode. Test that no recursive
 # mutexes are obtained.
-do_test mutex1.3.1 {
-  catch {db close}
-  clear_mutex_counters
-  sqlite3 db test.db -nomutex 1
-  execsql { SELECT * FROM abc }
-} {1 2 3 1 2 3 1 2 3}
-do_test mutex1.3.2 {
-  mutex_counters counters
-  set counters(recursive)
-} {0}
+ifcapable threadsafe {
+  do_test mutex1.3.1 {
+    catch {db close}
+    clear_mutex_counters
+    sqlite3 db test.db -nomutex 1
+    execsql { SELECT * FROM abc }
+  } {1 2 3 1 2 3 1 2 3}
+  do_test mutex1.3.2 {
+    mutex_counters counters
+    set counters(recursive)
+  } {0}
+}
 
 do_test mutex1-X {
   catch {db close}
index 2675d6328b749ad93fc5b0338d6e364879cfbf64..24b92ff04e290070dbd15dae3333f9689519b981 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this file is testing the SELECT statement.
 #
-# $Id: select1.test,v 1.63 2008/07/10 00:32:42 drh Exp $
+# $Id: select1.test,v 1.64 2008/07/15 00:27:35 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -405,7 +405,7 @@ do_test select1-5.1 {
   lappend v $msg
 } {0 33}
 
-execsql {CREATE TABLE test2(t1 test, t2 text)}
+execsql {CREATE TABLE test2(t1 text, t2 text)}
 execsql {INSERT INTO test2 VALUES('abc','xyz')}
 
 # Check for column naming
@@ -552,6 +552,59 @@ do_test select1-6.9.8 {
   regsub -all {subquery_[0-9a-fA-F]+_} $x {subquery} x
   set x
 } {a.f1 11 a.f2 22 b.x 5 b.y 6}
+do_test select1-6.9.9 {
+  execsql2 {
+     SELECT a.f1, b.f2 FROM test1 a, test1 b LIMIT 1
+  }
+} {test1.f1 11 test1.f2 22}
+do_test select1-6.9.10 {
+  execsql2 {
+     SELECT f1, t1 FROM test1, test2 LIMIT 1
+  }
+} {test1.f1 11 test2.t1 abc}
+do_test select1-6.9.11 {
+  db eval {
+     PRAGMA short_column_names=ON;
+     PRAGMA full_column_names=ON;
+  }
+  execsql2 {
+     SELECT a.f1, b.f2 FROM test1 a, test1 b LIMIT 1
+  }
+} {test1.f1 11 test1.f2 22}
+do_test select1-6.9.12 {
+  execsql2 {
+     SELECT f1, t1 FROM test1, test2 LIMIT 1
+  }
+} {test1.f1 11 test2.t1 abc}
+do_test select1-6.9.13 {
+  db eval {
+     PRAGMA short_column_names=ON;
+     PRAGMA full_column_names=OFF;
+  }
+  execsql2 {
+     SELECT a.f1, b.f1 FROM test1 a, test1 b LIMIT 1
+  }
+} {f1 11 f1 11}
+do_test select1-6.9.14 {
+  execsql2 {
+     SELECT f1, t1 FROM test1, test2 LIMIT 1
+  }
+} {f1 11 t1 abc}
+do_test select1-6.9.15 {
+  db eval {
+     PRAGMA short_column_names=OFF;
+     PRAGMA full_column_names=ON;
+  }
+  execsql2 {
+     SELECT a.f1, b.f1 FROM test1 a, test1 b LIMIT 1
+  }
+} {test1.f1 11 test1.f1 11}
+do_test select1-6.9.16 {
+  execsql2 {
+     SELECT f1, t1 FROM test1, test2 LIMIT 1
+  }
+} {test1.f1 11 test2.t1 abc}
+
 
 db eval {
   PRAGMA short_column_names=ON;
index 04ebef6b9f46c0142db5094a2e54104e3a0ba5c2..102bc1b882f75aed8cbdba4c3f041c5a3bc6a351 100644 (file)
@@ -17,7 +17,7 @@
 # explicit sort order and explicit collating secquites) and
 # with and without optional LIMIT and OFFSET clauses.
 #
-# $Id: selectA.test,v 1.3 2008/06/25 14:31:53 drh Exp $
+# $Id: selectA.test,v 1.4 2008/07/15 00:27:35 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -630,6 +630,26 @@ do_test selectA-2.92 {
     ORDER BY y COLLATE NOCASE DESC,x,z
   }
 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
+do_test selectA-2.93 {
+  execsql {
+    SELECT upper((SELECT c FROM t1 UNION SELECT z FROM t2 ORDER BY 1));
+  }
+} {A}
+do_test selectA-2.94 {
+  execsql {
+    SELECT lower((SELECT c FROM t1 UNION ALL SELECT z FROM t2 ORDER BY 1));
+  }
+} {a}
+do_test selectA-2.95 {
+  execsql {
+    SELECT lower((SELECT c FROM t1 INTERSECT SELECT z FROM t2 ORDER BY 1));
+  }
+} {{}}
+do_test selectA-2.96 {
+  execsql {
+    SELECT lower((SELECT z FROM t2 EXCEPT SELECT c FROM t1 ORDER BY 1));
+  }
+} {m}
 
 
 do_test selectA-3.0 {
@@ -1216,6 +1236,38 @@ do_test selectA-3.92 {
     ORDER BY y COLLATE NOCASE DESC,x,z
   }
 } {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
-
+do_test selectA-3.93 {
+  execsql {
+    SELECT upper((SELECT c FROM t1 UNION SELECT z FROM t2 ORDER BY 1));
+  }
+} {A}
+do_test selectA-3.94 {
+  execsql {
+    SELECT lower((SELECT c FROM t1 UNION ALL SELECT z FROM t2 ORDER BY 1));
+  }
+} {a}
+do_test selectA-3.95 {
+  execsql {
+    SELECT lower((SELECT c FROM t1 INTERSECT SELECT z FROM t2 ORDER BY 1));
+  }
+} {{}}
+do_test selectA-3.96 {
+  execsql {
+    SELECT lower((SELECT z FROM t2 EXCEPT SELECT c FROM t1 ORDER BY 1));
+  }
+} {m}
+do_test selectA-3.97 {
+  execsql {
+    SELECT upper((SELECT x FROM (
+      SELECT x,y,z FROM t2
+      INTERSECT SELECT a,b,c FROM t3
+      EXCEPT SELECT c,b,a FROM t1
+      UNION SELECT a,b,c FROM t3
+      INTERSECT SELECT a,b,c FROM t3
+      EXCEPT SELECT c,b,a FROM t1
+      UNION SELECT a,b,c FROM t3
+      ORDER BY y COLLATE NOCASE DESC,x,z)))
+  }
+} {MAD}
 
 finish_test
index 192522bbd585a66755174fd29b56aac823df72cf..f7f5c2baa5631c49703b02aa6790cc406d2a6a51 100644 (file)
@@ -12,7 +12,7 @@
 # This file contains tests to verify that the limits defined in
 # sqlite source file limits.h are enforced.
 #
-# $Id: sqllimits1.test,v 1.30 2008/07/10 00:32:42 drh Exp $
+# $Id: sqllimits1.test,v 1.31 2008/07/15 00:27:35 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -360,9 +360,17 @@ set strvalue [string repeat A $::SQLITE_LIMIT_LENGTH]
 do_test sqllimits1-5.16 {
   catchsql "SELECT '$strvalue'"
 } [list 0 $strvalue]
-do_test sqllimits1-5.17 {
+do_test sqllimits1-5.17.1 {
   catchsql "SELECT 'A$strvalue'"
 } [list 1 {string or blob too big}]
+do_test sqllimits1-5.17.2 {
+  sqlite3_limit db SQLITE_LIMIT_LENGTH 0x7fffffff
+  catchsql {SELECT 'A' || $::strvalue}
+} [list 0 A$strvalue]
+do_test sqllimits1-5.17.3 {
+  sqlite3_limit db SQLITE_LIMIT_LENGTH $SQLITE_LIMIT_LENGTH
+  catchsql {SELECT 'A' || $::strvalue}
+} [list 1 {string or blob too big}]
 set blobvalue [string repeat 41 $::SQLITE_LIMIT_LENGTH]
 do_test sqllimits1-5.18 {
   catchsql "SELECT x'$blobvalue'"
index a43bca35554e0a68234dba5d1644360a440d7712..055e151814def560bca4927882e3ad88673f12ba 100644 (file)
@@ -12,7 +12,7 @@
 # focus of this file is testing SELECT statements that are part of
 # expressions.
 #
-# $Id: subselect.test,v 1.14 2007/04/12 03:54:39 drh Exp $
+# $Id: subselect.test,v 1.15 2008/07/15 00:27:35 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -53,9 +53,15 @@ do_test subselect-1.3b {
 do_test subselect-1.3c {
   execsql {SELECT b from t1 where a = (SELECT a FROM t1 WHERE b=6)}
 } {6}
-do_test subselect-1.3c {
+do_test subselect-1.3d {
   execsql {SELECT b from t1 where a = (SELECT a FROM t1 WHERE b=8)}
 } {}
+do_test subselect-1.3e {
+  execsql {
+    SELECT b FROM t1
+     WHERE a = (SELECT a FROM t1 UNION SELECT b FROM t1 ORDER BY 1);
+  }
+} {2}
 
 # What if the subselect doesn't return any value.  We should get
 # NULL as the result.  Check it out.
index b328364eaa7dc846aa1024bf24bba9fca02f6098..1213617376e0cbf0d0ee4b492c84a1b5eca7ab37 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this file is testing the use of indices in WHERE clases.
 #
-# $Id: where.test,v 1.45 2008/07/12 14:52:21 drh Exp $
+# $Id: where.test,v 1.46 2008/07/15 00:27:35 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -344,6 +344,11 @@ do_test where-4.6 {
     SELECT 99 WHERE 0.0
   }
 } {}
+do_test where-4.7 {
+  execsql {
+    SELECT count(*) FROM t1 WHERE t1.w
+  }
+} {100}
 
 # Verify that IN operators in a WHERE clause are handled correctly.
 # Omit these tests if the build is not capable of sub-queries.