From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Rafał Rzepecki <divided(dot)mind(at)gmail(dot)com> |
Cc: | pgsql-bugs(at)postgresql(dot)org, Amit Kapila <amit(dot)kapila(at)huawei(dot)com> |
Subject: | Re: BUG #8198: ROW() literals not supported in an IN clause |
Date: | 2013-06-09 22:44:08 |
Message-ID: | 15015.1370817848@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
=?UTF-8?Q?Rafa=C5=82_Rzepecki?= <divided(dot)mind(at)gmail(dot)com> writes:
> I'm pretty sure the original intent was to afford some extra checks so
> that conditions such as "ROW(1, 2) IN ((ROW(3, 4), ROW(5, 6, 7))"
> would get rejected at parsing time (CCing the original author; please
> confirm).
No; the reason it was like that was that when that code was written,
make_row_comparison_op was the only way to compare two row values at
all. We didn't have record_eq and friends; nor did we have arrays
of composites.
> Since the restriction seems a rather arbitrary (at least I fail to see
> any reason for it), it can be removed altogether (patch 0002, not
> tested as well):
This is reasonable as far as it goes, but I think it doesn't go far
enough --- there's really no reason anymore to reject RowExprs as
components of ScalarArrayOpExpr either. I've extended this patch
some and committed it. Thanks for the report!
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Gunnlaugur Thor Briem | 2013-06-10 13:28:32 | pg_dump is O(N) in DB table count N even if dumping only one table |
Previous Message | matt7416 | 2013-06-09 18:30:49 | BUG #8219: Windows installer fails when username contains spaces |