Commit a62a359b authored by Tom Lane's avatar Tom Lane

Fix Assert failure in ExpandColumnRefStar --- what I thought was a can't

happen condition can happen given incorrect input.  The real problem is that
gram.y should try harder to distinguish * from "*" --- the latter is a legal
column name per spec, and someday we ought to treat it that way.  However
fixing that is too invasive for a back-patch, and it's too late for the 8.3
cycle too.  So just reduce the Assert to a plain elog for now.  Per report
from NikhilS.
parent 03a91e0d
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.155 2007/09/06 17:31:58 tgl Exp $ * $PostgreSQL: pgsql/src/backend/parser/parse_target.c,v 1.156 2007/09/27 17:42:03 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -826,9 +826,12 @@ ExpandColumnRefStar(ParseState *pstate, ColumnRef *cref, ...@@ -826,9 +826,12 @@ ExpandColumnRefStar(ParseState *pstate, ColumnRef *cref,
* (e.g., SELECT * FROM emp, dept) * (e.g., SELECT * FROM emp, dept)
* *
* Since the grammar only accepts bare '*' at top level of SELECT, we * Since the grammar only accepts bare '*' at top level of SELECT, we
* need not handle the targetlist==false case here. * need not handle the targetlist==false case here. However, we must
* test for it because the grammar currently fails to distinguish
* a quoted name "*" from a real asterisk.
*/ */
Assert(targetlist); if (!targetlist)
elog(ERROR, "invalid use of *");
return ExpandAllTables(pstate); return ExpandAllTables(pstate);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment