1: # 2008 October 20
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 #3442 has been
14: # fixed.
15: #
16: #
17: # $Id: tkt3442.test,v 1.1.1.1 2012/02/21 17:04:16 misho Exp $
18:
19:
20: set testdir [file dirname $argv0]
21: source $testdir/tester.tcl
22:
23:
24: # Create a schema with some indexes.
25: #
26: do_test tkt3442-1.1 {
27: execsql {
28: CREATE TABLE listhash(
29: key INTEGER PRIMARY KEY,
30: id TEXT,
31: node INTEGER
32: );
33: CREATE UNIQUE INDEX ididx ON listhash(id);
34: }
35: } {}
36:
37:
38: # Explain Query Plan
39: #
40: proc EQP {sql} {
41: uplevel "execsql {EXPLAIN QUERY PLAN $sql}"
42: }
43:
44:
45: # These tests perform an EXPLAIN QUERY PLAN on both versions of the
46: # SELECT referenced in ticket #3442 (both '5000' and "5000")
47: # and verify that the query plan is the same.
48: #
49: ifcapable explain {
50: do_test tkt3442-1.2 {
51: EQP { SELECT node FROM listhash WHERE id='5000' LIMIT 1; }
52: } {0 0 0 {SEARCH TABLE listhash USING INDEX ididx (id=?) (~1 rows)}}
53: do_test tkt3442-1.3 {
54: EQP { SELECT node FROM listhash WHERE id="5000" LIMIT 1; }
55: } {0 0 0 {SEARCH TABLE listhash USING INDEX ididx (id=?) (~1 rows)}}
56: }
57:
58:
59: # Some extra tests testing other permutations of 5000.
60: #
61: ifcapable explain {
62: do_test tkt3442-1.4 {
63: EQP { SELECT node FROM listhash WHERE id=5000 LIMIT 1; }
64: } {0 0 0 {SEARCH TABLE listhash USING INDEX ididx (id=?) (~1 rows)}}
65: }
66: do_test tkt3442-1.5 {
67: catchsql {
68: SELECT node FROM listhash WHERE id=[5000] LIMIT 1;
69: }
70: } {1 {no such column: 5000}}
71:
72: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>