From: | David Rowley <dgrowleyml(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | vojtech(dot)benes(at)centrum(dot)cz, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #18264: Table has type text, but query expects integer.attribute 1 of type record has wrong type |
Date: | 2023-12-31 03:24:54 |
Message-ID: | CAApHDvo1mj4GH+8smoiPzftDNxOi1duXJqYd_p9cdXZeT+qxqQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On Sun, 31 Dec 2023 at 05:13, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> PG Bug reporting form <noreply(at)postgresql(dot)org> writes:
> > ERROR: attribute 1 of type record has wrong type
> > SQL status: 42804
> > Detail: Table has type text, but query expects integer.
>
> Thanks for the report! Bisecting shows it broke at
> 1349d2790bf48a4de072931c722f39337e72055e is the first bad commit
Yes, thanks for the report, Vojtěch, and for bisecting to find the
breaking commit, Tom.
It looks like the problem is in ExecEvalPreOrderedDistinctMulti(). It
overwrites the tmpcontext's slots but fails to properly restore the
originals again.
The Aggref->presorted == false version of this,
(process_ordered_aggregate_multi()) seems to use the
aggstate->tmpcontext for the same job, so I imagine I must have just
copied that, but just forgot to restore the old slots. It might be
nicer to have a dedicated ExprContext for this, but we've nowhere to
store that in the backbranches as we can't add a new field to that
struct. Maybe something like the attached is ok as a fix.
David
Attachment | Content-Type | Size |
---|---|---|
bug_18264_wip_fix.patch | text/plain | 1.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2023-12-31 06:38:30 | Re: BUG #18259: Assertion in ExtendBufferedRelLocal() fails after no-space-left condition |
Previous Message | Tom Lane | 2023-12-30 16:13:15 | Re: BUG #18264: Table has type text, but query expects integer.attribute 1 of type record has wrong type |