PostgreSQL 9.5Mit IN vs ANY in CREATE FUNCTION
Ich versuche, meinen Kopf herum zu wickeln, wie ich gehen kann, eine Funktion erstellen, die diese aber nicht in der Lage ähnlich arbeiten, um irgendwelche Fortschritte zu machen. Was muss ich optimieren, damit dies richtig funktioniert?
SELECT * FROM get_all_rows ('{Home,Away}','{LF,RL,CENTER}','2016-06-01 00:00:00','2016-06-30 23:59:59')
-- '2016-06-08 12:24:50','2016-06-09 04:59:45','SW'
-- '2016-06-08 07:12:12','2016-06-09 08:55:25','NW'
CREATE OR REPLACE FUNCTION get_all_rows (
tbl TEXT,
disp TEXT[],
area TEXT[],
current TIMESTAMP,
future TIMESTAMP
)
RETURNS TABLE (
a TIMESTAMP,
b TIMESTAMP,
c TEXT
) AS
$func$
BEGIN
EXECUTE
'SELECT
door_time,
guard_time,
area
FROM
' || quote_ident(tbl) || '
WHERE
disposition = ANY (disp)
and area = ANY (area)
and door_time IS NOT NULL
and guard_time IS NOT NULL
and arrival >= arrival_begin
and arrival <= arrival_end';
END
$func$ LANGUAGE plpgsql;
Sie können 'RETURN QUERY EXECUTE', anstelle eines einfachen' EXECUTE' (das ist ein noop in Ihrer aktuellen Funktion ist) . – pozs
Vielen Dank für den Hinweis! – Traxus