Skip to content

Commit 99529a2

Browse files
committed
Bug#35813111: Use C++ standard library for more bit operations
[TablesContainedIn, noclose] The TablesContainedIn class provides iterators over qep_tab_map bitmaps. The implementation is very similar to BitIteratorAdaptor used by BitsSetIn() in bit_utils.h, only the latter is more general and reusable. Remove the TablesContainedIn class and instead use BitsSetIn(). Change-Id: I6e83686ebd56d2e86e7b6b582b84b2f1d9d51f14
1 parent 7991efd commit 99529a2

File tree

5 files changed

+22
-139
lines changed

5 files changed

+22
-139
lines changed

include/tables_contained_in.h

Lines changed: 0 additions & 93 deletions
This file was deleted.

sql/iterators/hash_join_buffer.cc

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,30 +22,21 @@
2222

2323
#include "sql/iterators/hash_join_buffer.h"
2424

25-
#include <assert.h>
26-
#include <cstddef>
27-
#include <cstring>
28-
#include <iterator>
29-
#include <new>
30-
#include <unordered_map>
31-
32-
#include "field_types.h"
25+
#include <algorithm>
26+
#include <cstdint>
27+
#include <stdexcept>
28+
#include <utility>
29+
3330
#include "my_alloc.h"
34-
#include "my_bitmap.h"
3531
#include "my_compiler.h"
36-
3732
#include "my_inttypes.h"
38-
#include "mysql/strings/m_ctype.h"
39-
#include "sql/field.h"
40-
#include "sql/handler.h"
33+
#include "my_sys.h"
34+
#include "mysqld_error.h"
35+
#include "sql/current_thd.h"
4136
#include "sql/item_cmpfunc.h"
42-
#include "sql/join_optimizer/bit_utils.h"
4337
#include "sql/psi_memory_key.h"
4438
#include "sql/sql_class.h"
45-
#include "sql/sql_executor.h"
46-
#include "sql/sql_optimizer.h"
47-
#include "sql/table.h"
48-
#include "tables_contained_in.h"
39+
#include "sql/system_variables.h"
4940
#include "template_utils.h"
5041

5142
using pack_rows::TableCollection;

sql/iterators/hash_join_buffer.h

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,25 +57,20 @@
5757
/// for implementing hash join.
5858

5959
#include <stddef.h>
60-
#include <stdint.h>
60+
#include <cassert>
6161
#include <memory>
62+
#include <string>
63+
#include <string_view>
6264
#include <vector>
6365

6466
#include "extra/robin-hood-hashing/robin_hood.h"
65-
#include "field_types.h"
66-
#include "map_helpers.h"
6767
#include "my_alloc.h"
68-
#include "my_inttypes.h"
69-
#include "my_table_map.h"
70-
#include "prealloced_array.h"
7168
#include "sql/immutable_string.h"
7269
#include "sql/item_cmpfunc.h"
7370
#include "sql/pack_rows.h"
74-
#include "sql/table.h"
7571
#include "sql_string.h"
7672

77-
class Field;
78-
class QEP_TAB;
73+
class THD;
7974

8075
namespace hash_join_buffer {
8176

sql/sql_executor.cc

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,13 @@
3838
#include <cassert>
3939
#include <cmath>
4040
#include <cstddef>
41-
#include <iterator>
41+
#include <cstring>
4242
#include <memory>
4343
#include <string>
44-
#include <type_traits>
4544
#include <utility>
4645
#include <vector>
4746

4847
#include "field_types.h"
49-
#include "lex_string.h"
5048
#include "mem_root_deque.h"
5149
#include "my_alloc.h"
5250
#include "my_base.h"
@@ -72,7 +70,8 @@
7270
#include "sql/item_cmpfunc.h"
7371
#include "sql/item_func.h"
7472
#include "sql/item_sum.h" // Item_sum
75-
#include "sql/iterators/sorting_iterator.h"
73+
#include "sql/iterators/basic_row_iterators.h"
74+
#include "sql/iterators/row_iterator.h"
7675
#include "sql/iterators/timing_iterator.h"
7776
#include "sql/join_optimizer/access_path.h"
7877
#include "sql/join_optimizer/bit_utils.h"
@@ -90,26 +89,25 @@
9089
#include "sql/opt_explain_format.h"
9190
#include "sql/opt_trace.h" // Opt_trace_object
9291
#include "sql/query_options.h"
92+
#include "sql/query_term.h"
9393
#include "sql/record_buffer.h" // Record_buffer
9494
#include "sql/sort_param.h"
9595
#include "sql/sql_array.h" // Bounds_checked_array
96-
#include "sql/sql_base.h" // fill_record
97-
#include "sql/sql_bitmap.h"
9896
#include "sql/sql_class.h"
97+
#include "sql/sql_cmd.h"
9998
#include "sql/sql_const.h"
10099
#include "sql/sql_delete.h"
101-
#include "sql/sql_executor.h"
102100
#include "sql/sql_list.h"
103101
#include "sql/sql_optimizer.h" // JOIN
104102
#include "sql/sql_resolver.h"
105103
#include "sql/sql_select.h"
104+
#include "sql/sql_sort.h"
106105
#include "sql/sql_tmp_table.h" // create_tmp_table
107106
#include "sql/sql_update.h"
108107
#include "sql/table.h"
109108
#include "sql/temp_table_param.h"
110109
#include "sql/visible_fields.h"
111110
#include "sql/window.h"
112-
#include "tables_contained_in.h"
113111
#include "template_utils.h"
114112
#include "thr_lock.h"
115113

@@ -827,8 +825,9 @@ static AccessPath *NewInvalidatorAccessPathForTable(
827825

828826
static table_map ConvertQepTabMapToTableMap(JOIN *join, qep_tab_map tables) {
829827
table_map map = 0;
830-
for (QEP_TAB *tab : TablesContainedIn(join, tables)) {
831-
map |= tab->table_ref->map();
828+
for (size_t idx : BitsSetIn(tables)) {
829+
assert(idx < join->tables);
830+
map |= join->qep_tab[idx].table_ref->map();
832831
}
833832
return map;
834833
}

sql/sql_executor.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,43 +29,34 @@
2929
*/
3030

3131
#include <sys/types.h>
32-
#include <cstring>
33-
#include <memory>
3432
#include <string>
3533
#include <vector>
3634

3735
#include "my_alloc.h"
3836
#include "my_inttypes.h"
3937
#include "my_table_map.h"
40-
#include "sql/iterators/row_iterator.h"
4138
#include "sql/sql_lex.h"
4239
#include "sql/sql_opt_exec_shared.h" // QEP_shared_owner
4340
#include "sql/table.h"
4441
#include "sql/temp_table_param.h" // Temp_table_param
4542

46-
class CacheInvalidatorIterator;
4743
class Cached_item;
4844
class Field;
4945
class Field_longlong;
5046
class Filesort;
51-
class FollowTailIterator;
5247
class Item;
5348
class Item_sum;
5449
class JOIN;
5550
class JOIN_TAB;
5651
class KEY;
57-
class MultiRangeRowIterator;
5852
class Opt_trace_object;
5953
class QEP_TAB;
6054
class RowIterator;
6155
class THD;
62-
class Window;
6356
template <class T>
6457
class mem_root_deque;
6558

66-
enum class Window_retrieve_cached_row_reason;
6759
struct AccessPath;
68-
struct CACHE_FIELD;
6960
struct POSITION;
7061
template <class T>
7162
class List;

0 commit comments

Comments
 (0)