diff --git a/src/sql/src/parsers/tql_parser.rs b/src/sql/src/parsers/tql_parser.rs index 2433704fbe..8b82a9082e 100644 --- a/src/sql/src/parsers/tql_parser.rs +++ b/src/sql/src/parsers/tql_parser.rs @@ -114,7 +114,8 @@ impl<'a> ParserContext<'a> { // TODO(dennis): supports multi TQL statements separated by ';'? } - Ok(query.trim().to_string()) + // remove the last ';' or tailing space if exists + Ok(query.trim().trim_end_matches(';').to_string()) } else { Err(ParserError::ParserError(format!("{delimiter} not found",))) } diff --git a/tests/cases/standalone/common/tql/basic.result b/tests/cases/standalone/common/tql/basic.result new file mode 100644 index 0000000000..0bbbedf77f --- /dev/null +++ b/tests/cases/standalone/common/tql/basic.result @@ -0,0 +1,32 @@ +CREATE TABLE test(i DOUBLE, j TIMESTAMP TIME INDEX, k STRING PRIMARY KEY); + +Affected Rows: 0 + +INSERT INTO test VALUES (1, 1, "a"), (1, 1, "b"), (2, 2, "a"); + +Affected Rows: 3 + +TQL EVAL (0, 10, '5s') test; + ++-----+---------------------+---+ +| i | j | k | ++-----+---------------------+---+ +| 2.0 | 1970-01-01T00:00:05 | a | +| 2.0 | 1970-01-01T00:00:10 | a | +| 1.0 | 1970-01-01T00:00:05 | b | +| 1.0 | 1970-01-01T00:00:10 | b | ++-----+---------------------+---+ + +TQL EVAL (0, 10, '5s') test{k="a"}; + ++-----+---------------------+---+ +| i | j | k | ++-----+---------------------+---+ +| 2.0 | 1970-01-01T00:00:05 | a | +| 2.0 | 1970-01-01T00:00:10 | a | ++-----+---------------------+---+ + +DROP TABLE test; + +Affected Rows: 1 + diff --git a/tests/cases/standalone/common/tql/basic.sql b/tests/cases/standalone/common/tql/basic.sql new file mode 100644 index 0000000000..8ff1970a1a --- /dev/null +++ b/tests/cases/standalone/common/tql/basic.sql @@ -0,0 +1,12 @@ +CREATE TABLE test(i DOUBLE, j TIMESTAMP TIME INDEX, k STRING PRIMARY KEY); + +-- insert two points at 1ms and one point at 2ms +INSERT INTO test VALUES (1, 1, "a"), (1, 1, "b"), (2, 2, "a"); + +-- evaluate at 0s, 5s and 10s. No point at 0s. +TQL EVAL (0, 10, '5s') test; + +-- the point at 1ms will be shadowed by the point at 2ms +TQL EVAL (0, 10, '5s') test{k="a"}; + +DROP TABLE test;