const CONN_SILENCE_ERRORS = 2;
/** @var int Caller is requesting the master DB server for possibly writes */
const CONN_INTENT_WRITABLE = 4;
+ /** @var int Bypass and update any server-side read-only mode state cache */
+ const CONN_REFRESH_READ_ONLY = 8;
/** @var string Manager of ILoadBalancer instances is running post-commit callbacks */
const STAGE_POSTCOMMIT_CALLBACKS = 'stage-postcommit-callbacks';
*/
public function redefineLocalDomain( $domain );
+ /**
+ * Indicate whether the tables on this domain are only temporary tables for testing
+ *
+ * In "temporary tables mode", the ILoadBalancer::CONN_TRX_AUTOCOMMIT flag is ignored
+ *
+ * @param bool $value
+ * @param string $domain
+ * @return bool Whether "temporary tables mode" was active
+ * @since 1.34
+ */
+ public function setTempTablesOnlyMode( $value, $domain );
+
/**
* Get the server index of the reader connection for a given group
*
*
* @param string|bool $group Query group or false for the generic group
* @param string|bool $domain DB domain ID or false for the local domain
- * @throws DBError If no live handle can be obtained
- * @return bool|int|string
+ * @return int|bool Returns false if no live handle can be obtained
*/
public function getReaderIndex( $group = false, $domain = false );
public function getReplicaResumePos();
/**
- * Disable this load balancer. All connections are closed, and any attempt to
- * open a new connection will result in a DBAccessError.
+ * Close all connections and disable this load balancer
+ *
+ * Any attempt to open a new connection will result in a DBAccessError.
+ *
+ * @param string $fname Caller name
+ * @param int|null $owner ID of the calling instance (e.g. the LBFactory ID)
*/
- public function disable();
+ public function disable( $fname = __METHOD__, $owner = null );
/**
* Close all open connections
+ *
+ * @param string $fname Caller name
+ * @param int|null $owner ID of the calling instance (e.g. the LBFactory ID)
*/
- public function closeAll();
+ public function closeAll( $fname = __METHOD__, $owner = null );
/**
* Close a connection
* Commit all replica DB transactions so as to flush any REPEATABLE-READ or SSI snapshots
*
* @param string $fname Caller name
+ * @param int|null $owner ID of the calling instance (e.g. the LBFactory ID)
*/
- public function flushReplicaSnapshots( $fname = __METHOD__ );
+ public function flushReplicaSnapshots( $fname = __METHOD__, $owner = null );
/**
* Commit all master DB transactions so as to flush any REPEATABLE-READ or SSI snapshots
* An error will be thrown if a connection has pending writes or callbacks
*
* @param string $fname Caller name
+ * @param int|null $owner ID of the calling instance (e.g. the LBFactory ID)
*/
- public function flushMasterSnapshots( $fname = __METHOD__ );
+ public function flushMasterSnapshots( $fname = __METHOD__, $owner = null );
/**
* @return bool Whether a master connection is already open
/**
* @note This method may trigger a DB connection if not yet done
* @param string|bool $domain DB domain ID or false for the local domain
- * @param IDatabase|null $conn DB master connection; used to avoid loops [optional]
* @return string|bool Reason the master is read-only or false if it is not
*/
- public function getReadOnlyReason( $domain = false, IDatabase $conn = null );
+ public function getReadOnlyReason( $domain = false );
/**
* Disables/enables lag checks