os/persistentdata/persistentstorage/sqlite3api/TEST/TclScript/collateA.test
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     1 #
     2 # 2008 January 20
     3 #
     4 # The author disclaims copyright to this source code.  In place of
     5 # a legal notice, here is a blessing:
     6 #
     7 #    May you do good and not evil.
     8 #    May you find forgiveness for yourself and forgive others.
     9 #    May you share freely, never taking more than you give.
    10 #
    11 #***********************************************************************
    12 # This file implements regression tests for SQLite library.  The
    13 # focus of this script is the built-in RTRIM collating
    14 # API.
    15 #
    16 # $Id: collateA.test,v 1.3 2008/04/15 04:02:41 drh Exp $
    17 
    18 set testdir [file dirname $argv0]
    19 source $testdir/tester.tcl
    20 
    21 do_test collateA-1.1 {
    22   execsql {
    23     CREATE TABLE t1(
    24       a INTEGER PRIMARY KEY,
    25       b TEXT COLLATE BINARY,
    26       c TEXT COLLATE RTRIM
    27     );
    28     INSERT INTO t1 VALUES(1, 'abcde','abcde');
    29     INSERT INTO t1 VALUES(2, 'xyzzy ','xyzzy ');
    30     INSERT INTO t1 VALUES(3, 'xyzzy  ','xyzzy  ');
    31     INSERT INTO t1 VALUES(4, 'xyzzy   ','xyzzy   ');
    32     INSERT INTO t1 VALUES(5, '   ', '   ');
    33     INSERT INTO t1 VALUES(6, '', '');
    34     SELECT count(*) FROM t1;
    35   }
    36 } {6}
    37 do_test collateA-1.2 {
    38   execsql {SELECT a FROM t1 WHERE b='abcde     '}
    39 } {}
    40 do_test collateA-1.3 {
    41   execsql {SELECT a FROM t1 WHERE c='abcde     '}
    42 } {1}
    43 do_test collateA-1.4 {
    44   execsql {SELECT a FROM t1 WHERE b='xyzzy'}
    45 } {}
    46 do_test collateA-1.5 {
    47   execsql {SELECT a FROM t1 WHERE c='xyzzy'}
    48 } {2 3 4}
    49 do_test collateA-1.6 {
    50   execsql {SELECT a FROM t1 WHERE c='xyzzy '}
    51 } {2 3 4}
    52 do_test collateA-1.7 {
    53   execsql {SELECT a FROM t1 WHERE c='xyzzy  '}
    54 } {2 3 4}
    55 do_test collateA-1.8 {
    56   execsql {SELECT a FROM t1 WHERE c='xyzzy   '}
    57 } {2 3 4}
    58 do_test collateA-1.9 {
    59   execsql {SELECT a FROM t1 WHERE c='xyzzy    '}
    60 } {2 3 4}
    61 do_test collateA-1.10 {
    62   execsql {SELECT a FROM t1 WHERE c='xyzzy                                  '}
    63 } {2 3 4}
    64 do_test collateA-1.11 {
    65   execsql {SELECT 'abc123'='abc123                         ' COLLATE RTRIM;}
    66 } {1}
    67 do_test collateA-1.12 {
    68   execsql {SELECT 'abc123                         '='abc123' COLLATE RTRIM;}
    69 } {1}
    70 do_test collateA-1.13 {
    71   execsql {SELECT '  '='' COLLATE RTRIM, '  '='' COLLATE BINARY, '  '=''}
    72 } {1 0 0}
    73 do_test collateA-1.14 {
    74   execsql {SELECT ''='  ' COLLATE RTRIM, ''='  ' COLLATE BINARY, ''='  '}
    75 } {1 0 0}
    76 do_test collateA-1.15 {
    77   execsql {SELECT '  '='      ' COLLATE RTRIM, '  '='        '}
    78 } {1 0}
    79 do_test collateA-1.16 {
    80   execsql {SELECT ''<>'  ' COLLATE RTRIM, ''<>'  ' COLLATE BINARY, ''<>'  '}
    81 } {0 1 1}
    82 do_test collateA-1.17 {
    83   execsql {SELECT a FROM t1 WHERE c='xyzz'}
    84 } {}
    85 do_test collateA-1.18 {
    86   execsql {SELECT a FROM t1 WHERE c='xyzzyy   '}
    87 } {}
    88 do_test collateA-1.19 {
    89   execsql {SELECT a FROM t1 WHERE c='xyzz   '}
    90 } {}
    91 do_test collateA-1.20 {
    92   execsql {SELECT a FROM t1 WHERE c='abcd   '}
    93 } {}
    94 do_test collateA-1.21 {
    95   execsql {SELECT a FROM t1 WHERE c='abcd'}
    96 } {}
    97 do_test collateA-1.22 {
    98   execsql {SELECT a FROM t1 WHERE c='abc'}
    99 } {}
   100 do_test collateA-1.23 {
   101   execsql {SELECT a FROM t1 WHERE c='abcdef    '}
   102 } {}
   103 do_test collateA-1.24 {
   104   execsql {SELECT a FROM t1 WHERE c=''}
   105 } {5 6}
   106 do_test collateA-1.25 {
   107   execsql {SELECT a FROM t1 WHERE c=' '}
   108 } {5 6}
   109 do_test collateA-1.26 {
   110   execsql {SELECT a FROM t1 WHERE c='                    '}
   111 } {5 6}
   112 
   113 
   114 do_test collateA-2.1 {
   115   execsql {
   116     CREATE INDEX i1b ON t1(b);
   117     CREATE INDEX i1c ON t1(c);
   118     PRAGMA integrity_check;
   119   }
   120 } {ok}
   121 do_test collateA-2.2 {
   122   execsql {SELECT a FROM t1 WHERE b='abcde     '}
   123 } {}
   124 do_test collateA-2.3 {
   125   execsql {SELECT a FROM t1 WHERE c='abcde     '}
   126 } {1}
   127 do_test collateA-2.4 {
   128   execsql {SELECT a FROM t1 WHERE b='xyzzy'}
   129 } {}
   130 do_test collateA-2.5 {
   131   execsql {SELECT a FROM t1 WHERE c='xyzzy'}
   132 } {2 3 4}
   133 do_test collateA-2.6 {
   134   execsql {SELECT a FROM t1 WHERE c='xyzzy '}
   135 } {2 3 4}
   136 do_test collateA-2.7 {
   137   execsql {SELECT a FROM t1 WHERE c='xyzzy  '}
   138 } {2 3 4}
   139 do_test collateA-2.8 {
   140   execsql {SELECT a FROM t1 WHERE c='xyzzy   '}
   141 } {2 3 4}
   142 do_test collateA-2.9 {
   143   execsql {SELECT a FROM t1 WHERE c='xyzzy    '}
   144 } {2 3 4}
   145 do_test collateA-2.10 {
   146   execsql {SELECT a FROM t1 WHERE c='xyzzy                                  '}
   147 } {2 3 4}
   148 do_test collateA-2.17 {
   149   execsql {SELECT a FROM t1 WHERE c='xyzz'}
   150 } {}
   151 do_test collateA-2.18 {
   152   execsql {SELECT a FROM t1 WHERE c='xyzzyy   '}
   153 } {}
   154 do_test collateA-2.19 {
   155   execsql {SELECT a FROM t1 WHERE c='xyzz   '}
   156 } {}
   157 do_test collateA-2.20 {
   158   execsql {SELECT a FROM t1 WHERE c='abcd   '}
   159 } {}
   160 do_test collateA-2.21 {
   161   execsql {SELECT a FROM t1 WHERE c='abcd'}
   162 } {}
   163 do_test collateA-2.22 {
   164   execsql {SELECT a FROM t1 WHERE c='abc'}
   165 } {}
   166 do_test collateA-2.23 {
   167   execsql {SELECT a FROM t1 WHERE c='abcdef    '}
   168 } {}
   169 do_test collateA-2.24 {
   170   execsql {SELECT a FROM t1 WHERE c=''}
   171 } {5 6}
   172 do_test collateA-2.25 {
   173   execsql {SELECT a FROM t1 WHERE c=' '}
   174 } {5 6}
   175 do_test collateA-2.26 {
   176   execsql {SELECT a FROM t1 WHERE c='                    '}
   177 } {5 6}
   178 
   179 
   180 do_test collateA-3.1 {
   181   db close
   182   sqlite3 db test.db
   183   execsql {
   184     REINDEX;
   185     PRAGMA integrity_check;
   186   }
   187 } {ok}
   188 do_test collateA-3.2 {
   189   execsql {SELECT a FROM t1 WHERE b='abcde     '}
   190 } {}
   191 do_test collateA-3.3 {
   192   execsql {SELECT a FROM t1 WHERE c='abcde     '}
   193 } {1}
   194 do_test collateA-3.4 {
   195   execsql {SELECT a FROM t1 WHERE b='xyzzy'}
   196 } {}
   197 do_test collateA-3.5 {
   198   execsql {SELECT a FROM t1 WHERE c='xyzzy'}
   199 } {2 3 4}
   200 do_test collateA-3.6 {
   201   execsql {SELECT a FROM t1 WHERE c='xyzzy '}
   202 } {2 3 4}
   203 do_test collateA-3.7 {
   204   execsql {SELECT a FROM t1 WHERE c='xyzzy  '}
   205 } {2 3 4}
   206 do_test collateA-3.8 {
   207   execsql {SELECT a FROM t1 WHERE c='xyzzy   '}
   208 } {2 3 4}
   209 do_test collateA-3.9 {
   210   execsql {SELECT a FROM t1 WHERE c='xyzzy    '}
   211 } {2 3 4}
   212 do_test collateA-3.10 {
   213   execsql {SELECT a FROM t1 WHERE c='xyzzy                                  '}
   214 } {2 3 4}
   215 
   216 
   217 finish_test