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

     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