Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit6defe49

Browse files
committed
Add script that runs the regression tests with all valid
combinations of query-plan-type backend options. Good for testingplanner/optimizer. Tedious, though.
1 parent898b212 commit6defe49

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed

‎src/test/regress/regressplans.sh

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
#! /bin/sh
2+
3+
# This script runs the Postgres regression tests with all useful combinations
4+
# of the backend options that disable various query plan types. If the
5+
# results are not all the same, it may indicate a bug in a particular
6+
# plan type, or perhaps just a regression test whose results aren't fully
7+
# determinate (eg, due to lack of an ORDER BY keyword).
8+
#
9+
# Run this in the src/test/regress directory, after doing the usual setup
10+
# for a regular regression test, ie, "make clean all" (you should be ready
11+
# to do "make runtest").
12+
#
13+
# The backend option switches that we use here are:
14+
#-fsdisable sequential scans
15+
#-fidisable index scans
16+
#-fndisable nestloop joins
17+
#-fmdisable merge joins
18+
#-fhdisable hash joins
19+
# Only mergejoin and hashjoin are really guaranteed to turn off; the others
20+
# just bias the optimizer's cost calculations heavily against that choice.
21+
# There's no point in trying to turn off both scan types or all three join
22+
# types simultaneously; ergo, we have 3*7 = 21 interesting combinations.
23+
#
24+
# Note that this will take *more than* 21 times longer than a regular
25+
# regression test, since we are preventing the system from using the most
26+
# efficient available query plans! Have patience.
27+
28+
29+
# Select make to use --- default gmake, can be overridden by env var
30+
MAKE=${MAKE:-gmake}
31+
32+
mkdir planregress
33+
34+
PGOPTIONS=""$MAKE runtest
35+
mv -f regress.out planregress/out.normal
36+
mv -f regression.diffs planregress/diffs.normal
37+
PGOPTIONS=" -fh"$MAKE runtest
38+
mv -f regress.out planregress/out.h
39+
mv -f regression.diffs planregress/diffs.h
40+
PGOPTIONS=" -fm"$MAKE runtest
41+
mv -f regress.out planregress/out.m
42+
mv -f regression.diffs planregress/diffs.m
43+
PGOPTIONS=" -fm -fh"$MAKE runtest
44+
mv -f regress.out planregress/out.mh
45+
mv -f regression.diffs planregress/diffs.mh
46+
PGOPTIONS=" -fn"$MAKE runtest
47+
mv -f regress.out planregress/out.n
48+
mv -f regression.diffs planregress/diffs.n
49+
PGOPTIONS=" -fn -fh"$MAKE runtest
50+
mv -f regress.out planregress/out.nh
51+
mv -f regression.diffs planregress/diffs.nh
52+
PGOPTIONS=" -fn -fm"$MAKE runtest
53+
mv -f regress.out planregress/out.nm
54+
mv -f regression.diffs planregress/diffs.nm
55+
PGOPTIONS=" -fi"$MAKE runtest
56+
mv -f regress.out planregress/out.i
57+
mv -f regression.diffs planregress/diffs.i
58+
PGOPTIONS=" -fi -fh"$MAKE runtest
59+
mv -f regress.out planregress/out.ih
60+
mv -f regression.diffs planregress/diffs.ih
61+
PGOPTIONS=" -fi -fm"$MAKE runtest
62+
mv -f regress.out planregress/out.im
63+
mv -f regression.diffs planregress/diffs.im
64+
PGOPTIONS=" -fi -fm -fh"$MAKE runtest
65+
mv -f regress.out planregress/out.imh
66+
mv -f regression.diffs planregress/diffs.imh
67+
PGOPTIONS=" -fi -fn"$MAKE runtest
68+
mv -f regress.out planregress/out.in
69+
mv -f regression.diffs planregress/diffs.in
70+
PGOPTIONS=" -fi -fn -fh"$MAKE runtest
71+
mv -f regress.out planregress/out.inh
72+
mv -f regression.diffsregression.planregress/inh
73+
PGOPTIONS=" -fi -fn -fm"$MAKE runtest
74+
mv -f regress.out planregress/out.inm
75+
mv -f regression.diffs planregress/diffs.inm
76+
PGOPTIONS="-fs"$MAKE runtest
77+
mv -f regress.out planregress/out.s
78+
mv -f regression.diffs planregress/diffs.s
79+
PGOPTIONS="-fs -fh"$MAKE runtest
80+
mv -f regress.out planregress/out.sh
81+
mv -f regression.diffs planregress/diffs.sh
82+
PGOPTIONS="-fs -fm"$MAKE runtest
83+
mv -f regress.out planregress/out.sm
84+
mv -f regression.diffs planregress/diffs.sm
85+
PGOPTIONS="-fs -fm -fh"$MAKE runtest
86+
mv -f regress.out planregress/out.smh
87+
mv -f regression.diffs planregress/diffs.smh
88+
PGOPTIONS="-fs -fn"$MAKE runtest
89+
mv -f regress.out planregress/out.sn
90+
mv -f regression.diffs planregress/diffs.sn
91+
PGOPTIONS="-fs -fn -fh"$MAKE runtest
92+
mv -f regress.out planregress/out.snh
93+
mv -f regression.diffs planregress/diffs.snh
94+
PGOPTIONS="-fs -fn -fm"$MAKE runtest
95+
mv -f regress.out planregress/out.snm
96+
mv -f regression.diffs planregress/diffs.snm
97+
98+
exit 0

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp