File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sqlite3 / test / tkt1473.test
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:04:16 2012 UTC (12 years, 10 months ago) by misho
Branches: sqlite3, MAIN
CVS tags: v3_7_10, HEAD
sqlite3

    1: # 2005 September 19
    2: #
    3: # The author disclaims copyright to this source code.  In place of
    4: # 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 been
   14: # fixed.  
   15: #
   16: 
   17: set testdir [file dirname $argv0]
   18: source $testdir/tester.tcl
   19: 
   20: ifcapable !compound {
   21:   finish_test
   22:   return 
   23: }
   24: 
   25: do_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 t1
   31:   }
   32: } {1 2 3 4}
   33: 
   34: do_test tkt1473-1.2 {
   35:   execsql {
   36:     SELECT 1 FROM t1 WHERE a=1 UNION ALL SELECT 2 FROM t1 WHERE b=0
   37:   }
   38: } {1}
   39: do_test tkt1473-1.3 {
   40:   execsql {
   41:     SELECT 1 FROM t1 WHERE a=1 UNION SELECT 2 FROM t1 WHERE b=0
   42:   }
   43: } {1}
   44: do_test tkt1473-1.4 {
   45:   execsql {
   46:     SELECT 1 FROM t1 WHERE a=1 UNION ALL SELECT 2 FROM t1 WHERE b=4
   47:   }
   48: } {1 2}
   49: do_test tkt1473-1.5 {
   50:   execsql {
   51:     SELECT 1 FROM t1 WHERE a=1 UNION SELECT 2 FROM t1 WHERE b=4
   52:   }
   53: } {1 2}
   54: do_test tkt1473-1.6 {
   55:   execsql {
   56:     SELECT 1 FROM t1 WHERE a=0 UNION ALL SELECT 2 FROM t1 WHERE b=4
   57:   }
   58: } {2}
   59: do_test tkt1473-1.7 {
   60:   execsql {
   61:     SELECT 1 FROM t1 WHERE a=0 UNION SELECT 2 FROM t1 WHERE b=4
   62:   }
   63: } {2}
   64: do_test tkt1473-1.8 {
   65:   execsql {
   66:     SELECT 1 FROM t1 WHERE a=0 UNION ALL SELECT 2 FROM t1 WHERE b=0
   67:   }
   68: } {}
   69: do_test tkt1473-1.9 {
   70:   execsql {
   71:     SELECT 1 FROM t1 WHERE a=0 UNION SELECT 2 FROM t1 WHERE b=0
   72:   }
   73: } {}
   74: 
   75: # Everything from this point on depends on sub-queries. So skip it
   76: # if sub-queries are not available.
   77: ifcapable !subquery {
   78:   finish_test
   79:   return
   80: }
   81: 
   82: do_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}
   87: do_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}
   92: do_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}
   97: do_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}
  102: do_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}
  107: do_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}
  112: do_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: } {{}}
  117: do_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: 
  123: do_test tkt1473-3.2 {
  124:   execsql {
  125:     SELECT EXISTS
  126:       (SELECT 1 FROM t1 WHERE a=1 UNION ALL SELECT 2 FROM t1 WHERE b=0)
  127:   }
  128: } {1}
  129: do_test tkt1473-3.3 {
  130:   execsql {
  131:     SELECT EXISTS
  132:       (SELECT 1 FROM t1 WHERE a=1 UNION SELECT 2 FROM t1 WHERE b=0)
  133:   }
  134: } {1}
  135: do_test tkt1473-3.4 {
  136:   execsql {
  137:     SELECT EXISTS
  138:       (SELECT 1 FROM t1 WHERE a=1 UNION ALL SELECT 2 FROM t1 WHERE b=4)
  139:   }
  140: } {1}
  141: do_test tkt1473-3.5 {
  142:   execsql {
  143:     SELECT EXISTS
  144:       (SELECT 1 FROM t1 WHERE a=1 UNION SELECT 2 FROM t1 WHERE b=4)
  145:   }
  146: } {1}
  147: do_test tkt1473-3.6 {
  148:   execsql {
  149:     SELECT EXISTS
  150:       (SELECT 1 FROM t1 WHERE a=0 UNION ALL SELECT 2 FROM t1 WHERE b=4)
  151:   }
  152: } {1}
  153: do_test tkt1473-3.7 {
  154:   execsql {
  155:     SELECT EXISTS
  156:       (SELECT 1 FROM t1 WHERE a=0 UNION SELECT 2 FROM t1 WHERE b=4)
  157:   }
  158: } {1}
  159: do_test tkt1473-3.8 {
  160:   execsql {
  161:     SELECT EXISTS
  162:       (SELECT 1 FROM t1 WHERE a=0 UNION ALL SELECT 2 FROM t1 WHERE b=0)
  163:   }
  164: } {0}
  165: do_test tkt1473-3.9 {
  166:   execsql {
  167:     SELECT EXISTS
  168:       (SELECT 1 FROM t1 WHERE a=0 UNION SELECT 2 FROM t1 WHERE b=0)
  169:   }
  170: } {0}
  171: 
  172: do_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}
  185: do_test tkt1473-4.2 {
  186:   execsql {
  187:     SELECT 1 FROM t2 WHERE x=0
  188:     UNION ALL
  189:     SELECT 2 FROM t2 WHERE x=1
  190:     UNION ALL
  191:     SELECT 3 FROM t2 WHERE x=2
  192:     UNION ALL
  193:     SELECT 4 FROM t2 WHERE x=3
  194:     UNION ALL
  195:     SELECT 5 FROM t2 WHERE x=4
  196:     UNION ALL
  197:     SELECT 6 FROM t2 WHERE y=0
  198:     UNION ALL
  199:     SELECT 7 FROM t2 WHERE y=1
  200:     UNION ALL
  201:     SELECT 8 FROM t2 WHERE y=2
  202:     UNION ALL
  203:     SELECT 9 FROM t2 WHERE y=3
  204:     UNION ALL
  205:     SELECT 10 FROM t2 WHERE y=4
  206:   }
  207: } {2 4 8 10}
  208: do_test tkt1473-4.3 {
  209:   execsql {
  210:     SELECT (
  211:       SELECT 1 FROM t2 WHERE x=0
  212:       UNION ALL
  213:       SELECT 2 FROM t2 WHERE x=1
  214:       UNION ALL
  215:       SELECT 3 FROM t2 WHERE x=2
  216:       UNION ALL
  217:       SELECT 4 FROM t2 WHERE x=3
  218:       UNION ALL
  219:       SELECT 5 FROM t2 WHERE x=4
  220:       UNION ALL
  221:       SELECT 6 FROM t2 WHERE y=0
  222:       UNION ALL
  223:       SELECT 7 FROM t2 WHERE y=1
  224:       UNION ALL
  225:       SELECT 8 FROM t2 WHERE y=2
  226:       UNION ALL
  227:       SELECT 9 FROM t2 WHERE y=3
  228:       UNION ALL
  229:       SELECT 10 FROM t2 WHERE y=4
  230:     )
  231:   }
  232: } {2}
  233: do_test tkt1473-4.4 {
  234:   execsql {
  235:     SELECT (
  236:       SELECT 1 FROM t2 WHERE x=0
  237:       UNION ALL
  238:       SELECT 2 FROM t2 WHERE x=-1
  239:       UNION ALL
  240:       SELECT 3 FROM t2 WHERE x=2
  241:       UNION ALL
  242:       SELECT 4 FROM t2 WHERE x=3
  243:       UNION ALL
  244:       SELECT 5 FROM t2 WHERE x=4
  245:       UNION ALL
  246:       SELECT 6 FROM t2 WHERE y=0
  247:       UNION ALL
  248:       SELECT 7 FROM t2 WHERE y=1
  249:       UNION ALL
  250:       SELECT 8 FROM t2 WHERE y=2
  251:       UNION ALL
  252:       SELECT 9 FROM t2 WHERE y=3
  253:       UNION ALL
  254:       SELECT 10 FROM t2 WHERE y=4
  255:     )
  256:   }
  257: } {4}
  258: do_test tkt1473-4.5 {
  259:   execsql {
  260:     SELECT (
  261:       SELECT 1 FROM t2 WHERE x=0
  262:       UNION ALL
  263:       SELECT 2 FROM t2 WHERE x=-1
  264:       UNION ALL
  265:       SELECT 3 FROM t2 WHERE x=2
  266:       UNION ALL
  267:       SELECT 4 FROM t2 WHERE x=-1
  268:       UNION ALL
  269:       SELECT 5 FROM t2 WHERE x=4
  270:       UNION ALL
  271:       SELECT 6 FROM t2 WHERE y=0
  272:       UNION ALL
  273:       SELECT 7 FROM t2 WHERE y=1
  274:       UNION ALL
  275:       SELECT 8 FROM t2 WHERE y=2
  276:       UNION ALL
  277:       SELECT 9 FROM t2 WHERE y=3
  278:       UNION ALL
  279:       SELECT 10 FROM t2 WHERE y=-4
  280:     )
  281:   }
  282: } {8}
  283: do_test tkt1473-4.6 {
  284:   execsql {
  285:     SELECT (
  286:       SELECT 1 FROM t2 WHERE x=0
  287:       UNION ALL
  288:       SELECT 2 FROM t2 WHERE x=-1
  289:       UNION ALL
  290:       SELECT 3 FROM t2 WHERE x=2
  291:       UNION ALL
  292:       SELECT 4 FROM t2 WHERE x=-2
  293:       UNION ALL
  294:       SELECT 5 FROM t2 WHERE x=4
  295:       UNION ALL
  296:       SELECT 6 FROM t2 WHERE y=0
  297:       UNION ALL
  298:       SELECT 7 FROM t2 WHERE y=1
  299:       UNION ALL
  300:       SELECT 8 FROM t2 WHERE y=-3
  301:       UNION ALL
  302:       SELECT 9 FROM t2 WHERE y=3
  303:       UNION ALL
  304:       SELECT 10 FROM t2 WHERE y=4
  305:     )
  306:   }
  307: } {10}
  308: do_test tkt1473-4.7 {
  309:   execsql {
  310:     SELECT (
  311:       SELECT 1 FROM t2 WHERE x=0
  312:       UNION ALL
  313:       SELECT 2 FROM t2 WHERE x=-1
  314:       UNION ALL
  315:       SELECT 3 FROM t2 WHERE x=2
  316:       UNION ALL
  317:       SELECT 4 FROM t2 WHERE x=-2
  318:       UNION ALL
  319:       SELECT 5 FROM t2 WHERE x=4
  320:       UNION ALL
  321:       SELECT 6 FROM t2 WHERE y=0
  322:       UNION ALL
  323:       SELECT 7 FROM t2 WHERE y=1
  324:       UNION ALL
  325:       SELECT 8 FROM t2 WHERE y=-3
  326:       UNION ALL
  327:       SELECT 9 FROM t2 WHERE y=3
  328:       UNION ALL
  329:       SELECT 10 FROM t2 WHERE y=-4
  330:     )
  331:   }
  332: } {{}}
  333: 
  334: do_test tkt1473-5.3 {
  335:   execsql {
  336:     SELECT EXISTS (
  337:       SELECT 1 FROM t2 WHERE x=0
  338:       UNION ALL
  339:       SELECT 2 FROM t2 WHERE x=1
  340:       UNION ALL
  341:       SELECT 3 FROM t2 WHERE x=2
  342:       UNION ALL
  343:       SELECT 4 FROM t2 WHERE x=3
  344:       UNION ALL
  345:       SELECT 5 FROM t2 WHERE x=4
  346:       UNION ALL
  347:       SELECT 6 FROM t2 WHERE y=0
  348:       UNION ALL
  349:       SELECT 7 FROM t2 WHERE y=1
  350:       UNION ALL
  351:       SELECT 8 FROM t2 WHERE y=2
  352:       UNION ALL
  353:       SELECT 9 FROM t2 WHERE y=3
  354:       UNION ALL
  355:       SELECT 10 FROM t2 WHERE y=4
  356:     )
  357:   }
  358: } {1}
  359: do_test tkt1473-5.4 {
  360:   execsql {
  361:     SELECT EXISTS (
  362:       SELECT 1 FROM t2 WHERE x=0
  363:       UNION ALL
  364:       SELECT 2 FROM t2 WHERE x=-1
  365:       UNION ALL
  366:       SELECT 3 FROM t2 WHERE x=2
  367:       UNION ALL
  368:       SELECT 4 FROM t2 WHERE x=3
  369:       UNION ALL
  370:       SELECT 5 FROM t2 WHERE x=4
  371:       UNION ALL
  372:       SELECT 6 FROM t2 WHERE y=0
  373:       UNION ALL
  374:       SELECT 7 FROM t2 WHERE y=1
  375:       UNION ALL
  376:       SELECT 8 FROM t2 WHERE y=2
  377:       UNION ALL
  378:       SELECT 9 FROM t2 WHERE y=3
  379:       UNION ALL
  380:       SELECT 10 FROM t2 WHERE y=4
  381:     )
  382:   }
  383: } {1}
  384: 
  385: do_test tkt1473-5.5 {
  386:   execsql {
  387:     SELECT EXISTS (
  388:       SELECT 1 FROM t2 WHERE x=0
  389:       UNION ALL
  390:       SELECT 2 FROM t2 WHERE x=-1
  391:       UNION ALL
  392:       SELECT 3 FROM t2 WHERE x=2
  393:       UNION ALL
  394:       SELECT 4 FROM t2 WHERE x=-1
  395:       UNION ALL
  396:       SELECT 5 FROM t2 WHERE x=4
  397:       UNION ALL
  398:       SELECT 6 FROM t2 WHERE y=0
  399:       UNION ALL
  400:       SELECT 7 FROM t2 WHERE y=1
  401:       UNION ALL
  402:       SELECT 8 FROM t2 WHERE y=2
  403:       UNION ALL
  404:       SELECT 9 FROM t2 WHERE y=3
  405:       UNION ALL
  406:       SELECT 10 FROM t2 WHERE y=-4
  407:     )
  408:   }
  409: } {1}
  410: do_test tkt1473-5.6 {
  411:   execsql {
  412:     SELECT EXISTS (
  413:       SELECT 1 FROM t2 WHERE x=0
  414:       UNION ALL
  415:       SELECT 2 FROM t2 WHERE x=-1
  416:       UNION ALL
  417:       SELECT 3 FROM t2 WHERE x=2
  418:       UNION ALL
  419:       SELECT 4 FROM t2 WHERE x=-2
  420:       UNION ALL
  421:       SELECT 5 FROM t2 WHERE x=4
  422:       UNION ALL
  423:       SELECT 6 FROM t2 WHERE y=0
  424:       UNION ALL
  425:       SELECT 7 FROM t2 WHERE y=1
  426:       UNION ALL
  427:       SELECT 8 FROM t2 WHERE y=-3
  428:       UNION ALL
  429:       SELECT 9 FROM t2 WHERE y=3
  430:       UNION ALL
  431:       SELECT 10 FROM t2 WHERE y=4
  432:     )
  433:   }
  434: } {1}
  435: do_test tkt1473-5.7 {
  436:   execsql {
  437:     SELECT EXISTS (
  438:       SELECT 1 FROM t2 WHERE x=0
  439:       UNION ALL
  440:       SELECT 2 FROM t2 WHERE x=-1
  441:       UNION ALL
  442:       SELECT 3 FROM t2 WHERE x=2
  443:       UNION ALL
  444:       SELECT 4 FROM t2 WHERE x=-2
  445:       UNION ALL
  446:       SELECT 5 FROM t2 WHERE x=4
  447:       UNION ALL
  448:       SELECT 6 FROM t2 WHERE y=0
  449:       UNION ALL
  450:       SELECT 7 FROM t2 WHERE y=1
  451:       UNION ALL
  452:       SELECT 8 FROM t2 WHERE y=-3
  453:       UNION ALL
  454:       SELECT 9 FROM t2 WHERE y=3
  455:       UNION ALL
  456:       SELECT 10 FROM t2 WHERE y=-4
  457:     )
  458:   }
  459: } {0}
  460: 
  461: do_test tkt1473-6.3 {
  462:   execsql {
  463:     SELECT EXISTS (
  464:       SELECT 1 FROM t2 WHERE x=0
  465:       UNION
  466:       SELECT 2 FROM t2 WHERE x=1
  467:       UNION
  468:       SELECT 3 FROM t2 WHERE x=2
  469:       UNION
  470:       SELECT 4 FROM t2 WHERE x=3
  471:       UNION
  472:       SELECT 5 FROM t2 WHERE x=4
  473:       UNION
  474:       SELECT 6 FROM t2 WHERE y=0
  475:       UNION
  476:       SELECT 7 FROM t2 WHERE y=1
  477:       UNION
  478:       SELECT 8 FROM t2 WHERE y=2
  479:       UNION
  480:       SELECT 9 FROM t2 WHERE y=3
  481:       UNION
  482:       SELECT 10 FROM t2 WHERE y=4
  483:     )
  484:   }
  485: } {1}
  486: do_test tkt1473-6.4 {
  487:   execsql {
  488:     SELECT EXISTS (
  489:       SELECT 1 FROM t2 WHERE x=0
  490:       UNION
  491:       SELECT 2 FROM t2 WHERE x=-1
  492:       UNION
  493:       SELECT 3 FROM t2 WHERE x=2
  494:       UNION
  495:       SELECT 4 FROM t2 WHERE x=3
  496:       UNION
  497:       SELECT 5 FROM t2 WHERE x=4
  498:       UNION
  499:       SELECT 6 FROM t2 WHERE y=0
  500:       UNION
  501:       SELECT 7 FROM t2 WHERE y=1
  502:       UNION
  503:       SELECT 8 FROM t2 WHERE y=2
  504:       UNION
  505:       SELECT 9 FROM t2 WHERE y=3
  506:       UNION
  507:       SELECT 10 FROM t2 WHERE y=4
  508:     )
  509:   }
  510: } {1}
  511: 
  512: do_test tkt1473-6.5 {
  513:   execsql {
  514:     SELECT EXISTS (
  515:       SELECT 1 FROM t2 WHERE x=0
  516:       UNION
  517:       SELECT 2 FROM t2 WHERE x=-1
  518:       UNION
  519:       SELECT 3 FROM t2 WHERE x=2
  520:       UNION
  521:       SELECT 4 FROM t2 WHERE x=-1
  522:       UNION
  523:       SELECT 5 FROM t2 WHERE x=4
  524:       UNION
  525:       SELECT 6 FROM t2 WHERE y=0
  526:       UNION
  527:       SELECT 7 FROM t2 WHERE y=1
  528:       UNION
  529:       SELECT 8 FROM t2 WHERE y=2
  530:       UNION
  531:       SELECT 9 FROM t2 WHERE y=3
  532:       UNION
  533:       SELECT 10 FROM t2 WHERE y=-4
  534:     )
  535:   }
  536: } {1}
  537: do_test tkt1473-6.6 {
  538:   execsql {
  539:     SELECT EXISTS (
  540:       SELECT 1 FROM t2 WHERE x=0
  541:       UNION
  542:       SELECT 2 FROM t2 WHERE x=-1
  543:       UNION
  544:       SELECT 3 FROM t2 WHERE x=2
  545:       UNION
  546:       SELECT 4 FROM t2 WHERE x=-2
  547:       UNION
  548:       SELECT 5 FROM t2 WHERE x=4
  549:       UNION
  550:       SELECT 6 FROM t2 WHERE y=0
  551:       UNION
  552:       SELECT 7 FROM t2 WHERE y=1
  553:       UNION
  554:       SELECT 8 FROM t2 WHERE y=-3
  555:       UNION
  556:       SELECT 9 FROM t2 WHERE y=3
  557:       UNION
  558:       SELECT 10 FROM t2 WHERE y=4
  559:     )
  560:   }
  561: } {1}
  562: do_test tkt1473-6.7 {
  563:   execsql {
  564:     SELECT EXISTS (
  565:       SELECT 1 FROM t2 WHERE x=0
  566:       UNION
  567:       SELECT 2 FROM t2 WHERE x=-1
  568:       UNION
  569:       SELECT 3 FROM t2 WHERE x=2
  570:       UNION
  571:       SELECT 4 FROM t2 WHERE x=-2
  572:       UNION
  573:       SELECT 5 FROM t2 WHERE x=4
  574:       UNION
  575:       SELECT 6 FROM t2 WHERE y=0
  576:       UNION
  577:       SELECT 7 FROM t2 WHERE y=1
  578:       UNION
  579:       SELECT 8 FROM t2 WHERE y=-3
  580:       UNION
  581:       SELECT 9 FROM t2 WHERE y=3
  582:       UNION
  583:       SELECT 10 FROM t2 WHERE y=-4
  584:     )
  585:   }
  586: } {0}
  587: do_test tkt1473-6.8 {
  588:   execsql {
  589:     SELECT EXISTS (
  590:       SELECT 1 FROM t2 WHERE x=0
  591:       UNION
  592:       SELECT 2 FROM t2 WHERE x=-1
  593:       UNION
  594:       SELECT 3 FROM t2 WHERE x=2
  595:       UNION
  596:       SELECT 4 FROM t2 WHERE x=-2
  597:       UNION
  598:       SELECT 5 FROM t2 WHERE x=4
  599:       UNION ALL
  600:       SELECT 6 FROM t2 WHERE y=0
  601:       UNION
  602:       SELECT 7 FROM t2 WHERE y=1
  603:       UNION
  604:       SELECT 8 FROM t2 WHERE y=-3
  605:       UNION
  606:       SELECT 9 FROM t2 WHERE y=3
  607:       UNION
  608:       SELECT 10 FROM t2 WHERE y=4
  609:     )
  610:   }
  611: } {1}
  612: do_test tkt1473-6.9 {
  613:   execsql {
  614:     SELECT EXISTS (
  615:       SELECT 1 FROM t2 WHERE x=0
  616:       UNION
  617:       SELECT 2 FROM t2 WHERE x=-1
  618:       UNION
  619:       SELECT 3 FROM t2 WHERE x=2
  620:       UNION
  621:       SELECT 4 FROM t2 WHERE x=-2
  622:       UNION
  623:       SELECT 5 FROM t2 WHERE x=4
  624:       UNION ALL
  625:       SELECT 6 FROM t2 WHERE y=0
  626:       UNION
  627:       SELECT 7 FROM t2 WHERE y=1
  628:       UNION
  629:       SELECT 8 FROM t2 WHERE y=-3
  630:       UNION
  631:       SELECT 9 FROM t2 WHERE y=3
  632:       UNION
  633:       SELECT 10 FROM t2 WHERE y=-4
  634:     )
  635:   }
  636: } {0}
  637: 
  638: do_test tkt1473-7.1 {
  639:   execsql {
  640:     SELECT 1 FROM t2 WHERE x=1 EXCEPT SELECT 2 FROM t2 WHERE y=2
  641:   }
  642: } {1}
  643: do_test tkt1473-7.2 {
  644:   execsql {
  645:     SELECT (
  646:       SELECT 1 FROM t2 WHERE x=1 EXCEPT SELECT 2 FROM t2 WHERE y=2
  647:     )
  648:   }
  649: } {1}
  650: do_test tkt1473-7.3 {
  651:   execsql {
  652:     SELECT EXISTS (
  653:       SELECT 1 FROM t2 WHERE x=1 EXCEPT SELECT 2 FROM t2 WHERE y=2
  654:     )
  655:   }
  656: } {1}
  657: do_test tkt1473-7.4 {
  658:   execsql {
  659:     SELECT (
  660:       SELECT 1 FROM t2 WHERE x=0 EXCEPT SELECT 2 FROM t2 WHERE y=2
  661:     )
  662:   }
  663: } {{}}
  664: do_test tkt1473-7.5 {
  665:   execsql {
  666:     SELECT EXISTS (
  667:       SELECT 1 FROM t2 WHERE x=0 EXCEPT SELECT 2 FROM t2 WHERE y=2
  668:     )
  669:   }
  670: } {0}
  671: 
  672: do_test tkt1473-8.1 {
  673:   execsql {
  674:     SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 2 FROM t2 WHERE y=2
  675:   }
  676: } {}
  677: do_test tkt1473-8.1 {
  678:   execsql {
  679:     SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 1 FROM t2 WHERE y=2
  680:   }
  681: } {1}
  682: do_test tkt1473-8.3 {
  683:   execsql {
  684:     SELECT (
  685:       SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 2 FROM t2 WHERE y=2
  686:     )
  687:   }
  688: } {{}}
  689: do_test tkt1473-8.4 {
  690:   execsql {
  691:     SELECT (
  692:       SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 1 FROM t2 WHERE y=2
  693:     )
  694:   }
  695: } {1}
  696: do_test tkt1473-8.5 {
  697:   execsql {
  698:     SELECT EXISTS (
  699:       SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 2 FROM t2 WHERE y=2
  700:     )
  701:   }
  702: } {0}
  703: do_test tkt1473-8.6 {
  704:   execsql {
  705:     SELECT EXISTS (
  706:       SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 1 FROM t2 WHERE y=2
  707:     )
  708:   }
  709: } {1}
  710: do_test tkt1473-8.7 {
  711:   execsql {
  712:     SELECT (
  713:       SELECT 1 FROM t2 WHERE x=0 INTERSECT SELECT 1 FROM t2 WHERE y=2
  714:     )
  715:   }
  716: } {{}}
  717: do_test tkt1473-8.8 {
  718:   execsql {
  719:     SELECT EXISTS (
  720:       SELECT 1 FROM t2 WHERE x=1 INTERSECT SELECT 1 FROM t2 WHERE y=0
  721:     )
  722:   }
  723: } {0}
  724: 
  725: 
  726: 
  727: 
  728: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>