diff options
author | Robert Haas <rhaas@postgresql.org> | 2016-06-14 08:55:50 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2016-06-14 09:00:12 -0400 |
commit | 332fdbef20b5b5f2588447793dbcc3bb9b88eb51 (patch) | |
tree | d8a4b1e1ae233b367965e77d3f6edb4952cf187c /contrib/postgres_fdw/deparse.c | |
parent | 783cb6e48b29a34b2cefc401a72d4cc86fa6b2a6 (diff) | |
download | postgresql-332fdbef20b5b5f2588447793dbcc3bb9b88eb51.tar.gz postgresql-332fdbef20b5b5f2588447793dbcc3bb9b88eb51.zip |
postgres_fdw: Promote an Assert() to elog().
Andreas Seltenreich reports that it is possible for a PlaceHolderVar
to creep into this tlist, and I fear that even after that's fixed we
might have other, similar bugs in this area either now or in the
future. There's a lot of action-at-a-distance here, because the
validity of this assertion depends on core planner behavior; so, let's
use elog() to make sure we catch this even in non-assert builds,
rather than just crashing.
Diffstat (limited to 'contrib/postgres_fdw/deparse.c')
-rw-r--r-- | contrib/postgres_fdw/deparse.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/contrib/postgres_fdw/deparse.c b/contrib/postgres_fdw/deparse.c index 7d2512cf04d..f38da5d0dca 100644 --- a/contrib/postgres_fdw/deparse.c +++ b/contrib/postgres_fdw/deparse.c @@ -1112,8 +1112,10 @@ deparseExplicitTargetList(List *tlist, List **retrieved_attrs, /* Extract expression if TargetEntry node */ Assert(IsA(tle, TargetEntry)); var = (Var *) tle->expr; + /* We expect only Var nodes here */ - Assert(IsA(var, Var)); + if (!IsA(var, Var)) + elog(ERROR, "non-Var not expected in target list"); if (i > 0) appendStringInfoString(buf, ", "); |