Files
greptimedb/tests/cases/standalone/common/function/string/concat.result
dennis zhuang d8563ba56d 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>
2025-10-25 08:41:49 +00:00

212 lines
7.3 KiB
Plaintext

-- String concatenation function tests
-- Test CONCAT function
-- Basic concatenation
SELECT CONCAT('hello', 'world');
+-------------------------------------+
| concat(Utf8("hello"),Utf8("world")) |
+-------------------------------------+
| helloworld |
+-------------------------------------+
SELECT CONCAT('hello', ' ', 'world');
+-----------------------------------------------+
| concat(Utf8("hello"),Utf8(" "),Utf8("world")) |
+-----------------------------------------------+
| hello world |
+-----------------------------------------------+
SELECT CONCAT('a', 'b', 'c', 'd');
+-------------------------------------------------+
| concat(Utf8("a"),Utf8("b"),Utf8("c"),Utf8("d")) |
+-------------------------------------------------+
| abcd |
+-------------------------------------------------+
-- Concatenation with NULL values
SELECT CONCAT('hello', NULL);
+----------------------------+
| concat(Utf8("hello"),NULL) |
+----------------------------+
| hello |
+----------------------------+
SELECT CONCAT(NULL, 'world');
+----------------------------+
| concat(NULL,Utf8("world")) |
+----------------------------+
| world |
+----------------------------+
SELECT CONCAT(NULL, NULL);
+-------------------+
| concat(NULL,NULL) |
+-------------------+
| |
+-------------------+
-- Concatenation with numbers (should convert to string)
SELECT CONCAT('value: ', 42);
+-----------------------------------+
| concat(Utf8("value: "),Int64(42)) |
+-----------------------------------+
| value: 42 |
+-----------------------------------+
SELECT CONCAT(1, 2, 3);
+------------------------------------+
| concat(Int64(1),Int64(2),Int64(3)) |
+------------------------------------+
| 123 |
+------------------------------------+
-- Test with table data
CREATE TABLE concat_test(first_name VARCHAR, last_name VARCHAR, age INTEGER, ts TIMESTAMP TIME INDEX);
Affected Rows: 0
INSERT INTO concat_test VALUES
('John', 'Doe', 30, 1000),
('Jane', 'Smith', 25, 2000),
('Bob', NULL, 35, 3000),
(NULL, 'Wilson', 40, 4000);
Affected Rows: 4
-- Concatenate table columns
SELECT CONCAT(first_name, ' ', last_name) as full_name FROM concat_test ORDER BY ts;
+------------+
| full_name |
+------------+
| John Doe |
| Jane Smith |
| Bob |
| Wilson |
+------------+
SELECT CONCAT(first_name, ' is ', age, ' years old') FROM concat_test ORDER BY ts;
+--------------------------------------------------------------------------------+
| concat(concat_test.first_name,Utf8(" is "),concat_test.age,Utf8(" years old")) |
+--------------------------------------------------------------------------------+
| John is 30 years old |
| Jane is 25 years old |
| Bob is 35 years old |
| is 40 years old |
+--------------------------------------------------------------------------------+
-- Test CONCAT_WS (concat with separator)
SELECT CONCAT_WS(' ', first_name, last_name) as full_name FROM concat_test ORDER BY ts;
+------------+
| full_name |
+------------+
| John Doe |
| Jane Smith |
| Bob |
| Wilson |
+------------+
SELECT CONCAT_WS('-', first_name, last_name, age) FROM concat_test ORDER BY ts;
+-----------------------------------------------------------------------------------+
| concat_ws(Utf8("-"),concat_test.first_name,concat_test.last_name,concat_test.age) |
+-----------------------------------------------------------------------------------+
| John-Doe-30 |
| Jane-Smith-25 |
| Bob-35 |
| Wilson-40 |
+-----------------------------------------------------------------------------------+
SELECT CONCAT_WS(',', 'a', 'b', 'c', 'd');
+--------------------------------------------------------------+
| concat_ws(Utf8(","),Utf8("a"),Utf8("b"),Utf8("c"),Utf8("d")) |
+--------------------------------------------------------------+
| a,b,c,d |
+--------------------------------------------------------------+
-- CONCAT_WS with NULL values (should skip NULLs)
SELECT CONCAT_WS(' ', 'hello', NULL, 'world');
+-------------------------------------------------------+
| concat_ws(Utf8(" "),Utf8("hello"),NULL,Utf8("world")) |
+-------------------------------------------------------+
| hello world |
+-------------------------------------------------------+
SELECT CONCAT_WS('|', first_name, last_name) FROM concat_test ORDER BY ts;
+-------------------------------------------------------------------+
| concat_ws(Utf8("|"),concat_test.first_name,concat_test.last_name) |
+-------------------------------------------------------------------+
| John|Doe |
| Jane|Smith |
| Bob |
| Wilson |
+-------------------------------------------------------------------+
-- Test pipe operator ||
SELECT 'hello' || 'world';
+--------------------------------+
| Utf8("hello") || Utf8("world") |
+--------------------------------+
| helloworld |
+--------------------------------+
SELECT 'hello' || ' ' || 'world';
+---------------------------------------------+
| Utf8("hello") || Utf8(" ") || Utf8("world") |
+---------------------------------------------+
| hello world |
+---------------------------------------------+
SELECT first_name || ' ' || last_name FROM concat_test WHERE first_name IS NOT NULL AND last_name IS NOT NULL ORDER BY ts;
+--------------------------------------------------------------+
| concat_test.first_name || Utf8(" ") || concat_test.last_name |
+--------------------------------------------------------------+
| John Doe |
| Jane Smith |
+--------------------------------------------------------------+
-- Unicode concatenation
SELECT CONCAT('Hello ', '世界');
+-------------------------------------+
| concat(Utf8("Hello "),Utf8("世界")) |
+-------------------------------------+
| Hello 世界 |
+-------------------------------------+
SELECT CONCAT('🚀', ' ', '🌟');
+-----------------------------------------+
| concat(Utf8("🚀"),Utf8(" "),Utf8("🌟")) |
+-----------------------------------------+
| 🚀 🌟 |
+-----------------------------------------+
SELECT '中文' || '🐄';
+----------------------------+
| Utf8("中文") || Utf8("🐄") |
+----------------------------+
| 中文🐄 |
+----------------------------+
DROP TABLE concat_test;
Affected Rows: 0