#this test was abandonded, because no flags are used as for now test tdbc::postgres-1.4 {create a connection, bad flag} {*}{ -body { tdbc::postgres::connection create db -interactive rubbish } -returnCodes error -result {expected boolean value but got "rubbish"} } #"-timeout" option cannot be changed dynamically test tdbc::postgres-19.15 {$connection configure - -timeout} {*}{ -body { set x [::db configure -timeout] list [::db configure -timeout 5000] [::db configure -timeout] \ [::db configure -timeout $x] } -result {{} 5000 {}} } ############### FUTURE tests: test tdbc::postgres-20.2 {direct value transfers} {*}{ -setup { set bigtext [string repeat a 200] set bigbinary [string repeat \xc2\xa1 100] catch {db allrows {DROP TABLE typetest}} db allrows { CREATE TABLE typetest ( xtiny1 TINYINT, xsmall1 SMALLINT, xint1 INTEGER, xfloat1 FLOAT, xdouble1 DOUBLE, xtimestamp1 TIMESTAMP, xbig1 BIGINT, xmed1 MEDIUMINT, xdate1 DATE, xtime1 TIME, xdatetime1 DATETIME, xyear1 YEAR, xbit1 BIT(14), xdec1 DECIMAL(10), xtinyt1 TINYTEXT, xtinyb1 TINYBLOB, xmedt1 MEDIUMTEXT, xmedb1 MEDIUMBLOB, xlongt1 LONGTEXT, xlongb1 LONGBLOB, xtext1 TEXT, xblob1 BLOB, xvarb1 VARBINARY(256), xvarc1 VARCHAR(256), xbin1 BINARY(20), xchar1 CHAR(20) ) } set stmt [db prepare { INSERT INTO typetest( xtiny1, xsmall1, xint1, xfloat1, xdouble1, xtimestamp1, xbig1, xmed1, xdate1, xtime1, xdatetime1, xyear1, xbit1, xdec1, xtinyt1, xtinyb1, xmedt1, xmedb1, xlongt1, xlongb1, xtext1, xblob1, xvarb1, xvarc1, xbin1, xchar1 ) values ( :xtiny1, :xsmall1, :xint1, :xfloat1, :xdouble1, :xtimestamp1, :xbig1, :xmed1, :xdate1, :xtime1, :xdatetime1, :xyear1, :xbit1, :xdec1, :xtinyt1, :xtinyb1, :xmedt1, :xmedb1, :xlongt1, :xlongb1, :xtext1, :xblob1, :xvarb1, :xvarc1, :xbin1, :xchar1 ) }] $stmt paramtype xtiny1 tinyint $stmt paramtype xsmall1 smallint $stmt paramtype xint1 integer $stmt paramtype xfloat1 float $stmt paramtype xdouble1 double $stmt paramtype xtimestamp1 timestamp $stmt paramtype xbig1 bigint $stmt paramtype xmed1 mediumint $stmt paramtype xdate1 date $stmt paramtype xtime1 time $stmt paramtype xdatetime1 datetime $stmt paramtype xyear1 year $stmt paramtype xbit1 bit 14 $stmt paramtype xdec1 decimal 10 0 $stmt paramtype xtinyt1 tinytext $stmt paramtype xtinyb1 tinyblob $stmt paramtype xmedt1 mediumtext $stmt paramtype xmedb1 mediumblob $stmt paramtype xlongt1 longtext $stmt paramtype xlongb1 longblob $stmt paramtype xtext1 text $stmt paramtype xblob1 blob $stmt paramtype xvarb1 varbinary $stmt paramtype xvarc1 varchar $stmt paramtype xbin1 binary 20 $stmt paramtype xchar1 char 20 } -body { set trouble {} set xtiny1 0x14 set xsmall1 0x3039 set xint1 0xbc614e set xfloat1 1.125 set xdouble1 1.125 set xtimestamp1 {2001-02-03 04:05:06} set xbig1 0xbc614e set xmed1 0x3039 set xdate1 2001-02-03 set xtime1 04:05:06 set xdatetime1 {2001-02-03 04:05:06} set xyear1 2001 set xbit1 0b11010001010110 set xdec1 0xbc614e set xtinyt1 $bigtext set xtinyb1 $bigbinary set xmedt1 $bigtext set xmedb1 $bigbinary set xlongt1 $bigtext set xlongb1 $bigbinary set xtext1 $bigtext set xblob1 $bigbinary set xvarb1 $bigbinary set xvarc1 $bigtext set xbin1 [string repeat \xc2\xa1 10] set xchar1 [string repeat a 20] $stmt allrows db foreach row {select * from typetest} { foreach v { xtiny1 xsmall1 xint1 xfloat1 xdouble1 xtimestamp1 xbig1 xmed1 xdate1 xtime1 xdatetime1 xyear1 xbit1 xdec1 xtinyt1 xtinyb1 xmedt1 xmedb1 xlongt1 xlongb1 xtext1 xblob1 xvarb1 xvarc1 xbin1 xchar1 } { if {![dict exists $row $v]} { append trouble $v " did not appear in result set\n" } elseif {[set $v] != [dict get $row $v]} { append trouble [list $v is [dict get $row $v] \ should be [set $v]] \n } } } set trouble } -result {} -cleanup { $stmt close db allrows { DROP TABLE typetest } } } test tdbc::postgres-21.2 {transfers of binary data} {*}{ -setup { catch { db allrows {DROP TABLE bintest} } db allrows { CREATE TABLE bintest ( xint1 INTEGER PRIMARY KEY, xbin VARBINARY(256) ) } set stmt1 [db prepare { INSERT INTO bintest (xint1, xbin) VALUES(:i1, :b1) }] $stmt1 paramtype i1 integer $stmt1 paramtype b1 varbinary 256 set stmt2 [db prepare { SELECT xbin FROM bintest WHERE xint1 = :i1 }] $stmt2 paramtype i1 integer } -body { set listdata {} for {set i 0} {$i < 256} {incr i} { lappend listdata $i } set b1 [binary format c* $listdata] set i1 123 $stmt1 allrows $stmt2 foreach -as lists row { set b2 [lindex $row 0] } list [string length $b2] [string compare $b1 $b2] } -result {256 0} -cleanup { $stmt1 close $stmt2 close db allrows {DROP TABLE bintest} } }