mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-04 12:22:55 +00:00
* feat: add more mysql string functions Signed-off-by: Dennis Zhuang <killme2008@gmail.com> * refactor: use datafusion aliasing mechanism, close #7415 Signed-off-by: Dennis Zhuang <killme2008@gmail.com> * chore: comment Signed-off-by: Dennis Zhuang <killme2008@gmail.com> * fix: comment and style Signed-off-by: Dennis Zhuang <killme2008@gmail.com> --------- Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
98 lines
1.8 KiB
SQL
98 lines
1.8 KiB
SQL
-- MySQL-compatible string function tests
|
|
|
|
-- LOCATE function tests
|
|
SELECT LOCATE('world', 'hello world');
|
|
|
|
SELECT LOCATE('xyz', 'hello world');
|
|
|
|
SELECT LOCATE('o', 'hello world');
|
|
|
|
SELECT LOCATE('o', 'hello world', 5);
|
|
|
|
SELECT LOCATE('o', 'hello world', 6);
|
|
|
|
SELECT LOCATE('', 'hello');
|
|
|
|
SELECT LOCATE('世', 'hello世界');
|
|
|
|
SELECT LOCATE(NULL, 'hello');
|
|
|
|
SELECT LOCATE('o', NULL);
|
|
|
|
-- ELT function tests
|
|
SELECT ELT(1, 'a', 'b', 'c');
|
|
|
|
SELECT ELT(2, 'a', 'b', 'c');
|
|
|
|
SELECT ELT(3, 'a', 'b', 'c');
|
|
|
|
SELECT ELT(0, 'a', 'b', 'c');
|
|
|
|
SELECT ELT(4, 'a', 'b', 'c');
|
|
|
|
SELECT ELT(NULL, 'a', 'b', 'c');
|
|
|
|
-- FIELD function tests
|
|
SELECT FIELD('b', 'a', 'b', 'c');
|
|
|
|
SELECT FIELD('d', 'a', 'b', 'c');
|
|
|
|
SELECT FIELD('a', 'a', 'b', 'c');
|
|
|
|
SELECT FIELD('A', 'a', 'b', 'c');
|
|
|
|
SELECT FIELD(NULL, 'a', 'b', 'c');
|
|
|
|
-- INSERT function tests
|
|
SELECT INSERT('Quadratic', 3, 4, 'What');
|
|
|
|
SELECT INSERT('Quadratic', 3, 100, 'What');
|
|
|
|
SELECT INSERT('Quadratic', 0, 4, 'What');
|
|
|
|
SELECT INSERT('hello', 1, 0, 'X');
|
|
|
|
SELECT INSERT('hello世界', 6, 1, 'の');
|
|
|
|
SELECT INSERT(NULL, 1, 1, 'X');
|
|
|
|
-- SPACE function tests
|
|
SELECT SPACE(5);
|
|
|
|
SELECT SPACE(0);
|
|
|
|
SELECT SPACE(-1);
|
|
|
|
SELECT CONCAT('a', SPACE(3), 'b');
|
|
|
|
SELECT SPACE(NULL);
|
|
|
|
-- FORMAT function tests
|
|
SELECT FORMAT(1234567.891, 2);
|
|
|
|
SELECT FORMAT(1234567.891, 0);
|
|
|
|
SELECT FORMAT(1234.5, 4);
|
|
|
|
SELECT FORMAT(-1234567.891, 2);
|
|
|
|
SELECT FORMAT(0.5, 2);
|
|
|
|
SELECT FORMAT(123, 2);
|
|
|
|
SELECT FORMAT(NULL, 2);
|
|
|
|
-- Combined test with table
|
|
CREATE TABLE string_test(idx INT, val VARCHAR, ts TIMESTAMP TIME INDEX);
|
|
|
|
INSERT INTO string_test VALUES
|
|
(1, 'hello world', 1),
|
|
(2, 'foo bar baz', 2),
|
|
(3, 'hello世界', 3);
|
|
|
|
SELECT idx, val, LOCATE('o', val) as loc FROM string_test ORDER BY idx;
|
|
|
|
SELECT idx, val, INSERT(val, 1, 5, 'hi') as inserted FROM string_test ORDER BY idx;
|
|
|
|
DROP TABLE string_test;
|