Aaron Schulz has uploaded a new change for review. https://gerrit.wikimedia.org/r/311312
Change subject: Remove wf* function and global variable usage from DatabaseSqlite ...................................................................... Remove wf* function and global variable usage from DatabaseSqlite Change-Id: I81753621ecd1e7e3b099243b4c4d0f3428bf9ae2 --- M includes/ServiceWiring.php M includes/db/DatabaseSqlite.php 2 files changed, 32 insertions(+), 23 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/12/311312/1 diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php index 7a34b3a..80093e4 100644 --- a/includes/ServiceWiring.php +++ b/includes/ServiceWiring.php @@ -57,6 +57,9 @@ if ( $class === 'LBFactorySimple' ) { if ( is_array( $mainConfig->get( 'DBservers' ) ) ) { foreach ( $mainConfig->get( 'DBservers' ) as $i => $server ) { + if ( $server['type'] === 'sqlite' ) { + $server += [ 'dbDirectory' => $mainConfig->get( 'SQLiteDataDir' ) ]; + } $lbConf['servers'][$i] = $server + [ 'schema' => $mainConfig->get( 'DBmwschema' ), 'tablePrefix' => $mainConfig->get( 'DBprefix' ), @@ -70,22 +73,25 @@ $flags |= $mainConfig->get( 'DebugDumpSql' ) ? DBO_DEBUG : 0; $flags |= $mainConfig->get( 'DBssl' ) ? DBO_SSL : 0; $flags |= $mainConfig->get( 'DBcompress' ) ? DBO_COMPRESS : 0; - $lbConf['servers'] = [ - [ - 'host' => $mainConfig->get( 'DBserver' ), - 'user' => $mainConfig->get( 'DBuser' ), - 'password' => $mainConfig->get( 'DBpassword' ), - 'dbname' => $mainConfig->get( 'DBname' ), - 'schema' => $mainConfig->get( 'DBmwschema' ), - 'tablePrefix' => $mainConfig->get( 'DBprefix' ), - 'type' => $mainConfig->get( 'DBtype' ), - 'load' => 1, - 'flags' => $flags, - 'sqlMode' => $mainConfig->get( 'SQLMode' ), - 'utf8Mode' => $mainConfig->get( 'DBmysql5' ) - ] + $server = [ + 'host' => $mainConfig->get( 'DBserver' ), + 'user' => $mainConfig->get( 'DBuser' ), + 'password' => $mainConfig->get( 'DBpassword' ), + 'dbname' => $mainConfig->get( 'DBname' ), + 'schema' => $mainConfig->get( 'DBmwschema' ), + 'tablePrefix' => $mainConfig->get( 'DBprefix' ), + 'type' => $mainConfig->get( 'DBtype' ), + 'load' => 1, + 'flags' => $flags, + 'sqlMode' => $mainConfig->get( 'SQLMode' ), + 'utf8Mode' => $mainConfig->get( 'DBmysql5' ) ]; + if ( $server['type'] === 'sqlite' ) { + $server += [ 'dbDirectory' => $mainConfig->get( 'SQLiteDataDir' ) ]; + } + $lbConf['servers'] = [ $server ]; } + $lbConf['externalServers'] = $mainConfig->get( 'ExternalServers' ); } diff --git a/includes/db/DatabaseSqlite.php b/includes/db/DatabaseSqlite.php index 28fb5b5..969d4f8 100644 --- a/includes/db/DatabaseSqlite.php +++ b/includes/db/DatabaseSqlite.php @@ -59,9 +59,11 @@ * @param array $p */ function __construct( array $p ) { - global $wgSQLiteDataDir; + if ( !isset( $p['dbDirectory'] ) ) { + throw new InvalidArgumentException( "Missing 'dbDirectory' parameter." ); + } - $this->dbDir = isset( $p['dbDirectory'] ) ? $p['dbDirectory'] : $wgSQLiteDataDir; + $this->dbDir = $p['dbDirectory']; if ( isset( $p['dbFilePath'] ) ) { parent::__construct( $p ); @@ -93,7 +95,7 @@ !in_array( $this->trxMode, [ 'DEFERRED', 'IMMEDIATE', 'EXCLUSIVE' ] ) ) { $this->trxMode = null; - wfWarn( "Invalid SQLite transaction mode provided." ); + $this->queryLogger->warning( "Invalid SQLite transaction mode provided." ); } $this->lockMgr = new FSLockManager( [ 'lockDirectory' => "{$this->dbDir}/locks" ] ); @@ -178,7 +180,7 @@ } if ( !$this->mConn ) { - wfDebug( "DB connection error: $err\n" ); + $this->queryLogger->debug( "DB connection error: $err\n" ); throw new DBConnectionError( $this, $err ); } @@ -724,9 +726,9 @@ * @return string User-friendly database information */ public function getServerInfo() { - return wfMessage( self::getFulltextSearchModule() - ? 'sqlite-has-fts' - : 'sqlite-no-fts', $this->getServerVersion() )->text(); + return self::getFulltextSearchModule() + ? "{$this->getServerVersion()} with fulltext search enabled" + : "{$this->getServerVersion()} with fulltext search disabled"; } /** @@ -806,7 +808,7 @@ // There is an additional bug regarding sorting this data after insert // on older versions of sqlite shipped with ubuntu 12.04 // https://phabricator.wikimedia.org/T74367 - wfDebugLog( + $this->queryLogger->debug( __CLASS__, __FUNCTION__ . ': Quoting value containing null byte. ' . @@ -972,7 +974,8 @@ ); if ( $temporary ) { if ( preg_match( '/^\\s*CREATE\\s+VIRTUAL\\s+TABLE\b/i', $sql ) ) { - wfDebug( "Table $oldName is virtual, can't create a temporary duplicate.\n" ); + $this->queryLogger->debug( + "Table $oldName is virtual, can't create a temporary duplicate.\n" ); } else { $sql = str_replace( 'CREATE TABLE', 'CREATE TEMPORARY TABLE', $sql ); } -- To view, visit https://gerrit.wikimedia.org/r/311312 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I81753621ecd1e7e3b099243b4c4d0f3428bf9ae2 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Aaron Schulz <asch...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits