From d807c7ef3f1a04026c3c4b5b24954f7fc84d0e46 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Sun, 7 Jan 2007 22:49:56 +0000 Subject: Some fine-tuning of xmlpi in corner cases: - correct error codes - do syntax checks in correct order - strip leading spaces of argument --- src/backend/executor/execQual.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/backend/executor') diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c index d38c9fb1a37..c23680f11be 100644 --- a/src/backend/executor/execQual.c +++ b/src/backend/executor/execQual.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/execQual.c,v 1.203 2007/01/05 22:19:27 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/executor/execQual.c,v 1.204 2007/01/07 22:49:55 petere Exp $ * *------------------------------------------------------------------------- */ @@ -2803,15 +2803,17 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext, e = (ExprState *) linitial(xmlExpr->args); value = ExecEvalExpr(e, econtext, &isnull, NULL); if (isnull) - return (Datum) 0; - arg = DatumGetTextP(value); + arg = NULL; + else + arg = DatumGetTextP(value); } else + { arg = NULL; + isnull = false; + } - *isNull = false; - - return PointerGetDatum(xmlpi(xexpr->name, arg)); + return PointerGetDatum(xmlpi(xexpr->name, arg, isnull, isNull)); } break; -- cgit v1.2.3