summaryrefslogtreecommitdiff
path: root/sql/sql_explain.h
diff options
context:
space:
mode:
authorSergei Petrunia <psergey@askmonty.org>2021-04-15 00:19:13 +0300
committerSergei Petrunia <psergey@askmonty.org>2021-04-17 00:05:29 +0300
commit2656e876828c2d3cb05bd698fc641e333c336034 (patch)
tree7164aca065740925f5c47b2413cda3564eae64b0 /sql/sql_explain.h
parent3f138fa3a53383b98a934aae72667390ea3bf2eb (diff)
downloadmariadb-git-2656e876828c2d3cb05bd698fc641e333c336034.tar.gz
Cleanup: fake_select_lex->select_number=FAKE_SELECT_LEX_ID, not [U]INT_MAX
SELECT_LEX objects that are "fake_select_lex" (i.e read UNION output) used both INT_MAX and UINT_MAX as select_number. - mysql_explain_union() assigned UINT_MAX - st_select_lex_unit::add_fake_select_lex assigned INT_MAX This didn't matter initially (before EXPLAIN FORMAT=JSON), because the code had no checks for this value. EXPLAIN FORMAT=JSON and later other features did introduce checks for select_number values. The check had to check for two constants and looked really confusing. This patch joins the two constants into one - FAKE_SELECT_LEX_ID.
Diffstat (limited to 'sql/sql_explain.h')
-rw-r--r--sql/sql_explain.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/sql/sql_explain.h b/sql/sql_explain.h
index 9090416847f..42590e0bea0 100644
--- a/sql/sql_explain.h
+++ b/sql/sql_explain.h
@@ -74,7 +74,7 @@ class Json_writer;
*************************************************************************************/
-const int FAKE_SELECT_LEX_ID= (int)UINT_MAX;
+const uint FAKE_SELECT_LEX_ID= UINT_MAX;
class Explain_query;
@@ -108,7 +108,7 @@ public:
};
virtual enum explain_node_type get_type()= 0;
- virtual int get_select_id()= 0;
+ virtual uint get_select_id()= 0;
/**
expression cache statistics
@@ -166,9 +166,9 @@ public:
bool add_table(Explain_table_access *tab, Explain_query *query);
- int get_select_id() { return select_id; }
+ uint get_select_id() { return select_id; }
- int select_id;
+ uint select_id;
int print_explain(Explain_query *query, select_result_sink *output,
uint8 explain_flags, bool is_analyze);
@@ -352,7 +352,7 @@ public:
enum explain_node_type get_type() { return EXPLAIN_UNION; }
unit_common_op operation;
- int get_select_id()
+ uint get_select_id()
{
DBUG_ASSERT(union_members.elements() > 0);
return union_members.at(0);
@@ -879,7 +879,7 @@ public:
{}
virtual enum explain_node_type get_type() { return EXPLAIN_UPDATE; }
- virtual int get_select_id() { return 1; /* always root */ }
+ virtual uint get_select_id() { return 1; /* always root */ }
const char *select_type;
@@ -959,7 +959,7 @@ public:
StringBuffer<64> table_name;
enum explain_node_type get_type() { return EXPLAIN_INSERT; }
- int get_select_id() { return 1; /* always root */ }
+ uint get_select_id() { return 1; /* always root */ }
int print_explain(Explain_query *query, select_result_sink *output,
uint8 explain_flags, bool is_analyze);
@@ -986,7 +986,7 @@ public:
bool deleting_all_rows;
virtual enum explain_node_type get_type() { return EXPLAIN_DELETE; }
- virtual int get_select_id() { return 1; /* always root */ }
+ virtual uint get_select_id() { return 1; /* always root */ }
virtual int print_explain(Explain_query *query, select_result_sink *output,
uint8 explain_flags, bool is_analyze);