diff options
Diffstat (limited to 'src/test/regress/sql/text.sql')
-rw-r--r-- | src/test/regress/sql/text.sql | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/test/regress/sql/text.sql b/src/test/regress/sql/text.sql index 96e425d3cf7..a96e9f7d1e7 100644 --- a/src/test/regress/sql/text.sql +++ b/src/test/regress/sql/text.sql @@ -44,6 +44,14 @@ select i, left('ahoj', i), right('ahoj', i) from generate_series(-5, 5) t(i) ord select quote_literal(''); select quote_literal('abc'''); select quote_literal(e'\\'); +-- check variadic labeled argument +select concat(variadic array[1,2,3]); +select concat_ws(',', variadic array[1,2,3]); +select concat_ws(',', variadic NULL); +select concat(variadic NULL) is NULL; +select concat(variadic '{}'::int[]) = ''; +--should fail +select concat_ws(',', variadic 10); /* * format @@ -73,6 +81,19 @@ select format('%1$s %13$s', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12); select format('%1s', 1); select format('%1$', 1); select format('%1$1', 1); ---checkk mix of positional and ordered placeholders +-- check mix of positional and ordered placeholders select format('Hello %s %1$s %s', 'World', 'Hello again'); select format('Hello %s %s, %2$s %2$s', 'World', 'Hello again'); +-- check variadic labeled arguments +select format('%s, %s', variadic array['Hello','World']); +select format('%s, %s', variadic array[1, 2]); +select format('%s, %s', variadic array[true, false]); +select format('%s, %s', variadic array[true, false]::text[]); +-- check variadic with positional placeholders +select format('%2$s, %1$s', variadic array['first', 'second']); +select format('%2$s, %1$s', variadic array[1, 2]); +-- variadic argument can be NULL, but should not be referenced +select format('Hello', variadic NULL); +-- variadic argument allows simulating more than FUNC_MAX_ARGS parameters +select format(string_agg('%s',','), variadic array_agg(i)) +from generate_series(1,200) g(i); |