finding predecessor - Mailing list pgsql-general

From Holger Klawitter
Subject finding predecessor
Date
Msg-id 38900E6B.21233118@klawitter.de
Whole thread Raw
List pgsql-general
Hi there,

is there any convenient way to find the predecessor of a record given
a particular order of the database?

The following select seems a little bit too expensive.

    create table tuples ( i int, j int, m int, k int );

    select * from tuples
    where i<i0
      or ( i=i0 and ( j<j0
        or ( j=j0 and ( k<k0
          or ( k=k0 and m<m0 )
            ))
          ))
    order by
      i desc, j desc, k desc, m desc
    limit 1;

I would like to have something like:

    declare c cursor for
        select * from tuples
        order by i,j,k,m;
    fetch select *
        where i=i0 and j=j0 and k=k0 and m=m0
    in c;
    fetch backward 1 in c;

Regards,
    Holger Klawitter
--
Holger Klawitter                                     +49 (0)251 484 0637
holger@klawitter.de                             http://www.klawitter.de/



pgsql-general by date:

Previous
From: Nicolas Huillard
Date:
Subject: Problem with search on INT4
Next
From: Jim Mercer
Date:
Subject: finding last element of an index