Temporary patch to try to debug why event trigger patch broke Windows.

Apologies for the ugliness.
This commit is contained in:
Robert Haas 2012-07-20 16:20:15 -04:00
parent ae55d9fbe3
commit 0a248208a0
1 changed files with 11 additions and 4 deletions

View File

@ -285,6 +285,7 @@ do_compile(FunctionCallInfo fcinfo,
int *in_arg_varnos = NULL;
PLpgSQL_variable **out_arg_variables;
MemoryContext func_cxt;
PLpgSQL_trigtype fn_is_trigger;
/*
* Setup the scanner input and error info. We assume that this function
@ -352,11 +353,12 @@ do_compile(FunctionCallInfo fcinfo,
function->resolve_option = plpgsql_variable_conflict;
if (is_dml_trigger)
function->fn_is_trigger = PLPGSQL_DML_TRIGGER;
fn_is_trigger = PLPGSQL_DML_TRIGGER;
else if (is_event_trigger)
function->fn_is_trigger = PLPGSQL_EVENT_TRIGGER;
fn_is_trigger = PLPGSQL_EVENT_TRIGGER;
else
function->fn_is_trigger = PLPGSQL_NOT_TRIGGER;
fn_is_trigger = PLPGSQL_NOT_TRIGGER;
function->fn_is_trigger = fn_is_trigger;
/*
* Initialize the compiler, particularly the namespace stack. The
@ -374,6 +376,7 @@ do_compile(FunctionCallInfo fcinfo,
sizeof(PLpgSQL_datum *) * datums_alloc);
datums_last = 0;
Assert(fn_is_trigger == function->fn_is_trigger);
switch (function->fn_is_trigger)
{
case PLPGSQL_NOT_TRIGGER:
@ -537,9 +540,13 @@ do_compile(FunctionCallInfo fcinfo,
rettypeid == RECORDOID)
/* okay */ ;
else if (rettypeid == TRIGGEROID || rettypeid == EVTTRIGGEROID)
{
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("trigger functions can only be called as triggers")));
errmsg("trigger functions can only be called as triggers"),
errhint("CALLED_AS_TRIGGER=%d CALLED_AS_EVENT_TRIGGER=%d",
CALLED_AS_TRIGGER(fcinfo), CALLED_AS_EVENT_TRIGGER(fcinfo))));
}
else
ereport(ERROR,
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),