X-Git-Url: https://scripts.mit.edu/gitweb/autoinstallsdev/mediawiki.git/blobdiff_plain/19e297c21b10b1b8a3acad5e73fc71dcb35db44a..6932310fd58ebef145fa01eb76edf7150284d8ea:/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php diff --git a/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php b/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php new file mode 100644 index 00000000..79d250f6 --- /dev/null +++ b/includes/libs/rdbms/loadbalancer/LoadBalancerSingle.php @@ -0,0 +1,80 @@ +db = $params['connection']; + + parent::__construct( [ + 'servers' => [ + [ + 'type' => $this->db->getType(), + 'host' => $this->db->getServer(), + 'dbname' => $this->db->getDBname(), + 'load' => 1, + ] + ], + 'trxProfiler' => isset( $params['trxProfiler'] ) ? $params['trxProfiler'] : null, + 'srvCache' => isset( $params['srvCache'] ) ? $params['srvCache'] : null, + 'wanCache' => isset( $params['wanCache'] ) ? $params['wanCache'] : null + ] ); + + if ( isset( $params['readOnlyReason'] ) ) { + $this->db->setLBInfo( 'readOnlyReason', $params['readOnlyReason'] ); + } + } + + /** + * @param IDatabase $db Live connection handle + * @param array $params Parameter map to LoadBalancerSingle::__constructs() + * @return LoadBalancerSingle + * @since 1.28 + */ + public static function newFromConnection( IDatabase $db, array $params = [] ) { + return new static( [ 'connection' => $db ] + $params ); + } + + protected function reallyOpenConnection( array $server, $dbNameOverride = false ) { + return $this->db; + } +} + +class_alias( 'Wikimedia\Rdbms\LoadBalancerSingle', 'LoadBalancerSingle' );