Using EXPLAIN in regressions?

Started by Joshua Reichover 19 years ago3 messages
#1Joshua Reich
josh@root.net

Is it safe to use the output of EXPLAIN in regression tests? I want to
make sure that certain GiST indexes are being used by sample queries,
but I am not sure if it is safe to rely on the format of EXPLAIN to be
unchanging.

Thoughts?

Josh Reich

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Joshua Reich (#1)
Re: Using EXPLAIN in regressions?

Joshua Reich <josh@root.net> writes:

Is it safe to use the output of EXPLAIN in regression tests?

No, not unless you want the test to break every other week.

I want to
make sure that certain GiST indexes are being used by sample queries,

About the best bet is to make sure that's the *only* available index,
and set enable_seqscan = off to be sure.

In some cases, you can use the ordering of the returned rows as a proxy
--- if they're returned in something other than heap order then it must
have used an index.  I'm not sure if this will be a stable answer for
GIST indexes though.

regards, tom lane

#3Neil Conway
neilc@samurai.com
In reply to: Tom Lane (#2)
Re: Using EXPLAIN in regressions?

On Thu, 2006-07-20 at 18:19 -0400, Tom Lane wrote:

About the best bet is to make sure that's the *only* available index,
and set enable_seqscan = off to be sure.

Another approach would be to define a UDF that takes a query string,
runs the parser, rewriter, and planner on the string and then checks
various properties of the resulting Plan (e.g. that it includes a GiST
index scan).

-Neil