38 public static function hasFlags( $bitfield, $flags ) {
39 return ( $bitfield & $flags ) == $flags;
56 if ( self::hasFlags( $bitfield, self::READ_LATEST_IMMUTABLE ) ) {
59 } elseif ( self::hasFlags( $bitfield, self::READ_LATEST ) ) {
61 $fallbackIndex =
null;
64 $fallbackIndex =
null;
68 if ( self::hasFlags( $bitfield, self::READ_EXCLUSIVE ) ) {
69 $lockingOptions[] =
'FOR UPDATE';
70 } elseif ( self::hasFlags( $bitfield, self::READ_LOCKING ) ) {
71 $lockingOptions[] =
'LOCK IN SHARE MODE';
74 if ( $fallbackIndex !==
null ) {
76 $fallbackOptions = $lockingOptions;
78 $options = $lockingOptions;
79 $fallbackOptions = [];
82 return [ $index, $options, $fallbackIndex, $fallbackOptions ];
98 return $dbProvider->getReplicaDatabase();
100 throw new InvalidArgumentException(
'$index must be either DB_REPLICA or DB_PRIMARY' );
if(!defined('MW_SETUP_CALLBACK'))
Helper class for DAO classes.
static getDBOptions( $bitfield)
Get an appropriate DB index, options, and fallback DB index for a query.
static getDBFromIndex(IConnectionProvider $dbProvider, int $index)
Takes $index from ::getDBOptions() and return proper Database object.
static hasFlags( $bitfield, $flags)
Interface for database access objects.