====
---- QUERY
set utf8_mode=true;
select length('你好'), length('你好hello'), length('你好 hello 你好')
---- RESULTS
2,7,11
---- TYPES
INT,INT,INT
====
---- QUERY
set utf8_mode=false;
select length('你好'), length('你好hello'), length('你好 hello 你好')
---- RESULTS
6,11,19
---- TYPES
INT,INT,INT
====
---- QUERY
set utf8_mode=true;
select substring('你好hello', 1, 3)
---- RESULTS: RAW_STRING
'你好h'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=false;
select substring('你好hello', 1, 3)
---- RESULTS: RAW_STRING
'你'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=true;
select reverse('你好hello你好');
---- RESULTS: RAW_STRING
'好你olleh好你'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=off;
select id, length(name), substring(name, 1, 3), length(substring(name, 1, 3)) from utf8_str_tiny
---- RESULTS: RAW_STRING
1,6,'张',3
2,6,'李',3
3,6,'王',3
4,9,'李',3
5,5,'Ali',3
6,6,'陈',3
7,7,'Бo',3
8,5,'Jö',3
9,9,'ひ',3
10,6,'서',3
---- TYPES
INT,INT,STRING,INT
====
---- QUERY
set utf8_mode=true;
select id, length(name), substring(name, 1, 2), reverse(name) from utf8_str_tiny
---- RESULTS: RAW_STRING
1,2,'张三','三张'
2,2,'李四','四李'
3,2,'王五','五王'
4,3,'李小','龙小李'
5,5,'Al','ecilA'
6,4,'陈B','boB陈'
7,5,'Бo','cиpoБ'
8,4,'Jö','gröJ'
9,3,'ひな','たなひ'
10,2,'서연','연서'
---- TYPES
INT,INT,STRING,STRING
====
---- QUERY
# Test utf8 functions in where clause.
set utf8_mode=true;
select id, name from functional.utf8_str_tiny
where length(name) = 2 and substring(name, 1, 1) = '李';
---- RESULTS: RAW_STRING
2,'李四'
---- TYPES
INT,STRING
====
---- QUERY
# Test utf8 functions in group by clause. group_concat() may produce undetermined results
# due to the order. Here we wrap it with length().
set utf8_mode=true;
select substring(name, 1, 1), length(group_concat(name)) from functional.utf8_str_tiny
group by substring(name, 1, 1);
---- RESULTS: RAW_STRING
'A',5
'ひ',3
'陈',4
'王',2
'张',2
'서',2
'J',4
'Б',5
'李',7
---- TYPES
STRING,INT
====
---- QUERY
# Test utf8 functions in group by and having clauses. group_concat() may produce
# undetermined results due to the order. Here we wrap it with length().
set utf8_mode=true;
select substring(name, 1, 1), length(group_concat(name)) from functional.utf8_str_tiny
group by substring(name, 1, 1)
having length(group_concat(name)) = 7;
---- RESULTS: RAW_STRING
'李',7
---- TYPES
STRING,INT
====
---- QUERY
# Each Chinese character is encoded into 3 bytes in UTF-8.
set utf8_mode=false;
select instr('最快的SQL引擎跑SQL', 'SQL'),
       instr('最快的SQL引擎跑SQL', '引擎'),
       instr('最快的SQL引擎跑SQL', 'SQL引擎'),
       instr('最快的SQL引擎跑SQL', '跑SQL'),
       instr('最快的SQL引擎跑SQL', 'SQL', 1, 2),
       instr('最快的SQL引擎跑SQL', 'SQL', -1, 2);
---- RESULTS
10,13,10,19,22,10
---- TYPES
INT,INT,INT,INT,INT,INT
====
---- QUERY
set utf8_mode=true;
select instr('最快的SQL引擎跑SQL', 'SQL'),
       instr('最快的SQL引擎跑SQL', '引擎'),
       instr('最快的SQL引擎跑SQL', 'SQL引擎'),
       instr('最快的SQL引擎跑SQL', '跑SQL'),
       instr('最快的SQL引擎跑SQL', 'SQL', 1, 2),
       instr('最快的SQL引擎跑SQL', 'SQL', -1, 2);
---- RESULTS
4,7,4,9,10,4
---- TYPES
INT,INT,INT,INT,INT,INT
====
---- QUERY
# Each Chinese character is encoded into 3 bytes in UTF-8.
set utf8_mode=false;
select locate('SQL', '最快的SQL引擎跑SQL'),
       locate('引擎', '最快的SQL引擎跑SQL'),
       locate('SQL引擎', '最快的SQL引擎跑SQL'),
       locate('跑SQL', '最快的SQL引擎跑SQL'),
       locate('SQL', '最快的SQL引擎跑SQL', 4),
       locate('SQL', '最快的SQL引擎跑SQL', 11);
---- RESULTS
10,13,10,19,10,22
---- TYPES
INT,INT,INT,INT,INT,INT
====
---- QUERY
set utf8_mode=true;
select locate('SQL', '最快的SQL引擎跑SQL'),
       locate('引擎', '最快的SQL引擎跑SQL'),
       locate('SQL引擎', '最快的SQL引擎跑SQL'),
       locate('跑SQL', '最快的SQL引擎跑SQL'),
       locate('SQL', '最快的SQL引擎跑SQL', 4),
       locate('SQL', '最快的SQL引擎跑SQL', 10);
---- RESULTS
4,7,4,9,4,10
---- TYPES
INT,INT,INT,INT,INT,INT
====
---- QUERY
set utf8_mode=true;
select mask('SQL引擎', 'x', 'x', 'x', 'x'),
  mask_last_n('SQL引擎', 2, 'x', 'x', 'x', 'x'),
  mask_show_first_n('SQL引擎', 2, 'x', 'x', 'x', 'x'),
  mask_first_n('SQL引擎', 2, 'x', 'x', 'x', 'x'),
  mask_show_last_n('SQL引擎', 2, 'x', 'x', 'x', 'x');
---- RESULTS: RAW_STRING
'xxxxx','SQLxx','SQxxx','xxL引擎','xxx引擎'
---- TYPES
STRING,STRING,STRING,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select mask('abcd áäèü ABCD ÁÄÈÜ');
---- RESULTS: RAW_STRING
'xxxx xxxx XXXX XXXX'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=true;
select mask('Ich möchte ein Bier. Tschüss');
---- RESULTS: RAW_STRING
'Xxx xxxxxx xxx Xxxx. Xxxxxxx'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=true;
select mask('Hungarian áéíöóőüúű ÁÉÍÖÓŐÜÚŰ');
---- RESULTS: RAW_STRING
'Xxxxxxxxx xxxxxxxxx XXXXXXXXX'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=true;
select mask('German äöüß ÄÖÜẞ');
---- RESULTS: RAW_STRING
'Xxxxxx xxxx XXXX'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=true;
select mask('French àâæçéèêëïîôœùûüÿ ÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ');
---- RESULTS: RAW_STRING
'Xxxxxx xxxxxxxxxxxxxxxx XXXXXXXXXXXXXXXX'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=true;
select mask('Greek αβξδ άέήώ ΑΒΞΔ ΆΈΉΏ 1234');
---- RESULTS: RAW_STRING
'Xxxxx xxxx xxxx XXXX XXXX nnnn'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=true;
select mask_first_n('áéíöóőüúű');
---- RESULTS: RAW_STRING
'xxxxóőüúű'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=true;
select mask_show_first_n('áéíöóőüúű');
---- RESULTS: RAW_STRING
'áéíöxxxxx'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=true;
select mask_last_n('áéíöóőüúű');
---- RESULTS: RAW_STRING
'áéíöóxxxx'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=true;
select mask_show_last_n('áéíöóőüúű')
---- RESULTS: RAW_STRING
'xxxxxőüúű'
---- TYPES
STRING
====
---- QUERY
set utf8_mode=false;
select upper('abcd áäèü'), lower('ABCD ÁÄÈÜ'), initcap('abcd áäèü ABCD ÁÄÈÜ');
---- RESULTS: RAW_STRING
'ABCD áäèü','abcd ÁÄÈÜ','Abcd áäèü Abcd ÁÄÈÜ'
---- TYPES
STRING,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select upper('abcd áäèü'), lower('ABCD ÁÄÈÜ'), initcap('abcd áäèü ABCD ÁÄÈÜ');
---- RESULTS: RAW_STRING
'ABCD ÁÄÈÜ','abcd áäèü','Abcd Áäèü Abcd Áäèü'
---- TYPES
STRING,STRING,STRING
====
---- QUERY
set utf8_mode=false;
select id, upper(name), lower(name), initcap(name) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','张三','张三'
2,'李四','李四','李四'
3,'王五','王五','王五'
4,'李小龙','李小龙','李小龙'
5,'ALICE','alice','Alice'
6,'陈BOB','陈bob','陈bob'
7,'БOPиC','Бopиc','Бopиc'
8,'JöRG','jörg','Jörg'
9,'ひなた','ひなた','ひなた'
10,'서연','서연','서연'
---- TYPES
INT,STRING,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, upper(name), lower(name), initcap(name) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','张三','张三'
2,'李四','李四','李四'
3,'王五','王五','王五'
4,'李小龙','李小龙','李小龙'
5,'ALICE','alice','Alice'
6,'陈BOB','陈bob','陈bob'
7,'БOPИC','бopиc','Бopиc'
8,'JÖRG','jörg','Jörg'
9,'ひなた','ひなた','ひなた'
10,'서연','서연','서연'
---- TYPES
INT,STRING,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, name, ltrim(name, substr(name, 1, 1)) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','三'
2,'李四','四'
3,'王五','五'
4,'李小龙','小龙'
5,'Alice','lice'
6,'陈Bob','Bob'
7,'Бopиc','opиc'
8,'Jörg','örg'
9,'ひなた','なた'
10,'서연','연'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, name, trim(leading substr(name, 1, 1) from name) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','三'
2,'李四','四'
3,'王五','五'
4,'李小龙','小龙'
5,'Alice','lice'
6,'陈Bob','Bob'
7,'Бopиc','opиc'
8,'Jörg','örg'
9,'ひなた','なた'
10,'서연','연'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, name, rtrim(name, substr(name, 2)) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','张'
2,'李四','李'
3,'王五','王'
4,'李小龙','李'
5,'Alice','A'
6,'陈Bob','陈'
7,'Бopиc','Б'
8,'Jörg','J'
9,'ひなた','ひ'
10,'서연','서'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, name, trim(trailing substr(name, 2) from name) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','张'
2,'李四','李'
3,'王五','王'
4,'李小龙','李'
5,'Alice','A'
6,'陈Bob','陈'
7,'Бopиc','Б'
8,'Jörg','J'
9,'ひなた','ひ'
10,'서연','서'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, name, ltrim(name, '张李王小A陈БJひ서') from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','三'
2,'李四','四'
3,'王五','五'
4,'李小龙','龙'
5,'Alice','lice'
6,'陈Bob','Bob'
7,'Бopиc','opиc'
8,'Jörg','örg'
9,'ひなた','なた'
10,'서연','연'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, name, trim(leading '张李王小A陈БJひ서' from name) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','三'
2,'李四','四'
3,'王五','五'
4,'李小龙','龙'
5,'Alice','lice'
6,'陈Bob','Bob'
7,'Бopиc','opиc'
8,'Jörg','örg'
9,'ひなた','なた'
10,'서연','연'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, name, rtrim(name, '三四五小龙') from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','张'
2,'李四','李'
3,'王五','王'
4,'李小龙','李'
5,'Alice','Alice'
6,'陈Bob','陈Bob'
7,'Бopиc','Бopиc'
8,'Jörg','Jörg'
9,'ひなた','ひなた'
10,'서연','서연'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, name, trim(trailing '三四五小龙' from name) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','张'
2,'李四','李'
3,'王五','王'
4,'李小龙','李'
5,'Alice','Alice'
6,'陈Bob','陈Bob'
7,'Бopиc','Бopиc'
8,'Jörg','Jörg'
9,'ひなた','ひなた'
10,'서연','서연'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, name, btrim(name, '！？。，：；‘’“”≠≥≤∞ε∑∫√') from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','张三'
2,'李四','李四'
3,'王五','王五'
4,'李小龙','李小龙'
5,'Alice','Alice'
6,'陈Bob','陈Bob'
7,'Бopиc','Бopиc'
8,'Jörg','Jörg'
9,'ひなた','ひなた'
10,'서연','서연'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, name, trim('！？。，：；‘’“”≠≥≤∞ε∑∫√' from name) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','张三'
2,'李四','李四'
3,'王五','王五'
4,'李小龙','李小龙'
5,'Alice','Alice'
6,'陈Bob','陈Bob'
7,'Бopиc','Бopиc'
8,'Jörg','Jörg'
9,'ひなた','ひなた'
10,'서연','서연'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=false;
select id, name, utf8_trim('！？。，：；‘’“”≠≥≤∞ε∑∫√' from name) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','张三'
2,'李四','李四'
3,'王五','王五'
4,'李小龙','李小龙'
5,'Alice','Alice'
6,'陈Bob','陈Bob'
7,'Бopиc','Бopиc'
8,'Jörg','Jörg'
9,'ひなた','ひなた'
10,'서연','서연'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=false;
select id, name, utf8_trim('！？。，：；‘’“”≠≥≤∞ε∑∫√' from name) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三','张三'
2,'李四','李四'
3,'王五','王五'
4,'李小龙','李小龙'
5,'Alice','Alice'
6,'陈Bob','陈Bob'
7,'Бopиc','Бopиc'
8,'Jörg','Jörg'
9,'ひなた','ひなた'
10,'서연','서연'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, unnest(arr2) as item, trim(unnest(arr2) from "aaYYBBoo") from complextypes_arrays order by id, item;
---- RESULTS: RAW_STRING
1,'five','aaYYBBoo'
1,'four','aaYYBB'
1,'one','aaYYBB'
1,'three','aaYYBBoo'
1,'two','aaYYBB'
2,'five','aaYYBBoo'
2,'one','aaYYBB'
2,'three','aaYYBBoo'
2,'two','aaYYBB'
2,'NULL','aaYYBBoo'
3,'ten','aaYYBBoo'
4,'eight','aaYYBBoo'
4,'nine','aaYYBBoo'
4,'ten','aaYYBBoo'
5,'eleven','aaYYBBoo'
5,'ten','aaYYBBoo'
5,'thirteen','aaYYBBoo'
5,'twelve','aaYYBBoo'
6,'str1','aaYYBBoo'
6,'str2','aaYYBBoo'
9,'str1','aaYYBBoo'
9,'str2','aaYYBBoo'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, name, trim(first_value(name) over (order by id) from name) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三',''
2,'李四','李四'
3,'王五','王五'
4,'李小龙','李小龙'
5,'Alice','Alice'
6,'陈Bob','陈Bob'
7,'Бopиc','Бopиc'
8,'Jörg','Jörg'
9,'ひなた','ひなた'
10,'서연','서연'
---- TYPES
INT,STRING,STRING
====
---- QUERY
set utf8_mode=true;
select id, name, trim(name from name) from utf8_str_tiny;
---- RESULTS: RAW_STRING
1,'张三',''
2,'李四',''
3,'王五',''
4,'李小龙',''
5,'Alice',''
6,'陈Bob',''
7,'Бopиc',''
8,'Jörg',''
9,'ひなた',''
10,'서연',''
---- TYPES
INT,STRING,STRING
====
