diff options
Diffstat (limited to 'src/backend/utils/adt/xid8funcs.c')
-rw-r--r-- | src/backend/utils/adt/xid8funcs.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/backend/utils/adt/xid8funcs.c b/src/backend/utils/adt/xid8funcs.c index d8e40b3b969..2093776809f 100644 --- a/src/backend/utils/adt/xid8funcs.c +++ b/src/backend/utils/adt/xid8funcs.c @@ -285,7 +285,7 @@ buf_finalize(StringInfo buf) * parse snapshot from cstring */ static pg_snapshot * -parse_snapshot(const char *str) +parse_snapshot(const char *str, Node *escontext) { FullTransactionId xmin; FullTransactionId xmax; @@ -341,11 +341,10 @@ parse_snapshot(const char *str) return buf_finalize(buf); bad_format: - ereport(ERROR, + ereturn(escontext, NULL, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("invalid input syntax for type %s: \"%s\"", "pg_snapshot", str_start))); - return NULL; /* keep compiler quiet */ } /* @@ -447,7 +446,7 @@ pg_snapshot_in(PG_FUNCTION_ARGS) char *str = PG_GETARG_CSTRING(0); pg_snapshot *snap; - snap = parse_snapshot(str); + snap = parse_snapshot(str, fcinfo->context); PG_RETURN_POINTER(snap); } |