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

     1  # 2009 January 29
     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  #
    12  # Verify that certain keywords can be used as identifiers.
    13  #
    14  # $Id: keyword1.test,v 1.1 2009/01/29 19:27:47 drh Exp $
    15  
    16  
    17  set testdir [file dirname $argv0]
    18  source $testdir/tester.tcl
    19  
    20  db eval {
    21    CREATE TABLE t1(a, b);
    22    INSERT INTO t1 VALUES(1, 'one');
    23    INSERT INTO t1 VALUES(2, 'two');
    24    INSERT INTO t1 VALUES(3, 'three');
    25  }
    26  
    27  set kwlist {
    28    abort
    29    after
    30    analyze
    31    asc
    32    attach
    33    before
    34    begin
    35    by
    36    cascade
    37    cast
    38    column
    39    conflict
    40    current_date
    41    current_time
    42    current_timestamp
    43    database
    44    deferred
    45    desc
    46    detach
    47    end
    48    each
    49    exclusive
    50    explain
    51    fail
    52    for
    53    glob
    54    if
    55    ignore
    56    immediate
    57    initially
    58    instead
    59    key
    60    like
    61    match
    62    of
    63    offset
    64    plan
    65    pragma
    66    query
    67    raise
    68    recursive
    69    regexp
    70    reindex
    71    release
    72    rename
    73    replace
    74    restrict
    75    rollback
    76    row
    77    savepoint
    78    temp
    79    temporary
    80    trigger
    81    vacuum
    82    view
    83    virtual
    84    with
    85    without
    86  };
    87  set exprkw {
    88    cast
    89    current_date
    90    current_time
    91    current_timestamp
    92    raise
    93  }
    94  foreach kw $kwlist {  
    95    do_test keyword1-$kw.1 {
    96      if {$kw=="if"} {
    97        db eval "CREATE TABLE \"$kw\"($kw $kw)"
    98      } else {
    99        db eval "CREATE TABLE ${kw}($kw $kw)"
   100      }
   101      db eval "INSERT INTO $kw VALUES(99)"
   102      db eval "INSERT INTO $kw SELECT a FROM t1"
   103      if {[lsearch $exprkw $kw]<0} {
   104        db eval "SELECT * FROM $kw ORDER BY $kw ASC"
   105      } else {
   106        db eval "SELECT * FROM $kw ORDER BY \"$kw\" ASC"
   107      }
   108    } {1 2 3 99}
   109    do_test keyword1-$kw.2 {
   110      if {$kw=="if"} {
   111        db eval "DROP TABLE \"$kw\""
   112        db eval "CREATE INDEX \"$kw\" ON t1(a)"
   113      } else {
   114        db eval "DROP TABLE $kw"
   115        db eval "CREATE INDEX $kw ON t1(a)"
   116      }
   117      db eval "SELECT b FROM t1 INDEXED BY $kw WHERE a=2"
   118    } {two}
   119  }
   120  
   121  finish_test