1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-33281 Optimizer hints code cleanup:

- remove get_args_printer() from hints printing
 - add append_hint_arguments(THD *thd, opt_hints_enum hint, String *str)
 - add more comments
 - rename st_opt_hint_info::hint_name to hint_type
 - add pptimizer trace support for hints
 - add dbug_print_hints()
 - make print_warn() not be a template
 - introduce Printable_parser_rule interface, make grammar rules that
     emit warnings implement it  and print_warn invokes its function)
 - remove Parser::Hint::append_args() as it is not used anywhere
     (it used to be necessary call print_warn(... (Parser::Hint*)NULL);
This commit is contained in:
Sergei Petrunia
2024-12-08 22:03:01 +02:00
committed by Oleg Smirnov
parent 0e088b5d7e
commit c4fe794d22
10 changed files with 216 additions and 168 deletions

View File

@@ -1260,6 +1260,13 @@ public:
*/
table_map select_list_tables;
/*
Parse tree of optimizer hints that were specified in this SELECT. Note
that hints specified in one select can prescribe how to execute another.
*/
const Optimizer_hint_parser_output *parsed_optimizer_hints;
/* Optimizer hints that prescribe how to execute this SELECT */
Opt_hints_qb *opt_hints_qb;
/* Set to 1 if any field in field list has ROWNUM() */
@@ -1273,8 +1280,6 @@ public:
/* it is for correct printing SELECT options */
thr_lock_type lock_type;
const Optimizer_hint_parser_output *parsed_optimizer_hints;
/** System Versioning */
int vers_setup_conds(THD *thd, TABLE_LIST *tables);
/* push new Item_field into item_list */