mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-15 09:42:58 +00:00
* fix unit tests * fix: sqlness * fix/default-time-window: ## Add Helper Functions and Enhance Compaction Tests - **Refactor Compaction Logic**: Introduced helper functions `flush` and `compact` in `compaction_test.rs` to streamline compaction operations. - **Enhance Compaction Tests**: Added a new test `test_infer_compaction_time_window` in `compaction_test.rs` to verify compaction time window inference. - **Testing Improvements**: Added `#[cfg(test)]` attribute to `new_multi_partitions` in `time_partition.rs` to ensure it's only included in test builds. * fix/default-time-window: - **Refactor `TimePartition` Struct**: Removed unnecessary comments regarding `time_range` in `time_partition.rs`. - **Enhance `TimePartitions` Functionality**: Added a method `part_duration_or_default` to provide a default partition duration in `time_partition.rs`. - **Update SQL Test Cases**: Modified SQL operations and expected results in `scan_big_varchar.result` and `scan_big_varchar.sql` to reflect changes in data manipulation logic. * fix/default-time-window: ### Update Time Partition Default Duration - **Refactor Default Duration**: Introduced `INITIAL_TIME_WINDOW` constant to define the default time window duration as `Duration::from_days(1)`. This change replaces multiple instances of the hardcoded default duration across the `time_partition.rs` file. - **Files Affected**: `time_partition.rs` * fix/default-time-window: ## Update Partition Duration Handling - **`time_partition.rs`**: Refactored `part_duration` to be non-optional, removing `Option` wrapper. Updated logic to use `unwrap_or` with `INITIAL_TIME_WINDOW` where necessary. Adjusted related methods and tests to accommodate this change. - **`version.rs` (memtable and region)**: Updated handling of `part_duration` to align with changes in `time_partition.rs`, ensuring consistent use of non-optional `Duration`. * fix/default-time-window: ### Improve Error Context in `time_partition.rs` - Enhanced error context message in `time_partition.rs` to provide clearer information on partition time range issues, including bucket size details. Signed-off-by: Lei, HUANG <lhuang@greptime.com> --------- Signed-off-by: Lei, HUANG <lhuang@greptime.com>
110 lines
3.5 KiB
SQL
110 lines
3.5 KiB
SQL
CREATE TABLE phy (ts timestamp time index, val double) engine=metric with ("physical_metric_table" = "");
|
|
|
|
SHOW TABLES;
|
|
|
|
DESC TABLE phy;
|
|
|
|
-- create table with duplicate column def
|
|
CREATE TABLE t1(ts timestamp time index, val double, host text, host string) engine=metric with ("on_physical_table" = "phy");
|
|
|
|
CREATE TABLE t1 (ts timestamp time index, val double, host string primary key) engine = metric with ("on_physical_table" = "phy");
|
|
|
|
CREATE TABLE t2 (ts timestamp time index, job string primary key, val double) engine = metric with ("on_physical_table" = "phy");
|
|
|
|
-- create logical table with different data type on field column
|
|
CREATE TABLE t3 (ts timestamp time index, val string, host string, primary key (host)) engine=metric with ("on_physical_table" = "phy");
|
|
|
|
-- create logical table with different data type on tag column
|
|
CREATE TABLE t4 (ts timestamp time index, val double, host double, primary key (host)) engine=metric with ("on_physical_table" = "phy");
|
|
|
|
-- create logical table with different column name on field column
|
|
CREATE TABLE t5 (ts timestamp time index, valval double, host string primary key) engine = metric with ("on_physical_table" = "phy");
|
|
|
|
-- create logical table with different time unit on time index column
|
|
CREATE TABLE t6 (ts timestamp(6) time index, job string primary key, val double) engine = metric with ("on_physical_table" = "phy");
|
|
|
|
SELECT table_catalog, table_schema, table_name, table_type, engine FROM information_schema.tables WHERE engine = 'metric' order by table_name;
|
|
|
|
DESC TABLE phy;
|
|
|
|
SHOW CREATE TABLE phy;
|
|
|
|
DESC TABLE t1;
|
|
|
|
DESC TABLE t2;
|
|
|
|
-- should be failed
|
|
-- SQLNESS REPLACE (region\s\d+\(\d+\,\s\d+\)) region
|
|
DROP TABLE phy;
|
|
-- metadata should be restored
|
|
DESC TABLE phy;
|
|
|
|
DROP TABLE t1;
|
|
|
|
DROP TABLE t2;
|
|
|
|
DROP TABLE phy;
|
|
|
|
-- create one with other primary keys
|
|
CREATE TABLE phy2 (ts timestamp time index, val double, abc string, def string, primary key (abc, def)) engine=metric with ("physical_metric_table" = "");
|
|
|
|
DESC TABLE phy2;
|
|
|
|
DROP TABLE phy2;
|
|
|
|
-- fuzz test case https://github.com/GreptimeTeam/greptimedb/issues/3612
|
|
CREATE TABLE `auT`(
|
|
incidunt TIMESTAMP(3) TIME INDEX,
|
|
`REPREHenDERIt` double DEFAULT 0.70978713,
|
|
`cOMmodi` STRING,
|
|
`PERfERENdIS` STRING,
|
|
PRIMARY KEY(`cOMmodi`, `PERfERENdIS`)
|
|
) ENGINE = metric with ("physical_metric_table" = "");
|
|
|
|
DESC TABLE `auT`;
|
|
|
|
DROP TABLE `auT`;
|
|
|
|
-- append-only metric table
|
|
CREATE TABLE
|
|
phy (ts timestamp time index, val double) engine = metric
|
|
with
|
|
(
|
|
"physical_metric_table" = "",
|
|
"append_mode" = "true"
|
|
);
|
|
|
|
CREATE TABLE t1(ts timestamp time index, val double, host string primary key) engine=metric with ("on_physical_table" = "phy");
|
|
|
|
INSERT INTO t1 (ts, val, host) VALUES
|
|
('2022-01-01 00:00:00', 1.23, 'example.com'),
|
|
('2022-01-02 00:00:00', 4.56, 'example.com'),
|
|
('2022-01-03 00:00:00', 7.89, 'example.com'),
|
|
('2022-01-01 00:00:00', 1.23, 'example.com'),
|
|
('2022-01-02 00:00:00', 4.56, 'example.com'),
|
|
('2022-01-03 00:00:00', 7.89, 'example.com');
|
|
|
|
SELECT * FROM t1 ORDER BY ts ASC;
|
|
|
|
DROP TABLE t1;
|
|
|
|
DESC TABLE t1;
|
|
|
|
DROP TABLE phy;
|
|
|
|
CREATE TABLE phy (ts timestamp time index, val double) engine=metric with ("physical_metric_table" = "", "index.type" = "skipping", "index.granularity" = "8192");
|
|
|
|
SHOW CREATE TABLE phy;
|
|
|
|
CREATE TABLE t1 (ts timestamp time index, val double, host string primary key) engine=metric with ("on_physical_table" = "phy");
|
|
|
|
SHOW CREATE TABLE phy;
|
|
|
|
SHOW INDEX FROM phy;
|
|
|
|
DROP TABLE t1;
|
|
|
|
DROP TABLE phy;
|
|
|
|
CREATE TABLE phy (ts timestamp time index, val double) engine=metric with ("physical_metric_table" = "", "index.type" = "hihi", "index.granularity" = "8192");
|