How do a user-defined function that returns a table executes a query?
Hi everyone, I hope this message finds you in good health and spirits. I am reaching out to this incredible community for some guidance and advice. I am currently trying to understand how a user-defined function that returns a table executes a query. In a normal SQL, we can use the EXPLAIN command to view the execution plan. However, in this case, I am not sure how a user-defined function work. If anyone has faced a similar situation and found a way to view the execution plan, I would greatly appreciate your insights and suggestions. Thank you for taking the time to read my message. I look forward to hearing from you. Best regards,
Re: How do a user-defined function that returns a table executes a query?
Dear David, Thank you for your prompt reply. This is exactly what I was looking for. Thank you for your help. Best regards, Katsuya Okizaki 2023年2月8日(水) 8:51 David G. Johnston : > On Tue, Feb 7, 2023 at 4:49 PM Katsuya Okizaki > wrote: > >> In a normal SQL, we can use the EXPLAIN command to view the execution >> plan. However, in this case, I am not sure how a user-defined function work. >> >> If anyone has faced a similar situation and found a way to view the >> execution plan, I would greatly appreciate your insights and suggestions. >> >> > https://www.postgresql.org/docs/current/auto-explain.html > > David J. >
Re: How do a user-defined function that returns a table executes a query?
Dear Laurenz, Thank you for your help. As you suspected, I was seeking a way to view the execution plan of a function defined in SQL. Your suggestion was exactly what I needed and has been very helpful. Additionally, I also appreciated learning about the debugging techniques for PL/pgSQL. Thank you for your valuable advice. Best regards, Katsuya Okizaki 2023年2月8日(水) 19:18 Laurenz Albe : > On Wed, 2023-02-08 at 08:49 +0900, Katsuya Okizaki wrote: > > In a normal SQL, we can use the EXPLAIN command to view the execution > plan. > > However, in this case, I am not sure how a user-defined function work. > > > > If anyone has faced a similar situation and found a way to view the > execution plan, > > I would greatly appreciate your insights and suggestions. > > I am not sure which of the following you want: > > 1. Get the execution plan of SQL statements run inside a function: > >For that, you would use "auto_explain" with > "auto_explain.log_nested_statements = on". > > 2. Get a trace of the execution of the function code itself: > >For PL/pgSQL, there is "pldebugger" ( > https://github.com/EnterpriseDB/pldebugger), >which can be used together with pgAdmin. > >I usually sprinkle the code with RAISE NOTICE statements. > > Yours, > Laurenz Albe > -- > Cybertec | https://www.cybertec-postgresql.com >