feat: adds regex_extract function and more type tests (#7107)

* feat: adds format, regex_extract function and more type tests

Signed-off-by: Dennis Zhuang <killme2008@gmail.com>

* fix: forgot functions

Signed-off-by: Dennis Zhuang <killme2008@gmail.com>

* chore: forgot null type

Signed-off-by: Dennis Zhuang <killme2008@gmail.com>

* test: forgot date type

Signed-off-by: Dennis Zhuang <killme2008@gmail.com>

* feat: remove format function

Signed-off-by: Dennis Zhuang <killme2008@gmail.com>

* test: update results after upgrading datafusion

Signed-off-by: Dennis Zhuang <killme2008@gmail.com>

---------

Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
This commit is contained in:
dennis zhuang
2025-10-25 16:41:49 +08:00
committed by GitHub
parent 7da2f5ed12
commit d8563ba56d
58 changed files with 6502 additions and 15 deletions

View File

@@ -0,0 +1,58 @@
-- String length function tests
-- LENGTH function
SELECT LENGTH('hello');
SELECT LENGTH('');
SELECT LENGTH(NULL);
SELECT LENGTH('hello world');
-- CHAR_LENGTH (character length)
SELECT CHAR_LENGTH('hello');
SELECT CHAR_LENGTH('');
SELECT CHAR_LENGTH(NULL);
-- CHARACTER_LENGTH (alias for CHAR_LENGTH)
SELECT CHARACTER_LENGTH('hello world');
-- Unicode character length
SELECT LENGTH('世界') AS a, CHAR_LENGTH('世界') AS b;
SELECT LENGTH('🚀🌟') AS a, CHAR_LENGTH('🚀🌟') AS b;
SELECT LENGTH('café') AS a, CHAR_LENGTH('café') AS b;
-- Test with table data
CREATE TABLE length_test(s VARCHAR, ts TIMESTAMP TIME INDEX);
INSERT INTO length_test VALUES
('hello', 1000),
('world!', 2000),
('', 3000),
('中文测试', 4000),
('🚀🎉🌟', 5000),
(NULL, 6000);
SELECT s, LENGTH(s) AS a, CHAR_LENGTH(s) AS b FROM length_test ORDER BY ts;
-- BIT_LENGTH (length in bits)
SELECT BIT_LENGTH('hello');
SELECT BIT_LENGTH('');
SELECT BIT_LENGTH('世界');
-- OCTET_LENGTH (length in bytes)
SELECT OCTET_LENGTH('hello');
SELECT OCTET_LENGTH('');
SELECT OCTET_LENGTH('世界');
SELECT OCTET_LENGTH('🚀');
DROP TABLE length_test;