Vova Vysotskyi created DRILL-7570:
-------------------------------------
Summary: Fix unstable statistics tests
Key: DRILL-7570
URL: https://issues.apache.org/jira/browse/DRILL-7570
Project: Apache Drill
Issue Type: Task
Affects Versions: 1.17.0
Reporter: Vova Vysotskyi
Assignee: Vova Vysotskyi
Fix For: 1.18.0
Drill contains tests for checking that statistics is applied, some of them also
use sampling to calculate statistics value.
Sampling adds limit above scan, but tests check the value of the estimated row
count to verify that statistics were applied. limit without sorting doesn't
guarantee consistent results, so these tests may fail sometime:
{noformat}
[ERROR] TestMetastoreCommands.testAnalyzeWithSampleStatistics:2739 Did not
find expected pattern in plan: Filter\(condition.*\).*rowcount = 96.25,
00-00 Screen : rowType = RecordType(ANY employee_id): rowcount = 105.0,
cumulative cost = {2530.5 rows, 7570.5 cpu, 2310.0 io, 0.0 network, 0.0
memory}, id = 336738
00-01 Project(employee_id=[$1]) : rowType = RecordType(ANY employee_id):
rowcount = 105.0, cumulative cost = {2520.0 rows, 7560.0 cpu, 2310.0 io, 0.0
network, 0.0 memory}, id = 336737
00-02 SelectionVectorRemover : rowType = RecordType(ANY department_id,
ANY employee_id): rowcount = 105.0, cumulative cost = {2415.0 rows, 7455.0 cpu,
2310.0 io, 0.0 network, 0.0 memory}, id = 336736
00-03 Filter(condition=[=($0, 2)]) : rowType = RecordType(ANY
department_id, ANY employee_id): rowcount = 105.0, cumulative cost = {2310.0
rows, 7350.0 cpu, 2310.0 io, 0.0 network, 0.0 memory}, id = 336735
00-04 Scan(table=[[dfs, tmp, employeeWithStatsFile]],
groupscan=[ParquetGroupScan [entries=[ReadEntryWithPath
[path=/home/runner/work/drill/drill/exec/java-exec/target/org.apache.drill.exec.sql.TestMetastoreCommands/dfsTestTmp/1580901135676-0/employeeWithStatsFile/0_0_0.parquet]],
selectionRoot=/home/runner/work/drill/drill/exec/java-exec/target/org.apache.drill.exec.sql.TestMetastoreCommands/dfsTestTmp/1580901135676-0/employeeWithStatsFile,
numFiles=1, numRowGroups=1, usedMetadataFile=false, usedMetastore=true,
filter=equal(`department_id`, 2) , columns=[`department_id`, `employee_id`]]])
: rowType = RecordType(ANY department_id, ANY employee_id): rowcount = 1155.0,
cumulative cost = {1155.0 rows, 2310.0 cpu, 2310.0 io, 0.0 network, 0.0
memory}, id = 336734
expected:<true> but was:<false> {noformat}
List of tests to fix:
- TestMetastoreCommands.testAnalyzeWithSampleStatistics;
- TestAnalyze.testHistogramWithSubsetColumnsAndSampling
- TestAnalyze.basic3
--
This message was sent by Atlassian Jira
(v8.3.4#803005)