Re: empty column name in error message

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Amit Langote <amitlangote09@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2019-12-17T16:21:38Z
Lists: pgsql-hackers
Amit Langote <amitlangote09@gmail.com> writes:
> I wonder if it's worthwhile to fix the following not-so-friendly error message:

> create index on foo ((row(a)));
> ERROR:  column "" has pseudo-type record

Ugh.  That used to work more nicely:

regression=# create index fooi on foo ((row(a)));
ERROR:  column "pg_expression_1" has pseudo-type record

But that was back in 8.4 :-( ... 9.0 and up behave as you show.
I'm guessing we broke it when we rearranged the rules for naming
index expression columns.

> For example, the attached patch makes it this:

> create index on foo ((row(a)));
> ERROR:  column "row" has pseudo-type record

Haven't read the patch in any detail yet, but that seems like
an improvement.  And I guess we need a test case, or we'll
break it again :-(

			regards, tom lane



Commits

  1. Fix error reporting for index expressions of prohibited types.