Hi, I understand that it is not possible to occasionally re-plan the queries in a PL/pgSQL function without dropping and re-creating the function.
I think it would be useful if the queries in a PL/pgSQL function could be re-planned on-the-fly. When a lot of data has been added/modified and ANALYZE is suitable to run, it would also be a great idea to re-plan the queries used in PL/pgSQL functions. I understand that this is not possible? The only way would be to DROP/CREATE the functions or to use EXECUTE. I don't think EXECUTE is an option, because preparing the queries every time the function is called is in my case not necessary and just a waste of performance. As a work-around, I am forced to, 1. populate the database with a lot of test data, 2. run ANALYZE, 3. and finally, create the PL/pgSQL functions The prepared queries in the functions will now be sufficiently optimized. I don't think this is a nice solution. I also thought of a slightly better solution, but I don't know if it is possible. My idea was to populate the database once and then save the data in pg_statistics generated by ANALYZE to a file. Every time the database needs to be created, the statistics could then be restored thus making the planner produce "future-optimized" queries when the PL/pgSQL functions are created, even though the database is empty. I would greatly appreciate any help/comments. Thank you. Joel Jacobson <[EMAIL PROTECTED]> ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly