github.com/matrixorigin/matrixone@v0.7.0/test/distributed/cases/function/function_mid.sql (about)

     1  -- @suit
     2  -- @case
     3  -- @test function mid(str,pos,len)
     4  -- @label:bvt
     5  
     6  -- constant test
     7  SELECT mid('zhanziziefw',1,2);
     8  SELECT mid('jdkajfkw83q9iwqjfeqw_7832',5,22);
     9  SELECT mid('我是一只自由的鸟',1,3);
    10  SELECT mid('好的fjewka鸭dfj00-=392*&*^$',-8,4);
    11  SELECT mid('好的fjewka鸭dfj00-=392',0,2);
    12  SELECT mid('abchfjwabcABCvshfjdrvoiewjvkmdns mndsabcAbcueiuiwqjemkvwme000',6,40);
    13  SELECT mid('http://www.google.com.cn/',-2,6);
    14  SELECT mid('',1,3);
    15  SELECT mid(NULL,1,2);
    16  SELECT mid('hduw',3,8);
    17  SELECT mid('',-1,3);
    18  SELECT mid('wfroiewjvre',NULL,3);
    19  SELECT mid('vjdiejevfe',1,NULL);
    20  SELECT mid('efjkw',NULL,NULL);
    21  SELECT mid('',2,9);
    22  
    23  
    24  -- @suite
    25  -- @setup
    26  DROP TABLE IF EXISTS mid_01;
    27  CREATE TABLE mid_01(id int,
    28  					str1 CHAR,
    29  					d1 int,
    30  					d2 tinyint unsigned,
    31  					PRIMARY KEY(id));
    32  
    33  INSERT INTO mid_01 VALUES(1, 'h', 3, 12);
    34  INSERT INTO mid_01 VALUES(2, '', -2, 32);
    35  INSERT INTO mid_01 VALUES(3, '2',-2, 2);
    36  INSERT into mid_01 VALUES(4, '*', NULL, 3);
    37  INSERT INTO mid_01 VALUES(5, 'd', 2, NULL);
    38  
    39  
    40  -- Abnormal insertion
    41  INSERT INTO mid_01 VALUES(6, 'ehiuwjqnelfkw', NULL, 3);
    42  INSERT INTO mid_01 VALUES(7, '2',-2147483649, 0);
    43  INSERT INTO mid_01 VALUES(8, '1', 328, 258);
    44  
    45  
    46  SELECT mid(str1, 1, 2) FROM mid_01;
    47  SELECT mid(str1, d1, 3) FROM mid_01;
    48  SELECT mid(str1, d1, d2) FROM mid_01;
    49  SELECT * FROM mid_01 WHERE mid(str1,1,1) = 'h';
    50  SELECT * FROM mid_01 WHERE mid(str1,-1,2) IS NULL AND d1 IS NOT NULL;
    51  SELECT d1, d2 FROM mid_01 WHERE str1 = (SELECT str1 FROM mid_01 WHERE mid(str1,-1,1) = '*');
    52  SELECT(SELECT str1 FROM mid_01 WHERE mid(str1,2,3) = NULL),d1,d2 FROM mid_01 WHERE id = 4;
    53  
    54  
    55  -- string function
    56  SELECT LENGTH(mid(str1, ABS(d1),d2)) FROM mid_01 WHERE str1 = '2';
    57  SELECT empty(mid(str1, d1, d2)) FROM mid_01 WHERE ABS(d2) = 3;
    58  SELECT mid(str1, d1, d2) FROM mid_01;
    59  SELECT mid(str1, d1, 2) FROM mid_01 WHERE ABS(d1) % 2 = 0;
    60  SELECT mid(str1, d1, d2) FROM mid_01 WHERE d1 > 0;
    61  
    62  
    63  -- @suite
    64  -- @setup
    65  DROP TABLE IF EXISTS mid_02;
    66  CREATE TABLE mid_02(id int, 
    67  					s VARCHAR(50),
    68  					d1 smallint,
    69  					d2 bigint unsigned NOT NULL,
    70  					PRIMARY KEY(id));
    71  					
    72  					
    73  INSERT INTO mid_02 VALUES(1, 'woshishei3829', 3, 12);
    74  INSERT INTO mid_02 VALUES(2, '', -2, 2132);
    75  INSERT INTO mid_02 VALUES(3, ' 356284o 329&***((^%$%^&',-2, 2);
    76  INSERT into mid_02 VALUES(4, NULL, NULL, 3);
    77  INSERT INTO mid_02 VALUES(5, NULL, 2, 4);
    78  INSERT INTO mid_02 VALUES(6, 'ehwqkjf8392__+ ',NULL,6);
    79  INSERT INTO mid_02 values(7, '123', 0, 2);
    80  
    81  
    82  -- Abnormal insertion
    83  INSERT INTO mid_02 VALUES(8, 'ehiuwjey73y8213092kjfm3e#$%^WHJfne32edwfdewvvcqeveqnelfkw', NULL, 3);
    84  INSERT INTO mid_02 VALUES(9, '2',32769, 0);
    85  INSERT INTO mid_02 VALUES(10, '1', 328, 18446744073709551618);
    86  
    87  
    88  SELECT mid(s, NULL, NULL) FROM mid_02;
    89  SELECT mid(s, NULL, 2) FROM mid_02;
    90  SELECT mid(s, 1, NULL) FROM mid_02;
    91  SELECT mid(s, 1, 9) FROM mid_02 WHERE mid(s, 1, 2) = 'eh';
    92  SELECT mid(s, d1, d2) FROM mid_02;
    93  SELECT mid(s, d1, -3) FROM mid_02 WHERE d2 = 2;
    94  
    95  
    96  -- string function
    97  SELECT concat_ws('-',mid(s,2,3),mid(s,1,2)) FROM mid_02 WHERE id BETWEEN 2 AND 3;
    98  SELECT find_in_set(mid(s,1 + 2,9),'woshishei') FROM mid_02 WHERE id = 1;
    99  SELECT empty(mid(s,1,2)) FROM mid_02;
   100  SELECT LENGTH(mid(s, -1, 7281979 % 2)) FROM mid_02;
   101  SELECT lengthutf8(mid(s, -1, 3)) FROM mid_02;
   102  SELECT LTRIM(mid(s, 1, 16 - 11)) FROM mid_02;
   103  SELECT RTRIM(mid(s, -3, 2)) FROM mid_02 WHERE id = 6;
   104  SELECT LPAD(mid(s, 1, 2),20,'*') FROM mid_02;
   105  SELECT RPAD(mid(s, -8, 4), 5, '-') FROM mid_02 WHERE ABS(d1) = 0;
   106  SELECT startswith(mid(s, 1, 6), 'ehwq') FROM mid_02 WHERE d2 = NULL;
   107  SELECT endswith(mid(s,-1,1),' ') FROM mid_02 WHERE id = 6;
   108  SELECT substring(mid(s, 3, 19),3, 10) FROM mid_02 WHERE id + 1 = 4;
   109  SELECT REVERSE(mid(s, -1, 2)) FROM mid_02;
   110  SELECT hex(mid(s, 1, 2)) FROM mid_02 WHERE id = 7;
   111  
   112  
   113  -- subqueries
   114  SELECT * FROM mid_02 WHERE s = (SELECT s FROM mid_02 WHERE mid(s,1,2) = 'wo');
   115  SELECT(SELECT s FROM mid_02 WHERE mid(s,1,3) = 'ehw'),d1,d2 FROM mid_02 WHERE id = 6;
   116  SELECT * FROM mid_02 WHERE s = (SELECT s FROM mid_02 WHERE mid(s,1,10) = NULL);
   117  
   118  
   119  -- @suite
   120  -- @setup
   121  DROP TABLE IF EXISTS mid_03;
   122  DROP TABLE IF EXISTS mid_04;
   123  CREATE TABLE mid_03(
   124  	id int,
   125      d1 tinyint unsigned,
   126      str1 VARCHAR(50),
   127      primary key (id));
   128  	
   129  CREATE TABLE mid_04(
   130      id int,
   131      d2 bigint,
   132  	str1 mediumtext NOT NULL,
   133      primary key (id));
   134  
   135  
   136  INSERT INTO mid_03 VALUES(1, 255, 'zheshimeihaodeyitian,这是美好的一天');
   137  INSERT INTO mid_03 VALUES(2, 10, '明天更美好ehwqknjcw*^*qk67329&&*');
   138  INSERT INTO mid_03 VALUES(3, NULL, 'ewgu278wd-+ABNJDSK');
   139  INSERT INTO mid_03 VALUES(4, 1, NULL);
   140  
   141  INSERT INTO mid_04 VALUES(1, 0, '盼望着,盼望着,东风来了,春天的脚步近了。 一切都像刚睡醒的样子,欣欣然张开了眼。山朗润起来了,水涨 起来了,太阳的脸红起来了。 小草偷偷地从土里钻出来,Choose to Be Alone on Purpose Here we are, all by ourselves, all 22 million of us by recent count, alone in our rooms');
   142  INSERT INTO mid_04 VALUES(2, -34, 'zheshimeihaodeyitian,这是美好的一天');
   143  INSERT INTO mid_04 VALUES(3, 35267192, 'ewgu278wd-+ABNJDSK');
   144  INSERT INTO mid_04 VALUES(4, NULL, 'hey32983..........,,');
   145  
   146  
   147  -- join 
   148  SELECT mid_03.id AS id_3,mid_04.id AS id_4 FROM mid_03,mid_04 WHERE mid(mid_03.str1,1,4) = mid(mid_04.str1,1,4);
   149  SELECT mid_03.str1 AS str1_3,mid_04.str1 FROM mid_03,mid_04 WHERE mid(mid_03.str1,2,1) = mid(mid_04.str1,-1,1);
   150  SELECT mid(mid_03.str1, -10, 5) FROM mid_03,mid_04 WHERE mid_03.str1 = mid_04.str1;
   151  SELECT * FROM mid_03 WHERE str1 = (SELECT str1 FROM mid_04 WHERE mid(str1, 1, 19) = 'ewgu278wd-+ABNJDSK');
   152  SELECT mid(mid_03.str1, -10, 5)AS tmp, mid_04.str1 AS temp FROM mid_03 join mid_04 ON mid_03.str1 = mid_04.str1;
   153  SELECT mid_03.id AS id_3,mid_04.id AS id_4 FROM mid_03 left join mid_04 ON mid(mid_03.str1,1,4) = mid(mid_04.str1,1,4);
   154  SELECT mid_03.d1 AS d1_3,mid_04.d2 AS d2_4 FROM mid_03 right join mid_04 ON mid(mid_03.str1,1,4) = mid(mid_04.str1,1,4);