1999-08-17 23:21:22 +02:00
|
|
|
#! /bin/sh
|
|
|
|
|
|
|
|
# This script runs the Postgres regression tests with all useful combinations
|
|
|
|
# of the backend options that disable various query plan types. If the
|
|
|
|
# results are not all the same, it may indicate a bug in a particular
|
|
|
|
# plan type, or perhaps just a regression test whose results aren't fully
|
|
|
|
# determinate (eg, due to lack of an ORDER BY keyword).
|
|
|
|
#
|
|
|
|
# Run this in the src/test/regress directory, after doing the usual setup
|
|
|
|
# for a regular regression test, ie, "make clean all" (you should be ready
|
|
|
|
# to do "make runtest").
|
|
|
|
#
|
|
|
|
# The backend option switches that we use here are:
|
|
|
|
# -fs disable sequential scans
|
|
|
|
# -fi disable index scans
|
|
|
|
# -fn disable nestloop joins
|
|
|
|
# -fm disable merge joins
|
|
|
|
# -fh disable hash joins
|
|
|
|
# Only mergejoin and hashjoin are really guaranteed to turn off; the others
|
|
|
|
# just bias the optimizer's cost calculations heavily against that choice.
|
|
|
|
# There's no point in trying to turn off both scan types or all three join
|
|
|
|
# types simultaneously; ergo, we have 3*7 = 21 interesting combinations.
|
|
|
|
#
|
|
|
|
# Note that this will take *more than* 21 times longer than a regular
|
|
|
|
# regression test, since we are preventing the system from using the most
|
|
|
|
# efficient available query plans! Have patience.
|
|
|
|
|
|
|
|
|
2014-02-12 23:29:19 +01:00
|
|
|
# Select make to use --- default 'make', can be overridden by env var
|
|
|
|
MAKE="${MAKE:-make}"
|
2000-12-18 03:45:47 +01:00
|
|
|
|
|
|
|
# If PGOPTIONS is already defined, we'll add the -f switches to it.
|
|
|
|
PGOPTIONS="${PGOPTIONS:-}"
|
1999-08-17 23:21:22 +02:00
|
|
|
|
|
|
|
mkdir planregress
|
|
|
|
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS " $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.normal
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.normal
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fh" $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.h
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.h
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fm " $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.m
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.m
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fm -fh" $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.mh
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.mh
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fn " $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.n
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.n
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fn -fh" $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.nh
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.nh
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fn -fm " $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.nm
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.nm
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fi " $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.i
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.i
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fi -fh" $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.ih
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.ih
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fi -fm " $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.im
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.im
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fi -fm -fh" $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.imh
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.imh
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fi -fn " $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.in
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.in
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fi -fn -fh" $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.inh
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffsregression.planregress/inh
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fi -fn -fm " $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.inm
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.inm
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fs " $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.s
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.s
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fs -fh" $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.sh
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.sh
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fs -fm " $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.sm
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.sm
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fs -fm -fh" $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.smh
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.smh
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fs -fn " $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.sn
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.sn
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fs -fn -fh" $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.snh
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.snh
|
2000-12-18 03:45:47 +01:00
|
|
|
PGOPTIONS="$PGOPTIONS -fs -fn -fm " $MAKE runtest
|
2000-11-22 17:40:22 +01:00
|
|
|
mv -f regression.out planregress/out.snm
|
1999-08-17 23:21:22 +02:00
|
|
|
mv -f regression.diffs planregress/diffs.snm
|
|
|
|
|
|
|
|
exit 0
|