diff --git a/application/Espo/ORM/QueryComposer/BaseQueryComposer.php b/application/Espo/ORM/QueryComposer/BaseQueryComposer.php index 853db49cf2..a60799ace4 100644 --- a/application/Espo/ORM/QueryComposer/BaseQueryComposer.php +++ b/application/Espo/ORM/QueryComposer/BaseQueryComposer.php @@ -2032,7 +2032,7 @@ abstract class BaseQueryComposer implements QueryComposer $forUpdate = $params['forUpdate'] ?? null; if ($forShare) { - return "FOR SHARE"; + return "LOCK IN SHARE MODE"; } if ($forUpdate) { diff --git a/application/Espo/ORM/QueryComposer/PostgresqlQueryComposer.php b/application/Espo/ORM/QueryComposer/PostgresqlQueryComposer.php index f277930670..3760e52263 100644 --- a/application/Espo/ORM/QueryComposer/PostgresqlQueryComposer.php +++ b/application/Espo/ORM/QueryComposer/PostgresqlQueryComposer.php @@ -591,4 +591,23 @@ class PostgresqlQueryComposer extends BaseQueryComposer return $sql; } + + /** + * @param array $params + */ + protected function getSelectTailPart(array $params): ?string + { + $forShare = $params['forShare'] ?? null; + $forUpdate = $params['forUpdate'] ?? null; + + if ($forShare) { + return "FOR SHARE"; + } + + if ($forUpdate) { + return "FOR UPDATE"; + } + + return null; + } } diff --git a/tests/unit/Espo/ORM/MysqlQueryComposerTest.php b/tests/unit/Espo/ORM/MysqlQueryComposerTest.php index 3b5e7507b1..055f1e9939 100644 --- a/tests/unit/Espo/ORM/MysqlQueryComposerTest.php +++ b/tests/unit/Espo/ORM/MysqlQueryComposerTest.php @@ -3031,7 +3031,7 @@ class MysqlQueryComposerTest extends \PHPUnit\Framework\TestCase $expectedSql = "SELECT account.id AS `id` ". "FROM `account` ". - "FOR SHARE"; + "LOCK IN SHARE MODE"; $this->assertEquals($expectedSql, $sql); }