File: variadic.sql

package info (click to toggle)
sqlfluff 3.5.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 34,000 kB
  • sloc: python: 106,131; sql: 34,188; makefile: 52; sh: 8
file content (53 lines) | stat: -rw-r--r-- 1,339 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
CREATE FUNCTION mleast(VARIADIC arr numeric[]) RETURNS numeric AS $$
    SELECT min($1[i]) FROM generate_subscripts($1, 1) g(i);
$$ LANGUAGE SQL;

SELECT mleast(VARIADIC ARRAY[10, -1, 5, 4.4]);

SELECT mleast(VARIADIC ARRAY[]::numeric[]);

SELECT mleast(VARIADIC arr := ARRAY[10, -1, 5, 4.4]);

CREATE FUNCTION anyleast (VARIADIC anyarray) RETURNS anyelement AS $$
    SELECT min($1[i]) FROM generate_subscripts($1, 1) g(i);
$$ LANGUAGE SQL;

CREATE FUNCTION concat_values(text, VARIADIC anyarray) RETURNS text AS $$
    SELECT array_to_string($2, $1);
$$ LANGUAGE SQL;

SELECT my_function(other_function(
    VARIADIC ARRAY_REMOVE(ARRAY[
        a.value1,
        b.value2,
        c.value3
    ], NULL)
))
FROM a
FULL OUTER JOIN b USING (id)
FULL OUTER JOIN c USING (id);

SELECT json_extract_path_text(t.col::json, VARIADIC ARRAY['foo'::text])
FROM t;

SELECT my_function(VARIADIC ARRAY[
    CASE WHEN x > 0 THEN x ELSE 0 END,
    y + z,
    'literal'
]);

SELECT my_function(VARIADIC ARRAY(SELECT value FROM table1));

SELECT my_function(VARIADIC param_name = ARRAY[1, 2, 3]);

SELECT my_function(
    regular_param = 'value',
    VARIADIC variadic_param = ARRAY[1, 2, 3]
);

SELECT my_function(VARIADIC param_name => ARRAY[1, 2, 3]);

SELECT my_function(
    regular_param => 'value',
    VARIADIC variadic_param => ARRAY[1, 2, 3]
);