Annotation of embedaddon/sqlite3/test/tkt3442.test, revision 1.1

1.1     ! misho       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: 
        !            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>