mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-06 13:22:57 +00:00
* feat: parse column names when creating view * feat: save the view definition into view info * feat: supports view columns and show create view * feat: save plan columns for validation * fix: typo * chore: comments and style * chore: apply suggestions * test: assert CreateView display result * chore: style Co-authored-by: Weny Xu <wenymedia@gmail.com> * chore: avoid the clone Co-authored-by: Weny Xu <wenymedia@gmail.com> * fix: compile error after rebeasing --------- Co-authored-by: Weny Xu <wenymedia@gmail.com>
137 lines
3.3 KiB
Plaintext
137 lines
3.3 KiB
Plaintext
CREATE DATABASE schema_for_view_test;
|
|
|
|
Affected Rows: 1
|
|
|
|
USE schema_for_view_test;
|
|
|
|
Affected Rows: 0
|
|
|
|
CREATE TABLE t1(a INT, b STRING, c TIMESTAMP TIME INDEX);
|
|
|
|
Affected Rows: 0
|
|
|
|
INSERT INTO t1 VALUES (41, "hello", 1), (42, "world", 2), (43, "greptime", 3);
|
|
|
|
Affected Rows: 3
|
|
|
|
CREATE VIEW v1 AS SELECT a, b FROM t1;
|
|
|
|
Affected Rows: 0
|
|
|
|
SELECT * FROM v1;
|
|
|
|
+----+----------+
|
|
| a | b |
|
|
+----+----------+
|
|
| 41 | hello |
|
|
| 42 | world |
|
|
| 43 | greptime |
|
|
+----+----------+
|
|
|
|
SELECT a FROM v1;
|
|
|
|
+----+
|
|
| a |
|
|
+----+
|
|
| 41 |
|
|
| 42 |
|
|
| 43 |
|
|
+----+
|
|
|
|
INSERT INTO t1 VALUES (44, "greptimedb", 4);
|
|
|
|
Affected Rows: 1
|
|
|
|
SELECT * FROM v1;
|
|
|
|
+----+------------+
|
|
| a | b |
|
|
+----+------------+
|
|
| 41 | hello |
|
|
| 42 | world |
|
|
| 43 | greptime |
|
|
| 44 | greptimedb |
|
|
+----+------------+
|
|
|
|
SHOW CREATE VIEW v1;
|
|
|
|
+------+---------------------------------------+
|
|
| View | Create View |
|
|
+------+---------------------------------------+
|
|
| v1 | CREATE VIEW v1 AS SELECT a, b FROM t1 |
|
|
+------+---------------------------------------+
|
|
|
|
CREATE OR REPLACE VIEW v1 AS SELECT a, b, c FROM t1 WHERE a > 43;
|
|
|
|
Affected Rows: 0
|
|
|
|
SHOW CREATE VIEW v1;
|
|
|
|
+------+------------------------------------------------------------------+
|
|
| View | Create View |
|
|
+------+------------------------------------------------------------------+
|
|
| v1 | CREATE OR REPLACE VIEW v1 AS SELECT a, b, c FROM t1 WHERE a > 43 |
|
|
+------+------------------------------------------------------------------+
|
|
|
|
SELECT * FROM v1;
|
|
|
|
+----+------------+-------------------------+
|
|
| a | b | c |
|
|
+----+------------+-------------------------+
|
|
| 44 | greptimedb | 1970-01-01T00:00:00.004 |
|
|
+----+------------+-------------------------+
|
|
|
|
--- if not exists, so it doesn't change at all ---
|
|
CREATE VIEW IF NOT EXISTS v1 AS SELECT c FROM t1;
|
|
|
|
Affected Rows: 0
|
|
|
|
SHOW CREATE VIEW v1;
|
|
|
|
+------+------------------------------------------------------------------+
|
|
| View | Create View |
|
|
+------+------------------------------------------------------------------+
|
|
| v1 | CREATE OR REPLACE VIEW v1 AS SELECT a, b, c FROM t1 WHERE a > 43 |
|
|
+------+------------------------------------------------------------------+
|
|
|
|
SELECT * FROM v1;
|
|
|
|
+----+------------+-------------------------+
|
|
| a | b | c |
|
|
+----+------------+-------------------------+
|
|
| 44 | greptimedb | 1970-01-01T00:00:00.004 |
|
|
+----+------------+-------------------------+
|
|
|
|
--- if not exists with replace, so it changes ---
|
|
CREATE OR REPLACE VIEW IF NOT EXISTS v1 AS SELECT c FROM t1;
|
|
|
|
Affected Rows: 0
|
|
|
|
SHOW CREATE VIEW v1;
|
|
|
|
+------+-------------------------------------------------------------+
|
|
| View | Create View |
|
|
+------+-------------------------------------------------------------+
|
|
| v1 | CREATE OR REPLACE VIEW IF NOT EXISTS v1 AS SELECT c FROM t1 |
|
|
+------+-------------------------------------------------------------+
|
|
|
|
SELECT * FROM v1;
|
|
|
|
+-------------------------+
|
|
| c |
|
|
+-------------------------+
|
|
| 1970-01-01T00:00:00.001 |
|
|
| 1970-01-01T00:00:00.002 |
|
|
| 1970-01-01T00:00:00.003 |
|
|
| 1970-01-01T00:00:00.004 |
|
|
+-------------------------+
|
|
|
|
USE public;
|
|
|
|
Affected Rows: 0
|
|
|
|
DROP DATABASE schema_for_view_test;
|
|
|
|
Affected Rows: 0
|
|
|