@ -44,7 +44,12 @@ lo_manage(PG_FUNCTION_ARGS)
HeapTuple trigtuple ; /* The original value of tuple */
HeapTuple trigtuple ; /* The original value of tuple */
if ( ! CALLED_AS_TRIGGER ( fcinfo ) ) /* internal error */
if ( ! CALLED_AS_TRIGGER ( fcinfo ) ) /* internal error */
elog ( ERROR , " not fired by trigger manager " ) ;
elog ( ERROR , " %s: not fired by trigger manager " ,
trigdata - > tg_trigger - > tgname ) ;
if ( ! TRIGGER_FIRED_FOR_ROW ( trigdata - > tg_event ) ) /* internal error */
elog ( ERROR , " %s: must be fired for row " ,
trigdata - > tg_trigger - > tgname ) ;
/*
/*
* Fetch some values from trigdata
* Fetch some values from trigdata
@ -54,6 +59,10 @@ lo_manage(PG_FUNCTION_ARGS)
tupdesc = trigdata - > tg_relation - > rd_att ;
tupdesc = trigdata - > tg_relation - > rd_att ;
args = trigdata - > tg_trigger - > tgargs ;
args = trigdata - > tg_trigger - > tgargs ;
if ( args = = NULL ) /* internal error */
elog ( ERROR , " %s: no column name provided in the trigger definition " ,
trigdata - > tg_trigger - > tgname ) ;
/* tuple to return to Executor */
/* tuple to return to Executor */
if ( TRIGGER_FIRED_BY_UPDATE ( trigdata - > tg_event ) )
if ( TRIGGER_FIRED_BY_UPDATE ( trigdata - > tg_event ) )
rettuple = newtuple ;
rettuple = newtuple ;
@ -67,7 +76,8 @@ lo_manage(PG_FUNCTION_ARGS)
attnum = SPI_fnumber ( tupdesc , args [ 0 ] ) ;
attnum = SPI_fnumber ( tupdesc , args [ 0 ] ) ;
if ( attnum < = 0 )
if ( attnum < = 0 )
elog ( ERROR , " column \" %s \" does not exist " , args [ 0 ] ) ;
elog ( ERROR , " %s: column \" %s \" does not exist " ,
trigdata - > tg_trigger - > tgname , args [ 0 ] ) ;
/*
/*
* Handle updates
* Handle updates