File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sqlite3 / test / collateA.test
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:04:16 2012 UTC (12 years, 10 months ago) by misho
Branches: sqlite3, MAIN
CVS tags: v3_7_10, HEAD
sqlite3

    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.1.1.1 2012/02/21 17:04:16 misho 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

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