1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-22 15:31:28 +02:00

Merge branch '3.2.x'

This commit is contained in:
Marc Alexander 2017-12-22 19:52:21 +01:00
commit 7ef4be39a5
No known key found for this signature in database
GPG Key ID: 50E0D2423696F995

View File

@ -591,6 +591,7 @@ class fulltext_mysql extends \phpbb\search\base
WHERE MATCH ($sql_match) AGAINST ('" . $this->db->sql_escape(htmlspecialchars_decode($this->search_query)) . "' IN BOOLEAN MODE) WHERE MATCH ($sql_match) AGAINST ('" . $this->db->sql_escape(htmlspecialchars_decode($this->search_query)) . "' IN BOOLEAN MODE)
$sql_where_options $sql_where_options
ORDER BY $sql_sort"; ORDER BY $sql_sort";
$this->db->sql_return_on_error(true);
$result = $this->db->sql_query_limit($sql, $this->config['search_block_size'], $start); $result = $this->db->sql_query_limit($sql, $this->config['search_block_size'], $start);
while ($row = $this->db->sql_fetchrow($result)) while ($row = $this->db->sql_fetchrow($result))
@ -602,7 +603,7 @@ class fulltext_mysql extends \phpbb\search\base
$id_ary = array_unique($id_ary); $id_ary = array_unique($id_ary);
// if the total result count is not cached yet, retrieve it from the db // if the total result count is not cached yet, retrieve it from the db
if (!$result_count) if (!$result_count && count($id_ary))
{ {
$sql_found_rows = 'SELECT FOUND_ROWS() as result_count'; $sql_found_rows = 'SELECT FOUND_ROWS() as result_count';
$result = $this->db->sql_query($sql_found_rows); $result = $this->db->sql_query($sql_found_rows);
@ -1004,6 +1005,11 @@ class fulltext_mysql extends \phpbb\search\base
} }
} }
if (!isset($this->stats['post_text']))
{
$this->db->sql_query('ALTER TABLE ' . POSTS_TABLE . ' ADD FULLTEXT post_text (post_text)');
}
$this->db->sql_query('TRUNCATE TABLE ' . SEARCH_RESULTS_TABLE); $this->db->sql_query('TRUNCATE TABLE ' . SEARCH_RESULTS_TABLE);
return false; return false;
@ -1039,6 +1045,11 @@ class fulltext_mysql extends \phpbb\search\base
$alter[] = 'DROP INDEX post_content'; $alter[] = 'DROP INDEX post_content';
} }
if (isset($this->stats['post_text']))
{
$alter[] = 'DROP INDEX post_text';
}
if (count($alter)) if (count($alter))
{ {
$this->db->sql_query('ALTER TABLE ' . POSTS_TABLE . ' ' . implode(', ', $alter)); $this->db->sql_query('ALTER TABLE ' . POSTS_TABLE . ' ' . implode(', ', $alter));
@ -1059,7 +1070,7 @@ class fulltext_mysql extends \phpbb\search\base
$this->get_stats(); $this->get_stats();
} }
return isset($this->stats['post_subject']) && isset($this->stats['post_content']); return isset($this->stats['post_subject']) && isset($this->stats['post_content']) && isset($this->stats['post_text']);
} }
/** /**
@ -1103,6 +1114,10 @@ class fulltext_mysql extends \phpbb\search\base
{ {
$this->stats['post_subject'] = $row; $this->stats['post_subject'] = $row;
} }
else if ($row['Key_name'] == 'post_text')
{
$this->stats['post_text'] = $row;
}
else if ($row['Key_name'] == 'post_content') else if ($row['Key_name'] == 'post_content')
{ {
$this->stats['post_content'] = $row; $this->stats['post_content'] = $row;