@@ -457,37 +457,37 @@ def testStatementAndCursorMetadata(self):
457457
458458 ps = self .db .prepare ("SELECT $1::text AS my_text_column" )
459459 self .failUnlessEqual (tuple (ps .column_names ), ('my_text_column' ,))
460- self .failUnlessEqual (tuple (ps .sql_column_types ), ('text' ,))
461- self .failUnlessEqual (tuple (ps .sql_parameter_types ), ('text' ,))
460+ self .failUnlessEqual (tuple (ps .sql_column_types ), ('pg_catalog. text' ,))
461+ self .failUnlessEqual (tuple (ps .sql_parameter_types ), ('pg_catalog. text' ,))
462462 self .failUnlessEqual (tuple (ps .pg_parameter_types ), (pg_types .TEXTOID ,))
463463 self .failUnlessEqual (tuple (ps .column_types ), (str ,))
464464 self .failUnlessEqual (tuple (ps .parameter_types ), (str ,))
465465 c = ps .declare ('textdata' )
466466 self .failUnlessEqual (tuple (c .column_names ), ('my_text_column' ,))
467- self .failUnlessEqual (tuple (c .sql_column_types ), ('text' ,))
467+ self .failUnlessEqual (tuple (c .sql_column_types ), ('pg_catalog. text' ,))
468468 self .failUnlessEqual (tuple (c .pg_column_types ), (pg_types .TEXTOID ,))
469469 self .failUnlessEqual (tuple (c .column_types ), (str ,))
470470
471471 ps = self .db .prepare ("SELECT $1::text AS my_column1, $2::varchar AS my_column2" )
472472 self .failUnlessEqual (tuple (ps .column_names ), ('my_column1' ,'my_column2' ))
473- self .failUnlessEqual (tuple (ps .sql_column_types ), ('text' , 'CHARACTER VARYING' ))
474- self .failUnlessEqual (tuple (ps .sql_parameter_types ), ('text' , 'CHARACTER VARYING' ))
473+ self .failUnlessEqual (tuple (ps .sql_column_types ), ('pg_catalog. text' , 'CHARACTER VARYING' ))
474+ self .failUnlessEqual (tuple (ps .sql_parameter_types ), ('pg_catalog. text' , 'CHARACTER VARYING' ))
475475 self .failUnlessEqual (tuple (ps .pg_parameter_types ), (pg_types .TEXTOID , pg_types .VARCHAROID ))
476476 self .failUnlessEqual (tuple (ps .pg_column_types ), (pg_types .TEXTOID , pg_types .VARCHAROID ))
477477 self .failUnlessEqual (tuple (ps .parameter_types ), (str ,str ))
478478 self .failUnlessEqual (tuple (ps .column_types ), (str ,str ))
479479 c = ps .declare ('textdata' , 'varchardata' )
480480 self .failUnlessEqual (tuple (c .column_names ), ('my_column1' ,'my_column2' ))
481- self .failUnlessEqual (tuple (c .sql_column_types ), ('text' , 'CHARACTER VARYING' ))
481+ self .failUnlessEqual (tuple (c .sql_column_types ), ('pg_catalog. text' , 'CHARACTER VARYING' ))
482482 self .failUnlessEqual (tuple (c .pg_column_types ), (pg_types .TEXTOID , pg_types .VARCHAROID ))
483483 self .failUnlessEqual (tuple (c .column_types ), (str ,str ))
484484
485485 self .db .execute ("CREATE TYPE public.myudt AS (i int)" )
486486 myudt_oid = self .db .prepare ("select oid from pg_type WHERE typname='myudt'" ).first ()
487487 ps = self .db .prepare ("SELECT $1::text AS my_column1, $2::varchar AS my_column2, $3::public.myudt AS my_column3" )
488488 self .failUnlessEqual (tuple (ps .column_names ), ('my_column1' ,'my_column2' , 'my_column3' ))
489- self .failUnlessEqual (tuple (ps .sql_column_types ), ('text' , 'CHARACTER VARYING' , 'public.myudt' ))
490- self .failUnlessEqual (tuple (ps .sql_parameter_types ), ('text' , 'CHARACTER VARYING' , 'public.myudt' ))
489+ self .failUnlessEqual (tuple (ps .sql_column_types ), ('pg_catalog. text' , 'CHARACTER VARYING' , 'public.myudt' ))
490+ self .failUnlessEqual (tuple (ps .sql_parameter_types ), ('pg_catalog. text' , 'CHARACTER VARYING' , 'public.myudt' ))
491491 self .failUnlessEqual (tuple (ps .pg_column_types ), (
492492 pg_types .TEXTOID , pg_types .VARCHAROID , myudt_oid )
493493 )
@@ -498,7 +498,7 @@ def testStatementAndCursorMetadata(self):
498498 self .failUnlessEqual (tuple (ps .column_types ), (str ,str ,tuple ))
499499 c = ps .declare ('textdata' , 'varchardata' , (123 ,))
500500 self .failUnlessEqual (tuple (c .column_names ), ('my_column1' ,'my_column2' , 'my_column3' ))
501- self .failUnlessEqual (tuple (c .sql_column_types ), ('text' , 'CHARACTER VARYING' , 'public.myudt' ))
501+ self .failUnlessEqual (tuple (c .sql_column_types ), ('pg_catalog. text' , 'CHARACTER VARYING' , 'public.myudt' ))
502502 self .failUnlessEqual (tuple (c .pg_column_types ), (
503503 pg_types .TEXTOID , pg_types .VARCHAROID , myudt_oid
504504 ))
@@ -646,8 +646,22 @@ def testProcExecution(self):
646646 "CREATE OR REPLACE FUNCTION ifoo(int) RETURNS int LANGUAGE SQL AS 'select $1'"
647647 )
648648 ifoo = self .db .proc ('ifoo(int)' )
649- self .failUnless (ifoo (1 ) == 1 )
650- self .failUnless (ifoo (None ) is None )
649+ self .failUnlessEqual (ifoo (1 ), 1 )
650+ self .failUnlessEqual (ifoo (None ), None )
651+ self .db .execute (
652+ "CREATE OR REPLACE FUNCTION ifoo(varchar) RETURNS varchar LANGUAGE SQL AS 'select $1'"
653+ )
654+ ifoo = self .db .proc ('ifoo(varchar)' )
655+ self .failUnlessEqual (ifoo ('1' ), '1' )
656+ self .failUnlessEqual (ifoo (None ), None )
657+ self .db .execute (
658+ "CREATE OR REPLACE FUNCTION ifoo(varchar,int) RETURNS varchar LANGUAGE SQL AS 'select ($1::int + $2)::varchar'"
659+ )
660+ ifoo = self .db .proc ('ifoo(varchar,int)' )
661+ self .failUnlessEqual (ifoo ('1' ,1 ), '2' )
662+ self .failUnlessEqual (ifoo (None ,1 ), None )
663+ self .failUnlessEqual (ifoo ('1' ,None ), None )
664+ self .failUnlessEqual (ifoo ('2' ,2 ), '4' )
651665
652666 def testProcExecutionInXact (self ):
653667 with self .db .xact ():
0 commit comments