Page MenuHomePhabricator

D18487.diff
No OneTemporary

D18487.diff

diff --git a/src/applications/search/engineextension/PhabricatorFerretFulltextEngineExtension.php b/src/applications/search/engineextension/PhabricatorFerretFulltextEngineExtension.php
--- a/src/applications/search/engineextension/PhabricatorFerretFulltextEngineExtension.php
+++ b/src/applications/search/engineextension/PhabricatorFerretFulltextEngineExtension.php
@@ -55,6 +55,8 @@
->getNgramsFromString($ngrams_source, 'index');
$ferret_document->openTransaction();
+
+ try {
$this->deleteOldDocument($engine, $object, $document);
$ferret_document->save();
@@ -85,6 +87,11 @@
$ferret_ngrams->getTableName(),
$chunk);
}
+ } catch (Exception $ex) {
+ $ferret_document->killTransaction();
+ throw $ex;
+ }
+
$ferret_document->saveTransaction();
}
diff --git a/src/applications/search/ngrams/PhabricatorNgramEngine.php b/src/applications/search/ngrams/PhabricatorNgramEngine.php
--- a/src/applications/search/ngrams/PhabricatorNgramEngine.php
+++ b/src/applications/search/ngrams/PhabricatorNgramEngine.php
@@ -26,9 +26,11 @@
break;
}
- $len = (strlen($token) - 2);
+ $token_v = phutil_utf8v($token);
+ $len = (count($token_v) - 2);
for ($ii = 0; $ii < $len; $ii++) {
- $ngram = substr($token, $ii, 3);
+ $ngram = array_slice($token_v, $ii, 3);
+ $ngram = implode('', $ngram);
$ngrams[$ngram] = $ngram;
}
}

File Metadata

Mime Type
text/plain
Expires
Sun, May 12, 4:51 AM (3 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6289355
Default Alt Text
D18487.diff (1 KB)

Event Timeline