System.Data.SQLite

Artifact [97056cb055]
Login

Artifact 97056cb055e471e6c869a8758e7571355359bedf:


###############################################################################
#
# tkt-3113734605.eagle --
#
# Written by Joe Mistachkin.
# Released to the public domain, use at your own risk!
#
###############################################################################

package require Eagle
package require Eagle.Library
package require Eagle.Test

runTestPrologue

###############################################################################

package require System.Data.SQLite.Test
runSQLiteTestPrologue

###############################################################################

runTest {test tkt-3113734605-1.1 {ColumnSize and NumericPrecision} -setup {
  setupDb [set fileName tkt-3113734605-1.1.db]
} -body {
  set connection [getDbConnection]

  set result [list]

  sql execute $db {
    CREATE TABLE t1(
      v BINARY(12), w CHAR(23), x NCHAR(34), y VARCHAR(45), z NVARCHAR(56)
    );
  }

  sql execute $db "CREATE VIEW v1 AS SELECT * FROM t1;"

  foreach collectionName [list TABLECOLUMNS VIEWCOLUMNS] {
    set dataTable [object invoke -alias $connection GetSchema $collectionName]

    if {[string length $dataTable] > 0} then {
      set dataRows [$dataTable Rows]

      object foreach -alias dataRow $dataRows {
        lappend result [set value [$dataRow get_Item TABLE_NAME]]
        lappend result [set value [$dataRow get_Item COLUMN_NAME]]
        lappend result [set value [$dataRow get_Item CHARACTER_MAXIMUM_LENGTH]]
        lappend result [set value [$dataRow get_Item NUMERIC_PRECISION]]
      }
    }
  }

  set result
} -cleanup {
  cleanupDb $fileName

  freeDbConnection

  unset -nocomplain value dataRow dataRows dataTable collectionName result \
      connection db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite} -match regexp -result {^t1 v 12 System#DBNull#\d+ t1 w 23\
System#DBNull#\d+ t1 x 34 System#DBNull#\d+ t1 y 45 System#DBNull#\d+ t1 z 56\
System#DBNull#\d+ v1 v 12 System#DBNull#\d+ v1 w 23 System#DBNull#\d+ v1 x 34\
System#DBNull#\d+ v1 y 45 System#DBNull#\d+ v1 z 56 System#DBNull#\d+ t1 v 12\
System#DBNull#\d+ t1 w 23 System#DBNull#\d+ t1 x 34 System#DBNull#\d+ t1 y 45\
System#DBNull#\d+ t1 z 56 System#DBNull#\d+$}}

###############################################################################

runSQLiteTestEpilogue
runTestEpilogue