From 45758df495630ea288f83d16d74bb97aa9bcdf17 Mon Sep 17 00:00:00 2001 From: Jure Kajzer Date: Mon, 11 May 2009 12:38:45 +0000 Subject: [PATCH] Preparations for Oracle database abstraction update. Replaced a few hardcoded LIMIT clauses with database function. Wrapped UNION statement in SpecialRecentchangeslinked for Oracle compatibility. --- includes/Article.php | 4 ++-- includes/specials/SpecialNewimages.php | 5 +++-- includes/specials/SpecialRecentchangeslinked.php | 4 +++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/includes/Article.php b/includes/Article.php index 6046cf5863..6b67e83bf4 100644 --- a/includes/Article.php +++ b/includes/Article.php @@ -707,8 +707,8 @@ class Article { GROUP BY rev_user, rev_user_text, user_real_name ORDER BY timestamp DESC"; - if($limit > 0) { $sql .= ' LIMIT '.$limit; } - if($offset > 0) { $sql .= ' OFFSET '.$offset; } + if($limit > 0) + $sql = $dbr->limitResult($sql, $limit, $offset); $sql .= ' '. $this->getSelectOptions(); diff --git a/includes/specials/SpecialNewimages.php b/includes/specials/SpecialNewimages.php index 88e34f43a7..3922712f85 100644 --- a/includes/specials/SpecialNewimages.php +++ b/includes/specials/SpecialNewimages.php @@ -40,7 +40,8 @@ function wfSpecialNewimages( $par, $specialPage ) { if ($hidebotsql) { $sql .= "$hidebotsql WHERE ug_group IS NULL"; } - $sql .= ' ORDER BY img_timestamp DESC LIMIT 1'; + $sql .= ' ORDER BY img_timestamp DESC'; + $sql = $dbr->limitResult($sql, 1, false); $res = $dbr->query( $sql, __FUNCTION__ ); $row = $dbr->fetchRow( $res ); if( $row !== false ) { @@ -93,7 +94,7 @@ function wfSpecialNewimages( $par, $specialPage ) { $sql .= ' WHERE ' . $dbr->makeList( $where, LIST_AND ); } $sql.=' ORDER BY img_timestamp '. ( $invertSort ? '' : ' DESC' ); - $sql.=' LIMIT ' . ( $limit + 1 ); + $sql = $dbr->limitResult($sql, ( $limit + 1 ), false); $res = $dbr->query( $sql, __FUNCTION__ ); /** diff --git a/includes/specials/SpecialRecentchangeslinked.php b/includes/specials/SpecialRecentchangeslinked.php index 82aa5b98e3..e1b5ae423d 100644 --- a/includes/specials/SpecialRecentchangeslinked.php +++ b/includes/specials/SpecialRecentchangeslinked.php @@ -155,7 +155,9 @@ class SpecialRecentchangeslinked extends SpecialRecentchanges { $sql = $subsql[0]; else { // need to resort and relimit after union - $sql = "(" . implode( ") UNION (", $subsql ) . ") ORDER BY rc_timestamp DESC LIMIT {$limit}"; + // unwrapped UNION block will not work in Oracle. Wrapper aded. + $sql = "SELECT * FROM ((" . implode( ") UNION (", $subsql ) . ")) ORDER BY rc_timestamp DESC"; + $sql = $dbr->limitResult($sql, $limit, false); } $res = $dbr->query( $sql, __METHOD__ ); -- 2.20.1