Throw error and ErrorContext question.
От | Gevik Babakhani |
---|---|
Тема | Throw error and ErrorContext question. |
Дата | |
Msg-id | 001101c82191$1a916590$0a01a8c0@gevmus обсуждение исходный текст |
Ответы |
Re: Throw error and ErrorContext question.
|
Список | pgsql-hackers |
Hi, Regarding the function parameter ref TODO: I am trying to catch and copy an error to be re-thrown later. I have the following questions: 1. Is the catch part in the following safe? 2. How do I re-throw the copied error when I am not in ErrorContext anymore? I cannot use ReThrowError because of Assert. 3. If I have to use something like: ereport(ERROR,mysaved_error->message ... mysaved_error->detail ...... ); then how do I FreeErrorData(mysaved_error) after calling the ereport above? First: .... MemoryContext parseMemCtx = CurrentMemoryContext; .... Then: /* Try to identify as a once-qualified column */ PG_TRY(); {node = qualifiedNameToVar(pstate, NULL, name1, name2, true, cref->location);/* status set to 0 or 1 */qualified_status= (node != NULL); } PG_CATCH(); {/* copy this error for later use */errorMemCtx = CurrentMemoryContext;MemoryContextSwitchTo(parseMemCtx);qualifiedErrData= CopyErrorData();FlushErrorState();MemoryContextSwitchTo(errorMemCtx); /* status is set to error */qualified_status = 2; } PG_END_TRY(); ------------------------------------------------ Gevik Babakhani PostgreSQL NL http://www.postgresql.nl TrueSoftware BV http://www.truesoftware.nl ------------------------------------------------
В списке pgsql-hackers по дате отправления: