From: | Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at> |
---|---|
To: | Katsuya Okizaki <miotsukushi0800(at)gmail(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: How do a user-defined function that returns a table executes a query? |
Date: | 2023-02-08 10:18:00 |
Message-ID: | dc3596ca4e75b29f8ee74a4fa218c2ad4c6ced2e.camel@cybertec.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2023-02-08 11:03:48 | Re: Switching identity column to serial |
Previous Message | veem v | 2023-02-08 09:18:03 | Re: Sequence vs UUID |