xref: /sqlite-3.40.0/test/tkt3442.test (revision 7d44b22d)
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.2 2009/06/05 17:09:12 drh Exp $
18
19
20set testdir [file dirname $argv0]
21source $testdir/tester.tcl
22
23
24# Create a schema with some indexes.
25#
26do_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# These tests perform an EXPLAIN QUERY PLAN on both versions of the
38# SELECT referenced in ticket #3442 (both '5000' and "5000")
39# and verify that the query plan is the same.
40#
41sqlite3_db_config db SQLITE_DBCONFIG_DQS_DML 1
42do_eqp_test tkt3442-1.2 {
43  SELECT node FROM listhash WHERE id='5000' LIMIT 1;
44} {SEARCH listhash USING INDEX ididx (id=?)}
45do_eqp_test tkt3442-1.3 {
46  SELECT node FROM listhash WHERE id="5000" LIMIT 1;
47} {SEARCH listhash USING INDEX ididx (id=?)}
48
49
50# Some extra tests testing other permutations of 5000.
51#
52do_eqp_test tkt3442-1.4 {
53  SELECT node FROM listhash WHERE id=5000 LIMIT 1;
54} {SEARCH listhash USING INDEX ididx (id=?)}
55
56do_test tkt3442-1.5 {
57  catchsql {
58    SELECT node FROM listhash WHERE id=[5000] LIMIT 1;
59  }
60} {1 {no such column: 5000}}
61
62finish_test
63