recipe-graph/docker/psql/init.sql

40 lines
654 B
PL/PgSQL

CREATE EXTENSION plpython3u;
CREATE FUNCTION text_pairs(list TEXT[])
RETURNS SETOF TEXT[]
LANGUAGE plpgsql AS
$$
DECLARE
x TEXT;
y TEXT;
BEGIN
for x, y in(
SELECT *
FROM unnest(list) a
CROSS JOIN unnest(list) b
WHERE a > b)
LOOP
RETURN NEXT ARRAY [x, y];
END LOOP;
END;
$$;
CREATE FUNCTION int_pairs(list INTEGER[])
RETURNS SETOF INTEGER[]
LANGUAGE plpgsql AS
$$
DECLARE
x INTEGER;
y INTEGER;
BEGIN
for x, y in(
SELECT *
FROM unnest(list) a
CROSS JOIN unnest(list) b
WHERE a > b)
LOOP
RETURN NEXT ARRAY [x, y];
END LOOP;
END;
$$;