org.postgresql.replication.ReplicationSlotInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of postgresql Show documentation
Show all versions of postgresql Show documentation
PostgreSQL JDBC Driver Postgresql
/*
* Copyright (c) 2018, PostgreSQL Global Development Group
* See the LICENSE file in the project root for more information.
*/
package org.postgresql.replication;
import org.checkerframework.checker.nullness.qual.Nullable;
/**
* Information returned on replication slot creation.
*
* Returned keys of CREATE_REPLICATION_SLOT:
*
* - slot_name String {@code =>} the slot name
*
- consistent_point String {@code =>} LSN at which we became consistent
*
- snapshot_name String {@code =>} exported snapshot's name (may be
null
)
* - output_plugin String {@code =>} output plugin (may be
null
)
*
*
* @see CREATE_REPLICATION_SLOT documentation
*/
public final class ReplicationSlotInfo {
private final String slotName;
private final ReplicationType replicationType;
private final LogSequenceNumber consistentPoint;
private final @Nullable String snapshotName;
private final @Nullable String outputPlugin;
public ReplicationSlotInfo(String slotName, ReplicationType replicationType,
LogSequenceNumber consistentPoint, @Nullable String snapshotName,
@Nullable String outputPlugin) {
this.slotName = slotName;
this.replicationType = replicationType;
this.consistentPoint = consistentPoint;
this.snapshotName = snapshotName;
this.outputPlugin = outputPlugin;
}
/**
* Replication slot name.
*
* @return the slot name
*/
public String getSlotName() {
return slotName;
}
/**
* Replication type of the slot created, might be PHYSICAL or LOGICAL.
*
* @return ReplicationType, PHYSICAL or LOGICAL
*/
public ReplicationType getReplicationType() {
return replicationType;
}
/**
* LSN at which we became consistent.
*
* @return LogSequenceNumber with the consistent_point
*/
public LogSequenceNumber getConsistentPoint() {
return consistentPoint;
}
/**
* Exported snapshot name at the point of replication slot creation.
*
* As long as the exporting transaction remains open, other transactions can import its snapshot,
* and thereby be guaranteed that they see exactly the same view of the database that the first
* transaction sees.
*
* @return exported snapshot_name (may be null
)
*/
public @Nullable String getSnapshotName() {
return snapshotName;
}
/**
* Output Plugin used on slot creation.
*
* @return output_plugin (may be null
)
*/
public @Nullable String getOutputPlugin() {
return outputPlugin;
}
}