Re: How do a user-defined function that returns a table executes a query? - Mailing list pgsql-general

From Katsuya Okizaki
Subject Re: How do a user-defined function that returns a table executes a query?
Date
Msg-id CAAe6QrAhO4s=OTM9JNs7_F0y-qprVjTGw4c_jh6Jt2stUMF75Q@mail.gmail.com
Whole thread Raw
In response to Re: How do a user-defined function that returns a table executes a query?  (Laurenz Albe <laurenz.albe@cybertec.at>)
List pgsql-general
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 <laurenz.albe@cybertec.at>:
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

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: How to create directory format backup
Next
From: "Martin L. Buchanan"
Date:
Subject: Boyer-Moore string searching in LIKE, ILIKE, and/or POSITION?