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-holo Show documentation
Show all versions of postgresql-holo Show documentation
PostgreSQL JDBC Driver Postgresql
The newest version!
/*
* 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;
}
}