mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-22 07:50:38 +00:00
* fix: mysql prepare bool value (#5732) * fix: mysql prepare limit&offset param (#5734) * fix: prepare limit&offset param * test: sqlness * chore: per review * chore: per review * fix: wrap table name with `` (#5748) * fix: wrap table name with quotes * fix: minor fix * fix: handle nullable default value (#5747) * fix: handle nullable default value * chore: update sqlness * fix: properly give placeholder types (#5760) * fix: properly give placeholder types * chore: update sqlness * fix: support __name__ matcher in label values (#5773) * fix: typo variadic (#5800) Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * fix: close issue #3902 since upstream fixed (#5801) Signed-off-by: yihong0618 <zouzou0208@gmail.com> * fix: correct error status code (#5802) * fix: interval cast expression can't work in range query, #5805 (#5813) * fix: interval cast expression can't work in range query, #5805 * fix: nested cast * test: make vector test stable * feat: introduce poison mechanism for procedure (#5822) * feat: introduce poison for procedure * tests: add unit tests * refactor: minor refactor * fix: unit tests * chore: fix unit tests * chore: apply suggestions from CR * chore: apply suggestions from CR * chore: update comments * chore: introduce `ProcedureStatus::Poisoned` * chore: upgrade greptime-proto to `2be0f` * chore: apply suggestions from CR * fix: throw errors instead of ignoring (#5792) * fix: throw errors instead of ignoring * fix: fix unit tests * refactor: remove schema version check * fix: fix clippy * chore: remove unused error * refactor: remove schema version check * feat: handle mutliple results * feat: introduce consistency guard * fix: release consistency guard on datanode operation completion * test: add tests * chore: remove schema version * refactor: rename * test: add more tests * chore: print all error * tests: query table after alteration * log ignored request * refine fuzz test * chore: fix clippy and log mailbox message * chore: close prepared statement after execution * chore: add comment * chore: remove log * chore: rename to `ConsistencyPoison` * chore: remove unused error * fix: fix unit tests * chore: apply suggestions from CR --------- Signed-off-by: Ruihang Xia <waynestxia@gmail.com> Signed-off-by: yihong0618 <zouzou0208@gmail.com> Co-authored-by: discord9 <55937128+discord9@users.noreply.github.com> Co-authored-by: Yohan Wal <profsyb@gmail.com> Co-authored-by: Yingwen <realevenyag@gmail.com> Co-authored-by: Ruihang Xia <waynestxia@gmail.com> Co-authored-by: yihong <zouzou0208@gmail.com> Co-authored-by: dennis zhuang <killme2008@gmail.com>
97 lines
6.8 KiB
Plaintext
97 lines
6.8 KiB
Plaintext
CREATE TABLE host (
|
|
ts timestamp(3) time index,
|
|
host STRING PRIMARY KEY,
|
|
val BIGINT,
|
|
);
|
|
|
|
Affected Rows: 0
|
|
|
|
INSERT INTO TABLE host VALUES
|
|
("1970-01-01T01:00:00+00:00", 'host1', 0),
|
|
("1970-01-01T02:00:00+00:00", 'host1', 1),
|
|
("1971-01-02T03:00:00+00:00", 'host1', 2),
|
|
("1971-01-02T04:00:00+00:00", 'host1', 3),
|
|
("1970-01-01T01:00:00+00:00", 'host2', 4),
|
|
("1970-01-01T02:00:00+00:00", 'host2', 5),
|
|
("1971-01-02T03:00:00+00:00", 'host2', 6),
|
|
("1971-01-02T04:00:00+00:00", 'host2', 7);
|
|
|
|
Affected Rows: 8
|
|
|
|
SELECT ts, host, min(val) RANGE (INTERVAL '1 year') FROM host ALIGN (INTERVAL '1 year') ORDER BY host, ts;
|
|
|
|
Error: 3000(PlanQuery), DataFusion error: Error during planning: Year or month interval is not allowed in range query: IntervalMonthDayNano("IntervalMonthDayNano { months: 12, days: 0, nanoseconds: 0 }")
|
|
|
|
SELECT ts, host, min(val) RANGE (INTERVAL '1' day) FROM host ALIGN (INTERVAL '1' day) ORDER BY host, ts;
|
|
|
|
+---------------------+-------+---------------------------------------------------------------------------------------------------------+
|
|
| ts | host | min(host.val) RANGE IntervalMonthDayNano("IntervalMonthDayNano { months: 0, days: 1, nanoseconds: 0 }") |
|
|
+---------------------+-------+---------------------------------------------------------------------------------------------------------+
|
|
| 1970-01-01T00:00:00 | host1 | 0 |
|
|
| 1971-01-02T00:00:00 | host1 | 2 |
|
|
| 1970-01-01T00:00:00 | host2 | 4 |
|
|
| 1971-01-02T00:00:00 | host2 | 6 |
|
|
+---------------------+-------+---------------------------------------------------------------------------------------------------------+
|
|
|
|
SELECT ts, host, min(val) RANGE ('1 day'::INTERVAL) FROM host ALIGN ('1 day'::INTERVAL) ORDER BY host, ts;
|
|
|
|
+---------------------+-------+-----------------------------------+
|
|
| ts | host | min(host.val) RANGE Utf8("1 day") |
|
|
+---------------------+-------+-----------------------------------+
|
|
| 1970-01-01T00:00:00 | host1 | 0 |
|
|
| 1971-01-02T00:00:00 | host1 | 2 |
|
|
| 1970-01-01T00:00:00 | host2 | 4 |
|
|
| 1971-01-02T00:00:00 | host2 | 6 |
|
|
+---------------------+-------+-----------------------------------+
|
|
|
|
SELECT ts, host, min(val) RANGE ('1 hour'::INTERVAL) FROM host ALIGN ('1 hour'::INTERVAL) ORDER BY host, ts;
|
|
|
|
+---------------------+-------+------------------------------------+
|
|
| ts | host | min(host.val) RANGE Utf8("1 hour") |
|
|
+---------------------+-------+------------------------------------+
|
|
| 1970-01-01T01:00:00 | host1 | 0 |
|
|
| 1970-01-01T02:00:00 | host1 | 1 |
|
|
| 1971-01-02T03:00:00 | host1 | 2 |
|
|
| 1971-01-02T04:00:00 | host1 | 3 |
|
|
| 1970-01-01T01:00:00 | host2 | 4 |
|
|
| 1970-01-01T02:00:00 | host2 | 5 |
|
|
| 1971-01-02T03:00:00 | host2 | 6 |
|
|
| 1971-01-02T04:00:00 | host2 | 7 |
|
|
+---------------------+-------+------------------------------------+
|
|
|
|
SELECT ts, host, min(val) RANGE ('30 minute'::INTERVAL + '30 minute'::INTERVAL) FROM host ALIGN ('30 minute'::INTERVAL + '30 minute'::INTERVAL) ORDER BY host, ts;
|
|
|
|
+---------------------+-------+-----------------------------------------------------------+
|
|
| ts | host | min(host.val) RANGE Utf8("30 minute") + Utf8("30 minute") |
|
|
+---------------------+-------+-----------------------------------------------------------+
|
|
| 1970-01-01T01:00:00 | host1 | 0 |
|
|
| 1970-01-01T02:00:00 | host1 | 1 |
|
|
| 1971-01-02T03:00:00 | host1 | 2 |
|
|
| 1971-01-02T04:00:00 | host1 | 3 |
|
|
| 1970-01-01T01:00:00 | host2 | 4 |
|
|
| 1970-01-01T02:00:00 | host2 | 5 |
|
|
| 1971-01-02T03:00:00 | host2 | 6 |
|
|
| 1971-01-02T04:00:00 | host2 | 7 |
|
|
+---------------------+-------+-----------------------------------------------------------+
|
|
|
|
--- Test nested cast, even though it is meaningless ----
|
|
SELECT ts, host, min(val) RANGE ((INTERVAL '1' hour)::INTERVAL) FROM host ALIGN ('1 hour'::INTERVAL::INTERVAL) ORDER BY host, ts;
|
|
|
|
+---------------------+-------+---------------------------------------------------------------------------------------------------------------------+
|
|
| ts | host | min(host.val) RANGE IntervalMonthDayNano("IntervalMonthDayNano { months: 0, days: 0, nanoseconds: 3600000000000 }") |
|
|
+---------------------+-------+---------------------------------------------------------------------------------------------------------------------+
|
|
| 1970-01-01T01:00:00 | host1 | 0 |
|
|
| 1970-01-01T02:00:00 | host1 | 1 |
|
|
| 1971-01-02T03:00:00 | host1 | 2 |
|
|
| 1971-01-02T04:00:00 | host1 | 3 |
|
|
| 1970-01-01T01:00:00 | host2 | 4 |
|
|
| 1970-01-01T02:00:00 | host2 | 5 |
|
|
| 1971-01-02T03:00:00 | host2 | 6 |
|
|
| 1971-01-02T04:00:00 | host2 | 7 |
|
|
+---------------------+-------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
DROP TABLE host;
|
|
|
|
Affected Rows: 0
|
|
|