gitlab.com/CoiaPrant/sqlite3@v1.19.1/testdata/tcl/where5.test (about)

     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