| From: | David Rowley <dgrowleyml(at)gmail(dot)com> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | xinwen(at)stu(dot)scu(dot)edu(dot)cn, pgsql-bugs(at)lists(dot)postgresql(dot)org |
| Subject: | Re: BUG #17826: An assert failed in /src/backend/optimizer/util/var.c |
| Date: | 2023-03-11 06:35:07 |
| Message-ID: | CAApHDvoGAu9rY4iO0R+DZVxPck_M3015WUL_34XOhi9ygxYfnA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-bugs |
On Fri, 10 Mar 2023 at 05:09, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> In other words, after qual_is_pushdown_safe has rejected a qual as being
> unsafe to push down, check_and_push_window_quals merrily does it anyway,
> apparently on the theory that window functions are exempt from all rules.
> How is this even a little bit sane?
I don't think it is. I've not looked in detail yet, but I think we
might be able to do something in check_output_expressions() so that we
track the targetIsInAllPartitionLists() separately. Maybe
unsafeColumns[] needs to become an enum type that has UNSAFE, SAFE,
WINDOW_RUNCONDITION_ONLY and then change things so we never make a
runCondition when the qual is UNSAFE.
Anyway, I'll give it more thought and aim to come up with a patch
early next week.
David
| From | Date | Subject | |
|---|---|---|---|
| Next Message | PG Bug reporting form | 2023-03-11 08:00:01 | BUG #17830: Incorrect memory access in trgm_regexp |
| Previous Message | Tom Lane | 2023-03-10 14:42:01 | Re: BUG #17827: Rule on insert into table doesn't work when excepting select from the table itself |