Вызов функции с параметрами внутри цикла
Есть функция get_records(text[], timestamp, timestamp), в которой просходит обращение к таблице по фильтрам WHERE event = ANY($1) AND event_dtm BETWEEN $2 AND $3. Мне необходимо в цикле вызывать эту функцию и обрабатывать ответ RETURNS text[]. Проблема в том, что если я вызываю эту функцию с аргументами timestamp она ужасно медленно работает, в 20-30 раз медленнее, чем когда я тестирую эту функцию без аргументов, переписав её фильтр на WHERE event = ANY($1) AND event_dtm BETWEEN '2021-12-07 00:00:00' AND '2021-12-07 23:59:59 и также вызывая в цикле.
Я попробовал написать запрос из этой функции прямо в теле цикла, и у меня такие-же проблемы. Если я задаю заранее в DECLARE переменные timestamp и передаю их в запрос - это работает в разы медленнее если я прямо в запросе в фильтре напишу дату.
Даже если я определю динамический запрос и в цикле выполню EXECUTE sql_query INTO event_list USING v_current_chunk_list, in_time_start::timestamp, in_time_end::timestamp это работает гораздо быстрее, чем выполнение plpgsql запроса SELECT foo INTO event_list FROM ... WHERE event = ANY(v_current_chunk_list) AND event_dtm BETWEEN in_time_start AND in_time_end