From: Jure Kajzer Date: Fri, 8 Jan 2010 07:52:51 +0000 (+0000) Subject: Escaped Oracle Text reserved words X-Git-Tag: 1.31.0-rc.0~38355 X-Git-Url: http://git.cyclocoop.org/%24action?a=commitdiff_plain;h=70a9f616a340c5257d1822b35769494d89f204e4;p=lhc%2Fweb%2Fwiklou.git Escaped Oracle Text reserved words --- diff --git a/includes/search/SearchOracle.php b/includes/search/SearchOracle.php index 12f6f3049a..a7b6dbfb46 100644 --- a/includes/search/SearchOracle.php +++ b/includes/search/SearchOracle.php @@ -27,6 +27,34 @@ * @ingroup Search */ class SearchOracle extends SearchEngine { + + private $reservedWords = array ('ABOUT' => 1, + 'ACCUM' => 1, + 'AND' => 1, + 'BT' => 1, + 'BTG' => 1, + 'BTI' => 1, + 'BTP' => 1, + 'FUZZY' => 1, + 'HASPATH' => 1, + 'INPATH' => 1, + 'MINUS' => 1, + 'NEAR' => 1, + 'NOT' => 1, + 'NT' => 1, + 'NTG' => 1, + 'NTI' => 1, + 'NTP' => 1, + 'OR' => 1, + 'PT' => 1, + 'RT' => 1, + 'SQE' => 1, + 'SYN' => 1, + 'TR' => 1, + 'TRSYN' => 1, + 'TT' => 1, + 'WITHIN' => 1); + function __construct($db) { $this->db = $db; } @@ -191,6 +219,7 @@ class SearchOracle extends SearchEngine { private function escapeTerm($t) { global $wgContLang; $t = $wgContLang->stripForSearch($t); + $t = isset($this->reservedWords[strtoupper($t)]) ? '{'.$t.'}' : $t; $t = preg_replace('/^"(.*)"$/', '($1)', $t); $t = preg_replace('/([-&|])/', '\\\\$1', $t); return $t;