SQLite

Check-in [ab3f8f193a]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Remove obsolete vector-IN test cases. Fix a bad testcase() macro.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | rowvalue
Files: files | file ages | folders
SHA1: ab3f8f193a7ec36018bf26c9231a1a6a58b6a523
User & Date: drh 2016-09-06 19:08:21.705
Context
2016-09-07
13:12
Merge fixes from trunk. (check-in: 193f036c87 user: drh tags: rowvalue)
2016-09-06
19:08
Remove obsolete vector-IN test cases. Fix a bad testcase() macro. (check-in: ab3f8f193a user: drh tags: rowvalue)
18:51
Fix corer cases of vector IN operators where the RHS is a compound SELECT that includes an ORDER BY clause. (check-in: 8329ac6f8d user: drh tags: rowvalue)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/select.c.
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
    }

#ifndef SQLITE_OMIT_SUBQUERY
    /* If we are creating a set for an "expr IN (SELECT ...)".
    */
    case SRT_Set: {
      int r1;
      testcase( pIn->nSdst>1 && pParse->nErr==0 );
      r1 = sqlite3GetTempReg(pParse);
      sqlite3VdbeAddOp4(v, OP_MakeRecord, pIn->iSdst, pIn->nSdst, 
          r1, pDest->zAffSdst, pIn->nSdst);
      sqlite3ExprCacheAffinityChange(pParse, pIn->iSdst, pIn->nSdst);
      sqlite3VdbeAddOp2(v, OP_IdxInsert, pDest->iSDParm, r1);
      sqlite3ReleaseTempReg(pParse, r1);
      break;







|







2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
    }

#ifndef SQLITE_OMIT_SUBQUERY
    /* If we are creating a set for an "expr IN (SELECT ...)".
    */
    case SRT_Set: {
      int r1;
      testcase( pIn->nSdst>1 );
      r1 = sqlite3GetTempReg(pParse);
      sqlite3VdbeAddOp4(v, OP_MakeRecord, pIn->iSdst, pIn->nSdst, 
          r1, pDest->zAffSdst, pIn->nSdst);
      sqlite3ExprCacheAffinityChange(pParse, pIn->iSdst, pIn->nSdst);
      sqlite3VdbeAddOp2(v, OP_IdxInsert, pDest->iSDParm, r1);
      sqlite3ReleaseTempReg(pParse, r1);
      break;
Changes to test/rowvalue5.test.
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
  2 "a=1"                            {{a = 1}}
  3 "a=1 AND 4 = b"                  {{a = 1 AND b = 4}}
  4 "c>'hello'"                      {{c > 'hello'}}
  5 "c<='hel''lo'"                   {{c <= 'hel''lo'}}
  6 "(a, b) = (SELECT 9, 10)"        {{a = 9 AND b = 10}}
  7 "(+a, b) = (SELECT 'a', 'b')"    {{b = 'b'}}
  8 "(a, +b) = (SELECT 'a', 'b')"    {{a = 'a'}}
  10 "(a, b) IN (SELECT 9, 10 UNION SELECT 11, 12)" 
      {{a = 9 AND b = 10} {a = 11 AND b = 12}}
  11 "(+a, b) IN (SELECT 'a', 'b')" {{b = 'b'}}
  12 "(a, +b) IN (SELECT 'a', 'b')" {{a = 'a'}}

  13 "(a, b) < ('d', 'e')"  {{a <= 'd'}}
  14 "(a, b) < ('a', 'c')"  {{a <= 'a'}}
  15 "(a, b) <= ('a', 'b')" {{a <= 'a'}}
  16 "(a, b) < ('a', 'b')"  {}
} {
  do_execsql_test 1.$tn "SELECT expr FROM x1 WHERE $where" $res
}

finish_test







<
<
|
|

|
|
|
|





92
93
94
95
96
97
98


99
100
101
102
103
104
105
106
107
108
109
110
  2 "a=1"                            {{a = 1}}
  3 "a=1 AND 4 = b"                  {{a = 1 AND b = 4}}
  4 "c>'hello'"                      {{c > 'hello'}}
  5 "c<='hel''lo'"                   {{c <= 'hel''lo'}}
  6 "(a, b) = (SELECT 9, 10)"        {{a = 9 AND b = 10}}
  7 "(+a, b) = (SELECT 'a', 'b')"    {{b = 'b'}}
  8 "(a, +b) = (SELECT 'a', 'b')"    {{a = 'a'}}


  11 "(+a, b) IN (SELECT 'a', 'b')"  {{b = 'b'}}
  12 "(a, +b) IN (SELECT 'a', 'b')"  {{a = 'a'}}

  13 "(a, b) < ('d', 'e')"           {{a <= 'd'}}
  14 "(a, b) < ('a', 'c')"           {{a <= 'a'}}
  15 "(a, b) <= ('a', 'b')"          {{a <= 'a'}}
  16 "(a, b) < ('a', 'b')"           {}
} {
  do_execsql_test 1.$tn "SELECT expr FROM x1 WHERE $where" $res
}

finish_test