Re: d844cd75a and postgres_fdw
Etsuro Fujita <etsuro.fujita@gmail.com>
From: Etsuro Fujita <etsuro.fujita@gmail.com>
To: Devrim Gündüz <devrim@gunduz.org>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-07-05T12:56:28Z
Lists: pgsql-hackers
On Tue, Oct 24, 2023 at 8:48 PM Devrim Gündüz <devrim@gunduz.org> wrote: > I'm seeing an issue after upgrading from 12.13 to 15.4. This happens > when we run a query against a foreign table (fdw on the same instance to > a different database) -- but does not appear when we get rid of > postgres_fdw: > > ERROR: cursor can only scan forward > HINT: Declare it with SCROLL option to enable backward scan. > CONTEXT: remote SQL command: MOVE BACKWARD ALL IN c1 > > SQL state: 55000 > > I attached the query. The name of the foreign table is > "foobar.sys_user". > > Looks like the bug #17889, and this is the last email in that thread: > https://www.postgresql.org/message-id/1852635.1682808624%40sss.pgh.pa.us > > OTOH, same query works (against the FDW) when we remove the following > WHERE clause: > > WHERE > tbl.table_status = 'A' > AND tbl.table_id <> 1 > AND tbl.table_id <> - 2 > > Any hints? The error occurs when rescanning a postgres_fdw foreign relation, so I think the reason why the query works would be that the planner chose a join plan other than a nestloop join plan. I proposed a fix for this in [1]. Best regards, Etsuro Fujita [1] https://www.postgresql.org/message-id/CAPmGK149UubRQGLH6QaBkhJvas%2BGz%2BT6tx2MBX9MTJpxDRKPBA%40mail.gmail.com
Commits
-
postgres_fdw: Avoid "cursor can only scan forward" error.
- f39f3e0fbe9b 15.8 landed
- d97f2ee50e49 16.4 landed
- 935fe79ea1fb 17.0 landed
- 5c571a34d0e9 18.0 landed