Commit 623226ca authored by Thomas Seidl's avatar Thomas Seidl
Browse files

Issue #3352134 by drunken monkey: Fixed performance degradation with database backend in 1.29.

parent 1696c211
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
Search API 1.x, dev (xxxx-xx-xx):
---------------------------------
- #3352134 by drunken monkey: Fixed performance degradation with database
  backend in 1.29.
- #3263875 by Eduardo Morales Alberti, drunken monkey, GrumpySchlag: Fixed Behat
  integration.
- #3355677 by drunken monkey: Fixed incompatibility with PHP 7.3 in
+2 −10
Original line number Diff line number Diff line
@@ -1846,13 +1846,8 @@ class Database extends BackendPluginBase implements AutocompleteBackendInterface

    $condition_group = $query->getConditionGroup();
    $this->addLanguageConditions($condition_group, $query);
    // @todo #2877319 Maybe, like addLanguageConditions(), add a method here
    //   checking for the "search_api_location" option on the query and, if
    //   present, add new conditions based on the option(s) to the query.
    //   Or place the conditions directly on the query below this if block -
    //   in that case, you might need to remove any conditions on those fields
    //   from the query.
    if ($this->dbmsCompatibility instanceof LocationAwareDatabaseInterface) {
    if ($this->dbmsCompatibility instanceof LocationAwareDatabaseInterface
        && $query->getOption('search_api_location', [])) {
      $index_table = $this->getIndexDbInfo($query->getIndex())['index_table'];
      $index_table_alias = $this->getTableAlias(['table' => $index_table], $db_query);
      $this->dbmsCompatibility->addLocationFilter($index_table_alias, $query, $db_query);
@@ -2338,9 +2333,6 @@ class Database extends BackendPluginBase implements AutocompleteBackendInterface
          }
          elseif (($field_info['type'] ?? '') === 'location'
              && $this->dbmsCompatibility instanceof LocationAwareDatabaseInterface) {
            // @todo #2877319 Place filter on query, possibly also taking the
            //   options into account. Or, if this is handled somewhere else,
            //   simply ignore this condition.
            $this->dbmsCompatibility->addLocationDbCondition($field_info['column'], $value, $operator, $query, $db_query);
          }
          elseif ($not_between) {
+1 −1

File changed.

Contains only whitespace changes.