diff --git a/sql/core/src/test/resources/sql-tests/inputs/pgSQL/strings.sql b/sql/core/src/test/resources/sql-tests/inputs/pgSQL/strings.sql index a6844284cb620..05841af27dd2e 100644 --- a/sql/core/src/test/resources/sql-tests/inputs/pgSQL/strings.sql +++ b/sql/core/src/test/resources/sql-tests/inputs/pgSQL/strings.sql @@ -234,13 +234,13 @@ SELECT POSITION('5' IN '1234567890') = '5' AS `5`; -- [SPARK-28077] Add support string functions: OVERLAY -- T312 character overlay function --- SELECT OVERLAY('abcdef' PLACING '45' FROM 4) AS "abc45f"; +SELECT OVERLAY('abcdef' PLACING '45' FROM 4) AS `abc45f`; --- SELECT OVERLAY('yabadoo' PLACING 'daba' FROM 5) AS "yabadaba"; +SELECT OVERLAY('yabadoo' PLACING 'daba' FROM 5) AS `yabadaba`; --- SELECT OVERLAY('yabadoo' PLACING 'daba' FROM 5 FOR 0) AS "yabadabadoo"; +SELECT OVERLAY('yabadoo' PLACING 'daba' FROM 5 FOR 0) AS `yabadabadoo`; --- SELECT OVERLAY('babosa' PLACING 'ubb' FROM 2 FOR 4) AS "bubba"; +SELECT OVERLAY('babosa' PLACING 'ubb' FROM 2 FOR 4) AS `bubba`; -- -- test LIKE diff --git a/sql/core/src/test/resources/sql-tests/results/pgSQL/strings.sql.out b/sql/core/src/test/resources/sql-tests/results/pgSQL/strings.sql.out index 41440e28431d7..1e4e6e5021de8 100644 --- a/sql/core/src/test/resources/sql-tests/results/pgSQL/strings.sql.out +++ b/sql/core/src/test/resources/sql-tests/results/pgSQL/strings.sql.out @@ -1,5 +1,5 @@ -- Automatically generated by SQLQueryTestSuite --- Number of queries: 88 +-- Number of queries: 92 -- !query 0 @@ -137,87 +137,87 @@ true -- !query 16 -SELECT 'hawkeye' LIKE 'h%' AS `true` +SELECT OVERLAY('abcdef' PLACING '45' FROM 4) AS `abc45f` -- !query 16 schema -struct +struct -- !query 16 output -true +abc45f -- !query 17 -SELECT 'hawkeye' NOT LIKE 'h%' AS `false` +SELECT OVERLAY('yabadoo' PLACING 'daba' FROM 5) AS `yabadaba` -- !query 17 schema -struct +struct -- !query 17 output -false +yabadaba -- !query 18 -SELECT 'hawkeye' LIKE 'H%' AS `false` +SELECT OVERLAY('yabadoo' PLACING 'daba' FROM 5 FOR 0) AS `yabadabadoo` -- !query 18 schema -struct +struct -- !query 18 output -false +yabadabadoo -- !query 19 -SELECT 'hawkeye' NOT LIKE 'H%' AS `true` +SELECT OVERLAY('babosa' PLACING 'ubb' FROM 2 FOR 4) AS `bubba` -- !query 19 schema -struct +struct -- !query 19 output -true +bubba -- !query 20 -SELECT 'hawkeye' LIKE 'indio%' AS `false` +SELECT 'hawkeye' LIKE 'h%' AS `true` -- !query 20 schema -struct +struct -- !query 20 output -false +true -- !query 21 -SELECT 'hawkeye' NOT LIKE 'indio%' AS `true` +SELECT 'hawkeye' NOT LIKE 'h%' AS `false` -- !query 21 schema -struct +struct -- !query 21 output -true +false -- !query 22 -SELECT 'hawkeye' LIKE 'h%eye' AS `true` +SELECT 'hawkeye' LIKE 'H%' AS `false` -- !query 22 schema -struct +struct -- !query 22 output -true +false -- !query 23 -SELECT 'hawkeye' NOT LIKE 'h%eye' AS `false` +SELECT 'hawkeye' NOT LIKE 'H%' AS `true` -- !query 23 schema -struct +struct -- !query 23 output -false +true -- !query 24 -SELECT 'indio' LIKE '_ndio' AS `true` +SELECT 'hawkeye' LIKE 'indio%' AS `false` -- !query 24 schema -struct +struct -- !query 24 output -true +false -- !query 25 -SELECT 'indio' NOT LIKE '_ndio' AS `false` +SELECT 'hawkeye' NOT LIKE 'indio%' AS `true` -- !query 25 schema -struct +struct -- !query 25 output -false +true -- !query 26 -SELECT 'indio' LIKE 'in__o' AS `true` +SELECT 'hawkeye' LIKE 'h%eye' AS `true` -- !query 26 schema struct -- !query 26 output @@ -225,7 +225,7 @@ true -- !query 27 -SELECT 'indio' NOT LIKE 'in__o' AS `false` +SELECT 'hawkeye' NOT LIKE 'h%eye' AS `false` -- !query 27 schema struct -- !query 27 output @@ -233,111 +233,111 @@ false -- !query 28 -SELECT 'indio' LIKE 'in_o' AS `false` +SELECT 'indio' LIKE '_ndio' AS `true` -- !query 28 schema -struct +struct -- !query 28 output -false +true -- !query 29 -SELECT 'indio' NOT LIKE 'in_o' AS `true` +SELECT 'indio' NOT LIKE '_ndio' AS `false` -- !query 29 schema -struct +struct -- !query 29 output -true +false -- !query 30 -SELECT 'foo' LIKE '_%' as t, 'f' LIKE '_%' as t, '' LIKE '_%' as f +SELECT 'indio' LIKE 'in__o' AS `true` -- !query 30 schema -struct +struct -- !query 30 output -true true false +true -- !query 31 -SELECT 'foo' LIKE '%_' as t, 'f' LIKE '%_' as t, '' LIKE '%_' as f +SELECT 'indio' NOT LIKE 'in__o' AS `false` -- !query 31 schema -struct +struct -- !query 31 output -true true false +false -- !query 32 -SELECT 'foo' LIKE '__%' as t, 'foo' LIKE '___%' as t, 'foo' LIKE '____%' as f +SELECT 'indio' LIKE 'in_o' AS `false` -- !query 32 schema -struct +struct -- !query 32 output -true true false +false -- !query 33 -SELECT 'foo' LIKE '%__' as t, 'foo' LIKE '%___' as t, 'foo' LIKE '%____' as f +SELECT 'indio' NOT LIKE 'in_o' AS `true` -- !query 33 schema -struct +struct -- !query 33 output -true true false +true -- !query 34 -SELECT 'jack' LIKE '%____%' AS t +SELECT 'foo' LIKE '_%' as t, 'f' LIKE '_%' as t, '' LIKE '_%' as f -- !query 34 schema -struct +struct -- !query 34 output -true +true true false -- !query 35 -SELECT 'unknown' || ' and unknown' AS `Concat unknown types` +SELECT 'foo' LIKE '%_' as t, 'f' LIKE '%_' as t, '' LIKE '%_' as f -- !query 35 schema -struct +struct -- !query 35 output -unknown and unknown +true true false -- !query 36 -SELECT string('text') || ' and unknown' AS `Concat text to unknown type` +SELECT 'foo' LIKE '__%' as t, 'foo' LIKE '___%' as t, 'foo' LIKE '____%' as f -- !query 36 schema -struct +struct -- !query 36 output -text and unknown +true true false -- !query 37 -CREATE TABLE toasttest(f1 string) USING parquet +SELECT 'foo' LIKE '%__' as t, 'foo' LIKE '%___' as t, 'foo' LIKE '%____' as f -- !query 37 schema -struct<> +struct -- !query 37 output - +true true false -- !query 38 -insert into toasttest values(repeat('1234567890',10000)) +SELECT 'jack' LIKE '%____%' AS t -- !query 38 schema -struct<> +struct -- !query 38 output - +true -- !query 39 -insert into toasttest values(repeat('1234567890',10000)) +SELECT 'unknown' || ' and unknown' AS `Concat unknown types` -- !query 39 schema -struct<> +struct -- !query 39 output - +unknown and unknown -- !query 40 -insert into toasttest values(repeat('1234567890',10000)) +SELECT string('text') || ' and unknown' AS `Concat text to unknown type` -- !query 40 schema -struct<> +struct -- !query 40 output - +text and unknown -- !query 41 -insert into toasttest values(repeat('1234567890',10000)) +CREATE TABLE toasttest(f1 string) USING parquet -- !query 41 schema struct<> -- !query 41 output @@ -345,125 +345,125 @@ struct<> -- !query 42 -SELECT substr(f1, 99995) from toasttest +insert into toasttest values(repeat('1234567890',10000)) -- !query 42 schema -struct +struct<> -- !query 42 output -567890 -567890 -567890 -567890 + -- !query 43 -SELECT substr(f1, 99995, 10) from toasttest +insert into toasttest values(repeat('1234567890',10000)) -- !query 43 schema -struct +struct<> -- !query 43 output -567890 -567890 -567890 -567890 + -- !query 44 -SELECT length('abcdef') AS `length_6` +insert into toasttest values(repeat('1234567890',10000)) -- !query 44 schema -struct +struct<> -- !query 44 output -6 + -- !query 45 -SELECT position('cd', 'abcdef') AS `pos_3` +insert into toasttest values(repeat('1234567890',10000)) -- !query 45 schema -struct +struct<> -- !query 45 output -3 + -- !query 46 -SELECT position('xy', 'abcdef') AS `pos_0` +SELECT substr(f1, 99995) from toasttest -- !query 46 schema -struct +struct -- !query 46 output -0 +567890 +567890 +567890 +567890 -- !query 47 -SELECT replace('abcdef', 'de', '45') AS `abc45f` +SELECT substr(f1, 99995, 10) from toasttest -- !query 47 schema -struct +struct -- !query 47 output -abc45f +567890 +567890 +567890 +567890 -- !query 48 -SELECT replace('yabadabadoo', 'ba', '123') AS `ya123da123doo` +SELECT length('abcdef') AS `length_6` -- !query 48 schema -struct +struct -- !query 48 output -ya123da123doo +6 -- !query 49 -SELECT replace('yabadoo', 'bad', '') AS `yaoo` +SELECT position('cd', 'abcdef') AS `pos_3` -- !query 49 schema -struct +struct -- !query 49 output -yaoo +3 -- !query 50 -select hex(256*256*256 - 1) AS `ffffff` +SELECT position('xy', 'abcdef') AS `pos_0` -- !query 50 schema -struct +struct -- !query 50 output -FFFFFF +0 -- !query 51 -select hex(bigint(bigint(bigint(bigint(256)*256)*256)*256) - 1) AS `ffffffff` +SELECT replace('abcdef', 'de', '45') AS `abc45f` -- !query 51 schema -struct +struct -- !query 51 output -FFFFFFFF +abc45f -- !query 52 -select md5('') = 'd41d8cd98f00b204e9800998ecf8427e' AS `TRUE` +SELECT replace('yabadabadoo', 'ba', '123') AS `ya123da123doo` -- !query 52 schema -struct +struct -- !query 52 output -true +ya123da123doo -- !query 53 -select md5('a') = '0cc175b9c0f1b6a831c399e269772661' AS `TRUE` +SELECT replace('yabadoo', 'bad', '') AS `yaoo` -- !query 53 schema -struct +struct -- !query 53 output -true +yaoo -- !query 54 -select md5('abc') = '900150983cd24fb0d6963f7d28e17f72' AS `TRUE` +select hex(256*256*256 - 1) AS `ffffff` -- !query 54 schema -struct +struct -- !query 54 output -true +FFFFFF -- !query 55 -select md5('message digest') = 'f96b697d7cb7938d525a2f31aaf161d0' AS `TRUE` +select hex(bigint(bigint(bigint(bigint(256)*256)*256)*256) - 1) AS `ffffffff` -- !query 55 schema -struct +struct -- !query 55 output -true +FFFFFFFF -- !query 56 -select md5('abcdefghijklmnopqrstuvwxyz') = 'c3fcd3d76192e4007dfb496cca67e13b' AS `TRUE` +select md5('') = 'd41d8cd98f00b204e9800998ecf8427e' AS `TRUE` -- !query 56 schema struct -- !query 56 output @@ -471,7 +471,7 @@ true -- !query 57 -select md5('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789') = 'd174ab98d277d9f5a5611c2c9f419d9f' AS `TRUE` +select md5('a') = '0cc175b9c0f1b6a831c399e269772661' AS `TRUE` -- !query 57 schema struct -- !query 57 output @@ -479,7 +479,7 @@ true -- !query 58 -select md5('12345678901234567890123456789012345678901234567890123456789012345678901234567890') = '57edf4a22be3c955ac49da2e2107b67a' AS `TRUE` +select md5('abc') = '900150983cd24fb0d6963f7d28e17f72' AS `TRUE` -- !query 58 schema struct -- !query 58 output @@ -487,7 +487,7 @@ true -- !query 59 -select md5(binary('')) = 'd41d8cd98f00b204e9800998ecf8427e' AS `TRUE` +select md5('message digest') = 'f96b697d7cb7938d525a2f31aaf161d0' AS `TRUE` -- !query 59 schema struct -- !query 59 output @@ -495,7 +495,7 @@ true -- !query 60 -select md5(binary('a')) = '0cc175b9c0f1b6a831c399e269772661' AS `TRUE` +select md5('abcdefghijklmnopqrstuvwxyz') = 'c3fcd3d76192e4007dfb496cca67e13b' AS `TRUE` -- !query 60 schema struct -- !query 60 output @@ -503,7 +503,7 @@ true -- !query 61 -select md5(binary('abc')) = '900150983cd24fb0d6963f7d28e17f72' AS `TRUE` +select md5('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789') = 'd174ab98d277d9f5a5611c2c9f419d9f' AS `TRUE` -- !query 61 schema struct -- !query 61 output @@ -511,7 +511,7 @@ true -- !query 62 -select md5(binary('message digest')) = 'f96b697d7cb7938d525a2f31aaf161d0' AS `TRUE` +select md5('12345678901234567890123456789012345678901234567890123456789012345678901234567890') = '57edf4a22be3c955ac49da2e2107b67a' AS `TRUE` -- !query 62 schema struct -- !query 62 output @@ -519,7 +519,7 @@ true -- !query 63 -select md5(binary('abcdefghijklmnopqrstuvwxyz')) = 'c3fcd3d76192e4007dfb496cca67e13b' AS `TRUE` +select md5(binary('')) = 'd41d8cd98f00b204e9800998ecf8427e' AS `TRUE` -- !query 63 schema struct -- !query 63 output @@ -527,7 +527,7 @@ true -- !query 64 -select md5(binary('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789')) = 'd174ab98d277d9f5a5611c2c9f419d9f' AS `TRUE` +select md5(binary('a')) = '0cc175b9c0f1b6a831c399e269772661' AS `TRUE` -- !query 64 schema struct -- !query 64 output @@ -535,7 +535,7 @@ true -- !query 65 -select md5(binary('12345678901234567890123456789012345678901234567890123456789012345678901234567890')) = '57edf4a22be3c955ac49da2e2107b67a' AS `TRUE` +select md5(binary('abc')) = '900150983cd24fb0d6963f7d28e17f72' AS `TRUE` -- !query 65 schema struct -- !query 65 output @@ -543,176 +543,208 @@ true -- !query 66 -SELECT initcap('hi THOMAS') +select md5(binary('message digest')) = 'f96b697d7cb7938d525a2f31aaf161d0' AS `TRUE` -- !query 66 schema -struct +struct -- !query 66 output -Hi Thomas +true -- !query 67 -SELECT lpad('hi', 5, 'xy') +select md5(binary('abcdefghijklmnopqrstuvwxyz')) = 'c3fcd3d76192e4007dfb496cca67e13b' AS `TRUE` -- !query 67 schema -struct +struct -- !query 67 output -xyxhi +true -- !query 68 -SELECT lpad('hi', 5) +select md5(binary('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789')) = 'd174ab98d277d9f5a5611c2c9f419d9f' AS `TRUE` -- !query 68 schema -struct +struct -- !query 68 output - hi +true -- !query 69 -SELECT lpad('hi', -5, 'xy') +select md5(binary('12345678901234567890123456789012345678901234567890123456789012345678901234567890')) = '57edf4a22be3c955ac49da2e2107b67a' AS `TRUE` -- !query 69 schema -struct +struct -- !query 69 output - +true -- !query 70 -SELECT lpad('hello', 2) +SELECT initcap('hi THOMAS') -- !query 70 schema -struct +struct -- !query 70 output -he +Hi Thomas -- !query 71 -SELECT lpad('hi', 5, '') +SELECT lpad('hi', 5, 'xy') -- !query 71 schema -struct +struct -- !query 71 output -hi +xyxhi -- !query 72 -SELECT rpad('hi', 5, 'xy') +SELECT lpad('hi', 5) -- !query 72 schema -struct +struct -- !query 72 output -hixyx + hi -- !query 73 -SELECT rpad('hi', 5) +SELECT lpad('hi', -5, 'xy') -- !query 73 schema -struct +struct -- !query 73 output -hi + -- !query 74 -SELECT rpad('hi', -5, 'xy') +SELECT lpad('hello', 2) -- !query 74 schema -struct +struct -- !query 74 output - +he -- !query 75 -SELECT rpad('hello', 2) +SELECT lpad('hi', 5, '') -- !query 75 schema -struct +struct -- !query 75 output -he +hi -- !query 76 -SELECT rpad('hi', 5, '') +SELECT rpad('hi', 5, 'xy') -- !query 76 schema -struct +struct -- !query 76 output -hi +hixyx -- !query 77 -SELECT ltrim('zzzytrim', 'xyz') +SELECT rpad('hi', 5) -- !query 77 schema -struct +struct -- !query 77 output -trim +hi -- !query 78 -SELECT translate('', '14', 'ax') +SELECT rpad('hi', -5, 'xy') -- !query 78 schema -struct +struct -- !query 78 output -- !query 79 -SELECT translate('12345', '14', 'ax') +SELECT rpad('hello', 2) -- !query 79 schema -struct +struct -- !query 79 output -a23x5 +he -- !query 80 -SELECT ascii('x') +SELECT rpad('hi', 5, '') -- !query 80 schema -struct +struct -- !query 80 output -120 +hi -- !query 81 -SELECT ascii('') +SELECT ltrim('zzzytrim', 'xyz') -- !query 81 schema -struct +struct -- !query 81 output -0 +trim -- !query 82 -SELECT chr(65) +SELECT translate('', '14', 'ax') -- !query 82 schema -struct +struct -- !query 82 output -A + -- !query 83 -SELECT chr(0) +SELECT translate('12345', '14', 'ax') -- !query 83 schema -struct +struct -- !query 83 output - +a23x5 -- !query 84 -SELECT repeat('Pg', 4) +SELECT ascii('x') -- !query 84 schema -struct +struct -- !query 84 output -PgPgPgPg +120 -- !query 85 -SELECT repeat('Pg', -4) +SELECT ascii('') -- !query 85 schema -struct +struct -- !query 85 output - +0 -- !query 86 -SELECT trim(binary('\\000') from binary('\\000Tom\\000')) +SELECT chr(65) -- !query 86 schema -struct +struct -- !query 86 output -Tom +A -- !query 87 -DROP TABLE toasttest +SELECT chr(0) -- !query 87 schema -struct<> +struct -- !query 87 output + + + +-- !query 88 +SELECT repeat('Pg', 4) +-- !query 88 schema +struct +-- !query 88 output +PgPgPgPg + + +-- !query 89 +SELECT repeat('Pg', -4) +-- !query 89 schema +struct +-- !query 89 output + + + +-- !query 90 +SELECT trim(binary('\\000') from binary('\\000Tom\\000')) +-- !query 90 schema +struct +-- !query 90 output +Tom + + +-- !query 91 +DROP TABLE toasttest +-- !query 91 schema +struct<> +-- !query 91 output