delete statement returning too many results - Mailing list pgsql-general

From Arlo Louis O'Keeffe
Subject delete statement returning too many results
Date
Msg-id 34484222-02BB-408A-8FBB-DCE0F64D96B5@k5d.de
Whole thread Raw
Responses Re: delete statement returning too many results  (Ron <ronljohnsonjr@gmail.com>)
List pgsql-general
Hello everyone,

I am seeing weird behaviour of a delete statement that is returning more results than I am expecting.

This is the query:

DELETE FROM queue
WHERE
    id IN (
        SELECT id
        FROM queue
        ORDER BY id
        LIMIT 1
        FOR UPDATE
        SKIP LOCKED
    )
RETURNING *;

My understanding is that the limit in the sub-select should prevent this query from ever
returning more than one result. Sadly I am seeing cases where there is more than one result.

This repository has a Java setup that pretty reliably reproduces my issue:
https://github.com/ArloL/postgres-query-error-demo

I checked the docs for select and delete and couldn’t find any hint for cases
where the behaviour of limit might be surprising.

Am I missing something?

Thanks,

Arlo




pgsql-general by date:

Previous
From: Pavel Luzanov
Date:
Subject: Re: how to implement add using upsert and trigger?
Next
From: "j.emerlik"
Date:
Subject: Standby restore_command