From 3bf0ddfe17ee6cd8b4ee8b57a900b8d99f7daf5c Mon Sep 17 00:00:00 2001 From: Daniel Kraus Date: Mon, 22 Jul 2013 21:59:04 +0200 Subject: [PATCH] Make the SQL query work with sqlite databases. The fallback query does not use the CHAR_LENGTH function, but uses LENGTH. --- LinkTitles.body.php | 38 +++++++++++++++++++++++--------- LinkTitles.php | 2 +- NEWS | 3 +++ release/LinkTitles-2.2.1.tar.gz | Bin 0 -> 11658 bytes 4 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 release/LinkTitles-2.2.1.tar.gz diff --git a/LinkTitles.body.php b/LinkTitles.body.php index eb826a2..5d712ac 100755 --- a/LinkTitles.body.php +++ b/LinkTitles.body.php @@ -140,18 +140,34 @@ // by length from shortest to longest. // Only titles from 'normal' pages (namespace uid = 0) // are returned. + // Since the db may be sqlite, we need a try..catch structure + // because sqlite does not support the CHAR_LENGTH function. $dbr = wfGetDB( DB_SLAVE ); - $res = $dbr->select( - 'page', - 'page_title', - array( - 'page_namespace = 0', - 'CHAR_LENGTH(page_title) >= ' . $wgLinkTitlesMinimumTitleLength, - 'page_title NOT IN ' . $black_list, - ), - __METHOD__, - array( 'ORDER BY' => 'CHAR_LENGTH(page_title) ' . $sort_order ) - ); + try { + $res = $dbr->select( + 'page', + 'page_title', + array( + 'page_namespace = 0', + 'CHAR_LENGTH(page_title) >= ' . $wgLinkTitlesMinimumTitleLength, + 'page_title NOT IN ' . $black_list, + ), + __METHOD__, + array( 'ORDER BY' => 'CHAR_LENGTH(page_title) ' . $sort_order ) + ); + } catch (Exception $e) { + $res = $dbr->select( + 'page', + 'page_title', + array( + 'page_namespace = 0', + 'LENGTH(page_title) >= ' . $wgLinkTitlesMinimumTitleLength, + 'page_title NOT IN ' . $black_list, + ), + __METHOD__, + array( 'ORDER BY' => 'LENGTH(page_title) ' . $sort_order ) + ); + } // Iterate through the page titles foreach( $res as $row ) { diff --git a/LinkTitles.php b/LinkTitles.php index 48e7053..f906c8e 100755 --- a/LinkTitles.php +++ b/LinkTitles.php @@ -49,7 +49,7 @@ 'name' => 'LinkTitles', 'author' => '[https://www.mediawiki.org/wiki/User:Bovender Daniel Kraus]', 'url' => 'https://www.mediawiki.org/wiki/Extension:LinkTitles', - 'version' => '2.2.0', + 'version' => '2.2.1', 'descriptionmsg' => 'linktitles-desc' ); diff --git a/NEWS b/NEWS index 988ac56..6be9591 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,6 @@ +LinkTitles 2.2.1: 2013-07-22 +* Make the extension work with sqlite databases. + LinkTitles 2.2.0: 2013-04-16 * Fix case-sensitive linking when $wgCapitalLinks is false. diff --git a/release/LinkTitles-2.2.1.tar.gz b/release/LinkTitles-2.2.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..db82d6cc8e226bd76a2e18285712387bcd5382c1 GIT binary patch literal 11658 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 z

SCv7^+-S~nWfTtD%Vl!WBp)($aYKDgtl(mcszU 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 UpRb>