Repair plpgsql_validator breakage.

Commit 3a0e4d36ebd7f477822d5bae41ba121a40d22ccc arranged to
reference stack-allocated variables after they were out of scope.
That's no good, so let's arrange to not do that after all.
This commit is contained in:
Robert Haas 2012-07-20 21:25:26 -04:00
parent a1e5705c9f
commit 0635c0b524

View File

@ -280,6 +280,8 @@ plpgsql_validator(PG_FUNCTION_ARGS)
FunctionCallInfoData fake_fcinfo; FunctionCallInfoData fake_fcinfo;
FmgrInfo flinfo; FmgrInfo flinfo;
int rc; int rc;
TriggerData trigdata;
EventTriggerData etrigdata;
/* /*
* Connect to SPI manager (is this needed for compilation?) * Connect to SPI manager (is this needed for compilation?)
@ -298,17 +300,15 @@ plpgsql_validator(PG_FUNCTION_ARGS)
flinfo.fn_mcxt = CurrentMemoryContext; flinfo.fn_mcxt = CurrentMemoryContext;
if (is_dml_trigger) if (is_dml_trigger)
{ {
TriggerData trigdata;
MemSet(&trigdata, 0, sizeof(trigdata)); MemSet(&trigdata, 0, sizeof(trigdata));
trigdata.type = T_TriggerData; trigdata.type = T_TriggerData;
fake_fcinfo.context = (Node *) &trigdata; fake_fcinfo.context = (Node *) &trigdata;
} }
else if (is_event_trigger) else if (is_event_trigger)
{ {
EventTriggerData trigdata; MemSet(&etrigdata, 0, sizeof(etrigdata));
MemSet(&trigdata, 0, sizeof(trigdata)); etrigdata.type = T_EventTriggerData;
trigdata.type = T_EventTriggerData; fake_fcinfo.context = (Node *) &etrigdata;
fake_fcinfo.context = (Node *) &trigdata;
} }
/* Test-compile the function */ /* Test-compile the function */