diff --git a/manifest b/manifest index dee122d728..b1d7fd604d 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Version\s3.5.6\s(CVS\s4777) -D 2008-02-06T16:58:28 +C Do\snot\srelease\sregisters\sused\sto\shold\sthe\sresults\sof\sa\scompound\sselect\nafter\sjust\sthe\sfirst\sselect\shas\srun.\s\sTicket\s#2927.\s\sFor\snow,\swe\swill\nnever\srelease\sthe\sregisters\sused\sto\shold\sthe\sresult\sset,\ssince\sthe\ssame\nregister\sset\swill\sbe\sused\sfor\seach\sselect.\s\sThis\sis\snot\san\sunacceptable\nregister\sleak\sand\sit\sis\sthe\ssafest\sapproach.\s(CVS\s4778) +D 2008-02-06T23:52:37 F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7 F Makefile.in bc2b5df3e3d0d4b801b824b7ef6dec43812b049b F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -132,7 +132,7 @@ F src/pragma.c 2bb8d6882b9a330e041acd05fb6aff5a01bf0a08 F src/prepare.c 1b0601ca3f97a9d253cc08697484e3045a1678e9 F src/printf.c eb27822ba2eec669161409ca31279a24c26ac910 F src/random.c 02ef38b469237482f1ea14a78b2087cfbaec48bd -F src/select.c 1a5d0aaf8f420b164eb775d3b1ba2bfb79597f65 +F src/select.c 394aa3542e8df599dcca77b0e75f7875760a13ad F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96 F src/shell.c ca06cb687c40a8bff6307b5fad41a0e86a0f8558 F src/sqlite.h.in 690736613958e0f462e08ae2a9136fa335214edc @@ -495,6 +495,7 @@ F test/tkt2822.test 8b1526b1e5b0d38a1a993f7828fbb81759093686 F test/tkt2832.test cd56dc66bb31898b7eb2146baa5bde2eb80f96fe F test/tkt2854.test aebd5a9904d36d1ef7a074fc5e7c7da3ab00c32a F test/tkt2920.test a8737380e4ae6424e00c0273dc12775704efbebf +F test/tkt2927.test 492c6a9a14b2fc7bdbb17ce8e497d82df627f64d F test/trace.test 951cd0f5f571e7f36bf7bfe04be70f90fb16fb00 F test/trans.test b73289992b46d38d9479ecc4fdc03d8edb2413dc F test/trigger1.test 7c13f39ca36f529bf856e05c7d004fc0531d48b4 @@ -615,7 +616,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5 -P 3444efabfc3d9a30b7ef22f40ecfa401d033d43f -R 73930ec2f92f5a7b40b836d05a1f5880 +P 1d82ab6987e567fff051cf4dd7b1a0bf6d174145 +R 27d406015aaf8a169469efe427569dc7 U drh -Z 984cc6ab4f49b36fd57cbb663a11c64f +Z f7375f9f0a761af4d5cb2ddfe36898ea diff --git a/manifest.uuid b/manifest.uuid index 28153c2d9a..d7e89c1850 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -1d82ab6987e567fff051cf4dd7b1a0bf6d174145 \ No newline at end of file +e9fcb793998be07eaea01404407087b71c29853d \ No newline at end of file diff --git a/src/select.c b/src/select.c index 981691f61c..590f6e6850 100644 --- a/src/select.c +++ b/src/select.c @@ -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.411 2008/01/25 15:04:50 drh Exp $ +** $Id: select.c,v 1.412 2008/02/06 23:52:37 drh Exp $ */ #include "sqliteInt.h" @@ -522,7 +522,6 @@ static void selectInnerLoop( int eDest = pDest->eDest; /* How to dispose of results */ int iParm = pDest->iParm; /* First argument to disposal method */ int nResultCol; /* Number of result columns */ - int nToFree; /* Number of result columns to release */ if( v==0 ) return; assert( pEList!=0 ); @@ -542,13 +541,10 @@ static void selectInnerLoop( }else{ nResultCol = pEList->nExpr; } - if( pDest->iMem>0 ){ - regResult = pDest->iMem; - nToFree = 0; - }else{ - pDest->iMem = regResult = sqlite3GetTempRange(pParse, nResultCol); - nToFree = nResultCol; + if( pDest->iMem==0 ){ + pDest->iMem = sqlite3GetTempRange(pParse, nResultCol); } + regResult = pDest->iMem; if( nColumn>0 ){ for(i=0; iiLimit, -1); sqlite3VdbeAddOp2(v, OP_IfZero, p->iLimit, iBreak); } - sqlite3ReleaseTempRange(pParse, regResult, nToFree); } /* diff --git a/test/tkt2927.test b/test/tkt2927.test new file mode 100644 index 0000000000..d72aad7bbe --- /dev/null +++ b/test/tkt2927.test @@ -0,0 +1,638 @@ +# 2008 Feb 6 +# +# 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 is to test that ticket #2927 is fixed. +# +# $Id: tkt2927.test,v 1.1 2008/02/06 23:52:37 drh Exp $ +# + +set testdir [file dirname $argv0] +source $testdir/tester.tcl + +# Create a database. +# +do_test tkt2927-1.1 { + db eval { + CREATE TABLE t1(a, b); + INSERT INTO t1 VALUES(1,11); + INSERT INTO t1 VALUES(2,22); + INSERT INTO t1 VALUES(3,33); + INSERT INTO t1 VALUES(4,44); + INSERT INTO t1 VALUES(5,55); + SELECT * FROM t1; + } +} {1 11 2 22 3 33 4 44 5 55} + + +do_test tkt2927-2.1 { + db eval { + SELECT a, b FROM t1 + UNION ALL + SELECT a, b FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.2 { +breakpoint +#set sqlite_addop_trace 1 + db eval { + SELECT a, b FROM t1 + UNION ALL + SELECT a, abs(b) FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.3 { + db eval { + SELECT a, b FROM t1 + UNION ALL + SELECT abs(a), b FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.4 { + db eval { + SELECT a, b FROM t1 + UNION ALL + SELECT abs(a), abs(b) FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.5 { + db eval { + SELECT a, abs(b) FROM t1 + UNION ALL + SELECT a, b FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.6 { + db eval { + SELECT a, abs(b) FROM t1 + UNION ALL + SELECT a, abs(b) FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.7 { + db eval { + SELECT a, abs(b) FROM t1 + UNION ALL + SELECT abs(a), b FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.8 { + db eval { + SELECT a, abs(b) FROM t1 + UNION ALL + SELECT abs(a), abs(b) FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.9 { + db eval { + SELECT abs(a), b FROM t1 + UNION ALL + SELECT a, b FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.10 { + db eval { + SELECT abs(a), b FROM t1 + UNION ALL + SELECT a, abs(b) FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.11 { + db eval { + SELECT abs(a), b FROM t1 + UNION ALL + SELECT abs(a), b FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.12 { + db eval { + SELECT abs(a), b FROM t1 + UNION ALL + SELECT abs(a), abs(b) FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.13 { + db eval { + SELECT abs(a), abs(b) FROM t1 + UNION ALL + SELECT a, b FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.14 { + db eval { + SELECT abs(a), abs(b) FROM t1 + UNION ALL + SELECT a, abs(b) FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.15 { + db eval { + SELECT abs(a), abs(b) FROM t1 + UNION ALL + SELECT abs(a), b FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-2.16 { + db eval { + SELECT abs(a), abs(b) FROM t1 + UNION ALL + SELECT abs(a), abs(b) FROM t1 + } +} {1 11 2 22 3 33 4 44 5 55 1 11 2 22 3 33 4 44 5 55} + + +do_test tkt2927-3.1 { + db eval { + SELECT a, b FROM t1 + UNION + SELECT a, b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.2 { + db eval { + SELECT a, b FROM t1 + UNION + SELECT a, abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.3 { + db eval { + SELECT a, b FROM t1 + UNION + SELECT abs(a), b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.4 { + db eval { + SELECT a, b FROM t1 + UNION + SELECT abs(a), abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.5 { + db eval { + SELECT a, abs(b) FROM t1 + UNION + SELECT a, b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.6 { + db eval { + SELECT a, abs(b) FROM t1 + UNION + SELECT a, abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.7 { + db eval { + SELECT a, abs(b) FROM t1 + UNION + SELECT abs(a), b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.8 { + db eval { + SELECT a, abs(b) FROM t1 + UNION + SELECT abs(a), abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.9 { + db eval { + SELECT abs(a), b FROM t1 + UNION + SELECT a, b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.10 { + db eval { + SELECT abs(a), b FROM t1 + UNION + SELECT a, abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.11 { + db eval { + SELECT abs(a), b FROM t1 + UNION + SELECT abs(a), b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.12 { + db eval { + SELECT abs(a), b FROM t1 + UNION + SELECT abs(a), abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.13 { + db eval { + SELECT abs(a), abs(b) FROM t1 + UNION + SELECT a, b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.14 { + db eval { + SELECT abs(a), abs(b) FROM t1 + UNION + SELECT a, abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.15 { + db eval { + SELECT abs(a), abs(b) FROM t1 + UNION + SELECT abs(a), b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-3.16 { + db eval { + SELECT abs(a), abs(b) FROM t1 + UNION + SELECT abs(a), abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} + + +do_test tkt2927-4.1 { + db eval { + SELECT a+b, a-b, a, b FROM t1 + UNION ALL + SELECT a+b, a-b, a, b FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.2 { + db eval { + SELECT a+b, a-b, a, b FROM t1 + UNION ALL + SELECT a+b, a-b, a, abs(b) FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.3 { + db eval { + SELECT a+b, a-b, a, b FROM t1 + UNION ALL + SELECT a+b, a-b, abs(a), b FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.4 { + db eval { + SELECT a+b, a-b, a, b FROM t1 + UNION ALL + SELECT a+b, a-b, abs(a), abs(b) FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.5 { + db eval { + SELECT a+b, a-b, a, abs(b) FROM t1 + UNION ALL + SELECT a+b, a-b, a, b FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.6 { + db eval { + SELECT a+b, a-b, a, abs(b) FROM t1 + UNION ALL + SELECT a+b, a-b, a, abs(b) FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.7 { + db eval { + SELECT a+b, a-b, a, abs(b) FROM t1 + UNION ALL + SELECT a+b, a-b, abs(a), b FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.8 { + db eval { + SELECT a+b, a-b, a, abs(b) FROM t1 + UNION ALL + SELECT a+b, a-b, abs(a), abs(b) FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.9 { + db eval { + SELECT a+b, a-b, abs(a), b FROM t1 + UNION ALL + SELECT a+b, a-b, a, b FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.10 { + db eval { + SELECT a+b, a-b, abs(a), b FROM t1 + UNION ALL + SELECT a+b, a-b, a, abs(b) FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.11 { + db eval { + SELECT a+b, a-b, abs(a), b FROM t1 + UNION ALL + SELECT a+b, a-b, abs(a), b FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.12 { + db eval { + SELECT a+b, a-b, abs(a), b FROM t1 + UNION ALL + SELECT a+b, a-b, abs(a), abs(b) FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.13 { + db eval { + SELECT a+b, a-b, abs(a), abs(b) FROM t1 + UNION ALL + SELECT a+b, a-b, a, b FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.14 { + db eval { + SELECT a+b, a-b, abs(a), abs(b) FROM t1 + UNION ALL + SELECT a+b, a-b, a, abs(b) FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.15 { + db eval { + SELECT a+b, a-b, abs(a), abs(b) FROM t1 + UNION ALL + SELECT a+b, a-b, abs(a), b FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} +do_test tkt2927-4.16 { + db eval { + SELECT a+b, a-b, abs(a), abs(b) FROM t1 + UNION ALL + SELECT a+b, a-b, abs(a), abs(b) FROM t1 + } +} {12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55 12 -10 1 11 24 -20 2 22 36 -30 3 33 48 -40 4 44 60 -50 5 55} + + +do_test tkt2927-5.1 { + db eval { + SELECT a, b FROM t1 + EXCEPT + SELECT a, b FROM t1 + } +} {} +do_test tkt2927-5.2 { + db eval { + SELECT a, b FROM t1 + EXCEPT + SELECT a, abs(b) FROM t1 + } +} {} +do_test tkt2927-5.3 { + db eval { + SELECT a, b FROM t1 + EXCEPT + SELECT abs(a), b FROM t1 + } +} {} +do_test tkt2927-5.4 { + db eval { + SELECT a, b FROM t1 + EXCEPT + SELECT abs(a), abs(b) FROM t1 + } +} {} +do_test tkt2927-5.5 { + db eval { + SELECT a, abs(b) FROM t1 + EXCEPT + SELECT a, b FROM t1 + } +} {} +do_test tkt2927-5.6 { + db eval { + SELECT a, abs(b) FROM t1 + EXCEPT + SELECT a, abs(b) FROM t1 + } +} {} +do_test tkt2927-5.7 { + db eval { + SELECT a, abs(b) FROM t1 + EXCEPT + SELECT abs(a), b FROM t1 + } +} {} +do_test tkt2927-5.8 { + db eval { + SELECT a, abs(b) FROM t1 + EXCEPT + SELECT abs(a), abs(b) FROM t1 + } +} {} +do_test tkt2927-5.9 { + db eval { + SELECT abs(a), b FROM t1 + EXCEPT + SELECT a, b FROM t1 + } +} {} +do_test tkt2927-5.10 { + db eval { + SELECT abs(a), b FROM t1 + EXCEPT + SELECT a, abs(b) FROM t1 + } +} {} +do_test tkt2927-5.11 { + db eval { + SELECT abs(a), b FROM t1 + EXCEPT + SELECT abs(a), b FROM t1 + } +} {} +do_test tkt2927-5.12 { + db eval { + SELECT abs(a), b FROM t1 + EXCEPT + SELECT abs(a), abs(b) FROM t1 + } +} {} +do_test tkt2927-5.13 { + db eval { + SELECT abs(a), abs(b) FROM t1 + EXCEPT + SELECT a, b FROM t1 + } +} {} +do_test tkt2927-5.14 { + db eval { + SELECT abs(a), abs(b) FROM t1 + EXCEPT + SELECT a, abs(b) FROM t1 + } +} {} +do_test tkt2927-5.15 { + db eval { + SELECT abs(a), abs(b) FROM t1 + EXCEPT + SELECT abs(a), b FROM t1 + } +} {} +do_test tkt2927-5.16 { + db eval { + SELECT abs(a), abs(b) FROM t1 + EXCEPT + SELECT abs(a), abs(b) FROM t1 + } +} {} + + +do_test tkt2927-6.1 { + db eval { + SELECT a, b FROM t1 + INTERSECT + SELECT a, b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.2 { + db eval { + SELECT a, b FROM t1 + INTERSECT + SELECT a, abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.3 { + db eval { + SELECT a, b FROM t1 + INTERSECT + SELECT abs(a), b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.4 { + db eval { + SELECT a, b FROM t1 + INTERSECT + SELECT abs(a), abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.5 { + db eval { + SELECT a, abs(b) FROM t1 + INTERSECT + SELECT a, b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.6 { + db eval { + SELECT a, abs(b) FROM t1 + INTERSECT + SELECT a, abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.7 { + db eval { + SELECT a, abs(b) FROM t1 + INTERSECT + SELECT abs(a), b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.8 { + db eval { + SELECT a, abs(b) FROM t1 + INTERSECT + SELECT abs(a), abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.9 { + db eval { + SELECT abs(a), b FROM t1 + INTERSECT + SELECT a, b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.10 { + db eval { + SELECT abs(a), b FROM t1 + INTERSECT + SELECT a, abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.11 { + db eval { + SELECT abs(a), b FROM t1 + INTERSECT + SELECT abs(a), b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.12 { + db eval { + SELECT abs(a), b FROM t1 + INTERSECT + SELECT abs(a), abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.13 { + db eval { + SELECT abs(a), abs(b) FROM t1 + INTERSECT + SELECT a, b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.14 { + db eval { + SELECT abs(a), abs(b) FROM t1 + INTERSECT + SELECT a, abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.15 { + db eval { + SELECT abs(a), abs(b) FROM t1 + INTERSECT + SELECT abs(a), b FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} +do_test tkt2927-6.16 { + db eval { + SELECT abs(a), abs(b) FROM t1 + INTERSECT + SELECT abs(a), abs(b) FROM t1 + ORDER BY 1 + } +} {1 11 2 22 3 33 4 44 5 55} + +finish_test