Hi all;
I suspect I know what the answer here is, but I thought I would ask
anyway. How transparent are SQL language functions from the planner's
perspective? For example if I create a table:
CREATE TABLE proof_of_concept(
poc_id serial primary key,
testing text
);
and a function:
CREATE FUNCTION search_poc() RETURNS setof proof_of_concept AS '
SELECT * FROM proof_of_concept
' LANGUAGE SQL;
Then will the planner be able to use indexes if I do:
SELECT * FROM search_poc() WHERE poc_id = 16023
I am assuming it won't. But can the planner "see inside" the SQL
language functions, thus expanding them similar to a view, or will this
force a sequential scan?
Best Wishes,
Chris Travers