tkt1473.test 15 KB

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