From 5d994b08f79fb352d24161a458761ad14bf8af70 Mon Sep 17 00:00:00 2001 From: Richard Fath Date: Sat, 28 Sep 2024 12:59:41 +0200 Subject: [PATCH] Use row_number window function on MariaDB >= 11.0 --- src/Query/MysqlQueryBuilder.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Query/MysqlQueryBuilder.php b/src/Query/MysqlQueryBuilder.php index 2d93d25ba..35cca93a0 100644 --- a/src/Query/MysqlQueryBuilder.php +++ b/src/Query/MysqlQueryBuilder.php @@ -220,6 +220,11 @@ public function findInSet($value, $set) */ public function selectRowNumber($orderBy, $orderColumnAlias) { + // Use parent method with ROW_NUMBER() window function on MariaDB 11.0.0 and newer. + if ($this->db->isMariaDb() && version_compare($this->db->getVersion(), '11.0.0', '>=')) { + return parent::selectRowNumber($orderBy, $orderColumnAlias); + } + $this->validateRowNumber($orderBy, $orderColumnAlias); return $this->select("(SELECT @rownum := @rownum + 1 FROM (SELECT @rownum := 0) AS r) AS $orderColumnAlias");