Re: BUG #17477: A crash bug in transformValuesClause()

From: "Jonathan S(dot) Katz" <jkatz(at)postgresql(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>
Cc: krking(at)zju(dot)edu(dot)cn, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #17477: A crash bug in transformValuesClause()
Date: 2022-05-09 17:20:23
Message-ID: 6f7f0d34-0f58-41a9-98b5-bf86e1960165@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 5/9/22 11:25 AM, Tom Lane wrote:
> Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com> writes:
>> It seems like transformValuesClause() cannot handle properly the value
>> clause having a relation that has an empty column. Should we raise an
>> error in this case?
>
> Given that we try to support zero-column relations, I'm not sure why
> we'd insist on disallowing zero-column VALUES. I think the problem
> is that the code in transformValuesClause needs to be tweaked to
> make that work. The attached quick hack seems to do the trick.

Agree with the reasoning.

Confirmed reproducing the crash and that this fixes it. I did a short
double-take on the error message:

ERROR: subquery must return only one column

but it is accurate, given this is what the subquery must do, and zero !=
one.

I don't see anything glaring in the code (though I'm not that familiar
with this part of the codebase), but given this seems like an extreme
edge case and protects against a crash, I'm satisfied with this.

Jonathan

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2022-05-09 17:42:02 Re: BUG #17477: A crash bug in transformValuesClause()
Previous Message Tom Lane 2022-05-09 16:42:44 Re: Query generates infinite loop