Details
-
Improvement
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
Full explain returns detailed information about a query plan which is very useful in
determining if the chosen plan is as expected and other details about it.
But returned output contains information that may vary from run to run, or from one
system to another, or may be data dependent, and so on.
Some examples are UIDs, or cost/memory estimates, or number of cpus/nodes, etc.
Currently these variations are handled by checking in the new expected files (bad idea),
or creating known diff files, or adding filters, or selecting specific fields from explain virtual
table, or just not using explain.
This jira proposes a new option which when specified, will filter and mask fields that
are variant and change.
The option is called 'c' (cleanse) and could be specified as part
of explain "options '<str>' " clause. It works with both full explain and formatted explain.
This option is useful when running regressions where one need to validate enhancements
and other changes that do not involve costing/estimates/dop etc related values.
This option should not be used when those values are important.
For ex, if a scan is expected to return 100 rows and explain need to show that, or
if a query should use 4 esps, then using the 'c' option will mask it.