Делаю просто запрос
SELECT "id", "name" FROM "mytable" WHERE date BETWEEN '2017-02-01 00:00:00' AND '2017-02-22 00:00:00'
запрос отрабатывается за 1,7 секунд (данных много)
помещаю этот же запрос в функцию в которой делаю тот же запрос так:
RETURN QUERY EXECUTE 'SELECT "id", "name" FROM "mytable" WHERE date BETWEEN ' || quote_nullable(t1) || ' AND ' || quote_nullable(t2);
скорость запроса уменьшается вдвое до 3,4 сек. Как такое может быть? да в функции делаются еще определенные действия, но они выполняются за доли секунд