@@ -43,6 +43,12 @@ func TestShowTransferState(t *testing.T) {
4343 require .NoError (t , err )
4444 _ , err = tenantDB .Exec ("CREATE TYPE typ AS ENUM ('foo', 'bar')" )
4545 require .NoError (t , err )
46+ _ , err = tenantDB .Exec ("CREATE TABLE tab (a INT4, b typ)" )
47+ require .NoError (t , err )
48+ _ , err = tenantDB .Exec ("INSERT INTO tab VALUES (1, 'foo')" )
49+ require .NoError (t , err )
50+ _ , err = tenantDB .Exec ("GRANT SELECT ON tab TO testuser" )
51+ require .NoError (t , err )
4652
4753 testUserConn := tenant .SQLConnForUser (t , username .TestUser , "" )
4854
@@ -90,12 +96,18 @@ func TestShowTransferState(t *testing.T) {
9096 defer func () { _ = conn .Close (ctx ) }()
9197
9298 // Add a prepared statement to make sure SHOW TRANSFER STATE handles it.
93- _ , err = conn .Prepare (ctx , "prepared_stmt" , "SELECT $1::INT4, 'foo'::typ WHERE 1 = 1" )
99+ _ , err = conn .Prepare (ctx , "prepared_stmt_const" , "SELECT $1::INT4, 'foo'::typ WHERE 1 = 1" )
100+ require .NoError (t , err )
101+ _ , err = conn .Prepare (ctx , "prepared_stmt_aost" , "SELECT a, b FROM tab AS OF SYSTEM TIME '-1us'" )
94102 require .NoError (t , err )
95103
96104 var intResult int
97105 var enumResult string
98- err = conn .QueryRow (ctx , "prepared_stmt" , 1 ).Scan (& intResult , & enumResult )
106+ err = conn .QueryRow (ctx , "prepared_stmt_const" , 1 ).Scan (& intResult , & enumResult )
107+ require .NoError (t , err )
108+ require .Equal (t , 1 , intResult )
109+ require .Equal (t , "foo" , enumResult )
110+ err = conn .QueryRow (ctx , "prepared_stmt_aost" ).Scan (& intResult , & enumResult )
99111 require .NoError (t , err )
100112 require .Equal (t , 1 , intResult )
101113 require .Equal (t , "foo" , enumResult )
@@ -171,14 +183,26 @@ func TestShowTransferState(t *testing.T) {
171183 // session.
172184 result := conn .PgConn ().ExecPrepared (
173185 ctx ,
174- "prepared_stmt " ,
186+ "prepared_stmt_const " ,
175187 [][]byte {{0 , 0 , 0 , 2 }}, // binary representation of 2
176188 []int16 {1 }, // paramFormats - 1 means binary
177- []int16 {1 }, // resultFormats - 1 means binary
189+ []int16 {1 , 1 }, // resultFormats - 1 means binary
178190 ).Read ()
191+ require .NoError (t , result .Err )
179192 require .Equal (t , [][][]byte {{
180193 {0 , 0 , 0 , 2 }, {0x66 , 0x6f , 0x6f }, // binary representation of 2, 'foo'
181194 }}, result .Rows )
195+ result = conn .PgConn ().ExecPrepared (
196+ ctx ,
197+ "prepared_stmt_aost" ,
198+ [][]byte {}, // paramValues
199+ []int16 {}, // paramFormats
200+ []int16 {1 , 1 }, // resultFormats - 1 means binary
201+ ).Read ()
202+ require .NoError (t , result .Err )
203+ require .Equal (t , [][][]byte {{
204+ {0 , 0 , 0 , 1 }, {0x66 , 0x6f , 0x6f }, // binary representation of 1, 'foo'
205+ }}, result .Rows )
182206 })
183207
184208 // Errors should be displayed as a SQL value.
0 commit comments