Signed-off-by: Ahmed Hussein (amahussein) a@ahussein.me
Fixes #1019
What this PR fixes:
Fixes a bug introduced by #1000 where the Potential Problems of file sql_duration_and_executor_cpu_time_percent.csv generated by CSV file would be empty.
Fixes an old bug in the Qual tool caused by processing SQLplan as they are being created "SQLExecutionStart" and AQEUpdate. this bug was leaving some duplicate records in the SQL-to-problematic
Changes:
In order to fix the Old Bug caused by AQEs:
Avoid processing SQLPlans by the event handler. Instead, process the plan after all the eventlogs are processed.
This implies removing QualificationAppInfo.processSQLPlan since the logic is the same as AppSQLPlanAnalyzer.processSQLPlanMetrics()
Fix the implementation of RunningQualificationApp to make sure that QualificationAppInfo.processSQLPlan is called before aggregateStats(). Otherwise, the RunningQualificationApp would have empty dataSources/problematics/writeDataFormats
In order to fix the empty column:
Broke the logic of AppSQLPlanAnalyzer.processSQLPlanMetrics() into visitNode() that is separate from the main loop.
Created QualSQLPlanAnalyzer that extends AppSQLPlanAnalyzer overriding the visitNode() to be able to update the WriteDataFromats
Misc changes:
changed Some datastructure types to preserve the order of insertion or order of Keys.
For unit-tests: Updated the order of the unsupported execs in the expected Qualification Execs.
Signed-off-by: Ahmed Hussein (amahussein) a@ahussein.me
Fixes #1019
What this PR fixes:
Potential Problems
of filesql_duration_and_executor_cpu_time_percent.csv
generated by CSV file would be empty.SQLExecutionStart
" andAQEUpdate
. this bug was leaving some duplicate records in the SQL-to-problematicChanges:
QualificationAppInfo.processSQLPlan
since the logic is the same asAppSQLPlanAnalyzer.processSQLPlanMetrics()
RunningQualificationApp
to make sure thatQualificationAppInfo.processSQLPlan
is called beforeaggregateStats()
. Otherwise, the RunningQualificationApp would have empty dataSources/problematics/writeDataFormatsAppSQLPlanAnalyzer.processSQLPlanMetrics()
intovisitNode()
that is separate from the main loop.QualSQLPlanAnalyzer
that extendsAppSQLPlanAnalyzer
overriding thevisitNode()
to be able to update the WriteDataFromats