@ -33,7 +33,7 @@
* ENHANCEMENTS , OR MODIFICATIONS .
* ENHANCEMENTS , OR MODIFICATIONS .
*
*
* IDENTIFICATION
* IDENTIFICATION
* $ PostgreSQL : pgsql / src / pl / plperl / plperl . c , v 1.94 .2 .14 2009 / 12 / 29 17 : 41 : 35 heikki Exp $
* $ PostgreSQL : pgsql / src / pl / plperl / plperl . c , v 1.94 .2 .15 2010 / 03 / 09 22 : 35 : 16 tgl Exp $
*
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@ -653,7 +653,7 @@ plperl_modify_tuple(HV *hvTD, TriggerData *tdata, HeapTuple otup)
ereport ( ERROR ,
ereport ( ERROR ,
( errcode ( ERRCODE_UNDEFINED_COLUMN ) ,
( errcode ( ERRCODE_UNDEFINED_COLUMN ) ,
errmsg ( " $_TD->{new} does not exist " ) ) ) ;
errmsg ( " $_TD->{new} does not exist " ) ) ) ;
if ( ! SvOK ( * svp ) | | SvTYPE ( * svp ) ! = SVt_RV | | SvTYPE ( SvRV ( * svp ) ) ! = SVt_PVHV )
if ( ! SvOK ( * svp ) | | ! SvROK ( * svp ) | | SvTYPE ( SvRV ( * svp ) ) ! = SVt_PVHV )
ereport ( ERROR ,
ereport ( ERROR ,
( errcode ( ERRCODE_DATATYPE_MISMATCH ) ,
( errcode ( ERRCODE_DATATYPE_MISMATCH ) ,
errmsg ( " $_TD->{new} is not a hash reference " ) ) ) ;
errmsg ( " $_TD->{new} is not a hash reference " ) ) ) ;
@ -1107,7 +1107,7 @@ plperl_func_handler(PG_FUNCTION_ARGS)
* value is an error , except undef which means return an empty set .
* value is an error , except undef which means return an empty set .
*/
*/
if ( SvOK ( perlret ) & &
if ( SvOK ( perlret ) & &
SvTYPE ( perlret ) = = SVt_RV & &
SvROK ( perlret ) & &
SvTYPE ( SvRV ( perlret ) ) = = SVt_PVAV )
SvTYPE ( SvRV ( perlret ) ) = = SVt_PVAV )
{
{
int i = 0 ;
int i = 0 ;
@ -1151,7 +1151,7 @@ plperl_func_handler(PG_FUNCTION_ARGS)
AttInMetadata * attinmeta ;
AttInMetadata * attinmeta ;
HeapTuple tup ;
HeapTuple tup ;
if ( ! SvOK ( perlret ) | | SvTYPE ( perlret ) ! = SVt_RV | |
if ( ! SvOK ( perlret ) | | ! SvROK ( perlret ) | |
SvTYPE ( SvRV ( perlret ) ) ! = SVt_PVHV )
SvTYPE ( SvRV ( perlret ) ) ! = SVt_PVHV )
{
{
ereport ( ERROR ,
ereport ( ERROR ,
@ -1734,7 +1734,7 @@ plperl_return_next(SV *sv)
errmsg ( " cannot use return_next in a non-SETOF function " ) ) ) ;
errmsg ( " cannot use return_next in a non-SETOF function " ) ) ) ;
if ( prodesc - > fn_retistuple & &
if ( prodesc - > fn_retistuple & &
! ( SvOK ( sv ) & & SvTYPE ( sv ) = = SVt_RV & & SvTYPE ( SvRV ( sv ) ) = = SVt_PVHV ) )
! ( SvOK ( sv ) & & SvROK ( sv ) & & SvTYPE ( SvRV ( sv ) ) = = SVt_PVHV ) )
ereport ( ERROR ,
ereport ( ERROR ,
( errcode ( ERRCODE_DATATYPE_MISMATCH ) ,
( errcode ( ERRCODE_DATATYPE_MISMATCH ) ,
errmsg ( " setof-composite-returning Perl function "
errmsg ( " setof-composite-returning Perl function "