Wikibase
MediaWiki Wikibase extension
Wikibase\Repo\Store\Sql\SqlIdGenerator Class Reference

Unique Id generator implemented using an SQL table. More...

+ Inheritance diagram for Wikibase\Repo\Store\Sql\SqlIdGenerator:
+ Collaboration diagram for Wikibase\Repo\Store\Sql\SqlIdGenerator:

Public Member Functions

 __construct (ILoadBalancer $loadBalancer, array $reservedIds=[], $separateDbConnection=false)
 
 getNewId ( $type)
 

Private Member Functions

 generateNewId (IDatabase $database, $type, $retry=true)
 Generates and returns a new ID. More...
 

Private Attributes

 $loadBalancer
 
 $reservedIds
 
 $separateDbConnection
 

Detailed Description

Unique Id generator implemented using an SQL table.

The table needs to have the fields id_value and id_type.

Author
Jeroen De Dauw < jeroe.nosp@m.nded.nosp@m.auw@g.nosp@m.mail.nosp@m..com >

Constructor & Destructor Documentation

◆ __construct()

Wikibase\Repo\Store\Sql\SqlIdGenerator::__construct ( ILoadBalancer  $loadBalancer,
array  $reservedIds = [],
  $separateDbConnection = false 
)
Parameters
ILoadBalancer$loadBalancer
int[][]$reservedIds

Member Function Documentation

◆ generateNewId()

Wikibase\Repo\Store\Sql\SqlIdGenerator::generateNewId ( IDatabase  $database,
  $type,
  $retry = true 
)
private

Generates and returns a new ID.

Parameters
IDatabase$database
string$type
bool$retryRetry once in case of e.g. race conditions. Defaults to true.
Exceptions
RuntimeException
Returns
int

◆ getNewId()

Wikibase\Repo\Store\Sql\SqlIdGenerator::getNewId (   $type)
See also
IdGenerator::getNewId
Parameters
string$typenormally is content model id (e.g. wikibase-item or wikibase-property)
Exceptions
RuntimeExceptionif getting an unique ID failed
Returns
int

Implements Wikibase\Repo\Store\IdGenerator.

Member Data Documentation

◆ $loadBalancer

Wikibase\Repo\Store\Sql\SqlIdGenerator::$loadBalancer
private

◆ $reservedIds

Wikibase\Repo\Store\Sql\SqlIdGenerator::$reservedIds
private

◆ $separateDbConnection

Wikibase\Repo\Store\Sql\SqlIdGenerator::$separateDbConnection
private

The documentation for this class was generated from the following file: