Re: BUG #17152: ERROR: AddressSanitizer: SEGV on unknown address

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

In response to

Responses

Browse pgsql-bugs by date

  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.",