aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execQual.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2007-01-14 13:11:54 +0000
committerPeter Eisentraut <peter_e@gmx.net>2007-01-14 13:11:54 +0000
commit2f8f76bcd5f175021e34bf5e23dcefc4286cb485 (patch)
tree988cbda3b12dda2b055f36d4a8596de7952b6614 /src/backend/executor/execQual.c
parent62c06186f55f7968f432bfc16ea2b6a7150698a6 (diff)
downloadpostgresql-2f8f76bcd5f175021e34bf5e23dcefc4286cb485.tar.gz
postgresql-2f8f76bcd5f175021e34bf5e23dcefc4286cb485.zip
Add support for xmlval IS DOCUMENT expression.
Diffstat (limited to 'src/backend/executor/execQual.c')
-rw-r--r--src/backend/executor/execQual.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c
index 8052f8b2d76..ca804dea210 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.206 2007/01/12 21:47:26 petere Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execQual.c,v 1.207 2007/01/14 13:11:53 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2808,6 +2808,25 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
standalone));
}
break;
+
+ case IS_DOCUMENT:
+ {
+ ExprState *e;
+
+ /* optional argument is known to be xml */
+ Assert(list_length(xmlExpr->args) == 1);
+
+ e = (ExprState *) linitial(xmlExpr->args);
+ value = ExecEvalExpr(e, econtext, &isnull, NULL);
+ if (isnull)
+ return (Datum) 0;
+ else
+ {
+ *isNull = false;
+ return BoolGetDatum(xml_is_document(DatumGetXmlP(value)));
+ }
+ }
+ break;
}
if (*isNull)