1: # 2001 September 15
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: # This file implements regression tests for SQLite library. The
12: # focus of this file is the ability to specify table and column names
13: # as quoted strings.
14: #
15: # $Id: quote.test,v 1.1.1.1 2012/02/21 17:04:16 misho Exp $
16:
17: set testdir [file dirname $argv0]
18: source $testdir/tester.tcl
19:
20: # Create a table with a strange name and with strange column names.
21: #
22: do_test quote-1.0 {
23: catchsql {CREATE TABLE '@abc' ( '#xyz' int, '!pqr' text );}
24: } {0 {}}
25:
26: # Insert, update and query the table.
27: #
28: do_test quote-1.1 {
29: catchsql {INSERT INTO '@abc' VALUES(5,'hello')}
30: } {0 {}}
31: do_test quote-1.2.1 {
32: catchsql {SELECT * FROM '@abc'}
33: } {0 {5 hello}}
34: do_test quote-1.2.2 {
35: catchsql {SELECT * FROM [@abc]} ;# SqlServer compatibility
36: } {0 {5 hello}}
37: do_test quote-1.2.3 {
38: catchsql {SELECT * FROM `@abc`} ;# MySQL compatibility
39: } {0 {5 hello}}
40: do_test quote-1.3 {
41: catchsql {
42: SELECT '@abc'.'!pqr', '@abc'.'#xyz'+5 FROM '@abc'
43: }
44: } {0 {hello 10}}
45: do_test quote-1.3.1 {
46: catchsql {
47: SELECT '!pqr', '#xyz'+5 FROM '@abc'
48: }
49: } {0 {!pqr 5}}
50: do_test quote-1.3.2 {
51: catchsql {
52: SELECT "!pqr", "#xyz"+5 FROM '@abc'
53: }
54: } {0 {hello 10}}
55: do_test quote-1.3.3 {
56: catchsql {
57: SELECT [!pqr], `#xyz`+5 FROM '@abc'
58: }
59: } {0 {hello 10}}
60: do_test quote-1.3.4 {
61: set r [catch {
62: execsql {SELECT '@abc'.'!pqr', '@abc'.'#xyz'+5 FROM '@abc'}
63: } msg ]
64: lappend r $msg
65: } {0 {hello 10}}
66: do_test quote-1.4 {
67: set r [catch {
68: execsql {UPDATE '@abc' SET '#xyz'=11}
69: } msg ]
70: lappend r $msg
71: } {0 {}}
72: do_test quote-1.5 {
73: set r [catch {
74: execsql {SELECT '@abc'.'!pqr', '@abc'.'#xyz'+5 FROM '@abc'}
75: } msg ]
76: lappend r $msg
77: } {0 {hello 16}}
78:
79: # Drop the table with the strange name.
80: #
81: do_test quote-1.6 {
82: set r [catch {
83: execsql {DROP TABLE '@abc'}
84: } msg ]
85: lappend r $msg
86: } {0 {}}
87:
88:
89: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>