On Thu, Jan 25, 2024 at 12:29 PM Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
Ron Johnson <ronljohnsonjr@xxxxxxxxx> writes:
> EXPLAIN SELECT works inside a FOR loop, but only the first line of the
> EXPLAIN output is stored. What's the magic sauce for seeing the whole
> EXPLAIN output?
The usual way is to run a FOR loop over the lines of output.
Quick & dirty example:
regression=# do $$
declare ln text;
begin
for ln in explain select * from int8_tbl join int4_tbl on q1=f1 loop
raise notice '%', ln;
end loop;
end $$;
NOTICE: Hash Join (cost=1.11..2.23 rows=5 width=20)
NOTICE: Hash Cond: (int8_tbl.q1 = int4_tbl.f1)
NOTICE: -> Seq Scan on int8_tbl (cost=0.00..1.05 rows=5 width=16)
NOTICE: -> Hash (cost=1.05..1.05 rows=5 width=4)
NOTICE: -> Seq Scan on int4_tbl (cost=0.00..1.05 rows=5 width=4)
DO
Thanks.