OLD | NEW |
| (Empty) |
1 # 2011 October 13 | |
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. Specifically, | |
12 # it tests that ticket [fa7bf5ec94801e7e2030e41eefe5d9dd96eaacfd] has | |
13 # been resolved. | |
14 # | |
15 # The problem described by this ticket was that the sqlite3ExprCompare() | |
16 # function was saying that expressions (x='a') and (x='A') were identical | |
17 # because it was using sqlite3StrICmp() instead of strcmp() to compare string | |
18 # literals. That was causing the query optimizer for aggregate queries to | |
19 # believe that both count() operations were identical, and thus only | |
20 # computing the first count() and making a copy of the result for the | |
21 # second count(). | |
22 # | |
23 | |
24 set testdir [file dirname $argv0] | |
25 source $testdir/tester.tcl | |
26 | |
27 do_test tkt-fa7bf5ec-1 { | |
28 execsql { | |
29 CREATE TABLE t1(x); | |
30 INSERT INTO t1 VALUES ('a'); | |
31 INSERT INTO t1 VALUES ('A'); | |
32 INSERT INTO t1 VALUES ('A'); | |
33 SELECT count(CASE WHEN x='a' THEN 1 END), | |
34 count(CASE WHEN x='A' THEN 1 END) | |
35 FROM t1; | |
36 } | |
37 } {1 2} | |
38 | |
39 finish_test | |
OLD | NEW |