xref: /sqlite-3.40.0/test/tkt3461.test (revision dda70fe3)
1# 2008 October 25
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 #3461 has been
14# fixed.
15#
16# $Id: tkt3461.test,v 1.4 2009/06/05 17:09:12 drh Exp $
17
18set testdir [file dirname $argv0]
19source $testdir/tester.tcl
20
21####################################
22####################################
23# REMOVE THESE TWO LINES:
24####################################
25####################################
26#finish_test
27#return
28
29do_test tkt3461-1.1 {
30  execsql {
31    CREATE TABLE t1(a, b);
32    INSERT INTO t1 VALUES(1, 2);
33  }
34} {}
35
36do_test tkt3461-1.2 {
37  execsql { SELECT a, b+1 AS b_plus_one FROM t1 WHERE a=1 }
38} {1 3}
39
40do_test tkt3461-1.3 {
41  # explain { SELECT a, b+1 AS b_plus_one FROM t1 WHERE a=1 OR b_plus_one }
42  # execsql { PRAGMA vdbe_trace = 1; PRAGMA vdbe_listing=1 }
43  execsql { SELECT a, b+1 AS b_plus_one FROM t1 WHERE a=1 OR b_plus_one }
44} {1 3}
45
46do_test tkt3461-2.1 {
47  execsql {
48    SELECT a, b+1 AS b_plus_one
49    FROM t1
50    WHERE CASE WHEN a=1 THEN 1 ELSE b_plus_one END
51  }
52} {1 3}
53
54do_test tkt3461-3.1 {
55  execsql {
56    CREATE TABLE t2(c, d);
57    INSERT INTO t2 VALUES(3, 4);
58  }
59  # execsql { PRAGMA vdbe_trace = 1; PRAGMA vdbe_listing=1 }
60  execsql {
61    SELECT a, b+1 AS b_plus_one, c, d
62    FROM t1 LEFT JOIN t2
63    ON (a=c AND d=b_plus_one)
64  }
65} {1 3 {} {}}
66
67finish_test
68