Project

General

Profile

tickets #130661 ยป mediawiki-1.36.7-galeralock.patch

pjessen, 2023-06-12 16:13

View differences:

mediawiki-1.37.6pj/includes/libs/rdbms/database/DatabaseMysqlBase.php 2023-06-12 18:09:06.845139148 +0200
$encName = $this->addQuotes( $this->makeLockName( $lockName ) );
$res = $this->query(
"SELECT IS_FREE_LOCK($encName) AS unlocked",
"SELECT 1 AS unlocked",
$method,
self::QUERY_IGNORE_DBO_TRX | self::QUERY_CHANGE_NONE
);
......
// https://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_sysdate
// https://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html
$res = $this->query(
"SELECT IF(GET_LOCK($encName,$timeout),UNIX_TIMESTAMP(SYSDATE(6)),NULL) AS acquired",
"SELECT UNIX_TIMESTAMP(SYSDATE(6)) AS acquired",
$method,
self::QUERY_IGNORE_DBO_TRX | self::QUERY_CHANGE_NONE
);
......
$encName = $this->addQuotes( $this->makeLockName( $lockName ) );
$res = $this->query(
"SELECT RELEASE_LOCK($encName) AS released",
"SELECT 1 AS released",
$method,
self::QUERY_IGNORE_DBO_TRX | self::QUERY_CHANGE_NONE
);
......
$items[] = $this->tableName( $table ) . ' READ';
}
$this->query(
"LOCK TABLES " . implode( ',', $items ),
$method,
self::QUERY_IGNORE_DBO_TRX | self::QUERY_CHANGE_ROWS
);
//$this->query(
// "LOCK TABLES " . implode( ',', $items ),
// $method,
// self::QUERY_IGNORE_DBO_TRX | self::QUERY_CHANGE_ROWS
//);
return true;
}
    (1-1/1)