Annotation of embedaddon/sqlite3/test/colmeta.test, revision 1.1
1.1 ! misho 1: #
! 2: # 2006 February 9
! 3: #
! 4: # The author disclaims copyright to this source code. In place of
! 5: # a legal notice, here is a blessing:
! 6: #
! 7: # May you do good and not evil.
! 8: # May you find forgiveness for yourself and forgive others.
! 9: # May you share freely, never taking more than you give.
! 10: #
! 11: #***********************************************************************
! 12: # This file implements regression tests for SQLite library. The
! 13: # focus of this script is the sqlite3_table_column_metadata() API.
! 14: #
! 15: # $Id: colmeta.test,v 1.4 2008/01/23 12:52:41 drh Exp $
! 16:
! 17: set testdir [file dirname $argv0]
! 18: source $testdir/tester.tcl
! 19:
! 20: ifcapable !columnmetadata {
! 21: finish_test
! 22: return
! 23: }
! 24:
! 25: # Set up a schema in the main and temp test databases.
! 26: do_test colmeta-0 {
! 27: execsql {
! 28: CREATE TABLE abc(a, b, c);
! 29: CREATE TABLE abc2(a PRIMARY KEY COLLATE NOCASE, b VARCHAR(32), c);
! 30: CREATE TABLE abc3(a NOT NULL, b INTEGER PRIMARY KEY, c);
! 31: }
! 32: ifcapable autoinc {
! 33: execsql {
! 34: CREATE TABLE abc4(a, b INTEGER PRIMARY KEY AUTOINCREMENT, c);
! 35: }
! 36: }
! 37: ifcapable view {
! 38: execsql {
! 39: CREATE VIEW v1 AS SELECT * FROM abc2;
! 40: }
! 41: }
! 42: } {}
! 43:
! 44:
! 45: # Return values are of the form:
! 46: #
! 47: # {<decl-type> <collation> <not null> <primary key> <auto increment>}
! 48: #
! 49: set tests {
! 50: 1 {main abc a} {0 {{} BINARY 0 0 0}}
! 51: 2 {{} abc a} {0 {{} BINARY 0 0 0}}
! 52: 3 {{} abc2 b} {0 {VARCHAR(32) BINARY 0 0 0}}
! 53: 4 {main abc2 b} {0 {VARCHAR(32) BINARY 0 0 0}}
! 54: 5 {{} abc2 a} {0 {{} NOCASE 0 1 0}}
! 55: 6 {{} abc3 a} {0 {{} BINARY 1 0 0}}
! 56: 7 {{} abc3 b} {0 {INTEGER BINARY 0 1 0}}
! 57: 13 {main abc rowid} {0 {INTEGER BINARY 0 1 0}}
! 58: 14 {main abc3 rowid} {0 {INTEGER BINARY 0 1 0}}
! 59: 16 {main abc d} {1 {no such table column: abc.d}}
! 60: }
! 61: ifcapable view {
! 62: set tests [concat $tests {
! 63: 8 {{} abc4 b} {0 {INTEGER BINARY 0 1 1}}
! 64: 15 {main abc4 rowid} {0 {INTEGER BINARY 0 1 1}}
! 65: }]
! 66: }
! 67: ifcapable view {
! 68: set tests [concat $tests {
! 69: 9 {{} v1 a} {1 {no such table column: v1.a}}
! 70: 10 {main v1 b} {1 {no such table column: v1.b}}
! 71: 11 {main v1 badname} {1 {no such table column: v1.badname}}
! 72: 12 {main v1 rowid} {1 {no such table column: v1.rowid}}
! 73: }]
! 74: }
! 75:
! 76: foreach {tn params results} $tests {
! 77: set ::DB [sqlite3_connection_pointer db]
! 78:
! 79: set tstbody [concat sqlite3_table_column_metadata $::DB $params]
! 80: do_test colmeta-$tn.1 {
! 81: list [catch $tstbody msg] [set msg]
! 82: } $results
! 83:
! 84: db close
! 85: sqlite3 db test.db
! 86:
! 87: set ::DB [sqlite3_connection_pointer db]
! 88: set tstbody [concat sqlite3_table_column_metadata $::DB $params]
! 89: do_test colmeta-$tn.2 {
! 90: list [catch $tstbody msg] [set msg]
! 91: } $results
! 92: }
! 93:
! 94: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>