summaryrefslogtreecommitdiff
path: root/mysql-test/main/opt_trace.result
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-24975 Server consumes extra 4G memory upon querying ↵Sergei Golubchik2021-03-081-0/+9
| | | | | | | | | | INFORMATION_SCHEMA.OPTIIMIZER_TRACE if a query used no fields from an I_S table, we were creating a temp table with one, first, field (as a table cannot have zero fields), with its length truncated to 1. Now - force also this dummy field to be a normal field, not a BLOB
* MDEV-22910: SIGSEGV in Opt_trace_context::is_started & SIGSEGV in ↵Varun Gupta2020-06-301-0/+31
| | | | | | | | Json_writer::add_table_name (on optimized builds) Make sure to initialize members of TABLE::reginfo when TABLE::init is called. In this case the problem was that table->reginfo.join_tab was set for the SELECT query and then was reused by the UPDATE query. This case occurred only when the SELECT query had a degenerate join.
* MDEV-22665: Print ranges in the optimizer trace created for non-indexed ↵Varun Gupta2020-06-181-1/+95
| | | | | | columns when optimizer_use_condition_selectivity >2 Now the optimizer trace shows the ranges constructed while getting estimates from EITS
* MDEV-21626: Optimizer misses the details about the picked join orderVarun Gupta2020-06-041-0/+173
| | | | Added cost of sorting estimate to the optimizer trace
* Add an end marker to a testMarko Mäkelä2020-05-041-0/+1
|
* MDEV-22401: Optimizer trace: multi-component range is not printed correctlySergei Petrunia2020-04-291-0/+31
| | | | | | | | | | | | | | KEY_MULTI_RANGE::range_flag does not have correct flag bits for per-endpoint flags (NEAR_MIN, NEAR_MAX, NO_MIN_RANGE, NO_MAX_RANGE). It only has bits for flags that describe both endpoints. So - Document this. - Switch optimizer trace to using {start|end}_key.flag values, instead. This fixes the bug. - Switch records_in_column_ranges() to doing that too. (This used to work, because KEY_MULTI_RANGE::range_flag had correct flag value for the last key component, and EITS only uses one-component pseudo-indexes)
* MDEV-22014: Rowid Filtering is not displayed well in the optimizer traceSergei Petrunia2020-04-021-249/+161
| | | | | | - Print the rowid filters that are available for use with each table. - Make print_best_access_for_table() print which filter it has picked. - Make best_access_path() print the filter for considered ref accesses.
* Removed double records_in_range calls from multi_range_read_info_constMonty2020-03-171-6/+6
| | | | | | | | | | | | | | This was to remove a performance regression between 10.3 and 10.4 In 10.5 we will have a better implementation of records_in_range that will enable us to get more statistics. This change was not done in 10.4 because the 10.5 will be part of a larger change that is not suitable for the GA 10.4 version Other things: - Changed default handler block_size to 8192 to fix things statistics for engines that doesn't set the block size. - Fixed a bug in spider when using multiple part const ranges (Patch from Kentoku)
* Merge 10.3 into 10.4Marko Mäkelä2019-09-231-1/+1
| | | | Disable MDEV-20576 assertions until MDEV-20595 has been fixed.
* MDEV-20440: Optimizer trace: print more details about semi-join optimizationSergei Petrunia2019-09-121-5/+12
| | | | Followup patch: fix typos
* MDEV-20444: More information regarding access of a table to be printed ↵Varun Gupta2019-09-111-160/+1150
| | | | | | | | | inside the optimizer_trace Added: 1) estimated_join_cardinality 2) best_chosen_access_method for a table 3) best_join_order
* Merge 10.3 into 10.4Marko Mäkelä2019-08-311-92/+165
|
* MDEV-6111: Optimizer Trace: add tracing for semi-join optimizationsSergei Petrunia2019-08-251-10/+263
| | | | | | | | Added: - "semijoin_strategy_choice" element (actions in advance_sj_state(), name matches the name in MySQL) - semijoin_table_pullout element.
* MDEV-20349: Assertion `to_len >= 8' failed in convert_to_printableVarun Gupta2019-08-161-0/+42
| | | | Use convert_to_printable function to write only non-empty ranges to the optimizer trace
* Fix main.opt_traceMarko Mäkelä2019-08-141-0/+1
| | | | This was broken in 2dbe472ed011a951b28434ae8e67945e964d2030
* Optimizer trace: print cost and #rows of the join prefixSergei Petrunia2019-08-131-33/+454
| | | | | The names rows_for_plan and cost_for_plan follow MySQL Also added post-join-operation selectivity cost
* MDEV-19776: Assertion `to_len >= 8' failed in convert_to_printable with ↵Varun Gupta2019-06-201-0/+8
| | | | | | | optimizer trace enabled Introduced the convert_to_printable_required_length to return the correct length(taking into consideration of dots in the case of error messages).
* Merge 10.3 into 10.4Marko Mäkelä2019-06-121-10/+10
|
* MDEV-18880: Optimizer trace prints date in hexadecimalVarun2019-06-111-6/+292
| | | | | Introduced a print_key_value function to makes sure that the trace prints data in readable format for readable characters and the rest of the characters are printed as hexadecimal.
* MDEV-18741: Optimizer trace: multi-part key ranges are printed incorrectlyVarun Gupta2019-05-281-21/+255
| | | | | | | | Changed the function append_range_all_keyparts to use sel_arg_range_seq_init / sel_arg_range_seq_next to produce ranges. Also adjusted to print format for the ranges, now the ranges are printed as: (keypart1_min, keypart2_min,..) OP (keypart1_name,keypart2_name, ..) OP (keypart1_max,keypart2_max, ..) Also added more tests for range and index merge access for optimizer trace
* MDEV-18942: Json_writer::add_bool: Conditional jump or move depends on ↵Varun Gupta2019-04-031-0/+13
| | | | | | | uninitialised value upon fulltext search under optimizer trace For keyuse of fulltext set the value for null_rejecting to FALSE as we don't add NOT NULL keys for fulltext keyuses
* MDEV-18810: Optimizer trace typo: cumulateed_index_scan_costVarun Gupta2019-03-131-1/+1
| | | | Fixed the typo and updated the test results
* Minor cleanup in the optimizer trace code.Varun Gupta2019-02-181-190/+2703
| | | | More test coverage added for the optimizer trace.
* MDEV-18608: Defaults for 10.4: histogram size should be setSergei Petrunia2019-02-181-7/+7
| | | | | | | | | | | | | | | | Change the defaults: -histogram_size=0 +histogram_size=254 -histogram_type=SINGLE_PREC_HB +histogram_type=DOUBLE_PREC_HB Adjust the testcases: - Some have ignorable changes in EXPLAIN outputs and more counter increments due to EITS table reads. - Testcases that meaningfully depend on the old defaults are changed to use the old values.
* Merge branch '10.4' into bb-10.4-mdev16188Igor Babaev2019-02-141-89/+101
|
* MDEV-6111 Optimizer TraceVarun Gupta2019-02-131-0/+3499
This task involves the implementation for the optimizer trace. This feature produces a trace for any SELECT/UPDATE/DELETE/, which contains information about decisions taken by the optimizer during the optimization phase (choice of table access method, various costs, transformations, etc). This feature would help to tell why some decisions were taken by the optimizer and why some were rejected. Trace is session-local, controlled by the @@optimizer_trace variable. To enable optimizer trace we need to write: set @@optimizer_trace variable= 'enabled=on'; To display the trace one can run: SELECT trace FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; This task also involves: MDEV-18489: Limit the memory used by the optimizer trace introduces a switch optimizer_trace_max_mem_size which limits the memory used by the optimizer trace. This was implemented by Sergei Petrunia.