org.postgresql.replication.PGReplicationConnectionImpl 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
The PostgreSQL Driver JDBC4
/*
* Copyright (c) 2016, PostgreSQL Global Development Group
* See the LICENSE file in the project root for more information.
*/
package org.postgresql.replication;
import org.postgresql.core.BaseConnection;
import org.postgresql.replication.fluent.ChainedCreateReplicationSlotBuilder;
import org.postgresql.replication.fluent.ChainedStreamBuilder;
import org.postgresql.replication.fluent.ReplicationCreateSlotBuilder;
import org.postgresql.replication.fluent.ReplicationStreamBuilder;
import java.sql.SQLException;
import java.sql.Statement;
public class PGReplicationConnectionImpl implements PGReplicationConnection {
private BaseConnection connection;
public PGReplicationConnectionImpl(BaseConnection connection) {
this.connection = connection;
}
@Override
public ChainedStreamBuilder replicationStream() {
return new ReplicationStreamBuilder(connection);
}
@Override
public ChainedCreateReplicationSlotBuilder createReplicationSlot() {
return new ReplicationCreateSlotBuilder(connection);
}
@Override
public void dropReplicationSlot(String slotName) throws SQLException {
if (slotName == null || slotName.isEmpty()) {
throw new IllegalArgumentException("Replication slot name can't be null or empty");
}
Statement statement = connection.createStatement();
try {
statement.execute("DROP_REPLICATION_SLOT " + slotName);
} finally {
statement.close();
}
}
}