Annotation of embedaddon/sqlite3/test/where5.test, revision 1.1.1.1

1.1       misho       1: # 2007 June 8
                      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.  The
                     12: # focus of this file is testing NULL comparisons in the WHERE clause.
                     13: # See ticket #2404.
                     14: #
                     15: # $Id: where5.test,v 1.2 2007/06/08 08:43:10 drh Exp $
                     16: 
                     17: set testdir [file dirname $argv0]
                     18: source $testdir/tester.tcl
                     19: 
                     20: # Build some test data
                     21: #
                     22: do_test where5-1.0 {
                     23:   execsql {
                     24:     CREATE TABLE t1(x TEXT);
                     25:     CREATE TABLE t2(x INTEGER);
                     26:     CREATE TABLE t3(x INTEGER PRIMARY KEY);
                     27:     INSERT INTO t1 VALUES(-1);
                     28:     INSERT INTO t1 VALUES(0);
                     29:     INSERT INTO t1 VALUES(1);
                     30:     INSERT INTO t2 SELECT * FROM t1;
                     31:     INSERT INTO t3 SELECT * FROM t2;
                     32:   }
                     33:   execsql {
                     34:     SELECT * FROM t1 WHERE x<0
                     35:   }
                     36: } {-1}
                     37: do_test where5-1.1 {
                     38:   execsql {
                     39:     SELECT * FROM t1 WHERE x<=0
                     40:   }
                     41: } {-1 0}
                     42: do_test where5-1.2 {
                     43:   execsql {
                     44:     SELECT * FROM t1 WHERE x=0
                     45:   }
                     46: } {0}
                     47: do_test where5-1.3 {
                     48:   execsql {
                     49:     SELECT * FROM t1 WHERE x>=0
                     50:   }
                     51: } {0 1}
                     52: do_test where5-1.4 {
                     53:   execsql {
                     54:     SELECT * FROM t1 WHERE x>0
                     55:   }
                     56: } {1}
                     57: do_test where5-1.5 {
                     58:   execsql {
                     59:     SELECT * FROM t1 WHERE x<>0
                     60:   }
                     61: } {-1 1}
                     62: do_test where5-1.6 {
                     63:   execsql {
                     64:     SELECT * FROM t1 WHERE x<NULL
                     65:   }
                     66: } {}
                     67: do_test where5-1.7 {
                     68:   execsql {
                     69:     SELECT * FROM t1 WHERE x<=NULL
                     70:   }
                     71: } {}
                     72: do_test where5-1.8 {
                     73:   execsql {
                     74:     SELECT * FROM t1 WHERE x=NULL
                     75:   }
                     76: } {}
                     77: do_test where5-1.9 {
                     78:   execsql {
                     79:     SELECT * FROM t1 WHERE x>=NULL
                     80:   }
                     81: } {}
                     82: do_test where5-1.10 {
                     83:   execsql {
                     84:     SELECT * FROM t1 WHERE x>NULL
                     85:   }
                     86: } {}
                     87: do_test where5-1.11 {
                     88:   execsql {
                     89:     SELECT * FROM t1 WHERE x!=NULL
                     90:   }
                     91: } {}
                     92: do_test where5-1.12 {
                     93:   execsql {
                     94:     SELECT * FROM t1 WHERE x IS NULL
                     95:   }
                     96: } {}
                     97: do_test where5-1.13 {
                     98:   execsql {
                     99:     SELECT * FROM t1 WHERE x IS NOT NULL
                    100:   }
                    101: } {-1 0 1}
                    102: 
                    103: 
                    104: do_test where5-2.0 {
                    105:   execsql {
                    106:     SELECT * FROM t2 WHERE x<0
                    107:   }
                    108: } {-1}
                    109: do_test where5-2.1 {
                    110:   execsql {
                    111:     SELECT * FROM t2 WHERE x<=0
                    112:   }
                    113: } {-1 0}
                    114: do_test where5-2.2 {
                    115:   execsql {
                    116:     SELECT * FROM t2 WHERE x=0
                    117:   }
                    118: } {0}
                    119: do_test where5-2.3 {
                    120:   execsql {
                    121:     SELECT * FROM t2 WHERE x>=0
                    122:   }
                    123: } {0 1}
                    124: do_test where5-2.4 {
                    125:   execsql {
                    126:     SELECT * FROM t2 WHERE x>0
                    127:   }
                    128: } {1}
                    129: do_test where5-2.5 {
                    130:   execsql {
                    131:     SELECT * FROM t2 WHERE x<>0
                    132:   }
                    133: } {-1 1}
                    134: do_test where5-2.6 {
                    135:   execsql {
                    136:     SELECT * FROM t2 WHERE x<NULL
                    137:   }
                    138: } {}
                    139: do_test where5-2.7 {
                    140:   execsql {
                    141:     SELECT * FROM t2 WHERE x<=NULL
                    142:   }
                    143: } {}
                    144: do_test where5-2.8 {
                    145:   execsql {
                    146:     SELECT * FROM t2 WHERE x=NULL
                    147:   }
                    148: } {}
                    149: do_test where5-2.9 {
                    150:   execsql {
                    151:     SELECT * FROM t2 WHERE x>=NULL
                    152:   }
                    153: } {}
                    154: do_test where5-2.10 {
                    155:   execsql {
                    156:     SELECT * FROM t2 WHERE x>NULL
                    157:   }
                    158: } {}
                    159: do_test where5-2.11 {
                    160:   execsql {
                    161:     SELECT * FROM t2 WHERE x!=NULL
                    162:   }
                    163: } {}
                    164: do_test where5-2.12 {
                    165:   execsql {
                    166:     SELECT * FROM t2 WHERE x IS NULL
                    167:   }
                    168: } {}
                    169: do_test where5-2.13 {
                    170:   execsql {
                    171:     SELECT * FROM t2 WHERE x IS NOT NULL
                    172:   }
                    173: } {-1 0 1}
                    174: 
                    175: 
                    176: do_test where5-3.0 {
                    177:   execsql {
                    178:     SELECT * FROM t3 WHERE x<0
                    179:   }
                    180: } {-1}
                    181: do_test where5-3.1 {
                    182:   execsql {
                    183:     SELECT * FROM t3 WHERE x<=0
                    184:   }
                    185: } {-1 0}
                    186: do_test where5-3.2 {
                    187:   execsql {
                    188:     SELECT * FROM t3 WHERE x=0
                    189:   }
                    190: } {0}
                    191: do_test where5-3.3 {
                    192:   execsql {
                    193:     SELECT * FROM t3 WHERE x>=0
                    194:   }
                    195: } {0 1}
                    196: do_test where5-3.4 {
                    197:   execsql {
                    198:     SELECT * FROM t3 WHERE x>0
                    199:   }
                    200: } {1}
                    201: do_test where5-3.5 {
                    202:   execsql {
                    203:     SELECT * FROM t3 WHERE x<>0
                    204:   }
                    205: } {-1 1}
                    206: do_test where5-3.6 {
                    207:   execsql {
                    208:     SELECT * FROM t3 WHERE x<NULL
                    209:   }
                    210: } {}
                    211: do_test where5-3.7 {
                    212:   execsql {
                    213:     SELECT * FROM t3 WHERE x<=NULL
                    214:   }
                    215: } {}
                    216: do_test where5-3.8 {
                    217:   execsql {
                    218:     SELECT * FROM t3 WHERE x=NULL
                    219:   }
                    220: } {}
                    221: do_test where5-3.9 {
                    222:   execsql {
                    223:     SELECT * FROM t3 WHERE x>=NULL
                    224:   }
                    225: } {}
                    226: do_test where5-3.10 {
                    227:   execsql {
                    228:     SELECT * FROM t3 WHERE x>NULL
                    229:   }
                    230: } {}
                    231: do_test where5-3.11 {
                    232:   execsql {
                    233:     SELECT * FROM t3 WHERE x!=NULL
                    234:   }
                    235: } {}
                    236: do_test where5-3.12 {
                    237:   execsql {
                    238:     SELECT * FROM t3 WHERE x IS NULL
                    239:   }
                    240: } {}
                    241: do_test where5-3.13 {
                    242:   execsql {
                    243:     SELECT * FROM t3 WHERE x IS NOT NULL
                    244:   }
                    245: } {-1 0 1}
                    246: 
                    247: do_test where5-4.0 {
                    248:   execsql {
                    249:     SELECT x<NULL FROM t3
                    250:   }
                    251: } {{} {} {}}
                    252: do_test where5-4.1 {
                    253:   execsql {
                    254:     SELECT x<=NULL FROM t3
                    255:   }
                    256: } {{} {} {}}
                    257: do_test where5-4.2 {
                    258:   execsql {
                    259:     SELECT x==NULL FROM t3
                    260:   }
                    261: } {{} {} {}}
                    262: do_test where5-4.3 {
                    263:   execsql {
                    264:     SELECT x>NULL FROM t3
                    265:   }
                    266: } {{} {} {}}
                    267: do_test where5-4.4 {
                    268:   execsql {
                    269:     SELECT x>=NULL FROM t3
                    270:   }
                    271: } {{} {} {}}
                    272: do_test where5-4.5 {
                    273:   execsql {
                    274:     SELECT x!=NULL FROM t3
                    275:   }
                    276: } {{} {} {}}
                    277: do_test where5-4.6 {
                    278:   execsql {
                    279:     SELECT x IS NULL FROM t3
                    280:   }
                    281: } {0 0 0}
                    282: do_test where5-4.7 {
                    283:   execsql {
                    284:     SELECT x IS NOT NULL FROM t3
                    285:   }
                    286: } {1 1 1}
                    287: 
                    288: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>