Files
email-tracker/external/duckdb/test/sql/function/string/test_pad.test
2025-10-24 19:21:19 -05:00

113 lines
2.5 KiB
SQL

# name: test/sql/function/string/test_pad.test
# description: LPAD/RPAD test
# group: [string]
statement ok
PRAGMA enable_verification
# test lpad on NULLs
query TTTTTTT
select LPAD(NULL, 7, '-'), LPAD('Base', NULL, '-'), LPAD('Base', 7, NULL), LPAD(NULL, NULL, '-'), LPAD(NULL, 7, NULL), LPAD('Base', NULL, NULL), LPAD(NULL, NULL, NULL)
----
NULL NULL NULL NULL NULL NULL NULL
# test rpad on NULLs
query TTTTTTT
select RPAD(NULL, 7, '-'), RPAD('Base', NULL, '-'), RPAD('Base', 7, NULL), RPAD(NULL, NULL, '-'), RPAD(NULL, 7, NULL), RPAD('Base', NULL, NULL), RPAD(NULL, NULL, NULL)
----
NULL NULL NULL NULL NULL NULL NULL
# test lpad/rpad on scalar values
query TTTT
select LPAD('Base', 7, '-'), LPAD('Base', 4, '-'), LPAD('Base', 2, ''), LPAD('Base', -1, '-')
----
---Base Base Ba (empty)
query TTTT
select RPAD('Base', 7, '-'), RPAD('Base', 4, '-'), RPAD('Base', 2, ''), RPAD('Base', -1, '-')
----
Base--- Base Ba (empty)
query TTTT
select LPAD('Base', 7, '-|'), LPAD('Base', 6, '-|'), LPAD('Base', 5, '-|'), LPAD('Base', 4, '-|')
----
-|-Base -|Base -Base Base
query TTTT
select RPAD('Base', 7, '-|'), RPAD('Base', 6, '-|'), RPAD('Base', 5, '-|'), RPAD('Base', 4, '-|')
----
Base-|- Base-| Base- Base
query TTT
select LPAD('MotörHead', 16, 'RÄcks'), LPAD('MotörHead', 12, 'RÄcks'), LPAD('MotörHead', 10, 'RÄcks')
----
RÄcksRÄMotörHead RÄcMotörHead RMotörHead
query TTT
select RPAD('MotörHead', 16, 'RÄcks'), RPAD('MotörHead', 12, 'RÄcks'), RPAD('MotörHead', 10, 'RÄcks')
----
MotörHeadRÄcksRÄ MotörHeadRÄc MotörHeadR
# test on entire tables
statement ok
CREATE TABLE strings(a STRING, b STRING)
statement ok
INSERT INTO strings VALUES ('Hello', 'World'), ('HuLlD', NULL), ('MotörHead','RÄcks')
query TT
select LPAD(a, 16, b), RPAD(a, 16, b) FROM strings
----
WorldWorldWHello HelloWorldWorldW
NULL NULL
RÄcksRÄMotörHead MotörHeadRÄcksRÄ
# test with selection vector
query TTTT
select LPAD(a, 12, b), RPAD(a, 12, b), UCASE(a), LCASE(a) FROM strings WHERE b IS NOT NULL
----
WorldWoHello HelloWorldWo HELLO hello
RÄcMotörHead MotörHeadRÄc MOTÖRHEAD motörhead
# test incorrect usage
statement error
select LPAD()
----
statement error
select LPAD(1)
----
statement error
select LPAD(1, 2)
----
statement error
select LPAD('Hello', 10, '')
----
statement error
select LPAD('a', 100000000000000000, 0)
----
statement error
select RPAD()
----
statement error
select RPAD(1)
----
statement error
select RPAD(1, 2)
----
statement error
select RPAD('Hello', 10, '')
----
statement error
select RPAD('a', 100000000000000000, 0)
----