http://www.mediawiki.org/wiki/Special:Code/MediaWiki/60831

Revision: 60831
Author:   freakolowsky
Date:     2010-01-08 07:52:51 +0000 (Fri, 08 Jan 2010)

Log Message:
-----------
Escaped Oracle Text reserved words

Modified Paths:
--------------
    trunk/phase3/includes/search/SearchOracle.php

Modified: trunk/phase3/includes/search/SearchOracle.php
===================================================================
--- trunk/phase3/includes/search/SearchOracle.php       2010-01-08 07:23:43 UTC 
(rev 60830)
+++ trunk/phase3/includes/search/SearchOracle.php       2010-01-08 07:52:51 UTC 
(rev 60831)
@@ -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 @@
        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;



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to