Optimizer Debugging With GDB
Some useful things for debugging optimizer code with gdb.
Printing the Optimizer Trace
The optimizer trace is collected as plain text. One can print the contents of the trace collected so far as follows:
printf "%s\n", thd->opt_trace->current_trace->current_json->output.str.Ptr
Printing Current Partial Join Prefix
best_access_path() is a function that adds another table to the join prefix.
When in or around that function, the following can be useful:
A macro to print the join prefix already constructed:
define bap_print_prefix set $i=0 while ($i < idx) p join->positions[$i++].table->table->alias.Ptr end end