Files
greptimedb/tests/cases/standalone/common/range/interval.result
Weny Xu 60852af5f8 chore: bump version to 0.13.2 (#5837)
* 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>
2025-04-08 14:16:40 +08:00

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