System.Data.SQLite

Artifact [4cca156c7f]
Login

Artifact 4cca156c7fb352e04227ed50fc48145e108cc729:


###############################################################################
#
# tkt-c010fa6584.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-c010fa6584-1.1 {column "integral" type handling} -setup {
  setupDb [set fileName tkt-c010fa6584-1.1.db]
} -body {
  #
  # NOTE: Create a database table with all the integral type names that are
  #       recognized by System.Data.SQLite.  Subsequently, each column will
  #       be tested against a list of values that meet and/or exceed the
  #       bounds for the underlying primitive integral CLR type.
  #
  sql execute $db {
    CREATE TABLE t1(
      a00 SYSNAME,           -- This is the 'payload' column name.
      a01,                   -- String
      a02 TEXT,              -- String
      a03 BIGINT,            -- Int64
      a04 BIGUINT,           -- UInt64
      a05 COUNTER,           -- Int64
      a06 IDENTITY,          -- Int64
      a07 INT,               -- Int32
      a08 INT8,              -- SByte
      a09 INT16,             -- Int16
      a10 INT32,             -- Int32
      a11 INT64,             -- Int64
      a12 INTEGER,           -- Int64
      a13 INTEGER8,          -- SByte
      a14 INTEGER16,         -- Int16
      a15 INTEGER32,         -- Int32
      a16 INTEGER64,         -- Int64
      a17 LONG,              -- Int64
      a18 SMALLINT,          -- Int16
      a19 SMALLUINT,         -- UInt16
      a20 TINYINT,           -- Byte
      a21 TINYSINT,          -- SByte
      a22 UINT,              -- UInt32
      a23 UINT8,             -- Byte
      a24 UINT16,            -- UInt16
      a25 UINT32,            -- UInt32
      a26 UINT64,            -- UInt64
      a27 ULONG,             -- UInt64
      a28 UNSIGNEDINTEGER,   -- UInt32
      a29 UNSIGNEDINTEGER8,  -- Byte
      a30 UNSIGNEDINTEGER16, -- UInt16
      a31 UNSIGNEDINTEGER32, -- UInt32
      a32 UNSIGNEDINTEGER64  -- UInt64
    );
  }

  #
  # NOTE: These are the numeric values being tested against all the types in
  #       the database table defined above.  This list includes values that
  #       are out-of-bounds for each primitive integral type.
  #
  set values [list \
      -9223372036854775809 -9223372036854775808 \
      -2147483649 -2147483648 \
      -32769 -32768 \
      -129 -128 \
      -1 0 1 \
      127 128 \
      255 256 \
      32767 32768 \
      65535 65536 \
      2147483647 2147483648 \
      4294967295 4294967296 \
      9223372036854775807 9223372036854775808 \
      18446744073709551615 18446744073709551616]

  for {set index 1} {$index <= 32} {incr index} {
    set name [appendArgs a [format %02d $index]]
    foreach value $values {
      sql execute $db [subst {
        INSERT INTO t1 (a00, $name) VALUES('$name', $value);
      }]
    }
  }

  set results [list]

  for {set index 1} {$index <= 32} {incr index} {
    set name [appendArgs a [format %02d $index]]
    set count [sql execute -execute scalar $db [subst {
      SELECT COUNT(*) FROM t1 WHERE a00 = '$name';
    }]]
    for {set offset 0} {$offset < $count} {incr offset} {
      set code [catch {
        sql execute -execute scalar $db [subst {
          SELECT $name FROM t1 WHERE a00 = '$name' LIMIT 1 OFFSET $offset;
        }]
      } result]

      set match [expr {$result eq [lindex $values $offset]}]

      append results [list \
          $name $offset $match [lindex $values $offset] \
          $code [expr {$code == 0 ? $result : $errorCode}]] \n
    }
  }

  set results
} -cleanup {
  cleanupDb $fileName

  unset -nocomplain match result code offset count results value name index \
      values db fileName
} -constraints \
{eagle monoBug28 command.sql compile.DATA SQLite System.Data.SQLite} -result \
{a01 0 False -9223372036854775809 0 -9.22337203685478E+18
a01 1 True -9223372036854775808 0 -9223372036854775808
a01 2 True -2147483649 0 -2147483649
a01 3 True -2147483648 0 -2147483648
a01 4 True -32769 0 -32769
a01 5 True -32768 0 -32768
a01 6 True -129 0 -129
a01 7 True -128 0 -128
a01 8 True -1 0 -1
a01 9 True 0 0 0
a01 10 True 1 0 1
a01 11 True 127 0 127
a01 12 True 128 0 128
a01 13 True 255 0 255
a01 14 True 256 0 256
a01 15 True 32767 0 32767
a01 16 True 32768 0 32768
a01 17 True 65535 0 65535
a01 18 True 65536 0 65536
a01 19 True 2147483647 0 2147483647
a01 20 True 2147483648 0 2147483648
a01 21 True 4294967295 0 4294967295
a01 22 True 4294967296 0 4294967296
a01 23 True 9223372036854775807 0 9223372036854775807
a01 24 False 9223372036854775808 0 9.22337203685478E+18
a01 25 False 18446744073709551615 0 1.84467440737096E+19
a01 26 False 18446744073709551616 0 1.84467440737096E+19
a02 0 False -9223372036854775809 0 -9.22337203685478e+18
a02 1 True -9223372036854775808 0 -9223372036854775808
a02 2 True -2147483649 0 -2147483649
a02 3 True -2147483648 0 -2147483648
a02 4 True -32769 0 -32769
a02 5 True -32768 0 -32768
a02 6 True -129 0 -129
a02 7 True -128 0 -128
a02 8 True -1 0 -1
a02 9 True 0 0 0
a02 10 True 1 0 1
a02 11 True 127 0 127
a02 12 True 128 0 128
a02 13 True 255 0 255
a02 14 True 256 0 256
a02 15 True 32767 0 32767
a02 16 True 32768 0 32768
a02 17 True 65535 0 65535
a02 18 True 65536 0 65536
a02 19 True 2147483647 0 2147483647
a02 20 True 2147483648 0 2147483648
a02 21 True 4294967295 0 4294967295
a02 22 True 4294967296 0 4294967296
a02 23 True 9223372036854775807 0 9223372036854775807
a02 24 False 9223372036854775808 0 9.22337203685478e+18
a02 25 False 18446744073709551615 0 1.84467440737096e+19
a02 26 False 18446744073709551616 0 1.84467440737096e+19
a03 0 False -9223372036854775809 0 -9223372036854775808
a03 1 True -9223372036854775808 0 -9223372036854775808
a03 2 True -2147483649 0 -2147483649
a03 3 True -2147483648 0 -2147483648
a03 4 True -32769 0 -32769
a03 5 True -32768 0 -32768
a03 6 True -129 0 -129
a03 7 True -128 0 -128
a03 8 True -1 0 -1
a03 9 True 0 0 0
a03 10 True 1 0 1
a03 11 True 127 0 127
a03 12 True 128 0 128
a03 13 True 255 0 255
a03 14 True 256 0 256
a03 15 True 32767 0 32767
a03 16 True 32768 0 32768
a03 17 True 65535 0 65535
a03 18 True 65536 0 65536
a03 19 True 2147483647 0 2147483647
a03 20 True 2147483648 0 2147483648
a03 21 True 4294967295 0 4294967295
a03 22 True 4294967296 0 4294967296
a03 23 True 9223372036854775807 0 9223372036854775807
a03 24 False 9223372036854775808 0 9223372036854775807
a03 25 False 18446744073709551615 0 9223372036854775807
a03 26 False 18446744073709551616 0 9223372036854775807
a04 0 False -9223372036854775809 0 9223372036854775808
a04 1 False -9223372036854775808 0 9223372036854775808
a04 2 False -2147483649 0 18446744071562067967
a04 3 False -2147483648 0 18446744071562067968
a04 4 False -32769 0 18446744073709518847
a04 5 False -32768 0 18446744073709518848
a04 6 False -129 0 18446744073709551487
a04 7 False -128 0 18446744073709551488
a04 8 False -1 0 18446744073709551615
a04 9 True 0 0 0
a04 10 True 1 0 1
a04 11 True 127 0 127
a04 12 True 128 0 128
a04 13 True 255 0 255
a04 14 True 256 0 256
a04 15 True 32767 0 32767
a04 16 True 32768 0 32768
a04 17 True 65535 0 65535
a04 18 True 65536 0 65536
a04 19 True 2147483647 0 2147483647
a04 20 True 2147483648 0 2147483648
a04 21 True 4294967295 0 4294967295
a04 22 True 4294967296 0 4294967296
a04 23 True 9223372036854775807 0 9223372036854775807
a04 24 False 9223372036854775808 0 9223372036854775807
a04 25 False 18446744073709551615 0 9223372036854775807
a04 26 False 18446744073709551616 0 9223372036854775807
a05 0 False -9223372036854775809 0 -9223372036854775808
a05 1 True -9223372036854775808 0 -9223372036854775808
a05 2 True -2147483649 0 -2147483649
a05 3 True -2147483648 0 -2147483648
a05 4 True -32769 0 -32769
a05 5 True -32768 0 -32768
a05 6 True -129 0 -129
a05 7 True -128 0 -128
a05 8 True -1 0 -1
a05 9 True 0 0 0
a05 10 True 1 0 1
a05 11 True 127 0 127
a05 12 True 128 0 128
a05 13 True 255 0 255
a05 14 True 256 0 256
a05 15 True 32767 0 32767
a05 16 True 32768 0 32768
a05 17 True 65535 0 65535
a05 18 True 65536 0 65536
a05 19 True 2147483647 0 2147483647
a05 20 True 2147483648 0 2147483648
a05 21 True 4294967295 0 4294967295
a05 22 True 4294967296 0 4294967296
a05 23 True 9223372036854775807 0 9223372036854775807
a05 24 False 9223372036854775808 0 9223372036854775807
a05 25 False 18446744073709551615 0 9223372036854775807
a05 26 False 18446744073709551616 0 9223372036854775807
a06 0 False -9223372036854775809 0 -9223372036854775808
a06 1 True -9223372036854775808 0 -9223372036854775808
a06 2 True -2147483649 0 -2147483649
a06 3 True -2147483648 0 -2147483648
a06 4 True -32769 0 -32769
a06 5 True -32768 0 -32768
a06 6 True -129 0 -129
a06 7 True -128 0 -128
a06 8 True -1 0 -1
a06 9 True 0 0 0
a06 10 True 1 0 1
a06 11 True 127 0 127
a06 12 True 128 0 128
a06 13 True 255 0 255
a06 14 True 256 0 256
a06 15 True 32767 0 32767
a06 16 True 32768 0 32768
a06 17 True 65535 0 65535
a06 18 True 65536 0 65536
a06 19 True 2147483647 0 2147483647
a06 20 True 2147483648 0 2147483648
a06 21 True 4294967295 0 4294967295
a06 22 True 4294967296 0 4294967296
a06 23 True 9223372036854775807 0 9223372036854775807
a06 24 False 9223372036854775808 0 9223372036854775807
a06 25 False 18446744073709551615 0 9223372036854775807
a06 26 False 18446744073709551616 0 9223372036854775807
a07 0 False -9223372036854775809 0 0
a07 1 False -9223372036854775808 0 0
a07 2 False -2147483649 0 2147483647
a07 3 True -2147483648 0 -2147483648
a07 4 True -32769 0 -32769
a07 5 True -32768 0 -32768
a07 6 True -129 0 -129
a07 7 True -128 0 -128
a07 8 True -1 0 -1
a07 9 True 0 0 0
a07 10 True 1 0 1
a07 11 True 127 0 127
a07 12 True 128 0 128
a07 13 True 255 0 255
a07 14 True 256 0 256
a07 15 True 32767 0 32767
a07 16 True 32768 0 32768
a07 17 True 65535 0 65535
a07 18 True 65536 0 65536
a07 19 True 2147483647 0 2147483647
a07 20 False 2147483648 0 -2147483648
a07 21 False 4294967295 0 -1
a07 22 False 4294967296 0 0
a07 23 False 9223372036854775807 0 -1
a07 24 False 9223372036854775808 0 -1
a07 25 False 18446744073709551615 0 -1
a07 26 False 18446744073709551616 0 -1
a08 0 False -9223372036854775809 0 0
a08 1 False -9223372036854775808 0 0
a08 2 False -2147483649 0 -1
a08 3 False -2147483648 0 0
a08 4 False -32769 0 -1
a08 5 False -32768 0 0
a08 6 False -129 0 127
a08 7 True -128 0 -128
a08 8 True -1 0 -1
a08 9 True 0 0 0
a08 10 True 1 0 1
a08 11 True 127 0 127
a08 12 False 128 0 -128
a08 13 False 255 0 -1
a08 14 False 256 0 0
a08 15 False 32767 0 -1
a08 16 False 32768 0 0
a08 17 False 65535 0 -1
a08 18 False 65536 0 0
a08 19 False 2147483647 0 -1
a08 20 False 2147483648 0 0
a08 21 False 4294967295 0 -1
a08 22 False 4294967296 0 0
a08 23 False 9223372036854775807 0 -1
a08 24 False 9223372036854775808 0 -1
a08 25 False 18446744073709551615 0 -1
a08 26 False 18446744073709551616 0 -1
a09 0 False -9223372036854775809 0 0
a09 1 False -9223372036854775808 0 0
a09 2 False -2147483649 0 -1
a09 3 False -2147483648 0 0
a09 4 False -32769 0 32767
a09 5 True -32768 0 -32768
a09 6 True -129 0 -129
a09 7 True -128 0 -128
a09 8 True -1 0 -1
a09 9 True 0 0 0
a09 10 True 1 0 1
a09 11 True 127 0 127
a09 12 True 128 0 128
a09 13 True 255 0 255
a09 14 True 256 0 256
a09 15 True 32767 0 32767
a09 16 False 32768 0 -32768
a09 17 False 65535 0 -1
a09 18 False 65536 0 0
a09 19 False 2147483647 0 -1
a09 20 False 2147483648 0 0
a09 21 False 4294967295 0 -1
a09 22 False 4294967296 0 0
a09 23 False 9223372036854775807 0 -1
a09 24 False 9223372036854775808 0 -1
a09 25 False 18446744073709551615 0 -1
a09 26 False 18446744073709551616 0 -1
a10 0 False -9223372036854775809 0 0
a10 1 False -9223372036854775808 0 0
a10 2 False -2147483649 0 2147483647
a10 3 True -2147483648 0 -2147483648
a10 4 True -32769 0 -32769
a10 5 True -32768 0 -32768
a10 6 True -129 0 -129
a10 7 True -128 0 -128
a10 8 True -1 0 -1
a10 9 True 0 0 0
a10 10 True 1 0 1
a10 11 True 127 0 127
a10 12 True 128 0 128
a10 13 True 255 0 255
a10 14 True 256 0 256
a10 15 True 32767 0 32767
a10 16 True 32768 0 32768
a10 17 True 65535 0 65535
a10 18 True 65536 0 65536
a10 19 True 2147483647 0 2147483647
a10 20 False 2147483648 0 -2147483648
a10 21 False 4294967295 0 -1
a10 22 False 4294967296 0 0
a10 23 False 9223372036854775807 0 -1
a10 24 False 9223372036854775808 0 -1
a10 25 False 18446744073709551615 0 -1
a10 26 False 18446744073709551616 0 -1
a11 0 False -9223372036854775809 0 -9223372036854775808
a11 1 True -9223372036854775808 0 -9223372036854775808
a11 2 True -2147483649 0 -2147483649
a11 3 True -2147483648 0 -2147483648
a11 4 True -32769 0 -32769
a11 5 True -32768 0 -32768
a11 6 True -129 0 -129
a11 7 True -128 0 -128
a11 8 True -1 0 -1
a11 9 True 0 0 0
a11 10 True 1 0 1
a11 11 True 127 0 127
a11 12 True 128 0 128
a11 13 True 255 0 255
a11 14 True 256 0 256
a11 15 True 32767 0 32767
a11 16 True 32768 0 32768
a11 17 True 65535 0 65535
a11 18 True 65536 0 65536
a11 19 True 2147483647 0 2147483647
a11 20 True 2147483648 0 2147483648
a11 21 True 4294967295 0 4294967295
a11 22 True 4294967296 0 4294967296
a11 23 True 9223372036854775807 0 9223372036854775807
a11 24 False 9223372036854775808 0 9223372036854775807
a11 25 False 18446744073709551615 0 9223372036854775807
a11 26 False 18446744073709551616 0 9223372036854775807
a12 0 False -9223372036854775809 0 -9223372036854775808
a12 1 True -9223372036854775808 0 -9223372036854775808
a12 2 True -2147483649 0 -2147483649
a12 3 True -2147483648 0 -2147483648
a12 4 True -32769 0 -32769
a12 5 True -32768 0 -32768
a12 6 True -129 0 -129
a12 7 True -128 0 -128
a12 8 True -1 0 -1
a12 9 True 0 0 0
a12 10 True 1 0 1
a12 11 True 127 0 127
a12 12 True 128 0 128
a12 13 True 255 0 255
a12 14 True 256 0 256
a12 15 True 32767 0 32767
a12 16 True 32768 0 32768
a12 17 True 65535 0 65535
a12 18 True 65536 0 65536
a12 19 True 2147483647 0 2147483647
a12 20 True 2147483648 0 2147483648
a12 21 True 4294967295 0 4294967295
a12 22 True 4294967296 0 4294967296
a12 23 True 9223372036854775807 0 9223372036854775807
a12 24 False 9223372036854775808 0 9223372036854775807
a12 25 False 18446744073709551615 0 9223372036854775807
a12 26 False 18446744073709551616 0 9223372036854775807
a13 0 False -9223372036854775809 0 0
a13 1 False -9223372036854775808 0 0
a13 2 False -2147483649 0 -1
a13 3 False -2147483648 0 0
a13 4 False -32769 0 -1
a13 5 False -32768 0 0
a13 6 False -129 0 127
a13 7 True -128 0 -128
a13 8 True -1 0 -1
a13 9 True 0 0 0
a13 10 True 1 0 1
a13 11 True 127 0 127
a13 12 False 128 0 -128
a13 13 False 255 0 -1
a13 14 False 256 0 0
a13 15 False 32767 0 -1
a13 16 False 32768 0 0
a13 17 False 65535 0 -1
a13 18 False 65536 0 0
a13 19 False 2147483647 0 -1
a13 20 False 2147483648 0 0
a13 21 False 4294967295 0 -1
a13 22 False 4294967296 0 0
a13 23 False 9223372036854775807 0 -1
a13 24 False 9223372036854775808 0 -1
a13 25 False 18446744073709551615 0 -1
a13 26 False 18446744073709551616 0 -1
a14 0 False -9223372036854775809 0 0
a14 1 False -9223372036854775808 0 0
a14 2 False -2147483649 0 -1
a14 3 False -2147483648 0 0
a14 4 False -32769 0 32767
a14 5 True -32768 0 -32768
a14 6 True -129 0 -129
a14 7 True -128 0 -128
a14 8 True -1 0 -1
a14 9 True 0 0 0
a14 10 True 1 0 1
a14 11 True 127 0 127
a14 12 True 128 0 128
a14 13 True 255 0 255
a14 14 True 256 0 256
a14 15 True 32767 0 32767
a14 16 False 32768 0 -32768
a14 17 False 65535 0 -1
a14 18 False 65536 0 0
a14 19 False 2147483647 0 -1
a14 20 False 2147483648 0 0
a14 21 False 4294967295 0 -1
a14 22 False 4294967296 0 0
a14 23 False 9223372036854775807 0 -1
a14 24 False 9223372036854775808 0 -1
a14 25 False 18446744073709551615 0 -1
a14 26 False 18446744073709551616 0 -1
a15 0 False -9223372036854775809 0 0
a15 1 False -9223372036854775808 0 0
a15 2 False -2147483649 0 2147483647
a15 3 True -2147483648 0 -2147483648
a15 4 True -32769 0 -32769
a15 5 True -32768 0 -32768
a15 6 True -129 0 -129
a15 7 True -128 0 -128
a15 8 True -1 0 -1
a15 9 True 0 0 0
a15 10 True 1 0 1
a15 11 True 127 0 127
a15 12 True 128 0 128
a15 13 True 255 0 255
a15 14 True 256 0 256
a15 15 True 32767 0 32767
a15 16 True 32768 0 32768
a15 17 True 65535 0 65535
a15 18 True 65536 0 65536
a15 19 True 2147483647 0 2147483647
a15 20 False 2147483648 0 -2147483648
a15 21 False 4294967295 0 -1
a15 22 False 4294967296 0 0
a15 23 False 9223372036854775807 0 -1
a15 24 False 9223372036854775808 0 -1
a15 25 False 18446744073709551615 0 -1
a15 26 False 18446744073709551616 0 -1
a16 0 False -9223372036854775809 0 -9223372036854775808
a16 1 True -9223372036854775808 0 -9223372036854775808
a16 2 True -2147483649 0 -2147483649
a16 3 True -2147483648 0 -2147483648
a16 4 True -32769 0 -32769
a16 5 True -32768 0 -32768
a16 6 True -129 0 -129
a16 7 True -128 0 -128
a16 8 True -1 0 -1
a16 9 True 0 0 0
a16 10 True 1 0 1
a16 11 True 127 0 127
a16 12 True 128 0 128
a16 13 True 255 0 255
a16 14 True 256 0 256
a16 15 True 32767 0 32767
a16 16 True 32768 0 32768
a16 17 True 65535 0 65535
a16 18 True 65536 0 65536
a16 19 True 2147483647 0 2147483647
a16 20 True 2147483648 0 2147483648
a16 21 True 4294967295 0 4294967295
a16 22 True 4294967296 0 4294967296
a16 23 True 9223372036854775807 0 9223372036854775807
a16 24 False 9223372036854775808 0 9223372036854775807
a16 25 False 18446744073709551615 0 9223372036854775807
a16 26 False 18446744073709551616 0 9223372036854775807
a17 0 False -9223372036854775809 0 -9223372036854775808
a17 1 True -9223372036854775808 0 -9223372036854775808
a17 2 True -2147483649 0 -2147483649
a17 3 True -2147483648 0 -2147483648
a17 4 True -32769 0 -32769
a17 5 True -32768 0 -32768
a17 6 True -129 0 -129
a17 7 True -128 0 -128
a17 8 True -1 0 -1
a17 9 True 0 0 0
a17 10 True 1 0 1
a17 11 True 127 0 127
a17 12 True 128 0 128
a17 13 True 255 0 255
a17 14 True 256 0 256
a17 15 True 32767 0 32767
a17 16 True 32768 0 32768
a17 17 True 65535 0 65535
a17 18 True 65536 0 65536
a17 19 True 2147483647 0 2147483647
a17 20 True 2147483648 0 2147483648
a17 21 True 4294967295 0 4294967295
a17 22 True 4294967296 0 4294967296
a17 23 True 9223372036854775807 0 9223372036854775807
a17 24 False 9223372036854775808 0 9223372036854775807
a17 25 False 18446744073709551615 0 9223372036854775807
a17 26 False 18446744073709551616 0 9223372036854775807
a18 0 False -9223372036854775809 0 0
a18 1 False -9223372036854775808 0 0
a18 2 False -2147483649 0 -1
a18 3 False -2147483648 0 0
a18 4 False -32769 0 32767
a18 5 True -32768 0 -32768
a18 6 True -129 0 -129
a18 7 True -128 0 -128
a18 8 True -1 0 -1
a18 9 True 0 0 0
a18 10 True 1 0 1
a18 11 True 127 0 127
a18 12 True 128 0 128
a18 13 True 255 0 255
a18 14 True 256 0 256
a18 15 True 32767 0 32767
a18 16 False 32768 0 -32768
a18 17 False 65535 0 -1
a18 18 False 65536 0 0
a18 19 False 2147483647 0 -1
a18 20 False 2147483648 0 0
a18 21 False 4294967295 0 -1
a18 22 False 4294967296 0 0
a18 23 False 9223372036854775807 0 -1
a18 24 False 9223372036854775808 0 -1
a18 25 False 18446744073709551615 0 -1
a18 26 False 18446744073709551616 0 -1
a19 0 False -9223372036854775809 0 0
a19 1 False -9223372036854775808 0 0
a19 2 False -2147483649 0 65535
a19 3 False -2147483648 0 0
a19 4 False -32769 0 32767
a19 5 False -32768 0 32768
a19 6 False -129 0 65407
a19 7 False -128 0 65408
a19 8 False -1 0 65535
a19 9 True 0 0 0
a19 10 True 1 0 1
a19 11 True 127 0 127
a19 12 True 128 0 128
a19 13 True 255 0 255
a19 14 True 256 0 256
a19 15 True 32767 0 32767
a19 16 True 32768 0 32768
a19 17 True 65535 0 65535
a19 18 False 65536 0 0
a19 19 False 2147483647 0 65535
a19 20 False 2147483648 0 0
a19 21 False 4294967295 0 65535
a19 22 False 4294967296 0 0
a19 23 False 9223372036854775807 0 65535
a19 24 False 9223372036854775808 0 65535
a19 25 False 18446744073709551615 0 65535
a19 26 False 18446744073709551616 0 65535
a20 0 False -9223372036854775809 0 0
a20 1 False -9223372036854775808 0 0
a20 2 False -2147483649 0 255
a20 3 False -2147483648 0 0
a20 4 False -32769 0 255
a20 5 False -32768 0 0
a20 6 False -129 0 127
a20 7 False -128 0 128
a20 8 False -1 0 255
a20 9 True 0 0 0
a20 10 True 1 0 1
a20 11 True 127 0 127
a20 12 True 128 0 128
a20 13 True 255 0 255
a20 14 False 256 0 0
a20 15 False 32767 0 255
a20 16 False 32768 0 0
a20 17 False 65535 0 255
a20 18 False 65536 0 0
a20 19 False 2147483647 0 255
a20 20 False 2147483648 0 0
a20 21 False 4294967295 0 255
a20 22 False 4294967296 0 0
a20 23 False 9223372036854775807 0 255
a20 24 False 9223372036854775808 0 255
a20 25 False 18446744073709551615 0 255
a20 26 False 18446744073709551616 0 255
a21 0 False -9223372036854775809 0 0
a21 1 False -9223372036854775808 0 0
a21 2 False -2147483649 0 -1
a21 3 False -2147483648 0 0
a21 4 False -32769 0 -1
a21 5 False -32768 0 0
a21 6 False -129 0 127
a21 7 True -128 0 -128
a21 8 True -1 0 -1
a21 9 True 0 0 0
a21 10 True 1 0 1
a21 11 True 127 0 127
a21 12 False 128 0 -128
a21 13 False 255 0 -1
a21 14 False 256 0 0
a21 15 False 32767 0 -1
a21 16 False 32768 0 0
a21 17 False 65535 0 -1
a21 18 False 65536 0 0
a21 19 False 2147483647 0 -1
a21 20 False 2147483648 0 0
a21 21 False 4294967295 0 -1
a21 22 False 4294967296 0 0
a21 23 False 9223372036854775807 0 -1
a21 24 False 9223372036854775808 0 -1
a21 25 False 18446744073709551615 0 -1
a21 26 False 18446744073709551616 0 -1
a22 0 False -9223372036854775809 0 0
a22 1 False -9223372036854775808 0 0
a22 2 False -2147483649 0 2147483647
a22 3 False -2147483648 0 2147483648
a22 4 False -32769 0 4294934527
a22 5 False -32768 0 4294934528
a22 6 False -129 0 4294967167
a22 7 False -128 0 4294967168
a22 8 False -1 0 4294967295
a22 9 True 0 0 0
a22 10 True 1 0 1
a22 11 True 127 0 127
a22 12 True 128 0 128
a22 13 True 255 0 255
a22 14 True 256 0 256
a22 15 True 32767 0 32767
a22 16 True 32768 0 32768
a22 17 True 65535 0 65535
a22 18 True 65536 0 65536
a22 19 True 2147483647 0 2147483647
a22 20 True 2147483648 0 2147483648
a22 21 True 4294967295 0 4294967295
a22 22 False 4294967296 0 0
a22 23 False 9223372036854775807 0 4294967295
a22 24 False 9223372036854775808 0 4294967295
a22 25 False 18446744073709551615 0 4294967295
a22 26 False 18446744073709551616 0 4294967295
a23 0 False -9223372036854775809 0 0
a23 1 False -9223372036854775808 0 0
a23 2 False -2147483649 0 255
a23 3 False -2147483648 0 0
a23 4 False -32769 0 255
a23 5 False -32768 0 0
a23 6 False -129 0 127
a23 7 False -128 0 128
a23 8 False -1 0 255
a23 9 True 0 0 0
a23 10 True 1 0 1
a23 11 True 127 0 127
a23 12 True 128 0 128
a23 13 True 255 0 255
a23 14 False 256 0 0
a23 15 False 32767 0 255
a23 16 False 32768 0 0
a23 17 False 65535 0 255
a23 18 False 65536 0 0
a23 19 False 2147483647 0 255
a23 20 False 2147483648 0 0
a23 21 False 4294967295 0 255
a23 22 False 4294967296 0 0
a23 23 False 9223372036854775807 0 255
a23 24 False 9223372036854775808 0 255
a23 25 False 18446744073709551615 0 255
a23 26 False 18446744073709551616 0 255
a24 0 False -9223372036854775809 0 0
a24 1 False -9223372036854775808 0 0
a24 2 False -2147483649 0 65535
a24 3 False -2147483648 0 0
a24 4 False -32769 0 32767
a24 5 False -32768 0 32768
a24 6 False -129 0 65407
a24 7 False -128 0 65408
a24 8 False -1 0 65535
a24 9 True 0 0 0
a24 10 True 1 0 1
a24 11 True 127 0 127
a24 12 True 128 0 128
a24 13 True 255 0 255
a24 14 True 256 0 256
a24 15 True 32767 0 32767
a24 16 True 32768 0 32768
a24 17 True 65535 0 65535
a24 18 False 65536 0 0
a24 19 False 2147483647 0 65535
a24 20 False 2147483648 0 0
a24 21 False 4294967295 0 65535
a24 22 False 4294967296 0 0
a24 23 False 9223372036854775807 0 65535
a24 24 False 9223372036854775808 0 65535
a24 25 False 18446744073709551615 0 65535
a24 26 False 18446744073709551616 0 65535
a25 0 False -9223372036854775809 0 0
a25 1 False -9223372036854775808 0 0
a25 2 False -2147483649 0 2147483647
a25 3 False -2147483648 0 2147483648
a25 4 False -32769 0 4294934527
a25 5 False -32768 0 4294934528
a25 6 False -129 0 4294967167
a25 7 False -128 0 4294967168
a25 8 False -1 0 4294967295
a25 9 True 0 0 0
a25 10 True 1 0 1
a25 11 True 127 0 127
a25 12 True 128 0 128
a25 13 True 255 0 255
a25 14 True 256 0 256
a25 15 True 32767 0 32767
a25 16 True 32768 0 32768
a25 17 True 65535 0 65535
a25 18 True 65536 0 65536
a25 19 True 2147483647 0 2147483647
a25 20 True 2147483648 0 2147483648
a25 21 True 4294967295 0 4294967295
a25 22 False 4294967296 0 0
a25 23 False 9223372036854775807 0 4294967295
a25 24 False 9223372036854775808 0 4294967295
a25 25 False 18446744073709551615 0 4294967295
a25 26 False 18446744073709551616 0 4294967295
a26 0 False -9223372036854775809 0 9223372036854775808
a26 1 False -9223372036854775808 0 9223372036854775808
a26 2 False -2147483649 0 18446744071562067967
a26 3 False -2147483648 0 18446744071562067968
a26 4 False -32769 0 18446744073709518847
a26 5 False -32768 0 18446744073709518848
a26 6 False -129 0 18446744073709551487
a26 7 False -128 0 18446744073709551488
a26 8 False -1 0 18446744073709551615
a26 9 True 0 0 0
a26 10 True 1 0 1
a26 11 True 127 0 127
a26 12 True 128 0 128
a26 13 True 255 0 255
a26 14 True 256 0 256
a26 15 True 32767 0 32767
a26 16 True 32768 0 32768
a26 17 True 65535 0 65535
a26 18 True 65536 0 65536
a26 19 True 2147483647 0 2147483647
a26 20 True 2147483648 0 2147483648
a26 21 True 4294967295 0 4294967295
a26 22 True 4294967296 0 4294967296
a26 23 True 9223372036854775807 0 9223372036854775807
a26 24 False 9223372036854775808 0 9223372036854775807
a26 25 False 18446744073709551615 0 9223372036854775807
a26 26 False 18446744073709551616 0 9223372036854775807
a27 0 False -9223372036854775809 0 9223372036854775808
a27 1 False -9223372036854775808 0 9223372036854775808
a27 2 False -2147483649 0 18446744071562067967
a27 3 False -2147483648 0 18446744071562067968
a27 4 False -32769 0 18446744073709518847
a27 5 False -32768 0 18446744073709518848
a27 6 False -129 0 18446744073709551487
a27 7 False -128 0 18446744073709551488
a27 8 False -1 0 18446744073709551615
a27 9 True 0 0 0
a27 10 True 1 0 1
a27 11 True 127 0 127
a27 12 True 128 0 128
a27 13 True 255 0 255
a27 14 True 256 0 256
a27 15 True 32767 0 32767
a27 16 True 32768 0 32768
a27 17 True 65535 0 65535
a27 18 True 65536 0 65536
a27 19 True 2147483647 0 2147483647
a27 20 True 2147483648 0 2147483648
a27 21 True 4294967295 0 4294967295
a27 22 True 4294967296 0 4294967296
a27 23 True 9223372036854775807 0 9223372036854775807
a27 24 False 9223372036854775808 0 9223372036854775807
a27 25 False 18446744073709551615 0 9223372036854775807
a27 26 False 18446744073709551616 0 9223372036854775807
a28 0 False -9223372036854775809 0 9223372036854775808
a28 1 False -9223372036854775808 0 9223372036854775808
a28 2 False -2147483649 0 18446744071562067967
a28 3 False -2147483648 0 18446744071562067968
a28 4 False -32769 0 18446744073709518847
a28 5 False -32768 0 18446744073709518848
a28 6 False -129 0 18446744073709551487
a28 7 False -128 0 18446744073709551488
a28 8 False -1 0 18446744073709551615
a28 9 True 0 0 0
a28 10 True 1 0 1
a28 11 True 127 0 127
a28 12 True 128 0 128
a28 13 True 255 0 255
a28 14 True 256 0 256
a28 15 True 32767 0 32767
a28 16 True 32768 0 32768
a28 17 True 65535 0 65535
a28 18 True 65536 0 65536
a28 19 True 2147483647 0 2147483647
a28 20 True 2147483648 0 2147483648
a28 21 True 4294967295 0 4294967295
a28 22 True 4294967296 0 4294967296
a28 23 True 9223372036854775807 0 9223372036854775807
a28 24 False 9223372036854775808 0 9223372036854775807
a28 25 False 18446744073709551615 0 9223372036854775807
a28 26 False 18446744073709551616 0 9223372036854775807
a29 0 False -9223372036854775809 0 0
a29 1 False -9223372036854775808 0 0
a29 2 False -2147483649 0 255
a29 3 False -2147483648 0 0
a29 4 False -32769 0 255
a29 5 False -32768 0 0
a29 6 False -129 0 127
a29 7 False -128 0 128
a29 8 False -1 0 255
a29 9 True 0 0 0
a29 10 True 1 0 1
a29 11 True 127 0 127
a29 12 True 128 0 128
a29 13 True 255 0 255
a29 14 False 256 0 0
a29 15 False 32767 0 255
a29 16 False 32768 0 0
a29 17 False 65535 0 255
a29 18 False 65536 0 0
a29 19 False 2147483647 0 255
a29 20 False 2147483648 0 0
a29 21 False 4294967295 0 255
a29 22 False 4294967296 0 0
a29 23 False 9223372036854775807 0 255
a29 24 False 9223372036854775808 0 255
a29 25 False 18446744073709551615 0 255
a29 26 False 18446744073709551616 0 255
a30 0 False -9223372036854775809 0 0
a30 1 False -9223372036854775808 0 0
a30 2 False -2147483649 0 65535
a30 3 False -2147483648 0 0
a30 4 False -32769 0 32767
a30 5 False -32768 0 32768
a30 6 False -129 0 65407
a30 7 False -128 0 65408
a30 8 False -1 0 65535
a30 9 True 0 0 0
a30 10 True 1 0 1
a30 11 True 127 0 127
a30 12 True 128 0 128
a30 13 True 255 0 255
a30 14 True 256 0 256
a30 15 True 32767 0 32767
a30 16 True 32768 0 32768
a30 17 True 65535 0 65535
a30 18 False 65536 0 0
a30 19 False 2147483647 0 65535
a30 20 False 2147483648 0 0
a30 21 False 4294967295 0 65535
a30 22 False 4294967296 0 0
a30 23 False 9223372036854775807 0 65535
a30 24 False 9223372036854775808 0 65535
a30 25 False 18446744073709551615 0 65535
a30 26 False 18446744073709551616 0 65535
a31 0 False -9223372036854775809 0 0
a31 1 False -9223372036854775808 0 0
a31 2 False -2147483649 0 2147483647
a31 3 False -2147483648 0 2147483648
a31 4 False -32769 0 4294934527
a31 5 False -32768 0 4294934528
a31 6 False -129 0 4294967167
a31 7 False -128 0 4294967168
a31 8 False -1 0 4294967295
a31 9 True 0 0 0
a31 10 True 1 0 1
a31 11 True 127 0 127
a31 12 True 128 0 128
a31 13 True 255 0 255
a31 14 True 256 0 256
a31 15 True 32767 0 32767
a31 16 True 32768 0 32768
a31 17 True 65535 0 65535
a31 18 True 65536 0 65536
a31 19 True 2147483647 0 2147483647
a31 20 True 2147483648 0 2147483648
a31 21 True 4294967295 0 4294967295
a31 22 False 4294967296 0 0
a31 23 False 9223372036854775807 0 4294967295
a31 24 False 9223372036854775808 0 4294967295
a31 25 False 18446744073709551615 0 4294967295
a31 26 False 18446744073709551616 0 4294967295
a32 0 False -9223372036854775809 0 9223372036854775808
a32 1 False -9223372036854775808 0 9223372036854775808
a32 2 False -2147483649 0 18446744071562067967
a32 3 False -2147483648 0 18446744071562067968
a32 4 False -32769 0 18446744073709518847
a32 5 False -32768 0 18446744073709518848
a32 6 False -129 0 18446744073709551487
a32 7 False -128 0 18446744073709551488
a32 8 False -1 0 18446744073709551615
a32 9 True 0 0 0
a32 10 True 1 0 1
a32 11 True 127 0 127
a32 12 True 128 0 128
a32 13 True 255 0 255
a32 14 True 256 0 256
a32 15 True 32767 0 32767
a32 16 True 32768 0 32768
a32 17 True 65535 0 65535
a32 18 True 65536 0 65536
a32 19 True 2147483647 0 2147483647
a32 20 True 2147483648 0 2147483648
a32 21 True 4294967295 0 4294967295
a32 22 True 4294967296 0 4294967296
a32 23 True 9223372036854775807 0 9223372036854775807
a32 24 False 9223372036854775808 0 9223372036854775807
a32 25 False 18446744073709551615 0 9223372036854775807
a32 26 False 18446744073709551616 0 9223372036854775807
}}

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

runTest {test tkt-c010fa6584-1.2 {UInt32 parameter} -setup {
  setupDb [set fileName tkt-c010fa6584-1.2.db]
} -body {
  sql execute $db "CREATE TABLE t1(x UINT32);"

  sql execute $db "INSERT INTO t1 (x) VALUES(?);" \
      [list param1 UInt32 0xFFFFFFFF]

  sql execute -execute scalar $db "SELECT x FROM t1;"
} -cleanup {
  cleanupDb $fileName

  unset -nocomplain db fileName
} -constraints \
{eagle monoBug28 command.sql compile.DATA SQLite System.Data.SQLite} -result \
{4294967295}}

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

runTest {test tkt-c010fa6584-1.3 {UInt32 parameter (Int64)} -setup {
  setupDb [set fileName tkt-c010fa6584-1.3.db]
} -body {
  sql execute $db "CREATE TABLE t1(x INTEGER);"

  sql execute $db "INSERT INTO t1 (x) VALUES(?);" \
      [list param1 UInt32 0xFFFFFFFF]

  sql execute -execute scalar $db "SELECT x FROM t1;"
} -cleanup {
  cleanupDb $fileName

  unset -nocomplain db fileName
} -constraints \
{eagle monoBug28 command.sql compile.DATA SQLite System.Data.SQLite} -result \
{-1}}

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

runTest {test tkt-c010fa6584-1.4 {UInt32 parameter (Int64) w/flag} -setup {
  setupDb [set fileName tkt-c010fa6584-1.4.db] "" "" "" BindUInt32AsInt64
} -body {
  sql execute $db "CREATE TABLE t1(x INTEGER);"

  sql execute $db "INSERT INTO t1 (x) VALUES(?);" \
      [list param1 UInt32 0xFFFFFFFF]

  sql execute -execute scalar $db "SELECT x FROM t1;"
} -cleanup {
  cleanupDb $fileName

  unset -nocomplain db fileName
} -constraints \
{eagle monoBug28 command.sql compile.DATA SQLite System.Data.SQLite} -result \
{4294967295}}

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

runSQLiteTestEpilogue
runTestEpilogue