Wikibase
MediaWiki Wikibase extension
Loading...
Searching...
No Matches
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 (RepoDomainDb $db, array $reservedIds=[], $separateDbConnection=false)
 
 getNewId ( $type)
 

Private Member Functions

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

Private Attributes

 $db
 
 $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 ( RepoDomainDb $db,
array $reservedIds = [],
$separateDbConnection = false )
Parameters
RepoDomainDb$db
int[][]$reservedIds
bool$separateDbConnection

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

◆ $db

Wikibase\Repo\Store\Sql\SqlIdGenerator::$db
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: