mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2025-12-22 22:20:02 +00:00
* initial impl Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * simplify impl Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * sqlness test Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * avoid unimplemented panic Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * validate flow Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * update sqlness result Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * fix table column comment Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * table level comment Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * simplify table info serde Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * don't txn Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * remove empty trait Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * wip: procedure Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * update proto Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * grpc support Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * Apply suggestions from code review Co-authored-by: dennis zhuang <killme2008@gmail.com> Co-authored-by: LFC <990479+MichaelScofield@users.noreply.github.com> Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * try from pb struct Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * doc comment Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * check unchanged fast case Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * tune errors Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * fix merge error Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * use try_as_raw_value Signed-off-by: Ruihang Xia <waynestxia@gmail.com> --------- Signed-off-by: Ruihang Xia <waynestxia@gmail.com> Co-authored-by: dennis zhuang <killme2008@gmail.com> Co-authored-by: LFC <990479+MichaelScofield@users.noreply.github.com>
332 lines
9.8 KiB
Plaintext
332 lines
9.8 KiB
Plaintext
-- test ttl = instant
|
|
CREATE TABLE distinct_basic (
|
|
number INT,
|
|
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY(number),
|
|
TIME INDEX(ts)
|
|
)WITH ('ttl' = 'instant');
|
|
|
|
Affected Rows: 0
|
|
|
|
-- should fallback to streaming mode
|
|
-- SQLNESS REPLACE id=\d+ id=REDACTED
|
|
CREATE FLOW test_distinct_basic SINK TO out_distinct_basic AS
|
|
SELECT
|
|
DISTINCT number as dis
|
|
FROM
|
|
distinct_basic;
|
|
|
|
Affected Rows: 0
|
|
|
|
-- flow_options should have a flow_type:streaming
|
|
-- since source table's ttl=instant
|
|
SELECT flow_name, options FROM INFORMATION_SCHEMA.FLOWS;
|
|
|
|
+---------------------+---------------------------+
|
|
| flow_name | options |
|
|
+---------------------+---------------------------+
|
|
| test_distinct_basic | {"flow_type":"streaming"} |
|
|
+---------------------+---------------------------+
|
|
|
|
SHOW CREATE TABLE distinct_basic;
|
|
|
|
+----------------+-----------------------------------------------------------+
|
|
| Table | Create Table |
|
|
+----------------+-----------------------------------------------------------+
|
|
| distinct_basic | CREATE TABLE IF NOT EXISTS "distinct_basic" ( |
|
|
| | "number" INT NULL, |
|
|
| | "ts" TIMESTAMP(3) NOT NULL DEFAULT current_timestamp(), |
|
|
| | TIME INDEX ("ts"), |
|
|
| | PRIMARY KEY ("number") |
|
|
| | ) |
|
|
| | |
|
|
| | ENGINE=mito |
|
|
| | WITH( |
|
|
| | ttl = 'instant' |
|
|
| | ) |
|
|
+----------------+-----------------------------------------------------------+
|
|
|
|
-- SQLNESS REPLACE \d{4} REDACTED
|
|
SHOW CREATE TABLE out_distinct_basic;
|
|
|
|
+--------------------+---------------------------------------------------+
|
|
| Table | Create Table |
|
|
+--------------------+---------------------------------------------------+
|
|
| out_distinct_basic | CREATE TABLE IF NOT EXISTS "out_distinct_basic" ( |
|
|
| | "dis" INT NULL, |
|
|
| | "update_at" TIMESTAMP(3) NULL, |
|
|
| | "__ts_placeholder" TIMESTAMP(3) NOT NULL, |
|
|
| | TIME INDEX ("__ts_placeholder"), |
|
|
| | PRIMARY KEY ("dis") |
|
|
| | ) |
|
|
| | |
|
|
| | ENGINE=mito |
|
|
| | WITH( |
|
|
| | 'comment' = 'Sink table for flow flow-id=REDACTED' |
|
|
| | ) |
|
|
+--------------------+---------------------------------------------------+
|
|
|
|
-- SQLNESS SLEEP 3s
|
|
INSERT INTO
|
|
distinct_basic
|
|
VALUES
|
|
(20, "2021-07-01 00:00:00.200"),
|
|
(20, "2021-07-01 00:00:00.200"),
|
|
(22, "2021-07-01 00:00:00.600");
|
|
|
|
Affected Rows: 0
|
|
|
|
-- SQLNESS REPLACE (ADMIN\sFLUSH_FLOW\('\w+'\)\s+\|\n\+-+\+\n\|\s+)[0-9]+\s+\| $1 FLOW_FLUSHED |
|
|
ADMIN FLUSH_FLOW('test_distinct_basic');
|
|
|
|
+-----------------------------------------+
|
|
| ADMIN FLUSH_FLOW('test_distinct_basic') |
|
|
+-----------------------------------------+
|
|
| FLOW_FLUSHED |
|
|
+-----------------------------------------+
|
|
|
|
SELECT
|
|
dis
|
|
FROM
|
|
out_distinct_basic;
|
|
|
|
+-----+
|
|
| dis |
|
|
+-----+
|
|
| 20 |
|
|
| 22 |
|
|
+-----+
|
|
|
|
SELECT number FROM distinct_basic;
|
|
|
|
++
|
|
++
|
|
|
|
-- SQLNESS SLEEP 6s
|
|
ADMIN FLUSH_TABLE('distinct_basic');
|
|
|
|
+-------------------------------------+
|
|
| ADMIN FLUSH_TABLE('distinct_basic') |
|
|
+-------------------------------------+
|
|
| 0 |
|
|
+-------------------------------------+
|
|
|
|
INSERT INTO
|
|
distinct_basic
|
|
VALUES
|
|
(23, "2021-07-01 00:00:01.600");
|
|
|
|
Affected Rows: 0
|
|
|
|
-- SQLNESS REPLACE (ADMIN\sFLUSH_FLOW\('\w+'\)\s+\|\n\+-+\+\n\|\s+)[0-9]+\s+\| $1 FLOW_FLUSHED |
|
|
ADMIN FLUSH_FLOW('test_distinct_basic');
|
|
|
|
+-----------------------------------------+
|
|
| ADMIN FLUSH_FLOW('test_distinct_basic') |
|
|
+-----------------------------------------+
|
|
| FLOW_FLUSHED |
|
|
+-----------------------------------------+
|
|
|
|
SELECT
|
|
dis
|
|
FROM
|
|
out_distinct_basic;
|
|
|
|
+-----+
|
|
| dis |
|
|
+-----+
|
|
| 20 |
|
|
| 22 |
|
|
| 23 |
|
|
+-----+
|
|
|
|
SELECT number FROM distinct_basic;
|
|
|
|
++
|
|
++
|
|
|
|
DROP FLOW test_distinct_basic;
|
|
|
|
Affected Rows: 0
|
|
|
|
DROP TABLE distinct_basic;
|
|
|
|
Affected Rows: 0
|
|
|
|
DROP TABLE out_distinct_basic;
|
|
|
|
Affected Rows: 0
|
|
|
|
-- test ttl = 5s
|
|
CREATE TABLE distinct_basic (
|
|
number INT,
|
|
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY(number),
|
|
TIME INDEX(ts)
|
|
)WITH ('ttl' = '5s');
|
|
|
|
Affected Rows: 0
|
|
|
|
CREATE FLOW test_distinct_basic SINK TO out_distinct_basic AS
|
|
SELECT
|
|
DISTINCT number as dis
|
|
FROM
|
|
distinct_basic;
|
|
|
|
Affected Rows: 0
|
|
|
|
-- flow_options should have a flow_type:batching
|
|
-- since source table's ttl=instant
|
|
SELECT flow_name, options FROM INFORMATION_SCHEMA.FLOWS;
|
|
|
|
+---------------------+--------------------------+
|
|
| flow_name | options |
|
|
+---------------------+--------------------------+
|
|
| test_distinct_basic | {"flow_type":"batching"} |
|
|
+---------------------+--------------------------+
|
|
|
|
-- SQLNESS ARG restart=true
|
|
SELECT 1;
|
|
|
|
+----------+
|
|
| Int64(1) |
|
|
+----------+
|
|
| 1 |
|
|
+----------+
|
|
|
|
-- SQLNESS SLEEP 3s
|
|
INSERT INTO
|
|
distinct_basic
|
|
VALUES
|
|
(20, "2021-07-01 00:00:00.200"),
|
|
(20, "2021-07-01 00:00:00.200"),
|
|
(22, "2021-07-01 00:00:00.600");
|
|
|
|
Affected Rows: 3
|
|
|
|
-- SQLNESS REPLACE (ADMIN\sFLUSH_FLOW\('\w+'\)\s+\|\n\+-+\+\n\|\s+)[0-9]+\s+\| $1 FLOW_FLUSHED |
|
|
ADMIN FLUSH_FLOW('test_distinct_basic');
|
|
|
|
+-----------------------------------------+
|
|
| ADMIN FLUSH_FLOW('test_distinct_basic') |
|
|
+-----------------------------------------+
|
|
| FLOW_FLUSHED |
|
|
+-----------------------------------------+
|
|
|
|
SHOW CREATE TABLE distinct_basic;
|
|
|
|
+----------------+-----------------------------------------------------------+
|
|
| Table | Create Table |
|
|
+----------------+-----------------------------------------------------------+
|
|
| distinct_basic | CREATE TABLE IF NOT EXISTS "distinct_basic" ( |
|
|
| | "number" INT NULL, |
|
|
| | "ts" TIMESTAMP(3) NOT NULL DEFAULT current_timestamp(), |
|
|
| | TIME INDEX ("ts"), |
|
|
| | PRIMARY KEY ("number") |
|
|
| | ) |
|
|
| | |
|
|
| | ENGINE=mito |
|
|
| | WITH( |
|
|
| | ttl = '5s' |
|
|
| | ) |
|
|
+----------------+-----------------------------------------------------------+
|
|
|
|
SHOW CREATE TABLE out_distinct_basic;
|
|
|
|
+--------------------+---------------------------------------------------+
|
|
| Table | Create Table |
|
|
+--------------------+---------------------------------------------------+
|
|
| out_distinct_basic | CREATE TABLE IF NOT EXISTS "out_distinct_basic" ( |
|
|
| | "dis" INT NULL, |
|
|
| | "update_at" TIMESTAMP(3) NULL, |
|
|
| | "__ts_placeholder" TIMESTAMP(3) NOT NULL, |
|
|
| | TIME INDEX ("__ts_placeholder"), |
|
|
| | PRIMARY KEY ("dis") |
|
|
| | ) |
|
|
| | |
|
|
| | ENGINE=mito |
|
|
| | WITH( |
|
|
| | 'comment' = 'Auto created table by flow engine' |
|
|
| | ) |
|
|
+--------------------+---------------------------------------------------+
|
|
|
|
SELECT
|
|
dis
|
|
FROM
|
|
out_distinct_basic;
|
|
|
|
+-----+
|
|
| dis |
|
|
+-----+
|
|
| 20 |
|
|
| 22 |
|
|
+-----+
|
|
|
|
SELECT number FROM distinct_basic;
|
|
|
|
+--------+
|
|
| number |
|
|
+--------+
|
|
| 20 |
|
|
| 22 |
|
|
+--------+
|
|
|
|
-- SQLNESS SLEEP 6s
|
|
ADMIN FLUSH_TABLE('distinct_basic');
|
|
|
|
+-------------------------------------+
|
|
| ADMIN FLUSH_TABLE('distinct_basic') |
|
|
+-------------------------------------+
|
|
| 0 |
|
|
+-------------------------------------+
|
|
|
|
INSERT INTO
|
|
distinct_basic
|
|
VALUES
|
|
(23, "2021-07-01 00:00:01.600");
|
|
|
|
Affected Rows: 1
|
|
|
|
-- SQLNESS REPLACE (ADMIN\sFLUSH_FLOW\('\w+'\)\s+\|\n\+-+\+\n\|\s+)[0-9]+\s+\| $1 FLOW_FLUSHED |
|
|
ADMIN FLUSH_FLOW('test_distinct_basic');
|
|
|
|
+-----------------------------------------+
|
|
| ADMIN FLUSH_FLOW('test_distinct_basic') |
|
|
+-----------------------------------------+
|
|
| FLOW_FLUSHED |
|
|
+-----------------------------------------+
|
|
|
|
SELECT
|
|
dis
|
|
FROM
|
|
out_distinct_basic;
|
|
|
|
+-----+
|
|
| dis |
|
|
+-----+
|
|
| 20 |
|
|
| 22 |
|
|
| 23 |
|
|
+-----+
|
|
|
|
SELECT number FROM distinct_basic;
|
|
|
|
+--------+
|
|
| number |
|
|
+--------+
|
|
| 23 |
|
|
+--------+
|
|
|
|
DROP FLOW test_distinct_basic;
|
|
|
|
Affected Rows: 0
|
|
|
|
DROP TABLE distinct_basic;
|
|
|
|
Affected Rows: 0
|
|
|
|
DROP TABLE out_distinct_basic;
|
|
|
|
Affected Rows: 0
|
|
|