Class Lsn

  • All Implemented Interfaces:
    Comparable<Lsn>

    public class Lsn
    extends Object
    implements Comparable<Lsn>
    Abstraction of PostgreSQL log sequence number, adapted from LogSequenceNumber.
    Author:
    Jiri Pechanec
    • Field Detail

      • INVALID_LSN

        public static final Lsn INVALID_LSN
        Zero is used indicate an invalid pointer. Bootstrap skips the first possible WAL segment, initializing the first WAL page at XLOG_SEG_SIZE, so no XLOG record can begin at zero.
      • value

        private final long value
    • Constructor Detail

      • Lsn

        private Lsn​(long value)
    • Method Detail

      • valueOf

        public static Lsn valueOf​(Long value)
        Parameters:
        value - numeric represent position in the write-ahead log stream
        Returns:
        not null LSN instance
      • valueOf

        public static Lsn valueOf​(org.postgresql.replication.LogSequenceNumber value)
        Parameters:
        value - PostgreSQL JDBC driver domain type representing position in the write-ahead log stream
        Returns:
        not null LSN instance
      • valueOf

        public static Lsn valueOf​(String strValue)
        Create LSN instance by string represent LSN.
        Parameters:
        strValue - not null string as two hexadecimal numbers of up to 8 digits each, separated by a slash. For example 16/3002D50, 0/15D68C50
        Returns:
        not null LSN instance where if specified string represent have not valid form INVALID_LSN
      • asLong

        public long asLong()
        Returns:
        Long represent position in the write-ahead log stream
      • asLogSequenceNumber

        public org.postgresql.replication.LogSequenceNumber asLogSequenceNumber()
        Returns:
        PostgreSQL JDBC driver representation of position in the write-ahead log stream
      • asString

        public String asString()
        Returns:
        String represent position in the write-ahead log stream as two hexadecimal numbers of up to 8 digits each, separated by a slash. For example 16/3002D50, 0/15D68C50
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • isValid

        public boolean isValid()