org.herodbsql.replication.fluent.ChainedCommonCreateSlotBuilder Maven / Gradle / Ivy
/*
 * Copyright (c) 2016, PostgreSQL Global Development Group
 * See the LICENSE file in the project root for more information.
 */
package org.herodbsql.replication.fluent;
import org.herodbsql.replication.ReplicationSlotInfo;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
/**
 * Fluent interface for specify common parameters for create Logical and Physical replication slot.
 */
public interface ChainedCommonCreateSlotBuilder> {
  /**
   * Replication slots provide an automated way to ensure that the master does not remove WAL
   * segments until they have been received by all standbys, and that the master does not remove
   * rows which could cause a recovery conflict even when the standby is disconnected.
   *
   * @param slotName not null unique replication slot name for create.
   * @return T a slot builder
   */
  T withSlotName(String slotName);
  /**
   * Temporary slots are not saved to disk and are automatically dropped on error or when
   * the session has finished.
   *
   * This feature is only supported by PostgreSQL versions >= 10.
   *
   * @return T a slot builder
   * @throws SQLFeatureNotSupportedException thrown if PostgreSQL version is less than 10.
   */
  T withTemporaryOption() throws SQLFeatureNotSupportedException;
  /**
   * Create slot with specified parameters in database.
   *
   * @return ReplicationSlotInfo with the information of the created slot.
   * @throws SQLException on error
   */
  ReplicationSlotInfo make() throws SQLException;
}
     © 2015 - 2025 Weber Informatics LLC | Privacy Policy