2flower _
в этой функции если я правильно понял когда в табл. 50к записей, он каждый раз проверяет id которые проверял на предыдущей итерации,
в субд это все оптимизировано, вы придумываете велосипед, такой качественный тормозной.
Еще раз - это написано и на С и работает процентов может на 10-20 медленнее, чем штатный SUM, так что идеологически. все правильно. Проблема в том, что в реализации на PGSQL это работает раз в 50 медленнее. Что едопустимо. Поэтому хочется попробовать сделать на PLV8