aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor')
-rw-r--r--src/backend/executor/nodeTableFuncscan.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/executor/nodeTableFuncscan.c b/src/backend/executor/nodeTableFuncscan.c
index 7b749f6e927..5bbbc20b1cc 100644
--- a/src/backend/executor/nodeTableFuncscan.c
+++ b/src/backend/executor/nodeTableFuncscan.c
@@ -370,8 +370,9 @@ tfuncInitialize(TableFuncScanState *tstate, ExprContext *econtext, Datum doc)
forboth(lc1, tstate->ns_uris, lc2, tstate->ns_names)
{
ExprState *expr = (ExprState *) lfirst(lc1);
- char *ns_name = strVal(lfirst(lc2));
+ Value *ns_node = (Value *) lfirst(lc2);
char *ns_uri;
+ char *ns_name;
value = ExecEvalExpr((ExprState *) expr, econtext, &isnull);
if (isnull)
@@ -380,6 +381,9 @@ tfuncInitialize(TableFuncScanState *tstate, ExprContext *econtext, Datum doc)
errmsg("namespace URI must not be null")));
ns_uri = TextDatumGetCString(value);
+ /* DEFAULT is passed down to SetNamespace as NULL */
+ ns_name = ns_node ? strVal(ns_node) : NULL;
+
routine->SetNamespace(tstate, ns_name, ns_uri);
}