CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
tkt1473.test729 linesDownload Raw Back to test
1# 2005 September 192#3# The author disclaims copyright to this source code.  In place of4# a legal notice, here is a blessing:5#6#    May you do good and not evil.7#    May you find forgiveness for yourself and forgive others.8#    May you share freely, never taking more than you give.9#10#***********************************************************************11# This file implements regression tests for SQLite library.12#13# This file implements tests to verify that ticket #1473 has been14# fixed.  15#16 17set testdir [file dirname $argv0]18source $testdir/tester.tcl19 20ifcapable !compound {21  finish_test22  return 23}24 25do_test tkt1473-1.1 {26  execsql {27    CREATE TABLE t1(a,b);28    INSERT INTO t1 VALUES(1,2);29    INSERT INTO t1 VALUES(3,4);30    SELECT * FROM t131  }32} {1 2 3 4}33 34do_test tkt1473-1.2 {35  execsql {36    SELECT 1 FROM t1 WHERE a=1 UNION ALL SELECT 2 FROM t1 WHERE b=037  }38} {1}39do_test tkt1473-1.3 {40  execsql {41    SELECT 1 FROM t1 WHERE a=1 UNION SELECT 2 FROM t1 WHERE b=042  }43} {1}44do_test tkt1473-1.4 {45  execsql {46    SELECT 1 FROM t1 WHERE a=1 UNION ALL SELECT 2 FROM t1 WHERE b=447  }48} {1 2}49do_test tkt1473-1.5 {50  execsql {51    SELECT 1 FROM t1 WHERE a=1 UNION SELECT 2 FROM t1 WHERE b=452  }53} {1 2}54do_test tkt1473-1.6 {55  execsql {56    SELECT 1 FROM t1 WHERE a=0 UNION ALL SELECT 2 FROM t1 WHERE b=457  }58} {2}59do_test tkt1473-1.7 {60  execsql {61    SELECT 1 FROM t1 WHERE a=0 UNION SELECT 2 FROM t1 WHERE b=462  }63} {2}64do_test tkt1473-1.8 {65  execsql {66    SELECT 1 FROM t1 WHERE a=0 UNION ALL SELECT 2 FROM t1 WHERE b=067  }68} {}69do_test tkt1473-1.9 {70  execsql {71    SELECT 1 FROM t1 WHERE a=0 UNION SELECT 2 FROM t1 WHERE b=072  }73} {}74 75# Everything from this point on depends on sub-queries. So skip it76# if sub-queries are not available.77ifcapable !subquery {78  finish_test79  return80}81 82do_test tkt1473-2.2 {83  execsql {84    SELECT (SELECT 1 FROM t1 WHERE a=1 UNION ALL SELECT 2 FROM t1 WHERE b=0)85  }86} {1}87do_test tkt1473-2.3 {88  execsql {89    SELECT (SELECT 1 FROM t1 WHERE a=1 UNION SELECT 2 FROM t1 WHERE b=0)90  }91} {1}92do_test tkt1473-2.4 {93  execsql {94    SELECT (SELECT 1 FROM t1 WHERE a=1 UNION ALL SELECT 2 FROM t1 WHERE b=4)95  }96} {1}97do_test tkt1473-2.5 {98  execsql {99    SELECT (SELECT 1 FROM t1 WHERE a=1 UNION SELECT 2 FROM t1 WHERE b=4)100  }101} {1}102do_test tkt1473-2.6 {103  execsql {104    SELECT (SELECT 1 FROM t1 WHERE a=0 UNION ALL SELECT 2 FROM t1 WHERE b=4)105  }106} {2}107do_test tkt1473-2.7 {108  execsql {109    SELECT (SELECT 1 FROM t1 WHERE a=0 UNION SELECT 2 FROM t1 WHERE b=4)110  }111} {2}112do_test tkt1473-2.8 {113  execsql {114    SELECT (SELECT 1 FROM t1 WHERE a=0 UNION ALL SELECT 2 FROM t1 WHERE b=0)115  }116} {{}}117do_test tkt1473-2.9 {118  execsql {119    SELECT (SELECT 1 FROM t1 WHERE a=0 UNION SELECT 2 FROM t1 WHERE b=0)120  }121} {{}}122 123do_test tkt1473-3.2 {124  execsql {125    SELECT EXISTS126      (SELECT 1 FROM t1 WHERE a=1 UNION ALL SELECT 2 FROM t1 WHERE b=0)127  }128} {1}129do_test tkt1473-3.3 {130  execsql {131    SELECT EXISTS132      (SELECT 1 FROM t1 WHERE a=1 UNION SELECT 2 FROM t1 WHERE b=0)133  }134} {1}135do_test tkt1473-3.4 {136  execsql {137    SELECT EXISTS138      (SELECT 1 FROM t1 WHERE a=1 UNION ALL SELECT 2 FROM t1 WHERE b=4)139  }140} {1}141do_test tkt1473-3.5 {142  execsql {143    SELECT EXISTS144      (SELECT 1 FROM t1 WHERE a=1 UNION SELECT 2 FROM t1 WHERE b=4)145  }146} {1}147do_test tkt1473-3.6 {148  execsql {149    SELECT EXISTS150      (SELECT 1 FROM t1 WHERE a=0 UNION ALL SELECT 2 FROM t1 WHERE b=4)151  }152} {1}153do_test tkt1473-3.7 {154  execsql {155    SELECT EXISTS156      (SELECT 1 FROM t1 WHERE a=0 UNION SELECT 2 FROM t1 WHERE b=4)157  }158} {1}159do_test tkt1473-3.8 {160  execsql {161    SELECT EXISTS162      (SELECT 1 FROM t1 WHERE a=0 UNION ALL SELECT 2 FROM t1 WHERE b=0)163  }164} {0}165do_test tkt1473-3.9 {166  execsql {167    SELECT EXISTS168      (SELECT 1 FROM t1 WHERE a=0 UNION SELECT 2 FROM t1 WHERE b=0)169  }170} {0}171 172do_test tkt1473-4.1 {173  execsql {174    CREATE TABLE t2(x,y);175    INSERT INTO t2 VALUES(1,2);176    INSERT INTO t2 SELECT x+2, y+2 FROM t2;177    INSERT INTO t2 SELECT x+4, y+4 FROM t2;178    INSERT INTO t2 SELECT x+8, y+8 FROM t2;179    INSERT INTO t2 SELECT x+16, y+16 FROM t2;180    INSERT INTO t2 SELECT x+32, y+32 FROM t2;181    INSERT INTO t2 SELECT x+64, y+64 FROM t2;182    SELECT count(*), sum(x), sum(y) FROM t2;183  }184} {64 4096 4160}185do_test tkt1473-4.2 {186  execsql {187    SELECT 1 FROM t2 WHERE x=0188    UNION ALL189    SELECT 2 FROM t2 WHERE x=1190    UNION ALL191    SELECT 3 FROM t2 WHERE x=2192    UNION ALL193    SELECT 4 FROM t2 WHERE x=3194    UNION ALL195    SELECT 5 FROM t2 WHERE x=4196    UNION ALL197    SELECT 6 FROM t2 WHERE y=0198    UNION ALL199    SELECT 7 FROM t2 WHERE y=1200    UNION ALL201    SELECT 8 FROM t2 WHERE y=2202    UNION ALL203    SELECT 9 FROM t2 WHERE y=3204    UNION ALL205    SELECT 10 FROM t2 WHERE y=4206  }207} {2 4 8 10}208do_test tkt1473-4.3 {209  execsql {210    SELECT (211      SELECT 1 FROM t2 WHERE x=0212      UNION ALL213      SELECT 2 FROM t2 WHERE x=1214      UNION ALL215      SELECT 3 FROM t2 WHERE x=2216      UNION ALL217      SELECT 4 FROM t2 WHERE x=3218      UNION ALL219      SELECT 5 FROM t2 WHERE x=4220      UNION ALL221      SELECT 6 FROM t2 WHERE y=0222      UNION ALL223      SELECT 7 FROM t2 WHERE y=1224      UNION ALL225      SELECT 8 FROM t2 WHERE y=2226      UNION ALL227      SELECT 9 FROM t2 WHERE y=3228      UNION ALL229      SELECT 10 FROM t2 WHERE y=4230    )231  }232} {2}233do_test tkt1473-4.4 {234  execsql {235    SELECT (236      SELECT 1 FROM t2 WHERE x=0237      UNION ALL238      SELECT 2 FROM t2 WHERE x=-1239      UNION ALL240      SELECT 3 FROM t2 WHERE x=2241      UNION ALL242      SELECT 4 FROM t2 WHERE x=3243      UNION ALL244      SELECT 5 FROM t2 WHERE x=4245      UNION ALL246      SELECT 6 FROM t2 WHERE y=0247      UNION ALL248      SELECT 7 FROM t2 WHERE y=1249      UNION ALL250      SELECT 8 FROM t2 WHERE y=2251      UNION ALL252      SELECT 9 FROM t2 WHERE y=3253      UNION ALL254      SELECT 10 FROM t2 WHERE y=4255    )256  }257} {4}258do_test tkt1473-4.5 {259  execsql {260    SELECT (261      SELECT 1 FROM t2 WHERE x=0262      UNION ALL263      SELECT 2 FROM t2 WHERE x=-1264      UNION ALL265      SELECT 3 FROM t2 WHERE x=2266      UNION ALL267      SELECT 4 FROM t2 WHERE x=-1268      UNION ALL269      SELECT 5 FROM t2 WHERE x=4270      UNION ALL271      SELECT 6 FROM t2 WHERE y=0272      UNION ALL273      SELECT 7 FROM t2 WHERE y=1274      UNION ALL275      SELECT 8 FROM t2 WHERE y=2276      UNION ALL277      SELECT 9 FROM t2 WHERE y=3278      UNION ALL279      SELECT 10 FROM t2 WHERE y=-4280    )281  }282} {8}283do_test tkt1473-4.6 {284  execsql {285    SELECT (286      SELECT 1 FROM t2 WHERE x=0287      UNION ALL288      SELECT 2 FROM t2 WHERE x=-1289      UNION ALL290      SELECT 3 FROM t2 WHERE x=2291      UNION ALL292      SELECT 4 FROM t2 WHERE x=-2293      UNION ALL294      SELECT 5 FROM t2 WHERE x=4295      UNION ALL296      SELECT 6 FROM t2 WHERE y=0297      UNION ALL298      SELECT 7 FROM t2 WHERE y=1299      UNION ALL300      SELECT 8 FROM t2 WHERE y=-3301      UNION ALL302      SELECT 9 FROM t2 WHERE y=3303      UNION ALL304      SELECT 10 FROM t2 WHERE y=4305    )306  }307} {10}308do_test tkt1473-4.7 {309  execsql {310    SELECT (311      SELECT 1 FROM t2 WHERE x=0312      UNION ALL313      SELECT 2 FROM t2 WHERE x=-1314      UNION ALL315      SELECT 3 FROM t2 WHERE x=2316      UNION ALL317      SELECT 4 FROM t2 WHERE x=-2318      UNION ALL319      SELECT 5 FROM t2 WHERE x=4320      UNION ALL321      SELECT 6 FROM t2 WHERE y=0322      UNION ALL323      SELECT 7 FROM t2 WHERE y=1324      UNION ALL325      SELECT 8 FROM t2 WHERE y=-3326      UNION ALL327      SELECT 9 FROM t2 WHERE y=3328      UNION ALL329      SELECT 10 FROM t2 WHERE y=-4330    )331  }332} {{}}333 334do_test tkt1473-5.3 {335  execsql {336    SELECT EXISTS (337      SELECT 1 FROM t2 WHERE x=0338      UNION ALL339      SELECT 2 FROM t2 WHERE x=1340      UNION ALL341      SELECT 3 FROM t2 WHERE x=2342      UNION ALL343      SELECT 4 FROM t2 WHERE x=3344      UNION ALL345      SELECT 5 FROM t2 WHERE x=4346      UNION ALL347      SELECT 6 FROM t2 WHERE y=0348      UNION ALL349      SELECT 7 FROM t2 WHERE y=1350      UNION ALL351      SELECT 8 FROM t2 WHERE y=2352      UNION ALL353      SELECT 9 FROM t2 WHERE y=3354      UNION ALL355      SELECT 10 FROM t2 WHERE y=4356    )357  }358} {1}359do_test tkt1473-5.4 {360  execsql {361    SELECT EXISTS (362      SELECT 1 FROM t2 WHERE x=0363      UNION ALL364      SELECT 2 FROM t2 WHERE x=-1365      UNION ALL366      SELECT 3 FROM t2 WHERE x=2367      UNION ALL368      SELECT 4 FROM t2 WHERE x=3369      UNION ALL370      SELECT 5 FROM t2 WHERE x=4371      UNION ALL372      SELECT 6 FROM t2 WHERE y=0373      UNION ALL374      SELECT 7 FROM t2 WHERE y=1375      UNION ALL376      SELECT 8 FROM t2 WHERE y=2377      UNION ALL378      SELECT 9 FROM t2 WHERE y=3379      UNION ALL380      SELECT 10 FROM t2 WHERE y=4381    )382  }383} {1}384 385do_test tkt1473-5.5 {386  execsql {387    SELECT EXISTS (388      SELECT 1 FROM t2 WHERE x=0389      UNION ALL390      SELECT 2 FROM t2 WHERE x=-1391      UNION ALL392      SELECT 3 FROM t2 WHERE x=2393      UNION ALL394      SELECT 4 FROM t2 WHERE x=-1395      UNION ALL396      SELECT 5 FROM t2 WHERE x=4397      UNION ALL398      SELECT 6 FROM t2 WHERE y=0399      UNION ALL400      SELECT 7 FROM t2 WHERE y=1401      UNION ALL402      SELECT 8 FROM t2 WHERE y=2403      UNION ALL404      SELECT 9 FROM t2 WHERE y=3405      UNION ALL406      SELECT 10 FROM t2 WHERE y=-4407    )408  }409} {1}410do_test tkt1473-5.6 {411  execsql {412    SELECT EXISTS (413      SELECT 1 FROM t2 WHERE x=0414      UNION ALL415      SELECT 2 FROM t2 WHERE x=-1416      UNION ALL417      SELECT 3 FROM t2 WHERE x=2418      UNION ALL419      SELECT 4 FROM t2 WHERE x=-2420      UNION ALL421      SELECT 5 FROM t2 WHERE x=4422      UNION ALL423      SELECT 6 FROM t2 WHERE y=0424      UNION ALL425      SELECT 7 FROM t2 WHERE y=1426      UNION ALL427      SELECT 8 FROM t2 WHERE y=-3428      UNION ALL429      SELECT 9 FROM t2 WHERE y=3430      UNION ALL431      SELECT 10 FROM t2 WHERE y=4432    )433  }434} {1}435do_test tkt1473-5.7 {436  execsql {437    SELECT EXISTS (438      SELECT 1 FROM t2 WHERE x=0439      UNION ALL440      SELECT 2 FROM t2 WHERE x=-1441      UNION ALL442      SELECT 3 FROM t2 WHERE x=2443      UNION ALL444      SELECT 4 FROM t2 WHERE x=-2445      UNION ALL446      SELECT 5 FROM t2 WHERE x=4447      UNION ALL448      SELECT 6 FROM t2 WHERE y=0449      UNION ALL450      SELECT 7 FROM t2 WHERE y=1451      UNION ALL452      SELECT 8 FROM t2 WHERE y=-3453      UNION ALL454      SELECT 9 FROM t2 WHERE y=3455      UNION ALL456      SELECT 10 FROM t2 WHERE y=-4457    )458  }459} {0}460 461do_test tkt1473-6.3 {462  execsql {463    SELECT EXISTS (464      SELECT 1 FROM t2 WHERE x=0465      UNION466      SELECT 2 FROM t2 WHERE x=1467      UNION468      SELECT 3 FROM t2 WHERE x=2469      UNION470      SELECT 4 FROM t2 WHERE x=3471      UNION472      SELECT 5 FROM t2 WHERE x=4473      UNION474      SELECT 6 FROM t2 WHERE y=0475      UNION476      SELECT 7 FROM t2 WHERE y=1477      UNION478      SELECT 8 FROM t2 WHERE y=2479      UNION480      SELECT 9 FROM t2 WHERE y=3481      UNION482      SELECT 10 FROM t2 WHERE y=4483    )484  }485} {1}486do_test tkt1473-6.4 {487  execsql {488    SELECT EXISTS (489      SELECT 1 FROM t2 WHERE x=0490      UNION491      SELECT 2 FROM t2 WHERE x=-1492      UNION493      SELECT 3 FROM t2 WHERE x=2494      UNION495      SELECT 4 FROM t2 WHERE x=3496      UNION497      SELECT 5 FROM t2 WHERE x=4498      UNION499      SELECT 6 FROM t2 WHERE y=0500      UNION501      SELECT 7 FROM t2 WHERE y=1502      UNION503      SELECT 8 FROM t2 WHERE y=2504      UNION505      SELECT 9 FROM t2 WHERE y=3506      UNION507      SELECT 10 FROM t2 WHERE y=4508    )509  }510} {1}511 512do_test tkt1473-6.5 {513  execsql {514    SELECT EXISTS (515      SELECT 1 FROM t2 WHERE x=0516      UNION517      SELECT 2 FROM t2 WHERE x=-1518      UNION519      SELECT 3 FROM t2 WHERE x=2520      UNION521      SELECT 4 FROM t2 WHERE x=-1522      UNION523      SELECT 5 FROM t2 WHERE x=4524      UNION525      SELECT 6 FROM t2 WHERE y=0526      UNION527      SELECT 7 FROM t2 WHERE y=1528      UNION529      SELECT 8 FROM t2 WHERE y=2530      UNION531      SELECT 9 FROM t2 WHERE y=3532      UNION533      SELECT 10 FROM t2 WHERE y=-4534    )535  }536} {1}537do_test tkt1473-6.6 {538  execsql {539    SELECT EXISTS (540      SELECT 1 FROM t2 WHERE x=0541      UNION542      SELECT 2 FROM t2 WHERE x=-1543      UNION544      SELECT 3 FROM t2 WHERE x=2545      UNION546      SELECT 4 FROM t2 WHERE x=-2547      UNION548      SELECT 5 FROM t2 WHERE x=4549      UNION550      SELECT 6 FROM t2 WHERE y=0551      UNION552      SELECT 7 FROM t2 WHERE y=1553      UNION554      SELECT 8 FROM t2 WHERE y=-3555      UNION556      SELECT 9 FROM t2 WHERE y=3557      UNION558      SELECT 10 FROM t2 WHERE y=4559    )560  }561} {1}562do_test tkt1473-6.7 {563  execsql {564    SELECT EXISTS (565      SELECT 1 FROM t2 WHERE x=0566      UNION567      SELECT 2 FROM t2 WHERE x=-1568      UNION569      SELECT 3 FROM t2 WHERE x=2570      UNION571      SELECT 4 FROM t2 WHERE x=-2572      UNION573      SELECT 5 FROM t2 WHERE x=4574      UNION575      SELECT 6 FROM t2 WHERE y=0576      UNION577      SELECT 7 FROM t2 WHERE y=1578      UNION579      SELECT 8 FROM t2 WHERE y=-3580      UNION581      SELECT 9 FROM t2 WHERE y=3582      UNION583      SELECT 10 FROM t2 WHERE y=-4584    )585  }586} {0}587do_test tkt1473-6.8 {588  execsql {589    SELECT EXISTS (590      SELECT 1 FROM t2 WHERE x=0591      UNION592      SELECT 2 FROM t2 WHERE x=-1593      UNION594      SELECT 3 FROM t2 WHERE x=2595      UNION596      SELECT 4 FROM t2 WHERE x=-2597      UNION598      SELECT 5 FROM t2 WHERE x=4599      UNION ALL600      SELECT 6 FROM t2 WHERE y=0601      UNION602      SELECT 7 FROM t2 WHERE y=1603      UNION604      SELECT 8 FROM t2 WHERE y=-3605      UNION606      SELECT 9 FROM t2 WHERE y=3607      UNION608      SELECT 10 FROM t2 WHERE y=4609    )610  }611} {1}612do_test tkt1473-6.9 {613  execsql {614    SELECT EXISTS (615      SELECT 1 FROM t2 WHERE x=0616      UNION617      SELECT 2 FROM t2 WHERE x=-1618      UNION619      SELECT 3 FROM t2 WHERE x=2620      UNION621      SELECT 4 FROM t2 WHERE x=-2622      UNION623      SELECT 5 FROM t2 WHERE x=4624      UNION ALL625      SELECT 6 FROM t2 WHERE y=0626      UNION627      SELECT 7 FROM t2 WHERE y=1628      UNION629      SELECT 8 FROM t2 WHERE y=-3630      UNION631      SELECT 9 FROM t2 WHERE y=3632      UNION633      SELECT 10 FROM t2 WHERE y=-4634    )635  }636} {0}637 638do_test tkt1473-7.1 {639  execsql {640    SELECT 1 FROM t2 WHERE x=1 EXCEPT SELECT 2 FROM t2 WHERE y=2641  }642} {1}643do_test tkt1473-7.2 {644  execsql {645    SELECT (646      SELECT 1 FROM t2 WHERE x=1 EXCEPT SELECT 2 FROM t2 WHERE y=2647    )648  }649} {1}650do_test tkt1473-7.3 {651  execsql {652    SELECT EXISTS (653      SELECT 1 FROM t2 WHERE x=1 EXCEPT SELECT 2 FROM t2 WHERE y=2654    )655  }656} {1}657do_test tkt1473-7.4 {658  execsql {659    SELECT (660      SELECT 1 FROM t2 WHERE x=0 EXCEPT SELECT 2 FROM t2 WHERE y=2661    )662  }663} {{}}664do_test tkt1473-7.5 {665  execsql {666    SELECT EXISTS (667      SELECT 1 FROM t2 WHERE x=0 EXCEPT SELECT 2 FROM t2 WHERE y=2668    )669  }670} {0}671 672do_test tkt1473-8.1 {673  execsql {674    SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 2 FROM t2 WHERE y=2675  }676} {}677do_test tkt1473-8.1 {678  execsql {679    SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 1 FROM t2 WHERE y=2680  }681} {1}682do_test tkt1473-8.3 {683  execsql {684    SELECT (685      SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 2 FROM t2 WHERE y=2686    )687  }688} {{}}689do_test tkt1473-8.4 {690  execsql {691    SELECT (692      SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 1 FROM t2 WHERE y=2693    )694  }695} {1}696do_test tkt1473-8.5 {697  execsql {698    SELECT EXISTS (699      SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 2 FROM t2 WHERE y=2700    )701  }702} {0}703do_test tkt1473-8.6 {704  execsql {705    SELECT EXISTS (706      SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 1 FROM t2 WHERE y=2707    )708  }709} {1}710do_test tkt1473-8.7 {711  execsql {712    SELECT (713      SELECT 1 FROM t2 WHERE x=0 INTERSECT SELECT 1 FROM t2 WHERE y=2714    )715  }716} {{}}717do_test tkt1473-8.8 {718  execsql {719    SELECT EXISTS (720      SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 1 FROM t2 WHERE y=0721    )722  }723} {0}724 725 726 727 728finish_test729