Page MenuHomePhabricator

D16946.diff
No OneTemporary

D16946.diff

diff --git a/src/applications/search/storage/document/PhabricatorSearchDocument.php b/src/applications/search/storage/document/PhabricatorSearchDocument.php
--- a/src/applications/search/storage/document/PhabricatorSearchDocument.php
+++ b/src/applications/search/storage/document/PhabricatorSearchDocument.php
@@ -40,15 +40,15 @@
}
public static function newQueryCompiler() {
- $table = new self();
- $conn = $table->establishConnection('r');
-
$compiler = new PhutilSearchQueryCompiler();
if (self::isInnoDBFulltextEngineAvailable()) {
// The InnoDB fulltext boolean operators are always the same as the
// default MyISAM operators, so we do not need to adjust the compiler.
} else {
+ $table = new self();
+ $conn = $table->establishConnection('r');
+
$operators = queryfx_one(
$conn,
'SELECT @@ft_boolean_syntax AS syntax');
@@ -61,8 +61,25 @@
}
public static function isInnoDBFulltextEngineAvailable() {
- // For now, never consider this engine to be available.
- return false;
+ static $available;
+
+ if ($available === null) {
+ $table = new self();
+ $conn = $table->establishConnection('r');
+
+ // If this system variable exists, we can use InnoDB fulltext. If it
+ // does not, this query will throw and we're stuck with MyISAM.
+ try {
+ queryfx_one(
+ $conn,
+ 'SELECT @@innodb_ft_max_token_size');
+ $available = true;
+ } catch (AphrontQueryException $x) {
+ $available = false;
+ }
+ }
+
+ return $available;
}
}

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 22, 7:34 PM (3 w, 6 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7704960
Default Alt Text
D16946.diff (1 KB)

Event Timeline