Skip to content

Commit

Permalink
fix: append table stats (#4561)
Browse files Browse the repository at this point in the history
* fix: append table stats

* fix: clippy
  • Loading branch information
v0y4g3r authored Aug 14, 2024
1 parent 0f85037 commit c1b1be4
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/table/src/table/scan.rs
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ impl ExecutionPlan for RegionScanExec {
.iter()
.map(|_| ColumnStatistics {
distinct_count: Precision::Exact(self.total_rows),
null_count: Precision::Exact(0), // all null rows are counted for append-only table
..Default::default()
})
.collect();
Expand Down
34 changes: 34 additions & 0 deletions tests/cases/distributed/explain/analyze_append_table_count.result
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
CREATE TABLE IF NOT EXISTS `test_table` (
`bytes` BIGINT NULL,
`http_version` STRING NULL,
`ip` STRING NULL,
`method` STRING NULL,
`path` STRING NULL,
`status` SMALLINT UNSIGNED NULL,
`user` STRING NULL,
`timestamp` TIMESTAMP(3) NOT NULL,
TIME INDEX (`timestamp`),
PRIMARY KEY (`user`, `path`, `status`)
)
ENGINE=mito
WITH(
append_mode = 'true'
);

Affected Rows: 0

-- SQLNESS REPLACE (metrics.*) REDACTED
-- SQLNESS REPLACE (peers.*) REDACTED
EXPLAIN ANALYZE SELECT count(*) FROM test_table;

+-------+------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| stage | node | plan |
+-------+------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 0 | 0 | MergeScanExec: REDACTED
| | | |
| 1 | 0 | ProjectionExec: expr=[0 as COUNT(test_table.timestamp)] REDACTED
| | | common_recordbatch::adapter::MetricCollector REDACTED
| | | |
| | | Total rows: 1 |
+-------+------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

21 changes: 21 additions & 0 deletions tests/cases/distributed/explain/analyze_append_table_count.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
CREATE TABLE IF NOT EXISTS `test_table` (
`bytes` BIGINT NULL,
`http_version` STRING NULL,
`ip` STRING NULL,
`method` STRING NULL,
`path` STRING NULL,
`status` SMALLINT UNSIGNED NULL,
`user` STRING NULL,
`timestamp` TIMESTAMP(3) NOT NULL,
TIME INDEX (`timestamp`),
PRIMARY KEY (`user`, `path`, `status`)
)

ENGINE=mito
WITH(
append_mode = 'true'
);

-- SQLNESS REPLACE (metrics.*) REDACTED
-- SQLNESS REPLACE (peers.*) REDACTED
EXPLAIN ANALYZE SELECT count(*) FROM test_table;

0 comments on commit c1b1be4

Please sign in to comment.