> Bruce Momjian wrote:
> >> I think this is a bug in 6.4:
> >>
> >> bray=> select rcname, rcsrc from pg_relcheck where rcrelid =
> >> '115404'::oid and rcrelid in (select min(rcrelid) from pg_relcheck
> >> group by rcname); ERROR: parser: Subselect has too many or too
> >> few fields.
> >>
> >> The subselect only produces one column; so I think that the
> >> error message is wrong.
> >
> >What is the GROUP BY doing?
>
> This relates to the bug in pg_dump which messes up inherited constraints.
>
> The object is to find which is the table in an inheritance hierarchy for
> which the check constraint is first defined, which must inevitably be the
> one with the lowest numbered oid. The GROUP BY operates with the aggregate
> to return the low-numbered oid for each separate rcname.
Maybe I should be clearer. You are grouping by a column that is not in
the target list. If you try the subquery on its own, it should fail
with a better error message.
-- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026