В случае, если кому-то интересно, сообщение на php.net дает следующее решение:
protected function dbquery($query){
pg_query("BEGIN;");
$tr=pg_query($query);
$r=pg_fetch_row($tr);
$name=$r[0];
$rs=pg_query("FETCH ALL IN \"" . $name . "\";");
pg_query("END;");
return $rs;
}
Который может быть подключен в модели следующим образом:
$query = $this->dbquery("SELECT * FROM my_function()");
while ($row = pg_fetch_assoc($query))
{
array_push($result, array('my_column' => $row['my_column'] ));
}
Не идеальное решение, поскольку оно не использует функции драйвера CI Postgres (хотя, вероятно, его можно изменить), но оно работает.