1#! /usr/bin/env tclsh
2
3# Copyright (c) 1999-2018 David Muse
4# See the file COPYING for more information.
5
6load @TCLLIBSPATH@@SLASH@sqlrelay@SLASH@sqlrelay.@SOSUFFIX@ sqlrelay
7
8proc checkUndef {value} {
9
10	switch $value "" {
11		puts -nonewline "success "
12	} default {
13		puts "$value != $success "
14		puts "failure "
15		exit 1
16	}
17}
18
19proc checkSuccess {value success} {
20
21	if {$value==$success} {
22		puts -nonewline "success "
23	} else {
24		puts "$value != $success "
25		puts "failure "
26		exit 1
27	}
28}
29
30# instantiation
31set con [sqlrcon -server "sqlrelay" -port 9000 -socket "/tmp/test.socket" -user "test" -password "test" -retrytime 0 -tries 1]
32set cur [$con sqlrcur]
33
34# get database type
35puts "IDENTIFY: "
36checkSuccess [$con identify] "sqlite"
37puts ""
38
39# ping
40puts "PING: "
41checkSuccess [$con ping] 1
42puts ""
43
44# drop existing table
45$cur sendQuery "begin transaction"
46catch {$cur sendQuery "drop table testtable"}
47$con commit
48
49# create a new table
50puts "CREATE TEMPTABLE: "
51$cur sendQuery "begin transaction"
52checkSuccess [$cur sendQuery "create table testtable (testint int, testfloat float, testchar char(40), testvarchar varchar(40))"] 1
53$con commit
54puts ""
55
56puts "INSERT: "
57$cur sendQuery "begin transaction"
58checkSuccess [$cur sendQuery "insert into testtable values (1,1.1,'testchar1','testvarchar1')"] 1
59checkSuccess [$cur sendQuery "insert into testtable values (2,2.2,'testchar2','testvarchar2')"] 1
60checkSuccess [$cur sendQuery "insert into testtable values (3,3.3,'testchar3','testvarchar3')"] 1
61checkSuccess [$cur sendQuery "insert into testtable values (4,4.4,'testchar4','testvarchar4')"] 1
62puts ""
63
64puts "AFFECTED ROWS: "
65checkSuccess [$cur affectedRows] 0
66puts ""
67
68puts "BIND BY NAME: "
69$cur prepareQuery "insert into testtable values (:var1,:var2,:var3,:var4)"
70checkSuccess [$cur countBindVariables] 4
71$cur inputBind "var1" 5
72$cur inputBind "var2" 5.5 4 1
73$cur inputBind "var3" "testchar5"
74$cur inputBind "var4" "testvarchar5"
75checkSuccess [$cur executeQuery] 1
76$cur clearBinds
77$cur inputBind "var1" 6
78$cur inputBind "var2" 6.6 4 1
79$cur inputBind "var3" "testchar6"
80$cur inputBind "var4" "testvarchar6"
81checkSuccess [$cur executeQuery] 1
82puts ""
83
84puts "ARRAY OF BINDS BY NAME: "
85$cur clearBinds
86$cur inputBinds {{"var1" 7} {"var2" 7.7 4 1} {"var3" "testchar7"} {"var4" "testvarchar7"}}
87checkSuccess [$cur executeQuery] 1
88puts ""
89
90puts "BIND BY NAME WITH VALIDATION: "
91$cur clearBinds
92$cur inputBind "var1" 8
93$cur inputBind "var2" 8.8 4 1
94$cur inputBind "var3" "testchar8"
95$cur inputBind "var4" "testvarchar8"
96$cur validateBinds
97checkSuccess [$cur executeQuery] 1
98puts ""
99
100puts "SELECT: "
101checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1
102puts ""
103
104puts "COLUMN COUNT: "
105checkSuccess [$cur colCount] 4
106puts ""
107
108puts "COLUMN NAMES: "
109checkSuccess [$cur getColumnName 0] "testint"
110checkSuccess [$cur getColumnName 1] "testfloat"
111checkSuccess [$cur getColumnName 2] "testchar"
112checkSuccess [$cur getColumnName 3] "testvarchar"
113set cols [$cur getColumnNames]
114checkSuccess [lindex $cols 0] "testint"
115checkSuccess [lindex $cols 1] "testfloat"
116checkSuccess [lindex $cols 2] "testchar"
117checkSuccess [lindex $cols 3] "testvarchar"
118puts ""
119
120puts "COLUMN TYPES: "
121checkSuccess [$cur getColumnTypeByIndex 0] "INTEGER"
122checkSuccess [$cur getColumnTypeByName "testint"] "INTEGER"
123checkSuccess [$cur getColumnTypeByIndex 1] "FLOAT"
124checkSuccess [$cur getColumnTypeByName "testfloat"] "FLOAT"
125checkSuccess [$cur getColumnTypeByIndex 2] "STRING"
126checkSuccess [$cur getColumnTypeByName "testchar"] "STRING"
127checkSuccess [$cur getColumnTypeByIndex 3] "STRING"
128checkSuccess [$cur getColumnTypeByName "testvarchar"] "STRING"
129puts ""
130
131puts "COLUMN LENGTH: "
132checkSuccess [$cur getColumnLengthByIndex 0] 0
133checkSuccess [$cur getColumnLengthByName "testint"] 0
134checkSuccess [$cur getColumnLengthByIndex 1] 0
135checkSuccess [$cur getColumnLengthByName "testfloat"] 0
136checkSuccess [$cur getColumnLengthByIndex 2] 0
137checkSuccess [$cur getColumnLengthByName "testchar"] 0
138checkSuccess [$cur getColumnLengthByIndex 3] 0
139checkSuccess [$cur getColumnLengthByName "testvarchar"] 0
140puts ""
141
142puts "LONGEST COLUMN: "
143checkSuccess [$cur getLongestByIndex 0] 1
144checkSuccess [$cur getLongestByName "testint"] 1
145checkSuccess [$cur getLongestByIndex 1] 3
146checkSuccess [$cur getLongestByName "testfloat"] 3
147checkSuccess [$cur getLongestByIndex 2] 9
148checkSuccess [$cur getLongestByName "testchar"] 9
149checkSuccess [$cur getLongestByIndex 3] 12
150checkSuccess [$cur getLongestByName "testvarchar"] 12
151puts ""
152
153puts "ROW COUNT: "
154checkSuccess [$cur rowCount] 8
155puts ""
156
157puts "TOTAL ROWS: "
158checkSuccess [$cur totalRows] 0
159puts ""
160
161puts "FIRST ROW INDEX: "
162checkSuccess [$cur firstRowIndex] 0
163puts ""
164
165puts "END OF RESULT SET: "
166checkSuccess [$cur endOfResultSet] 1
167puts ""
168
169puts "FIELDS BY INDEX: "
170checkSuccess [$cur getFieldByIndex 0 0] "1"
171checkSuccess [$cur getFieldByIndex 0 1] "1.1"
172checkSuccess [$cur getFieldByIndex 0 2] "testchar1"
173checkSuccess [$cur getFieldByIndex 0 3] "testvarchar1"
174puts ""
175checkSuccess [$cur getFieldByIndex 7 0] "8"
176checkSuccess [$cur getFieldByIndex 7 1] "8.8"
177checkSuccess [$cur getFieldByIndex 7 2] "testchar8"
178checkSuccess [$cur getFieldByIndex 7 3] "testvarchar8"
179puts ""
180
181puts "FIELD LENGTHS BY INDEX: "
182checkSuccess [$cur getFieldLengthByIndex 0 0] 1
183checkSuccess [$cur getFieldLengthByIndex 0 1] 3
184checkSuccess [$cur getFieldLengthByIndex 0 2] 9
185checkSuccess [$cur getFieldLengthByIndex 0 3] 12
186puts ""
187checkSuccess [$cur getFieldLengthByIndex 7 0] 1
188checkSuccess [$cur getFieldLengthByIndex 7 1] 3
189checkSuccess [$cur getFieldLengthByIndex 7 2] 9
190checkSuccess [$cur getFieldLengthByIndex 7 3] 12
191puts ""
192
193puts "FIELDS BY NAME: "
194checkSuccess [$cur getFieldByName 0 "testint"] "1"
195checkSuccess [$cur getFieldByName 0 "testfloat"] "1.1"
196checkSuccess [$cur getFieldByName 0 "testchar"] "testchar1"
197checkSuccess [$cur getFieldByName 0 "testvarchar"] "testvarchar1"
198puts ""
199checkSuccess [$cur getFieldByName 7 "testint"] "8"
200checkSuccess [$cur getFieldByName 7 "testfloat"] "8.8"
201checkSuccess [$cur getFieldByName 7 "testchar"] "testchar8"
202checkSuccess [$cur getFieldByName 7 "testvarchar"] "testvarchar8"
203puts ""
204
205puts "FIELD LENGTHS BY NAME: "
206checkSuccess [$cur getFieldLengthByName 0 "testint"] 1
207checkSuccess [$cur getFieldLengthByName 0 "testfloat"] 3
208checkSuccess [$cur getFieldLengthByName 0 "testchar"] 9
209checkSuccess [$cur getFieldLengthByName 0 "testvarchar"] 12
210puts ""
211checkSuccess [$cur getFieldLengthByName 7 "testint"] 1
212checkSuccess [$cur getFieldLengthByName 7 "testfloat"] 3
213checkSuccess [$cur getFieldLengthByName 7 "testchar"] 9
214checkSuccess [$cur getFieldLengthByName 7 "testvarchar"] 12
215puts ""
216
217puts "FIELDS BY ARRAY: "
218set fields [$cur getRow 0]
219checkSuccess [lindex $fields 0] "1"
220checkSuccess [lindex $fields 1] "1.1"
221checkSuccess [lindex $fields 2] "testchar1"
222checkSuccess [lindex $fields 3] "testvarchar1"
223puts ""
224
225puts "FIELD LENGTHS BY ARRAY: "
226set fieldlens [$cur getRowLengths 0]
227checkSuccess [lindex $fieldlens 0] 1
228checkSuccess [lindex $fieldlens 1] 3
229checkSuccess [lindex $fieldlens 2] 9
230checkSuccess [lindex $fieldlens 3] 12
231puts ""
232
233puts "INDIVIDUAL SUBSTITUTIONS: "
234$cur sendQuery "drop table testtable1"
235checkSuccess [$cur sendQuery "create table testtable1 (col1 int, col2 char, col3 float)"] 1
236$cur prepareQuery "insert into testtable1 values (\$(var1),'\$(var2)',\$(var3))"
237$cur substitution "var1" 1
238$cur substitution "var2" "hello"
239$cur substitution "var3" 10.5556 6 4
240checkSuccess [$cur executeQuery] 1
241puts ""
242
243puts "FIELDS: "
244checkSuccess [$cur sendQuery "select * from testtable1"] 1
245checkSuccess [$cur getFieldByIndex 0 0] "1"
246checkSuccess [$cur getFieldByIndex 0 1] "hello"
247checkSuccess [$cur getFieldByIndex 0 2] "10.5556"
248checkSuccess [$cur sendQuery "delete from testtable1"] 1
249puts ""
250
251puts "ARRAY SUBSTITUTIONS: "
252$cur prepareQuery "insert into testtable1 values (\$(var1),'\$(var2)',\$(var3))"
253$cur substitutions {{"var1" 1} {"var2" "hello"} {"var3" 10.5556 6 4}}
254checkSuccess [$cur executeQuery] 1
255puts ""
256
257puts "FIELDS: "
258checkSuccess [$cur sendQuery "select * from testtable1"] 1
259checkSuccess [$cur getFieldByIndex 0 0] "1"
260checkSuccess [$cur getFieldByIndex 0 1] "hello"
261checkSuccess [$cur getFieldByIndex 0 2] "10.5556"
262checkSuccess [$cur sendQuery "delete from testtable1"] 1
263puts ""
264
265puts "RESULT SET BUFFER SIZE: "
266checkSuccess [$cur getResultSetBufferSize] 0
267$cur setResultSetBufferSize 2
268checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1
269checkSuccess [$cur getResultSetBufferSize] 2
270puts ""
271checkSuccess [$cur firstRowIndex] 0
272checkSuccess [$cur endOfResultSet] 0
273checkSuccess [$cur rowCount] 2
274checkSuccess [$cur getFieldByIndex 0 0] "1"
275checkSuccess [$cur getFieldByIndex 1 0] "2"
276checkSuccess [$cur getFieldByIndex 2 0] "3"
277puts ""
278checkSuccess [$cur firstRowIndex] 2
279checkSuccess [$cur endOfResultSet] 0
280checkSuccess [$cur rowCount] 4
281checkSuccess [$cur getFieldByIndex 6 0] "7"
282checkSuccess [$cur getFieldByIndex 7 0] "8"
283puts ""
284checkSuccess [$cur firstRowIndex] 6
285checkSuccess [$cur endOfResultSet] 0
286checkSuccess [$cur rowCount] 8
287checkUndef [$cur getFieldByIndex 8 0]
288puts ""
289checkSuccess [$cur firstRowIndex] 8
290checkSuccess [$cur endOfResultSet] 1
291checkSuccess [$cur rowCount] 8
292puts ""
293
294puts "DONT GET COLUMN INFO: "
295$cur dontGetColumnInfo
296checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1
297checkUndef [$cur getColumnName 0]
298checkSuccess [$cur getColumnLengthByIndex 0] 0
299checkUndef [$cur getColumnTypeByIndex 0]
300$cur getColumnInfo
301checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1
302checkSuccess [$cur getColumnName 0] "testint"
303checkSuccess [$cur getColumnLengthByIndex 0] 0
304checkSuccess [$cur getColumnTypeByIndex 0] "INTEGER"
305puts ""
306
307puts "SUSPENDED SESSION: "
308checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1
309$cur suspendResultSet
310checkSuccess [$con suspendSession] 1
311set port [$con getConnectionPort]
312set socket [$con getConnectionSocket]
313checkSuccess [$con resumeSession $port $socket] 1
314puts ""
315checkSuccess [$cur getFieldByIndex 0 0] "1"
316checkSuccess [$cur getFieldByIndex 1 0] "2"
317checkSuccess [$cur getFieldByIndex 2 0] "3"
318checkSuccess [$cur getFieldByIndex 3 0] "4"
319checkSuccess [$cur getFieldByIndex 4 0] "5"
320checkSuccess [$cur getFieldByIndex 5 0] "6"
321checkSuccess [$cur getFieldByIndex 6 0] "7"
322checkSuccess [$cur getFieldByIndex 7 0] "8"
323puts ""
324checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1
325$cur suspendResultSet
326checkSuccess [$con suspendSession] 1
327set port [$con getConnectionPort]
328set socket [$con getConnectionSocket]
329checkSuccess [$con resumeSession $port $socket] 1
330puts ""
331checkSuccess [$cur getFieldByIndex 0 0] "1"
332checkSuccess [$cur getFieldByIndex 1 0] "2"
333checkSuccess [$cur getFieldByIndex 2 0] "3"
334checkSuccess [$cur getFieldByIndex 3 0] "4"
335checkSuccess [$cur getFieldByIndex 4 0] "5"
336checkSuccess [$cur getFieldByIndex 5 0] "6"
337checkSuccess [$cur getFieldByIndex 6 0] "7"
338checkSuccess [$cur getFieldByIndex 7 0] "8"
339puts ""
340checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1
341$cur suspendResultSet
342checkSuccess [$con suspendSession] 1
343set port [$con getConnectionPort]
344set socket [$con getConnectionSocket]
345checkSuccess [$con resumeSession $port $socket] 1
346puts ""
347checkSuccess [$cur getFieldByIndex 0 0] "1"
348checkSuccess [$cur getFieldByIndex 1 0] "2"
349checkSuccess [$cur getFieldByIndex 2 0] "3"
350checkSuccess [$cur getFieldByIndex 3 0] "4"
351checkSuccess [$cur getFieldByIndex 4 0] "5"
352checkSuccess [$cur getFieldByIndex 5 0] "6"
353checkSuccess [$cur getFieldByIndex 6 0] "7"
354checkSuccess [$cur getFieldByIndex 7 0] "8"
355puts ""
356
357puts "SUSPENDED RESULT SET: "
358$cur setResultSetBufferSize 2
359checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1
360checkSuccess [$cur getFieldByIndex 2 0] "3"
361set id [$cur getResultSetId]
362$cur suspendResultSet
363checkSuccess [$con suspendSession] 1
364set port [$con getConnectionPort]
365set socket [$con getConnectionSocket]
366checkSuccess [$con resumeSession $port $socket] 1
367checkSuccess [$cur resumeResultSet $id] 1
368puts ""
369checkSuccess [$cur firstRowIndex] 4
370checkSuccess [$cur endOfResultSet] 0
371checkSuccess [$cur rowCount] 6
372checkSuccess [$cur getFieldByIndex 7 0] "8"
373puts ""
374checkSuccess [$cur firstRowIndex] 6
375checkSuccess [$cur endOfResultSet] 0
376checkSuccess [$cur rowCount] 8
377checkUndef [$cur getFieldByIndex 8 0]
378puts ""
379checkSuccess [$cur firstRowIndex] 8
380checkSuccess [$cur endOfResultSet] 1
381checkSuccess [$cur rowCount] 8
382$cur setResultSetBufferSize 0
383puts ""
384
385puts "CACHED RESULT SET: "
386$cur cacheToFile "cachefile1"
387$cur setCacheTtl 200
388checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1
389set filename [$cur getCacheFileName]
390checkSuccess $filename "cachefile1"
391$cur cacheOff
392checkSuccess [$cur openCachedResultSet $filename] 1
393checkSuccess [$cur getFieldByIndex 7 0] "8"
394puts ""
395
396puts "COLUMN COUNT FOR CACHED RESULT SET: "
397checkSuccess [$cur colCount] 4
398puts ""
399
400puts "COLUMN NAMES FOR CACHED RESULT SET: "
401checkSuccess [$cur getColumnName 0] "testint"
402checkSuccess [$cur getColumnName 1] "testfloat"
403checkSuccess [$cur getColumnName 2] "testchar"
404checkSuccess [$cur getColumnName 3] "testvarchar"
405set cols [$cur getColumnNames]
406checkSuccess [lindex $cols 0] "testint"
407checkSuccess [lindex $cols 1] "testfloat"
408checkSuccess [lindex $cols 2] "testchar"
409checkSuccess [lindex $cols 3] "testvarchar"
410puts ""
411
412puts "CACHED RESULT SET WITH RESULT SET BUFFER SIZE: "
413$cur setResultSetBufferSize 2
414$cur cacheToFile "cachefile1"
415$cur setCacheTtl 200
416checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1
417set filename [$cur getCacheFileName]
418checkSuccess $filename "cachefile1"
419$cur cacheOff
420checkSuccess [$cur openCachedResultSet $filename] 1
421checkSuccess [$cur getFieldByIndex 7 0] "8"
422checkUndef [$cur getFieldByIndex 8 0]
423$cur setResultSetBufferSize 0
424puts ""
425
426puts "FROM ONE CACHE FILE TO ANOTHER: "
427$cur cacheToFile "cachefile2"
428checkSuccess [$cur openCachedResultSet "cachefile1"] 1
429$cur cacheOff
430checkSuccess [$cur openCachedResultSet "cachefile2"] 1
431checkSuccess [$cur getFieldByIndex 7 0] "8"
432checkUndef [$cur getFieldByIndex 8 0]
433puts ""
434
435puts "FROM ONE CACHE FILE TO ANOTHER WITH RESULT SET BUFFER SIZE: "
436$cur setResultSetBufferSize 2
437$cur cacheToFile "cachefile2"
438checkSuccess [$cur openCachedResultSet "cachefile1"] 1
439$cur cacheOff
440checkSuccess [$cur openCachedResultSet "cachefile2"] 1
441checkSuccess [$cur getFieldByIndex 7 0] "8"
442checkUndef [$cur getFieldByIndex 8 0]
443$cur setResultSetBufferSize 0
444puts ""
445
446puts "CACHED RESULT SET WITH SUSPEND AND RESULT SET BUFFER SIZE: "
447$cur setResultSetBufferSize 2
448$cur cacheToFile "cachefile1"
449$cur setCacheTtl 200
450checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1
451checkSuccess [$cur getFieldByIndex 2 0] "3"
452set filename [$cur getCacheFileName]
453checkSuccess $filename "cachefile1"
454set id [$cur getResultSetId]
455$cur suspendResultSet
456checkSuccess [$con suspendSession] 1
457set port [$con getConnectionPort]
458set socket [$con getConnectionSocket]
459puts ""
460checkSuccess [$con resumeSession $port $socket] 1
461checkSuccess [$cur resumeCachedResultSet $id $filename] 1
462puts ""
463checkSuccess [$cur firstRowIndex] 4
464checkSuccess [$cur endOfResultSet] 0
465checkSuccess [$cur rowCount] 6
466checkSuccess [$cur getFieldByIndex 7 0] "8"
467puts ""
468checkSuccess [$cur firstRowIndex] 6
469checkSuccess [$cur endOfResultSet] 0
470checkSuccess [$cur rowCount] 8
471checkUndef [$cur getFieldByIndex 8 0]
472puts ""
473checkSuccess [$cur firstRowIndex] 8
474checkSuccess [$cur endOfResultSet] 1
475checkSuccess [$cur rowCount] 8
476$cur cacheOff
477puts ""
478checkSuccess [$cur openCachedResultSet $filename] 1
479checkSuccess [$cur getFieldByIndex 7 0] "8"
480checkUndef [$cur getFieldByIndex 8 0]
481$cur setResultSetBufferSize 0
482puts ""
483
484puts "COMMIT AND ROLLBACK: "
485set secondcon [sqlrcon -server "sqlrelay" -port 9000 -socket "/tmp/test.socket" -user "test" -password "test" -retrytime 0 -tries 1]
486set secondcur [$secondcon sqlrcur]
487checkSuccess [$secondcur sendQuery "select count(*) from testtable"] 1
488checkSuccess [$secondcur getFieldByIndex 0 0] "0"
489checkSuccess [$con commit] 1
490checkSuccess [$secondcur sendQuery "select count(*) from testtable"] 1
491checkSuccess [$secondcur getFieldByIndex 0 0] "8"
492checkSuccess [$cur sendQuery "insert into testtable values (10,10.1,'testchar10','testvarchar10')"] 1
493checkSuccess [$secondcur sendQuery "select count(*) from testtable"] 1
494checkSuccess [$secondcur getFieldByIndex 0 0] "9"
495puts ""
496
497puts "FINISHED SUSPENDED SESSION: "
498checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1
499checkSuccess [$cur getFieldByIndex 4 0] "5"
500checkSuccess [$cur getFieldByIndex 5 0] "6"
501checkSuccess [$cur getFieldByIndex 6 0] "7"
502checkSuccess [$cur getFieldByIndex 7 0] "8"
503set id [$cur getResultSetId]
504$cur suspendResultSet
505checkSuccess [$con suspendSession] 1
506set port [$con getConnectionPort]
507set socket [$con getConnectionSocket]
508checkSuccess [$con resumeSession $port $socket] 1
509checkSuccess [$cur resumeResultSet $id] 1
510checkUndef [$cur getFieldByIndex 4 0]
511checkUndef [$cur getFieldByIndex 5 0]
512checkUndef [$cur getFieldByIndex 6 0]
513checkUndef [$cur getFieldByIndex 7 0]
514puts ""
515
516# drop existing table
517$cur sendQuery "drop table testtable"
518
519# invalid queries...
520puts "INVALID QUERIES: "
521catch {checkSuccess [$cur sendQuery "select * from testtable"] 0}
522catch {checkSuccess [$cur sendQuery "select * from testtable"] 0}
523catch {checkSuccess [$cur sendQuery "select * from testtable"] 0}
524catch {checkSuccess [$cur sendQuery "select * from testtable"] 0}
525puts ""
526catch {checkSuccess [$cur sendQuery "insert into testtable values (1,2,3,4)"] 0}
527catch {checkSuccess [$cur sendQuery "insert into testtable values (1,2,3,4)"] 0}
528catch {checkSuccess [$cur sendQuery "insert into testtable values (1,2,3,4)"] 0}
529catch {checkSuccess [$cur sendQuery "insert into testtable values (1,2,3,4)"] 0}
530puts ""
531catch {checkSuccess [$cur sendQuery "create table testtable"] 0}
532catch {checkSuccess [$cur sendQuery "create table testtable"] 0}
533catch {checkSuccess [$cur sendQuery "create table testtable"] 0}
534catch {checkSuccess [$cur sendQuery "create table testtable"] 0}
535puts ""
536
537exit 0
538