sqlite/test/keyword1.test
drh db15bcd550 Add test cases to make sure that keywords that we say can be used as
identifiers really can be used as identifiers.  These tests were
inspired by ticket #3612, but they do not directly address ticket #3612. (CVS 6214)

FossilOrigin-Name: 6041ca87a16858f047727bc01f10b0bbc83609ed
2009-01-29 19:27:46 +00:00

119 lines
2.0 KiB
Plaintext

# 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