| # 2009 January 29 |
| # |
| # The author disclaims copyright to this source code. In place of |
| # a legal notice, here is a blessing: |
| # |
| # May you do good and not evil. |
| # May you find forgiveness for yourself and forgive others. |
| # May you share freely, never taking more than you give. |
| # |
| #*********************************************************************** |
| # |
| # Verify that certain keywords can be used as identifiers. |
| # |
| # $Id: keyword1.test,v 1.1 2009/01/29 19:27:47 drh Exp $ |
| |
| |
| set testdir [file dirname $argv0] |
| source $testdir/tester.tcl |
| |
| db eval { |
| CREATE TABLE t1(a, b); |
| INSERT INTO t1 VALUES(1, 'one'); |
| INSERT INTO t1 VALUES(2, 'two'); |
| INSERT INTO t1 VALUES(3, 'three'); |
| } |
| |
| set kwlist { |
| abort |
| after |
| analyze |
| asc |
| attach |
| before |
| begin |
| by |
| cascade |
| cast |
| column |
| conflict |
| current_date |
| current_time |
| current_timestamp |
| database |
| deferred |
| desc |
| detach |
| end |
| each |
| exclusive |
| explain |
| fail |
| for |
| glob |
| if |
| ignore |
| immediate |
| initially |
| instead |
| key |
| like |
| match |
| of |
| offset |
| plan |
| pragma |
| query |
| raise |
| regexp |
| reindex |
| release |
| rename |
| replace |
| restrict |
| rollback |
| row |
| savepoint |
| temp |
| temporary |
| trigger |
| vacuum |
| view |
| virtual |
| }; |
| set exprkw { |
| cast |
| current_date |
| current_time |
| current_timestamp |
| raise |
| } |
| foreach kw $kwlist { |
| do_test keyword1-$kw.1 { |
| if {$kw=="if"} { |
| db eval "CREATE TABLE \"$kw\"($kw $kw)" |
| } else { |
| db eval "CREATE TABLE ${kw}($kw $kw)" |
| } |
| db eval "INSERT INTO $kw VALUES(99)" |
| db eval "INSERT INTO $kw SELECT a FROM t1" |
| if {[lsearch $exprkw $kw]<0} { |
| db eval "SELECT * FROM $kw ORDER BY $kw ASC" |
| } else { |
| db eval "SELECT * FROM $kw ORDER BY \"$kw\" ASC" |
| } |
| } {1 2 3 99} |
| do_test keyword1-$kw.2 { |
| if {$kw=="if"} { |
| db eval "DROP TABLE \"$kw\"" |
| db eval "CREATE INDEX \"$kw\" ON t1(a)" |
| } else { |
| db eval "DROP TABLE $kw" |
| db eval "CREATE INDEX $kw ON t1(a)" |
| } |
| db eval "SELECT b FROM t1 INDEXED BY $kw WHERE a=2" |
| } {two} |
| } |
| |
| finish_test |