aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_clause.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/parser/parse_clause.c')
-rw-r--r--src/backend/parser/parse_clause.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c
index cfd4b91897f..d6b93f55dfd 100644
--- a/src/backend/parser/parse_clause.c
+++ b/src/backend/parser/parse_clause.c
@@ -779,7 +779,7 @@ transformRangeTableFunc(ParseState *pstate, RangeTableFunc *rtf)
/* undef ordinality column number */
tf->ordinalitycol = -1;
-
+ /* Process column specs */
names = palloc(sizeof(char *) * list_length(rtf->columns));
colno = 0;
@@ -900,15 +900,15 @@ transformRangeTableFunc(ParseState *pstate, RangeTableFunc *rtf)
{
foreach(lc2, ns_names)
{
- char *name = strVal(lfirst(lc2));
+ Value *ns_node = (Value *) lfirst(lc2);
- if (name == NULL)
+ if (ns_node == NULL)
continue;
- if (strcmp(name, r->name) == 0)
+ if (strcmp(strVal(ns_node), r->name) == 0)
ereport(ERROR,
(errcode(ERRCODE_SYNTAX_ERROR),
errmsg("namespace name \"%s\" is not unique",
- name),
+ r->name),
parser_errposition(pstate, r->location)));
}
}
@@ -922,8 +922,9 @@ transformRangeTableFunc(ParseState *pstate, RangeTableFunc *rtf)
default_ns_seen = true;
}
- /* Note the string may be NULL */
- ns_names = lappend(ns_names, makeString(r->name));
+ /* We represent DEFAULT by a null pointer */
+ ns_names = lappend(ns_names,
+ r->name ? makeString(r->name) : NULL);
}
tf->ns_uris = ns_uris;