Thread

Commits

  1. postgres_fdw: Avoid "cursor can only scan forward" error.

  1. d844cd75a and postgres_fdw

    Devrim GÜNDÜZ <devrim@gunduz.org> — 2023-10-24T11:46:40Z

    Hi,
    
    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?
    
    Regards,
    
    -- 
    Devrim Gündüz
    Open Source Solution Architect, PostgreSQL Major Contributor
    Twitter: @DevrimGunduz , @DevrimGunduzTR
    
  2. Re: d844cd75a and postgres_fdw

    Etsuro Fujita <etsuro.fujita@gmail.com> — 2024-07-05T12:56:28Z

    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
    
    
    
    
  3. Re: d844cd75a and postgres_fdw

    Etsuro Fujita <etsuro.fujita@gmail.com> — 2024-07-19T05:01:54Z

    On Fri, Jul 5, 2024 at 9:56 PM Etsuro Fujita <etsuro.fujita@gmail.com> wrote:
    > 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].
    
    I pushed the fix and back-patched to v15.  Thanks for the report!
    
    Best regards,
    Etsuro Fujita
    
    
    
    
  4. Re: d844cd75a and postgres_fdw

    Devrim GÜNDÜZ <devrim@gunduz.org> — 2024-07-19T11:29:41Z

    Hi,
    
    On Fri, 2024-07-19 at 14:01 +0900, Etsuro Fujita wrote:
    > I pushed the fix and back-patched to v15.  Thanks for the report!
    
    Thanks a lot!
    
    Regards,
    -- 
    Devrim Gündüz
    Open Source Solution Architect, PostgreSQL Major Contributor
    Twitter: @DevrimGunduz , @DevrimGunduzTR