Обсуждение: BUG #18803: ERROR: wrong varnullingrels (b) (expected (b 4)) for Var 2/1
BUG #18803: ERROR: wrong varnullingrels (b) (expected (b 4)) for Var 2/1
От
PG Bug reporting form
Дата:
The following bug has been logged on the website:
Bug reference: 18803
Logged by: Marko Tiikkaja
Email address: marko@joh.to
PostgreSQL version: 16.6
Operating system: Linux
Description:
Given this schema:
BEGIN;
CREATE TABLE Users();
CREATE TABLE Orders(MessageID text);
CREATE TABLE Transfers (TransferID bigint);
COMMIT;
Running this query:
DO $$
BEGIN
EXECUTE $SQL$
SELECT
CASE WHEN $1 < 1
THEN 1
ELSE sum(1) OVER ()
END AS Total,
MessageID
FROM (
SELECT
coalesce(
ECR.MessageID,
Orders.MessageID
) AS MessageID
FROM Orders
LEFT JOIN LATERAL (
SELECT
Transfers.TransferID || Orders.MessageID AS MessageID
FROM Transfers
) ECR ON TRUE
) Txn
$SQL$
USING 1;
END
$$;
produces the following error:
ERROR: wrong varnullingrels (b) (expected (b 4)) for Var 2/1
(where the "1" seems to correspond to the pg_attribute.attnum of
Orders.MessageID)
PG Bug reporting form <noreply@postgresql.org> writes:
> Given this schema:
> ...
> Running this query:
> ...
> produces the following error:
> ERROR: wrong varnullingrels (b) (expected (b 4)) for Var 2/1
Thanks for the clear report! We've seen a few variants of this,
and apparently yours is among the cases that are recently fixed.
Trying this example on a fresh 16-tip build (more or less 16.7)
just emits
DO
regards, tom lane
Re: BUG #18803: ERROR: wrong varnullingrels (b) (expected (b 4)) for Var 2/1
От
Marko Tiikkaja
Дата:
Hi Tom, On Tue, Feb 11, 2025 at 5:33 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Thanks for the clear report! We've seen a few variants of this, > and apparently yours is among the cases that are recently fixed. > Trying this example on a fresh 16-tip build (more or less 16.7) > just emits That would be my bad. I git grep'd the 16 branch but I thought it was unrelated. Thanks for the confirmation! .m