From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | 253540651(at)qq(dot)com |
Cc: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #17152: ERROR: AddressSanitizer: SEGV on unknown address |
Date: | 2021-08-18 15:36:00 |
Message-ID: | 1431890.1629300960@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
PG Bug reporting form <noreply(at)postgresql(dot)org> writes:
> [ unreadable example ]
This can be boiled down to
CREATE TEMP TABLE v0 ( v2 int );
INSERT INTO v0 VALUES (1);
SELECT (
SELECT
MODE ( ) WITHIN GROUP ( ORDER BY v2 )
FILTER ( WHERE MODE ( ) WITHIN GROUP ( ORDER BY v2 > 0 ) )
)
FROM v0;
It seems fairly clear to me that this ought to be rejected as invalid,
because we don't allow aggregates within the arguments of aggregates.
That does happen without the sub-select:
regression=# SELECT
regression-# MODE ( ) WITHIN GROUP ( ORDER BY v2 )
regression-# FILTER ( WHERE MODE ( ) WITHIN GROUP ( ORDER BY v2 > 0 ) )
regression-# FROM v0;
ERROR: aggregate functions are not allowed in FILTER
LINE 3: FILTER ( WHERE MODE ( ) WITHIN GROUP ( ORDER BY v2 > 0 )...
^
So somehow the fact that outer references are involved is misleading that
error check. I've not traced it further than that.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2021-08-18 15:55:58 | Re: BUG #17151: A SEGV in optimizer |
Previous Message | Petr Hybler | 2021-08-18 15:06:54 | PGSQL bug - "Column ??? is an identity column defined as GENERATED ALWAYS.", |