Re: Hide 'Execution time' in EXPLAIN (COSTS OFF)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andres Freund <andres(at)2ndquadrant(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Hide 'Execution time' in EXPLAIN (COSTS OFF)
Date: 2014-06-03 19:08:15
Message-ID: 20067.1401822495@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> In 9.4. COSTS OFF for EXPLAIN prevents 'Planning time' to be
> printed. Should we perhaps do the same for 'Execution time'? That'd make
> it possible to use EXPLAIN (ANALYZE, COSTS OFF, TIMING OFF) in
> regression tests.

> Currently the output for that is:
> postgres=# EXPLAIN (ANALYZE, TIMING OFF, COSTS OFF) SELECT 1;
> QUERY PLAN
> --------------------------------
> Result (actual rows=1 loops=1)
> Total runtime: 0.035 ms
> (2 rows)

> Leaving off the total runtime doesn't seem bad to me.

It seems a little weird to call it a "cost" ... but maybe that
ship has sailed given how we're treating the planning-time item.

I'm unconvinced that this'd add much to our regression testing capability,
though. The standard thing is to do an EXPLAIN to check the plan shape
and then run the query to see if it gets the right answer. Checking row
counts is pretty well subsumed by the latter, and is certainly not an
adequate substitute for it.

So on the whole, -1 ... this is an unintuitive and
non-backwards-compatible change that doesn't look like it buys much.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2014-06-03 19:13:18 Re: Hide 'Execution time' in EXPLAIN (COSTS OFF)
Previous Message David G Johnston 2014-06-03 18:32:45 Re: idle_in_transaction_timeout