internals.ps
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:626k
- % arrowhead
- n 5253 4200 m 5373 4230 l 5253 4260 l 5253 4230 l 5253 4200 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 2250 3825 m 3150 3825 l gs col-1 s gr
- % Polyline
- n 2250 4095 m 3150 4095 l gs col-1 s gr
- % Polyline
- n 2250 3600 m 3150 3600 l 3150 4365 l 2250 4365 l cp gs col-1 s gr
- % Polyline
- n 2880 4095 m 2880 4365 l gs col-1 s gr
- % Polyline
- n 4275 3825 m 5175 3825 l gs col-1 s gr
- % Polyline
- n 4275 4095 m 5175 4095 l gs col-1 s gr
- % Polyline
- n 4275 3600 m 5175 3600 l 5175 4365 l 4275 4365 l cp gs col-1 s gr
- % Polyline
- n 4905 4095 m 4905 4365 l gs col-1 s gr
- % Polyline
- n 2250 4905 m 3150 4905 l gs col-1 s gr
- % Polyline
- n 2250 5175 m 3150 5175 l gs col-1 s gr
- % Polyline
- n 4275 4905 m 5175 4905 l gs col-1 s gr
- % Polyline
- n 4275 5175 m 5175 5175 l gs col-1 s gr
- % Polyline
- n 2250 4680 m 3150 4680 l 3150 5445 l 2250 5445 l cp gs col-1 s gr
- % Polyline
- n 4275 4680 m 5175 4680 l 5175 5445 l 4275 5445 l cp gs col-1 s gr
- % Open spline
- gs clippath
- 2825 3517 m 2719 3580 l 2783 3475 l 2668 3589 l 2711 3632 l cp clip
- n 3015.0 2880.0 m 3150.0 2880.0 l
- 3150.0 2880.0 3285.0 2880.0 3285.0 2947.5 DrawSplineSection
- 3285.0 2947.5 3285.0 3015.0 3285.0 3195.0 DrawSplineSection
- 3285.0 3195.0 3285.0 3375.0 3105.0 3375.0 DrawSplineSection
- 3105.0 3375.0 2925.0 3375.0 2812.5 3487.5 DrawSplineSection
- 2700.0 3600.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2825 3517 m 2719 3580 l 2783 3475 l 2804 3496 l 2825 3517 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 4850 3517 m 4744 3580 l 4808 3475 l 4693 3589 l 4736 3632 l cp clip
- n 5040.0 2880.0 m 5175.0 2880.0 l
- 5175.0 2880.0 5310.0 2880.0 5310.0 2947.5 DrawSplineSection
- 5310.0 2947.5 5310.0 3015.0 5310.0 3195.0 DrawSplineSection
- 5310.0 3195.0 5310.0 3375.0 5130.0 3375.0 DrawSplineSection
- 5130.0 3375.0 4950.0 3375.0 4837.5 3487.5 DrawSplineSection
- 4725.0 3600.0 l gs col-1 s gr
- gr
- % arrowhead
- n 4850 3517 m 4744 3580 l 4808 3475 l 4829 3496 l 4850 3517 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 2418 330 m 2538 360 l 2418 390 l 2580 390 l 2580 330 l cp clip
- n 1665.0 3015.0 m 1800.0 3015.0 l
- 1800.0 3015.0 1935.0 3015.0 1935.0 2902.5 DrawSplineSection
- 1935.0 2902.5 1935.0 2790.0 1935.0 1687.5 DrawSplineSection
- 1935.0 1687.5 1935.0 585.0 1935.0 472.5 DrawSplineSection
- 1935.0 472.5 1935.0 360.0 2047.5 360.0 DrawSplineSection
- 2047.5 360.0 2160.0 360.0 2362.5 360.0 DrawSplineSection
- 2565.0 360.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2418 330 m 2538 360 l 2418 390 l 2418 360 l 2418 330 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 2418 2130 m 2538 2160 l 2418 2190 l 2580 2190 l 2580 2130 l cp clip
- n 1665.0 3285.0 m 1867.5 3285.0 l
- 1867.5 3285.0 2070.0 3285.0 2070.0 3172.5 DrawSplineSection
- 2070.0 3172.5 2070.0 3060.0 2070.0 2700.0 DrawSplineSection
- 2070.0 2700.0 2070.0 2340.0 2070.0 2250.0 DrawSplineSection
- 2070.0 2250.0 2070.0 2160.0 2160.0 2160.0 DrawSplineSection
- 2160.0 2160.0 2250.0 2160.0 2407.5 2160.0 DrawSplineSection
- 2565.0 2160.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2418 2130 m 2538 2160 l 2418 2190 l 2418 2160 l 2418 2130 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 4857 4609 m 4745 4662 l 4819 4563 l 4694 4667 l 4733 4713 l cp clip
- n 5040.0 3150.0 m 5332.5 3150.0 l
- 5332.5 3150.0 5625.0 3150.0 5737.5 3150.0 DrawSplineSection
- 5737.5 3150.0 5850.0 3150.0 5850.0 3262.5 DrawSplineSection
- 5850.0 3262.5 5850.0 3375.0 5850.0 3780.0 DrawSplineSection
- 5850.0 3780.0 5850.0 4185.0 5850.0 4320.0 DrawSplineSection
- 5850.0 4320.0 5850.0 4455.0 5715.0 4455.0 DrawSplineSection
- 5715.0 4455.0 5580.0 4455.0 5287.5 4455.0 DrawSplineSection
- 5287.5 4455.0 4995.0 4455.0 4860.0 4567.5 DrawSplineSection
- 4725.0 4680.0 l gs col-1 s gr
- gr
- % arrowhead
- n 4857 4609 m 4745 4662 l 4819 4563 l 4838 4586 l 4857 4609 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 2832 4609 m 2720 4662 l 2794 4563 l 2669 4667 l 2708 4713 l cp clip
- n 3015.0 3150.0 m 3420.0 3150.0 l
- 3420.0 3150.0 3825.0 3150.0 3937.5 3150.0 DrawSplineSection
- 3937.5 3150.0 4050.0 3150.0 4050.0 3262.5 DrawSplineSection
- 4050.0 3262.5 4050.0 3375.0 4050.0 3780.0 DrawSplineSection
- 4050.0 3780.0 4050.0 4185.0 4050.0 4320.0 DrawSplineSection
- 4050.0 4320.0 4050.0 4455.0 3915.0 4455.0 DrawSplineSection
- 3915.0 4455.0 3780.0 4455.0 3375.0 4455.0 DrawSplineSection
- 3375.0 4455.0 2970.0 4455.0 2835.0 4567.5 DrawSplineSection
- 2700.0 4680.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2832 4609 m 2720 4662 l 2794 4563 l 2813 4586 l 2832 4609 l cp gs 0.00 setgray ef gr col-1 s
- /Times-Roman ff 150.00 scf sf
- 540 900 m
- gs 1 -1 sc (utility) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 1455 m
- gs 1 -1 sc (into) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 2790 m
- gs 1 -1 sc (unique) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 3075 m
- gs 1 -1 sc (rtable) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 3600 m
- gs 1 -1 sc (qual) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 3315 m
- gs 1 -1 sc (targetlist) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 3885 m
- gs 1 -1 sc (groupClause) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 5220 m
- gs 1 -1 sc (intersectClause) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 1170 m
- gs 1 -1 sc (resultRelation: 0) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 1980 m
- gs 1 -1 sc (isBinary: false) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 2265 m
- gs 1 -1 sc (union_all: false) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 4410 m
- gs 1 -1 sc (hasAggs: false) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 4695 m
- gs 1 -1 sc (hasSublinks: false) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 945 360 m
- gs 1 -1 sc (Query) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 630 m
- gs 1 -1 sc (command: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3420 1125 m
- gs 1 -1 sc ("supplier") col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3420 1395 m
- gs 1 -1 sc ("s") col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 5445 1125 m
- gs 1 -1 sc ("sells") col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 5445 1395 m
- gs 1 -1 sc ("se") col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4365 1395 m
- gs 1 -1 sc (refname) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4590 900 m
- gs 1 -1 sc (RTE) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4365 1125 m
- gs 1 -1 sc (relname) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4365 1665 m
- gs 1 -1 sc (relid: 18219) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3420 4275 m
- gs 1 -1 sc ("sname") col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 5445 4275 m
- gs 1 -1 sc ("pno") col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2340 4275 m
- gs 1 -1 sc (resname ) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2340 4005 m
- gs 1 -1 sc (resno: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4365 4275 m
- gs 1 -1 sc (resname ) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4365 4005 m
- gs 1 -1 sc (resno: 2) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4410 3780 m
- gs 1 -1 sc (RESDOM) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2385 3780 m
- gs 1 -1 sc (RESDOM) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2520 4860 m
- gs 1 -1 sc (VAR) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2340 5085 m
- gs 1 -1 sc (varno: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4365 5085 m
- gs 1 -1 sc (varno: 2) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4545 4860 m
- gs 1 -1 sc (VAR) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 1695 m
- gs 1 -1 sc (isPortal: false) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 2505 m
- gs 1 -1 sc (sortClause) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 4125 m
- gs 1 -1 sc (havingQual) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 4935 m
- gs 1 -1 sc (unionClause) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2340 5355 m
- gs 1 -1 sc (varattno: 2) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4365 5355 m
- gs 1 -1 sc (varattno: 2) col-1 sh gr
- showpage
- $F2psEnd
- rs
- %%EndDocument
- @endspecial 427 2501 a(Figure)i(3.4:)j(T)n(ransformed)d
- Fp(T)-5 b(ar)n(getList)12 b Ft(and)h Fp(F)m(r)n(omList)g
- Ft(for)e(query)h(of)g(e)o(xample)h(3.1)270 2745 y(Figure)g(3.5)g(sho)o
- (ws)h(the)g(transformed)e Fp(wher)n(e)i(clause)p Ft(.)20
- b(Ev)o(ery)13 b Fr(A)p 1411 2745 15 2 v 18 w(Expr)g Ft(node)h(is)f
- (transformed)g(to)g(an)270 2804 y Fr(Expr)k Ft(node.)31
- b(The)18 b Fr(Attr)f Ft(nodes)g(representing)g(the)g(attrib)o(utes)g
- (are)g(replaced)g(by)h Fr(VAR)f Ft(nodes)h(as)270 2864
- y(it)d(has)g(been)g(done)g(for)f(the)h Fp(tar)n(getlist)g
- Ft(abo)o(v)o(e.)24 b(Checks)15 b(if)g(the)f(appearing)h
- Fp(attrib)o(utes)g Ft(are)g(v)o(alid)f(and)270 2924 y(kno)o(wn)h(to)g
- (the)h(system)g(are)f(made.)26 b(If)14 b(there)i(is)f(an)h
- Fp(attrib)o(ute)f Ft(used)h(which)f(is)h(not)g(kno)o(wn)f(an)g(error)
- 270 2984 y(will)d(be)g(returned)g(and)g(the)h Fp(query)f(pr)n(ocessing)
- i Ft(will)d(be)i(aborted.)270 3103 y(The)30 b(whole)g
- Fp(tr)o(ansformation)g(pr)n(ocess)g Ft(performs)f(a)h(transformation)e
- (of)h(the)h(data)g(structure)270 3163 y(handed)13 b(back)f(by)h(the)g
- Fp(parser)g Ft(to)g(a)f(more)h(comfortable)e(form.)16
- b(The)d(character)f(strings)h(representing)270 3223 y(the)g
- Fp(r)n(elations)h Ft(and)f Fp(attrib)o(utes)h Ft(in)f(the)g(original)g
- (tree)g(are)g(replaced)g(by)g Fp(r)n(elation)h(ids)f
- Ft(and)h Fr(VAR)f Ft(nodes)270 3283 y(whose)18 b( 02elds)g(are)g
- (referring)e(to)i(the)f(entries)h(of)f(the)h Fp(r)o(ange)g(table)g
- (entry)g(list)p Ft(.)32 b(In)17 b(addition)g(to)h(the)270
- 3342 y(transformation,)c(also)g(v)o(arious)g(checks)h(if)f(the)g(used)h
- Fp(r)n(elation)f Ft(and)g Fp(attrib)o(ute)g Ft(names)h((appearing)e
- (in)270 3402 y(the)f(query))g(are)g(v)o(alid)g(in)g(the)g(current)g
- (conte)o(xt)g(are)h(performed.)p eop
- %%Page: 57 57
- 57 56 bop 198 60 a Fm(3.3.)29 b(THE)13 b(P)-5 b(ARSER)13
- b(ST)-5 b(A)n(GE)1189 b Ft(57)291 2826 y @beginspecial
- 144 @llx 172 @lly 467 @urx 619 @ury 3230 @rwi @setspecial
- %%BeginDocument: figures/transform_where.ps
- %Magnification: 1.05
- /$F2psDict 200 dict def
- $F2psDict begin
- $F2psDict /mtrx matrix put
- /col-1 {0 setgray} bind def
- /col0 {0.000 0.000 0.000 srgb} bind def
- /col1 {0.000 0.000 1.000 srgb} bind def
- /col2 {0.000 1.000 0.000 srgb} bind def
- /col3 {0.000 1.000 1.000 srgb} bind def
- /col4 {1.000 0.000 0.000 srgb} bind def
- /col5 {1.000 0.000 1.000 srgb} bind def
- /col6 {1.000 1.000 0.000 srgb} bind def
- /col7 {1.000 1.000 1.000 srgb} bind def
- /col8 {0.000 0.000 0.560 srgb} bind def
- /col9 {0.000 0.000 0.690 srgb} bind def
- /col10 {0.000 0.000 0.820 srgb} bind def
- /col11 {0.530 0.810 1.000 srgb} bind def
- /col12 {0.000 0.560 0.000 srgb} bind def
- /col13 {0.000 0.690 0.000 srgb} bind def
- /col14 {0.000 0.820 0.000 srgb} bind def
- /col15 {0.000 0.560 0.560 srgb} bind def
- /col16 {0.000 0.690 0.690 srgb} bind def
- /col17 {0.000 0.820 0.820 srgb} bind def
- /col18 {0.560 0.000 0.000 srgb} bind def
- /col19 {0.690 0.000 0.000 srgb} bind def
- /col20 {0.820 0.000 0.000 srgb} bind def
- /col21 {0.560 0.000 0.560 srgb} bind def
- /col22 {0.690 0.000 0.690 srgb} bind def
- /col23 {0.820 0.000 0.820 srgb} bind def
- /col24 {0.500 0.190 0.000 srgb} bind def
- /col25 {0.630 0.250 0.000 srgb} bind def
- /col26 {0.750 0.380 0.000 srgb} bind def
- /col27 {1.000 0.500 0.500 srgb} bind def
- /col28 {1.000 0.630 0.630 srgb} bind def
- /col29 {1.000 0.750 0.750 srgb} bind def
- /col30 {1.000 0.880 0.880 srgb} bind def
- /col31 {1.000 0.840 0.000 srgb} bind def
- end
- save
- 117.5 632.5 translate
- 1 -1 scale
- /cp {closepath} bind def
- /ef {eofill} bind def
- /gr {grestore} bind def
- /gs {gsave} bind def
- /sa {save} bind def
- /rs {restore} bind def
- /l {lineto} bind def
- /m {moveto} bind def
- /rm {rmoveto} bind def
- /n {newpath} bind def
- /s {stroke} bind def
- /sh {show} bind def
- /slc {setlinecap} bind def
- /slj {setlinejoin} bind def
- /slw {setlinewidth} bind def
- /srgb {setrgbcolor} bind def
- /rot {rotate} bind def
- /sc {scale} bind def
- /sd {setdash} bind def
- /ff {findfont} bind def
- /sf {setfont} bind def
- /scf {scalefont} bind def
- /sw {stringwidth} bind def
- /tr {translate} bind def
- /tnt {dup dup currentrgbcolor
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
- bind def
- /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
- 4 -2 roll mul srgb} bind def
- /DrawSplineSection {
- /y3 exch def
- /x3 exch def
- /y2 exch def
- /x2 exch def
- /y1 exch def
- /x1 exch def
- /xa x1 x2 x1 sub 0.666667 mul add def
- /ya y1 y2 y1 sub 0.666667 mul add def
- /xb x3 x2 x3 sub 0.666667 mul add def
- /yb y3 y2 y3 sub 0.666667 mul add def
- x1 y1 lineto
- xa ya xb yb x3 y3 curveto
- } def
- /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
- /$F2psEnd {$F2psEnteredState restore end} def
- $F2psBegin
- 10 setmiterlimit
- n 0 792 m 0 0 l 612 0 l 612 792 l cp clip
- 0.06299 0.06299 sc
- 7.500 slw
- % Polyline
- n 1530 5040 m 1800 5310 l gs col-1 s gr
- % Polyline
- n 1800 5040 m 1530 5310 l gs col-1 s gr
- % Polyline
- n 1530 4770 m 1800 5040 l gs col-1 s gr
- % Polyline
- n 1800 4770 m 1530 5040 l gs col-1 s gr
- % Polyline
- n 1530 3960 m 1800 4230 l gs col-1 s gr
- % Polyline
- n 1800 3960 m 1530 4230 l gs col-1 s gr
- % Polyline
- n 1530 3690 m 1800 3960 l gs col-1 s gr
- % Polyline
- n 1800 3690 m 1530 3960 l gs col-1 s gr
- % Polyline
- n 1530 2340 m 1800 2610 l gs col-1 s gr
- % Polyline
- n 1800 2340 m 1530 2610 l gs col-1 s gr
- % Polyline
- n 1530 1260 m 1800 1530 l gs col-1 s gr
- % Polyline
- n 1800 1260 m 1530 1530 l gs col-1 s gr
- % Polyline
- n 1530 720 m 1800 990 l gs col-1 s gr
- % Polyline
- n 1800 720 m 1530 990 l gs col-1 s gr
- % Polyline
- n 5130 1440 m 5130 1710 l gs col-1 s gr
- % Polyline
- n 4860 1440 m 5400 1440 l 5400 1710 l 4860 1710 l cp gs col-1 s gr
- % Polyline
- n 5130 1440 m 5400 1710 l gs col-1 s gr
- % Polyline
- n 5400 1440 m 5130 1710 l gs col-1 s gr
- % Polyline
- n 4140 1440 m 4140 1710 l gs col-1 s gr
- % Polyline
- n 3870 1440 m 4410 1440 l 4410 1710 l 3870 1710 l cp gs col-1 s gr
- % Polyline
- gs clippath
- 4713 1545 m 4833 1575 l 4713 1605 l 4875 1605 l 4875 1545 l cp clip
- n 4275 1575 m 4860 1575 l gs col-1 s gr gr
- % arrowhead
- n 4713 1545 m 4833 1575 l 4713 1605 l 4713 1575 l 4713 1545 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 4140 5940 m 4140 6210 l gs col-1 s gr
- % Polyline
- n 3870 5940 m 4410 5940 l 4410 6210 l 3870 6210 l cp gs col-1 s gr
- % Polyline
- n 4905 5940 m 4905 6210 l gs col-1 s gr
- % Polyline
- n 4635 5940 m 5175 5940 l 5175 6210 l 4635 6210 l cp gs col-1 s gr
- % Polyline
- n 4905 5940 m 5175 6210 l gs col-1 s gr
- % Polyline
- n 5175 5940 m 4905 6210 l gs col-1 s gr
- % Polyline
- n 3870 2295 m 4635 2295 l gs col-1 s gr
- % Polyline
- n 3870 2565 m 4635 2565 l gs col-1 s gr
- % Polyline
- n 3870 2070 m 4635 2070 l 4635 2835 l 3870 2835 l cp gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 4095 2250 m
- gs 1 -1 sc (Oper) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3960 2475 m
- gs 1 -1 sc (opno: 521) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3960 2745 m
- gs 1 -1 sc (opid: 0) col-1 sh gr
- % Polyline
- n 4140 3015 m 4140 3285 l gs col-1 s gr
- % Polyline
- n 3870 3015 m 4410 3015 l 4410 3285 l 3870 3285 l cp gs col-1 s gr
- % Polyline
- n 4905 3015 m 4905 3285 l gs col-1 s gr
- % Polyline
- n 4635 3015 m 5175 3015 l 5175 3285 l 4635 3285 l cp gs col-1 s gr
- % Polyline
- n 4905 3015 m 5175 3285 l gs col-1 s gr
- % Polyline
- n 5175 3015 m 4905 3285 l gs col-1 s gr
- % Polyline
- n 450 450 m 1800 450 l gs col-1 s gr
- % Polyline
- n 450 720 m 1800 720 l gs col-1 s gr
- % Polyline
- n 450 990 m 1800 990 l gs col-1 s gr
- % Polyline
- n 450 1260 m 1800 1260 l gs col-1 s gr
- % Polyline
- n 450 1530 m 1800 1530 l gs col-1 s gr
- % Polyline
- n 450 1800 m 1800 1800 l gs col-1 s gr
- % Polyline
- n 450 2070 m 1800 2070 l gs col-1 s gr
- % Polyline
- n 450 2340 m 1800 2340 l gs col-1 s gr
- % Polyline
- n 450 2610 m 1800 2610 l gs col-1 s gr
- % Polyline
- n 450 2880 m 1800 2880 l gs col-1 s gr
- % Polyline
- n 450 3150 m 1800 3150 l gs col-1 s gr
- % Polyline
- n 450 3690 m 1800 3690 l gs col-1 s gr
- % Polyline
- n 450 3960 m 1800 3960 l gs col-1 s gr
- % Polyline
- n 450 4230 m 1800 4230 l gs col-1 s gr
- % Polyline
- n 450 3420 m 1800 3420 l gs col-1 s gr
- % Polyline
- n 450 4500 m 1800 4500 l gs col-1 s gr
- % Polyline
- n 450 4770 m 1800 4770 l gs col-1 s gr
- % Polyline
- n 450 5040 m 1800 5040 l gs col-1 s gr
- % Polyline
- n 450 225 m 1800 225 l 1800 5310 l 450 5310 l cp gs col-1 s gr
- % Polyline
- n 1530 4770 m 1530 5310 l gs col-1 s gr
- % Polyline
- n 1530 4230 m 1530 2880 l gs col-1 s gr
- % Polyline
- n 1530 2340 m 1530 2610 l gs col-1 s gr
- % Polyline
- n 1530 720 m 1530 990 l gs col-1 s gr
- % Polyline
- n 1530 1260 m 1530 1530 l gs col-1 s gr
- % Polyline
- n 1530 2610 m 1530 2880 l gs col-1 s gr
- % Polyline
- n 1530 2610 m 1800 2880 l gs col-1 s gr
- % Polyline
- n 1800 2610 m 1530 2880 l gs col-1 s gr
- % Polyline
- n 3150 1170 m 3420 1440 l gs col-1 s gr
- % Polyline
- n 3420 1170 m 3150 1440 l gs col-1 s gr
- % Polyline
- gs clippath
- 3723 1545 m 3843 1575 l 3723 1605 l 3885 1605 l 3885 1545 l cp clip
- n 3285 1575 m 3870 1575 l gs col-1 s gr gr
- % arrowhead
- n 3723 1545 m 3843 1575 l 3723 1605 l 3723 1575 l 3723 1545 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 2430 5220 m 3420 5220 l gs col-1 s gr
- % Polyline
- n 2430 5490 m 3420 5490 l gs col-1 s gr
- % Polyline
- n 2430 5760 m 3420 5760 l gs col-1 s gr
- % Polyline
- n 2430 4995 m 3420 4995 l 3420 6030 l 2430 6030 l cp gs col-1 s gr
- % Polyline
- n 3150 6030 m 3150 5490 l gs col-1 s gr
- % Polyline
- gs clippath
- 4488 6045 m 4608 6075 l 4488 6105 l 4650 6105 l 4650 6045 l cp clip
- n 4275 6075 m 4635 6075 l gs col-1 s gr gr
- % arrowhead
- n 4488 6045 m 4608 6075 l 4488 6105 l 4488 6075 l 4488 6045 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 3870 5220 m 4635 5220 l gs col-1 s gr
- % Polyline
- n 3870 5490 m 4635 5490 l gs col-1 s gr
- % Polyline
- n 3870 4995 m 4635 4995 l 4635 5760 l 3870 5760 l cp gs col-1 s gr
- % Polyline
- n 2970 6750 m 3870 6750 l gs col-1 s gr
- % Polyline
- n 2970 7020 m 3870 7020 l gs col-1 s gr
- % Polyline
- n 4275 6750 m 5175 6750 l gs col-1 s gr
- % Polyline
- n 4275 7020 m 5175 7020 l gs col-1 s gr
- % Polyline
- n 2970 6525 m 3870 6525 l 3870 7290 l 2970 7290 l cp gs col-1 s gr
- % Polyline
- n 4275 6525 m 5175 6525 l 5175 7290 l 4275 7290 l cp gs col-1 s gr
- % Polyline
- n 2430 2295 m 3420 2295 l gs col-1 s gr
- % Polyline
- n 2430 2565 m 3420 2565 l gs col-1 s gr
- % Polyline
- n 2430 2835 m 3420 2835 l gs col-1 s gr
- % Polyline
- n 2430 2070 m 3420 2070 l 3420 3105 l 2430 3105 l cp gs col-1 s gr
- % Polyline
- n 3150 3105 m 3150 2565 l gs col-1 s gr
- % Polyline
- gs clippath
- 4488 3120 m 4608 3150 l 4488 3180 l 4650 3180 l 4650 3120 l cp clip
- n 4275 3150 m 4635 3150 l gs col-1 s gr gr
- % arrowhead
- n 4488 3120 m 4608 3150 l 4488 3180 l 4488 3150 l 4488 3120 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 4275 3825 m 5175 3825 l gs col-1 s gr
- % Polyline
- n 4275 3600 m 5175 3600 l 5175 4095 l 4275 4095 l cp gs col-1 s gr
- % Polyline
- n 2970 3824 m 3870 3824 l gs col-1 s gr
- % Polyline
- n 2970 4094 m 3870 4094 l gs col-1 s gr
- % Polyline
- n 2970 3600 m 3870 3600 l 3870 4365 l 2970 4365 l cp gs col-1 s gr
- % Polyline
- n 2430 900 m 3420 900 l gs col-1 s gr
- % Polyline
- n 2430 1170 m 3420 1170 l gs col-1 s gr
- % Polyline
- n 2430 1440 m 3420 1440 l gs col-1 s gr
- % Polyline
- n 2430 675 m 3420 675 l 3420 1710 l 2430 1710 l cp gs col-1 s gr
- % Polyline
- n 3150 1710 m 3150 1170 l gs col-1 s gr
- % Open spline
- gs clippath
- 2955 528 m 2925 648 l 2895 528 l 2895 690 l 2955 690 l cp clip
- n 1665.0 3555.0 m 1890.0 3555.0 l
- 1890.0 3555.0 2115.0 3555.0 2115.0 3397.5 DrawSplineSection
- 2115.0 3397.5 2115.0 3240.0 2115.0 2047.5 DrawSplineSection
- 2115.0 2047.5 2115.0 855.0 2115.0 585.0 DrawSplineSection
- 2115.0 585.0 2115.0 315.0 2340.0 315.0 DrawSplineSection
- 2340.0 315.0 2565.0 315.0 2677.5 315.0 DrawSplineSection
- 2677.5 315.0 2790.0 315.0 2857.5 360.0 DrawSplineSection
- 2857.5 360.0 2925.0 405.0 2925.0 540.0 DrawSplineSection
- 2925.0 675.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2955 528 m 2925 648 l 2895 528 l 2925 528 l 2955 528 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3050 1987 m 2944 2050 l 3008 1945 l 2893 2059 l 2936 2102 l cp clip
- n 4005.0 1575.0 m 4005.0 1687.5 l
- 4005.0 1687.5 4005.0 1800.0 3937.5 1845.0 DrawSplineSection
- 3937.5 1845.0 3870.0 1890.0 3487.5 1890.0 DrawSplineSection
- 3487.5 1890.0 3105.0 1890.0 3015.0 1980.0 DrawSplineSection
- 2925.0 2070.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3050 1987 m 2944 2050 l 3008 1945 l 3029 1966 l 3050 1987 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3723 5325 m 3843 5355 l 3723 5385 l 3885 5385 l 3885 5325 l cp clip
- n 3285.0 5625.0 m 3420.0 5625.0 l
- 3420.0 5625.0 3555.0 5625.0 3555.0 5490.0 DrawSplineSection
- 3555.0 5490.0 3555.0 5355.0 3712.5 5355.0 DrawSplineSection
- 3870.0 5355.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3723 5325 m 3843 5355 l 3723 5385 l 3723 5355 l 3723 5325 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3723 6045 m 3843 6075 l 3723 6105 l 3885 6105 l 3885 6045 l cp clip
- n 3285.0 5895.0 m 3397.5 5895.0 l
- 3397.5 5895.0 3510.0 5895.0 3532.5 5985.0 DrawSplineSection
- 3532.5 5985.0 3555.0 6075.0 3712.5 6075.0 DrawSplineSection
- 3870.0 6075.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3723 6045 m 3843 6075 l 3723 6105 l 3723 6075 l 3723 6045 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 4783 6387 m 4730 6498 l 4724 6375 l 4693 6534 l 4751 6546 l cp clip
- n 4770.0 6075.0 m 4770.0 6187.5 l
- 4770.0 6187.5 4770.0 6300.0 4747.5 6412.5 DrawSplineSection
- 4725.0 6525.0 l gs col-1 s gr
- gr
- % arrowhead
- n 4783 6387 m 4730 6498 l 4724 6375 l 4754 6381 l 4783 6387 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3554 6457 m 3441 6508 l 3516 6410 l 3390 6511 l 3427 6558 l cp clip
- n 4005.0 6075.0 m 4005.0 6187.5 l
- 4005.0 6187.5 4005.0 6300.0 3825.0 6322.5 DrawSplineSection
- 3825.0 6322.5 3645.0 6345.0 3532.5 6435.0 DrawSplineSection
- 3420.0 6525.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3554 6457 m 3441 6508 l 3516 6410 l 3535 6433 l 3554 6457 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 2955 4848 m 2925 4968 l 2895 4848 l 2895 5010 l 2955 5010 l cp clip
- n 4995.0 1575.0 m 4995.0 1755.0 l
- 4995.0 1755.0 4995.0 1935.0 5062.5 1980.0 DrawSplineSection
- 5062.5 1980.0 5130.0 2025.0 5332.5 2025.0 DrawSplineSection
- 5332.5 2025.0 5535.0 2025.0 5535.0 2205.0 DrawSplineSection
- 5535.0 2205.0 5535.0 2385.0 5535.0 3375.0 DrawSplineSection
- 5535.0 3375.0 5535.0 4365.0 5535.0 4545.0 DrawSplineSection
- 5535.0 4545.0 5535.0 4725.0 5310.0 4725.0 DrawSplineSection
- 5310.0 4725.0 5085.0 4725.0 4162.5 4725.0 DrawSplineSection
- 4162.5 4725.0 3240.0 4725.0 3082.5 4725.0 DrawSplineSection
- 3082.5 4725.0 2925.0 4725.0 2925.0 4860.0 DrawSplineSection
- 2925.0 4995.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2955 4848 m 2925 4968 l 2895 4848 l 2925 4848 l 2955 4848 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3723 2400 m 3843 2430 l 3723 2460 l 3885 2460 l 3885 2400 l cp clip
- n 3285.0 2700.0 m 3420.0 2700.0 l
- 3420.0 2700.0 3555.0 2700.0 3555.0 2565.0 DrawSplineSection
- 3555.0 2565.0 3555.0 2430.0 3712.5 2430.0 DrawSplineSection
- 3870.0 2430.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3723 2400 m 3843 2430 l 3723 2460 l 3723 2430 l 3723 2400 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3723 3120 m 3843 3150 l 3723 3180 l 3885 3180 l 3885 3120 l cp clip
- n 3285.0 2970.0 m 3397.5 2970.0 l
- 3397.5 2970.0 3510.0 2970.0 3532.5 3060.0 DrawSplineSection
- 3532.5 3060.0 3555.0 3150.0 3712.5 3150.0 DrawSplineSection
- 3870.0 3150.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3723 3120 m 3843 3150 l 3723 3180 l 3723 3150 l 3723 3120 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 4783 3462 m 4730 3573 l 4724 3450 l 4693 3609 l 4751 3621 l cp clip
- n 4770.0 3150.0 m 4770.0 3262.5 l
- 4770.0 3262.5 4770.0 3375.0 4747.5 3487.5 DrawSplineSection
- 4725.0 3600.0 l gs col-1 s gr
- gr
- % arrowhead
- n 4783 3462 m 4730 3573 l 4724 3450 l 4754 3456 l 4783 3462 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3554 3532 m 3441 3583 l 3516 3485 l 3390 3586 l 3427 3633 l cp clip
- n 4005.0 3150.0 m 4005.0 3262.5 l
- 4005.0 3262.5 4005.0 3375.0 3825.0 3397.5 DrawSplineSection
- 3825.0 3397.5 3645.0 3420.0 3532.5 3510.0 DrawSplineSection
- 3420.0 3600.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3554 3532 m 3441 3583 l 3516 3485 l 3535 3508 l 3554 3532 l cp gs 0.00 setgray ef gr col-1 s
- /Times-Roman ff 150.00 scf sf
- 540 900 m
- gs 1 -1 sc (utility) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 2505 m
- gs 1 -1 sc (sortClause) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 2790 m
- gs 1 -1 sc (unique) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 3075 m
- gs 1 -1 sc (rtable) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 3600 m
- gs 1 -1 sc (qual) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 3315 m
- gs 1 -1 sc (targetlist) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 3885 m
- gs 1 -1 sc (groupClause) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 5220 m
- gs 1 -1 sc (intersectClause) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 1170 m
- gs 1 -1 sc (resultRelation: 0) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 1980 m
- gs 1 -1 sc (isBinary: false) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 2265 m
- gs 1 -1 sc (union_all: false) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 4410 m
- gs 1 -1 sc (hasAggs: false) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 4695 m
- gs 1 -1 sc (hasSublinks: false) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 945 360 m
- gs 1 -1 sc (Query) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 630 m
- gs 1 -1 sc (command: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2520 5400 m
- gs 1 -1 sc (opType: OP) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2520 5925 m
- gs 1 -1 sc (args) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2790 5175 m
- gs 1 -1 sc (Expr) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4095 5175 m
- gs 1 -1 sc (Oper) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3960 5400 m
- gs 1 -1 sc (opno: 96) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3960 5670 m
- gs 1 -1 sc (opid: 0) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3240 6705 m
- gs 1 -1 sc (VAR) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3060 6930 m
- gs 1 -1 sc (varno: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4365 6930 m
- gs 1 -1 sc (varno: 2) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4545 6705 m
- gs 1 -1 sc (VAR) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3060 7200 m
- gs 1 -1 sc (varattno: 2) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4365 7200 m
- gs 1 -1 sc (varattno: 2) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2520 2475 m
- gs 1 -1 sc (opType: OP) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2520 3000 m
- gs 1 -1 sc (args) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2790 2250 m
- gs 1 -1 sc (Expr) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4545 3780 m
- gs 1 -1 sc (Const) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3240 3780 m
- gs 1 -1 sc (VAR) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3060 4004 m
- gs 1 -1 sc (varno: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3060 4275 m
- gs 1 -1 sc (varattno: 2) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4320 4005 m
- gs 1 -1 sc (constvalue: 2) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 4935 m
- gs 1 -1 sc (unionClause) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 4125 m
- gs 1 -1 sc (havingQual) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 1455 m
- gs 1 -1 sc (into) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 540 1695 m
- gs 1 -1 sc (isPortal: false) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2520 5685 m
- gs 1 -1 sc (oper) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2520 2760 m
- gs 1 -1 sc (oper) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2520 1080 m
- gs 1 -1 sc (opType: AND) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2520 1605 m
- gs 1 -1 sc (args) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2790 855 m
- gs 1 -1 sc (Expr) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2520 1365 m
- gs 1 -1 sc (oper) col-1 sh gr
- showpage
- $F2psEnd
- rs
- %%EndDocument
- @endspecial 464 2935 a(Figure)12 b(3.5:)j(T)n(ransformed)d
- Fp(wher)n(e)i(clause)f Ft(for)e(query)h(of)g(e)o(xample)g(3.1)p
- eop
- %%Page: 58 58
- 58 57 bop 270 60 a Ft(58)82 b Fm(CHAPTER)14 b(3.)28 b(POSTGRESQL)13
- b(FR)n(OM)f(THE)i(PR)n(OGRAMMER'S)f(POINT)f(OF)g(VIEW)270
- 234 y Fi(3.4)71 b(The)18 b(P)o(ostgr)o(eSQL)e(Rule)h(System)270
- 349 y Ft(PostgreSQL)c(supports)g(a)h(po)o(werful)e Fp(rule)h(system)i
- Ft(for)d(the)h(speci 02cation)h(of)f Fp(vie)o(ws)h Ft(and)f(ambiguous)
- 270 409 y Fp(vie)o(w)g(updates)p Ft(.)j(Originally)11
- b(the)h(PostgreSQL)g Fp(rule)h(system)g Ft(consisted)g(of)f(two)g
- (implementations.)345 471 y(The)18 b( 02rst)g(one)f(worked)g(using)h
- Fp(tuple)f(le)o(vel)i Ft(processing)f(and)f(was)h(implemented)f(deep)h
- (in)g(the)270 531 y Fp(e)o(xecutor)p Ft(.)35 b(The)19
- b Fp(rule)g(system)g Ft(was)g(called)f(whene)o(v)o(er)h(an)f(indi)o
- (vidual)g(tuple)g(had)h(been)f(accessed.)270 591 y(This)11
- b(implementation)d(has)j(been)f(remo)o(v)o(ed)f(in)h(1995)g(when)g(the)
- g(last)g(of)o( 02cial)f(release)h(of)f(the)h(Postgres)270
- 650 y(project)i(was)g(further)f(enhanced)i(to)f(Postgres95.)345
- 712 y(The)22 b(second)h(implementation)d(of)i(the)g Fp(rule)g(system)h
- Ft(is)f(a)g(technique)g(called)g Fp(query)g(r)n(e)o(writ-)270
- 772 y(ing)p Ft(.)32 b(The)18 b Fp(r)n(e)o(write)h(system)g
- Ft(is)f(a)g(module)f(that)h(e)o(xists)g(between)g(the)g
- Fp(parser)g(stage)f Ft(and)h(the)g Fp(plan-)270 832 y(ner/optimizer)p
- Ft(.)e(This)d(technique)f(is)h(still)f(implemented.)345
- 894 y(F)o(or)h(information)f(on)i(the)f(syntax)h(and)g(creation)f(of)g
- Fp(rules)i Ft(in)e(the)h(PostgreSQL)f(system)h(refer)f(to)270
- 953 y(section)g(2.5.8)g Fp(Rules)g(in)f(P)l(ostgr)n(eSQL)p
- Ft(.)270 1107 y Fh(3.4.1)59 b(The)15 b(Rewrite)e(System)270
- 1205 y Ft(The)g Fp(query)g(r)n(e)o(write)h Ft(system)e(is)h(a)g(module)
- e(between)i(the)f Fp(parser)h(stage)f Ft(and)g(the)h
- Fp(planner/optimizer)p Ft(.)270 1264 y(It)e(processes)h(the)g(tree)f
- (handed)g(back)g(by)h(the)f Fp(parser)h(stage)f Ft((which)f
- (represents)i(a)f(user)h(query))e(and)i(if)270 1324
- y(there)h(is)g(a)h Fp(rule)f Ft(present)h(that)f(has)g(to)g(be)h
- (applied)f(to)g(the)g(query)g(it)g Fp(r)n(e)o(writes)i
- Ft(the)e(tree)g(to)g(an)g(alternate)270 1384 y(form.)270
- 1528 y Fn(T)-5 b(echniques)12 b(T)-5 b(o)13 b(Implement)g(V)n(iews)270
- 1625 y Ft(No)o(w)f(will)h(sketch)f(the)h(algorithm)f(of)g(the)h
- Fp(query)g(r)n(e)o(write)h(system)p Ft(.)k(F)o(or)12
- b(better)g(illustration)g(we)h(sho)o(w)270 1685 y(ho)o(w)f(to)g
- (implement)g Fp(vie)o(ws)h Ft(using)g(rules)f(as)h(an)f(e)o(xample.)270
- 1805 y(Let)h(the)f(follo)o(wing)f Fp(rule)i Ft(be)f(gi)o(v)o(en:)330
- 1913 y Fr(create)29 b(rule)g(view_rule)330 1972 y(as)g(on)h(select)330
- 2032 y(to)f(test_view)330 2092 y(do)g(instead)419 2152
- y(select)h(s.sname,)f(p.pname)419 2211 y(from)h(supplier)f(s,)h(sells)f
- (se,)g(part)h(p)419 2271 y(where)g(s.sno)f(=)h(se.sno)f(and)599
- 2331 y(p.pno)g(=)h(se.pno;)270 2437 y Ft(The)22 b(gi)o(v)o(en)f
- Fp(rule)h Ft(will)f(be)g Fp( 02r)n(ed)h Ft(whene)o(v)o(er)f(a)h
- Fr(select)e Ft(against)i(the)f Fp(r)n(elation)g Fr(test)p
- 1881 2437 15 2 v 18 w(view)g Ft(is)270 2497 y(detected.)16
- b(Instead)c(of)f(selecting)h(the)g(tuples)g(from)f Fr(test)p
- 1298 2497 V 17 w(view)h Ft(the)f Fr(select)h Ft(statement)g(gi)o(v)o
- (en)f(in)270 2556 y(the)h Fp(action)g(part)h Ft(of)f(the)g
- Fp(rule)h Ft(is)f(e)o(x)o(ecuted.)270 2676 y(Let)h(the)f(follo)o(wing)f
- (user)o(-query)h(against)g Fr(test)p 1128 2676 V 17 w(view)g
- Ft(be)h(gi)o(v)o(en:)330 2784 y Fr(select)29 b(sname)330
- 2844 y(from)g(test_view)330 2903 y(where)g(sname)g(<>)h('Smith';)270
- 3009 y Ft(Here)17 b(is)g(a)g(list)g(of)f(the)h(steps)g(performed)f(by)g
- (the)h Fp(query)h(r)n(e)o(write)g(system)f Ft(whene)o(v)o(er)g(a)g
- (user)o(-query)270 3069 y(against)k Fr(test)p 555 3069
- V 17 w(view)g Ft(appears.)41 b((The)21 b(follo)o(wing)e(listing)h(is)h
- (a)g(v)o(ery)g(informal)e(description)i(of)270 3129 y(the)e(algorithm)f
- (just)h(intended)f(for)g(basic)i(understanding.)35 b(F)o(or)18
- b(a)h(detailed)g(description)f(refer)g(to)270 3189 y([ST)o(ON89]).)345
- 3294 y Fo( 17)25 b Ft(T)l(ake)12 b(the)g(query)g(gi)o(v)o(en)g(in)h
- (the)f Fp(action)g(part)g Ft(of)g(the)h Fp(rule)p Ft(.)345
- 3402 y Fo( 17)25 b Ft(Adapt)9 b(the)g Fp(tar)n(getlist)g
- Ft(to)h(meet)f(the)h(number)e(and)i(order)f(of)g(attrib)o(utes)g(gi)o
- (v)o(en)g(in)g(the)h(user)o(-query)m(.)p eop
- %%Page: 59 59
- 59 58 bop 198 60 a Fm(3.5.)29 b(PLANNER/OPTIMIZER)1139
- b Ft(59)273 234 y Fo( 17)25 b Ft(Add)12 b(the)g(quali 02cation)f(gi)o
- (v)o(en)i(in)f(the)g Fp(wher)n(e)h(clause)g Ft(of)f(the)g(user)o
- (-query)g(to)g(the)g(quali 02cation)323 294 y(of)f(the)i(query)f(gi)o
- (v)o(en)g(in)g(the)g Fp(action)g(part)h Ft(of)f(the)g
- Fp(rule)p Ft(.)198 394 y(Gi)o(v)o(en)e(the)g Fp(rule)g(de 02nition)g
- Ft(abo)o(v)o(e,)h(the)f(user)o(-query)f(will)h(be)g(re)o(written)f(to)h
- (the)g(follo)o(wing)f(form)g((Note)198 454 y(that)14
- b(the)h Fp(r)n(e)o(writing)g Ft(is)g(done)f(on)h(the)f(internal)g
- (representation)g(of)g(the)g(user)o(-query)g(handed)h(back)f(by)198
- 513 y(the)e Fp(parser)h(stage)f Ft(b)o(ut)g(the)g(deri)o(v)o(ed)g(ne)o
- (w)g(data)h(structure)f(will)g(represent)g(the)g(follo)o(wing)f
- (query):)258 614 y Fr(select)29 b(s.sname)258 673 y(from)g(supplier)g
- (s,)h(sells)f(se,)h(part)f(p)258 733 y(where)g(s.sno)g(=)h(se.sno)f
- (and)437 793 y(p.pno)g(=)h(se.pno)f(and)437 853 y(s.sname)g(<>)h
- ('Smith;)198 1022 y Fi(3.5)71 b(Planner/Optimizer)198
- 1133 y Ft(The)10 b(task)h(of)e(the)h Fp(planner/optimizer)g
- Ft(is)g(to)f(create)h(an)g(optimal)f Fp(e)o(xecution)h(plan)p
- Ft(.)15 b(It)9 b( 02rst)g(combines)h(all)198 1193 y(possible)k(ways)f
- (of)g Fp(scanning)g Ft(and)g Fp(joining)g Ft(the)g Fp(r)n(elations)h
- Ft(that)f(appear)g(in)g(a)g(query)m(.)18 b(All)13 b(the)g(created)198
- 1253 y(paths)h(lead)g(to)g(the)g(same)g(result)g(and)g(it')m(s)f(the)h
- Fp(optimizer')n(s)g Ft(task)h(to)e(estimate)h(the)g(cost)g(of)g(e)o(x)o
- (ecuting)198 1313 y(each)f(path)f(and)g( 02nd)g(out)g(which)h(one)f
- (is)h(the)f(cheapest.)198 1456 y Fh(3.5.1)59 b(Generating)13
- b(P)o(ossible)h(Plans)198 1550 y Ft(The)j Fp(planner/optimizer)f
- Ft(decides)h(which)f(plans)g(should)g(be)g(generated)g(based)h(upon)f
- (the)g(types)h(of)198 1609 y(indices)g(de 02ned)g(on)g(the)g
- (relations)g(appearing)g(in)g(a)g(query)m(.)29 b(There)18
- b(is)f(always)g(the)g(possibility)g(of)198 1669 y(performing)10
- b(a)j Fp(sequential)f(scan)g Ft(on)g(a)h(relation,)f(so)g(a)g
- Fp(plan)g Ft(using)g(only)g Fp(sequential)g(scans)h Ft(is)g(always)198
- 1729 y(created.)j(Assume)c(an)h(inde)o(x)f(is)g(de 02ned)g(on)g(a)h
- (relation)e((for)g(e)o(xample)h(a)h(B-tree)e(inde)o(x))h(and)g(a)h
- (query)198 1789 y(contains)20 b(the)f(restriction)g Fp(r)n
- (elation.attrib)o(ute)12 b(OPR)i(constant)o Ft(.)38 b(If)19
- b Fp(r)n(elation.attrib)o(ute)g Ft(happens)h(to)198 1848
- y(match)e(the)g(ke)o(y)f(of)h(the)g(B-tree)f(inde)o(x)h(and)g
- Fp(OPR)h Ft(is)f(an)o(ything)f(b)o(ut)h(')p Fo(6)p Fl(=)p
- Ft(')f(another)g(plan)h(is)g(created)198 1908 y(using)h(the)f(B-tree)h
- (inde)o(x)f(to)h(scan)g(the)g(relation.)34 b(If)18 b(there)g(are)h
- (further)e(indices)i(present)f(and)h(the)198 1968 y(restrictions)10
- b(in)h(the)g(query)g(happen)f(to)h(match)g(a)g(ke)o(y)g(of)f(an)h(inde)
- o(x)g(further)f(plans)h(will)g(be)g(considered.)273 2028
- y(After)g(all)h(feasible)h(plans)f(ha)o(v)o(e)h(been)g(found)e(for)h
- (scanning)g(single)h Fp(r)n(elations)p Ft(,)g(plans)f(for)g(joining)198
- 2088 y Fp(r)n(elations)i Ft(are)f(created.)20 b(The)14
- b Fp(planner/optimizer)g Ft(considers)f(only)h(joins)f(between)h(e)o(v)
- o(ery)f(two)g Fp(r)n(ela-)198 2147 y(tions)j Ft(for)g(which)g(there)h
- (e)o(xists)g(a)g(corresponding)e Fp(join)h(clause)h Ft((i.e.)28
- b(for)16 b(which)g(a)h(restriction)f(like)198 2207 y
- Fk(:)8 b(:)g(:)18 b Fp(wher)n(e)g(r)n(el1.attr1=r)n(el2.attr2)h
- Ft(e)o(xists))f(in)f(the)h Fp(wher)n(e)g(quali 02cation)p
- Ft(.)30 b(All)18 b(possible)f(plans)h(are)198 2267 y(generated)13
- b(for)g(e)o(v)o(ery)h(join)f(pair)g(considered)h(by)f(the)h
- Fp(planner/optimizer)p Ft(.)20 b(The)14 b(three)f(possible)h(join)198
- 2327 y(strate)o(gies)f(are:)273 2427 y Fo( 17)25 b Fp(nested)13
- b(iter)o(ation)g(join)p Ft(:)j(The)e(right)e Fp(r)n(elation)h
- Ft(is)h(scanned)g(once)f(for)f(e)o(v)o(ery)h(tuple)g(found)f(in)h(the)
- 323 2487 y(left)e Fp(r)n(elation)p Ft(.)16 b(This)d(strate)o(gy)g(is)f
- (easy)h(to)f(implement)g(b)o(ut)g(can)h(be)f(v)o(ery)g(time)g
- (consuming.)273 2587 y Fo( 17)25 b Fp(mer)n(ge)15 b(sort)g(join)p
- Ft(:)20 b(Each)c(relation)e(is)h(sorted)g(on)g(the)g
- Fp(join)g(attrib)o(utes)g Ft(before)f(the)h(join)f(starts.)323
- 2647 y(Then)i(the)h(two)e(relations)i(are)f Fp(mer)n(ged)g(together)g
- Ft(taking)g(into)g(account)g(that)h(both)f Fp(r)n(elations)323
- 2706 y Ft(are)d(ordered)f(on)h(the)g Fp(join)g(attrib)o(utes)p
- Ft(.)18 b(This)c(kind)f(of)g(join)g(is)g(more)g(attracti)o(v)o(e)f
- (because)i(e)o(v)o(ery)323 2766 y Fp(r)n(elation)e Ft(has)h(to)f(be)g
- (scanned)h(only)f(once.)273 2866 y Fo( 17)25 b Fp(hash)11
- b(join)p Ft(:)j(the)d(right)f Fp(r)n(elation)h Ft(is)g( 02rst)g
- (hashed)g(on)g(its)g Fp(join)g(attrib)o(utes)p Ft(.)k(Ne)o(xt)d(the)f
- (left)f Fp(r)n(elation)323 2926 y Ft(is)k(scanned)i(and)e(the)h
- (appropriate)e(v)o(alues)i(of)f(e)o(v)o(ery)g(tuple)h(found)e(are)i
- (used)g(as)g Fp(hash)g(ke)o(ys)f Ft(to)323 2986 y(locate)e(the)g
- (tuples)h(in)f(the)g(right)g Fp(r)n(elation)p Ft(.)198
- 3129 y Fh(3.5.2)59 b(Data)15 b(Structur)o(e)f(of)g(the)h(Plan)198
- 3223 y Ft(Here)e(we)g(will)g(gi)o(v)o(e)g(a)h(little)f(description)f
- (of)h(the)g(nodes)h(appearing)e(in)i(the)f Fp(plan)p
- Ft(.)18 b(Figure)12 b(3.6)i(sho)o(ws)198 3283 y(the)e
- Fp(plan)g Ft(produced)g(for)g(the)g(query)g(in)g(e)o(xample)h(3.1.)273
- 3342 y(The)d(top)g(node)g(of)g(the)g Fp(plan)f Ft(is)i(a)f
- Fr(MergeJoin)f Ft(node)h(which)g(has)g(two)g(successors,)i(one)e
- (attached)198 3402 y(to)18 b(the)f( 02eld)h Fr(lefttree)f
- Ft(and)h(the)f(second)i(attached)e(to)h(the)g( 02eld)f
- Fr(righttree)p Ft(.)31 b(Each)19 b(of)e(the)p eop
- %%Page: 60 60
- 60 59 bop 270 60 a Ft(60)82 b Fm(CHAPTER)14 b(3.)28 b(POSTGRESQL)13
- b(FR)n(OM)f(THE)i(PR)n(OGRAMMER'S)f(POINT)f(OF)g(VIEW)270
- 234 y Ft(subnodes)f(represents)f(one)g Fp(r)n(elation)h
- Ft(of)f(the)g(join.)15 b(As)10 b(mentioned)g(abo)o(v)o(e)h(a)f
- Fp(mer)n(ge)h(sort)g(join)f Ft(requires)270 294 y(each)h
- Fp(r)n(elation)f Ft(to)g(be)g(sorted.)15 b(That')m(s)c(why)f(we)h
- ( 02nd)e(a)i Fr(Sort)f Ft(node)g(in)g(each)h(subplan.)k(The)c
- (additional)270 354 y(quali 02cation)19 b(gi)o(v)o(en)g(in)g(the)h
- (query)f(()p Fk(s:sno)27 b(>)f Fl(2)p Ft())20 b(is)f(pushed)h(do)o
- (wn)f(as)h(far)e(as)i(possible)g(and)g(is)270 413 y(attached)12
- b(to)h(the)f Fr(qpqual)g Ft( 02eld)g(of)g(the)g(leaf)g
- Fr(SeqScan)g Ft(node)g(of)g(the)g(corresponding)g(subplan.)345
- 494 y(The)k(list)f(attached)g(to)g(the)h( 02eld)f Fr(mergeclauses)f
- Ft(of)g(the)i Fr(MergeJoin)e Ft(node)h(contains)h(in-)270
- 554 y(formation)e(about)h(the)g Fr(join)30 b(attributes)p
- Ft(.)23 b(The)16 b(v)o(alues)g Fl(65000)f Ft(and)g Fl(65001)g
- Ft(for)f(the)i Fr(varno)270 613 y Ft( 02elds)f(in)f(the)h
- Fr(VAR)g Ft(nodes)g(appearing)f(in)h(the)g Fr(mergeclauses)e
- Ft(list)i((and)f(also)h(in)g(the)g Fp(tar)n(getlist)p
- Ft())270 673 y(mean)d(that)g(not)g(the)g(tuples)g(of)g(the)g(current)f
- (node)i(should)f(be)g(considered)g(b)o(ut)g(the)g(tuples)g(of)g(the)g
- (ne)o(xt)270 733 y(224deeper224)g(nodes)h((i.e.)j(the)c(top)g(nodes)
- h(of)f(the)g(subplans))h(should)f(be)h(used)f(instead.)345
- 813 y(Note)i(that)g(e)o(v)o(ery)h Fr(Sort)f Ft(and)g
- Fr(SeqScan)g Ft(node)h(appearing)f(in)g( 02gure)g(3.6)g(has)h(got)g(a)
- f Fp(tar)n(getlist)270 873 y Ft(b)o(ut)g(because)h(there)g(was)f(not)g
- (enough)h(space)g(only)f(the)g(one)h(for)e(the)i Fr(MergeJoin)e
- Ft(node)i(could)f(be)270 933 y(dra)o(wn.)345 1013 y(Another)c(task)i
- (performed)d(by)i(the)g Fp(planner/optimizer)g Ft(is)h( 02xing)e(the)h
- Fp(oper)o(ator)h(ids)f Ft(in)g(the)g Fr(Expr)270 1073
- y Ft(and)16 b Fr(Oper)h Ft(nodes.)28 b(As)17 b(mentioned)e(earlier)n(,)
- j(PostgreSQL)e(supports)g(a)h(v)o(ariety)e(of)h(dif)o(ferent)f(data)270
- 1133 y(types)f(and)f(e)o(v)o(en)g(user)h(de 02ned)f(types)g(can)h(be)f
- (used.)20 b(T)l(o)13 b(be)h(able)f(to)g(maintain)g(the)g(huge)h(amount)
- f(of)270 1193 y(functions)h(and)g(operators)g(it)g(is)h(necessary)g(to)
- f(store)h(them)f(in)g(a)h Fp(system)g(table)p Ft(.)22
- b(Each)15 b(function)e(and)270 1253 y(operator)e(gets)i(a)g(unique)f
- Fp(oper)o(ator)h(id)p Ft(.)j(According)11 b(to)h(the)h(types)f(of)g
- (the)h(attrib)o(utes)f(used)g(within)g(the)270 1312 y(quali 02cations)
- g(etc.,)h(the)g(appropriate)e Fp(oper)o(ator)i(ids)g
- Ft(ha)o(v)o(e)f(to)h(be)f(used.)270 1594 y Fi(3.6)71
- b(Executor)270 1745 y Ft(The)12 b Fp(e)o(xecutor)f Ft(takes)g(the)g
- Fp(plan)g Ft(handed)g(back)g(by)g(the)g Fp(planner/optimizer)g
- Ft(and)g(starts)g(processing)g(the)270 1804 y(top)16
- b(node.)27 b(In)15 b(the)h(case)h(of)f(our)f(e)o(xample)i((the)e
- (query)h(gi)o(v)o(en)g(in)g(e)o(xample)g(3.1))g(the)g(top)g(node)g(is)
- g(a)270 1864 y Fr(MergeJoin)11 b Ft(node.)345 1945 y(Before)i(an)o(y)h
- (mer)o(ge)f(can)g(be)h(done)f(two)g(tuples)h(ha)o(v)o(e)g(to)f(be)h
- (fetched)f((one)g(from)f(each)i(subplan).)270 2004
- y(So)i(the)g Fp(e)o(xecutor)h Ft(recursi)o(v)o(ely)f(calls)g(itself)g
- (to)g(process)h(the)f(subplans)h((it)e(starts)i(with)f(the)g(subplan)
- 270 2064 y(attached)10 b(to)g Fr(lefttree)p Ft().)j(The)e(ne)o(w)f
- (top)f(node)h((the)g(top)f(node)h(of)g(the)f(left)h(subplan))f(is)i
- (a)f Fr(SeqScan)270 2124 y Ft(node)19 b(and)f(again)h(a)g(tuple)f(has)h
- (to)g(be)g(fetched)f(before)g(the)h(node)f(itself)h(can)f(be)h
- (processed.)36 b(The)270 2184 y Fp(e)o(xecutor)13 b Ft(calls)g(itself)f
- (recursi)o(v)o(ely)f(another)h(time)g(for)g(the)g(subplan)g(attached)h
- (to)f Fr(lefttree)f Ft(of)h(the)270 2244 y Fr(SeqScan)g
- Ft(node.)345 2324 y(No)o(w)g(the)g(ne)o(w)g(top)h(node)f(is)h(a)f
- Fr(Sort)g Ft(node.)k(As)d(a)g(sort)f(has)h(to)f(be)g(done)h(on)f(the)g
- (whole)h Fp(r)n(elation)p Ft(,)270 2384 y(the)18 b Fp(e)o(xecutor)h
- Ft(starts)f(fetching)f(tuples)h(from)f(the)h Fr(Sort)g
- Ft(node')m(s)g(subplan)g(and)g(sorts)h(them)e(into)h(a)270
- 2444 y(temporary)13 b(relation)h((in)f(memory)h(or)f(a)i( 02le))e
- (when)i(the)f Fr(Sort)g Ft(node)g(is)g(visited)h(for)e(the)h( 02rst)g
- (time.)270 2503 y((Further)e(e)o(xaminations)i(of)g(the)g
- Fr(Sort)f Ft(node)h(will)g(always)f(return)g(just)h(one)g(tuple)g(from)
- e(the)i(sorted)270 2563 y(temporary)d Fp(r)n(elation)p
- Ft(.))345 2644 y(Ev)o(ery)k(time)g(the)g(processing)g(of)f(the)h
- Fr(Sort)g Ft(node)g(needs)g(a)h(ne)o(w)e(tuple)h(the)g
- Fp(e)o(xecutor)h Ft(is)f(recur)o(-)270 2703 y(si)o(v)o(ely)i(called)g
- (for)f(the)g Fr(SeqScan)g Ft(node)h(attached)g(as)g(subplan.)29
- b(The)17 b Fp(r)n(elation)g Ft((internally)e(refer)o(-)270
- 2763 y(enced)i(by)g(the)f(v)o(alue)h(gi)o(v)o(en)f(in)h(the)f
- Fr(scanrelid)g Ft( 02eld))g(is)h(scanned)g(for)f(the)h(ne)o(xt)g
- (tuple.)28 b(If)16 b(the)270 2823 y(tuple)h(satis 02es)h(the)f
- (quali 02cation)g(gi)o(v)o(en)g(by)g(the)g(tree)g(attached)h(to)f
- Fr(qpqual)g Ft(it)g(is)g(handed)h(back,)270 2883 y(otherwise)12
- b(the)h(ne)o(xt)f(tuple)h(is)g(fetched)f(until)g(the)g(quali 02cation)
- g(is)h(satis 02ed.)k(If)11 b(the)i(last)g(tuple)f(of)g(the)270
- 2942 y Fp(r)n(elation)g Ft(has)h(been)g(processed)g(a)f
- Fr(NULL)g Ft(pointer)g(is)g(returned.)345 3023 y(After)23
- b(a)i(tuple)f(has)h(been)f(handed)h(back)f(by)g(the)h
- Fr(lefttree)e Ft(of)h(the)h Fr(MergeJoin)e Ft(the)270
- 3083 y Fr(righttree)16 b Ft(is)h(processed)g(in)g(the)g(same)g(way)m(.)
- 28 b(If)17 b(both)f(tuples)h(are)g(present)f(the)h(e)o(x)o(ecutor)g
- (pro-)270 3142 y(cesses)d(the)e Fr(MergeJoin)f Ft(node.)16
- b(Whene)o(v)o(er)c(a)h(ne)o(w)f(tuple)g(from)f(one)h(of)g(the)g
- (subplans)h(is)f(needed)h(a)270 3202 y(recursi)o(v)o(e)g(call)f(to)h
- (the)g Fp(e)o(xecutor)h Ft(is)f(performed)e(to)i(obtain)f(it.)18
- b(If)12 b(a)h Fp(joined)f Ft(tuple)h(could)g(be)g(created)f(it)270
- 3262 y(is)h(handed)f(back)g(and)h(one)f(complete)g(processing)h(of)f
- (the)g Fp(plan)g(tr)n(ee)h Ft(has)g( 02nished.)345 3342
- y(No)o(w)j(the)g(described)g(steps)h(are)f(performed)f(once)h(for)g(e)o
- (v)o(ery)g(tuple,)h(until)f(a)g Fr(NULL)g Ft(pointer)g(is)270
- 3402 y(returned)11 b(for)h(the)g(processing)h(of)f(the)g
- Fr(MergeJoin)g Ft(node,)g(indicating)g(that)g(we)h(are)f( 02nished.)p
- eop
- %%Page: 61 61
- 61 60 bop 198 60 a Fm(3.6.)29 b(EXECUT)o(OR)1384 b Ft(61)243
- 3011 y @beginspecial 135 @llx 135 @lly 477 @urx 656 @ury
- 3420 @rwi @setspecial
- %%BeginDocument: figures/plan.ps
- %Magnification: 1.05
- /$F2psDict 200 dict def
- $F2psDict begin
- $F2psDict /mtrx matrix put
- /col-1 {0 setgray} bind def
- /col0 {0.000 0.000 0.000 srgb} bind def
- /col1 {0.000 0.000 1.000 srgb} bind def
- /col2 {0.000 1.000 0.000 srgb} bind def
- /col3 {0.000 1.000 1.000 srgb} bind def
- /col4 {1.000 0.000 0.000 srgb} bind def
- /col5 {1.000 0.000 1.000 srgb} bind def
- /col6 {1.000 1.000 0.000 srgb} bind def
- /col7 {1.000 1.000 1.000 srgb} bind def
- /col8 {0.000 0.000 0.560 srgb} bind def
- /col9 {0.000 0.000 0.690 srgb} bind def
- /col10 {0.000 0.000 0.820 srgb} bind def
- /col11 {0.530 0.810 1.000 srgb} bind def
- /col12 {0.000 0.560 0.000 srgb} bind def
- /col13 {0.000 0.690 0.000 srgb} bind def
- /col14 {0.000 0.820 0.000 srgb} bind def
- /col15 {0.000 0.560 0.560 srgb} bind def
- /col16 {0.000 0.690 0.690 srgb} bind def
- /col17 {0.000 0.820 0.820 srgb} bind def
- /col18 {0.560 0.000 0.000 srgb} bind def
- /col19 {0.690 0.000 0.000 srgb} bind def
- /col20 {0.820 0.000 0.000 srgb} bind def
- /col21 {0.560 0.000 0.560 srgb} bind def
- /col22 {0.690 0.000 0.690 srgb} bind def
- /col23 {0.820 0.000 0.820 srgb} bind def
- /col24 {0.500 0.190 0.000 srgb} bind def
- /col25 {0.630 0.250 0.000 srgb} bind def
- /col26 {0.750 0.380 0.000 srgb} bind def
- /col27 {1.000 0.500 0.500 srgb} bind def
- /col28 {1.000 0.630 0.630 srgb} bind def
- /col29 {1.000 0.750 0.750 srgb} bind def
- /col30 {1.000 0.880 0.880 srgb} bind def
- /col31 {1.000 0.840 0.000 srgb} bind def
- end
- save
- 116.0 655.5 translate
- 1 -1 scale
- /cp {closepath} bind def
- /ef {eofill} bind def
- /gr {grestore} bind def
- /gs {gsave} bind def
- /sa {save} bind def
- /rs {restore} bind def
- /l {lineto} bind def
- /m {moveto} bind def
- /rm {rmoveto} bind def
- /n {newpath} bind def
- /s {stroke} bind def
- /sh {show} bind def
- /slc {setlinecap} bind def
- /slj {setlinejoin} bind def
- /slw {setlinewidth} bind def
- /srgb {setrgbcolor} bind def
- /rot {rotate} bind def
- /sc {scale} bind def
- /sd {setdash} bind def
- /ff {findfont} bind def
- /sf {setfont} bind def
- /scf {scalefont} bind def
- /sw {stringwidth} bind def
- /tr {translate} bind def
- /tnt {dup dup currentrgbcolor
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
- bind def
- /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
- 4 -2 roll mul srgb} bind def
- /DrawSplineSection {
- /y3 exch def
- /x3 exch def
- /y2 exch def
- /x2 exch def
- /y1 exch def
- /x1 exch def
- /xa x1 x2 x1 sub 0.666667 mul add def
- /ya y1 y2 y1 sub 0.666667 mul add def
- /xb x3 x2 x3 sub 0.666667 mul add def
- /yb y3 y2 y3 sub 0.666667 mul add def
- x1 y1 lineto
- xa ya xb yb x3 y3 curveto
- } def
- /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
- /$F2psEnd {$F2psEnteredState restore end} def
- $F2psBegin
- 10 setmiterlimit
- n 0 792 m 0 0 l 612 0 l 612 792 l cp clip
- 0.06299 0.06299 sc
- 7.500 slw
- % Polyline
- n 315 2025 m 1215 2025 l 1215 2790 l 315 2790 l cp gs col-1 s gr
- % Polyline
- n 315 2250 m 1215 2250 l gs col-1 s gr
- % Polyline
- n 315 2520 m 1215 2520 l gs col-1 s gr
- % Polyline
- n 945 2250 m 945 2790 l gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 495 2205 m
- gs 1 -1 sc (SeqScan) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 405 2700 m
- gs 1 -1 sc (lefttree) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 675 2475 m
- gs 1 -1 sc 90.0 rot (. . . ) col-1 sh gr
- % Polyline
- n 630 3150 m 1530 3150 l 1530 3915 l 630 3915 l cp gs col-1 s gr
- % Polyline
- n 630 3375 m 1530 3375 l gs col-1 s gr
- % Polyline
- n 630 3645 m 1530 3645 l gs col-1 s gr
- % Polyline
- n 1260 3375 m 1260 3915 l gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 720 3825 m
- gs 1 -1 sc (lefttree) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 990 3600 m
- gs 1 -1 sc 90.0 rot (. . . ) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 945 3330 m
- gs 1 -1 sc (Sort) col-1 sh gr
- % Polyline
- gs clippath
- 1110 3003 m 1080 3123 l 1050 3003 l 1050 3165 l 1110 3165 l cp clip
- n 1080 2655 m 1080 3150 l gs col-1 s gr gr
- % arrowhead
- n 1110 3003 m 1080 3123 l 1050 3003 l 1080 3003 l 1110 3003 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- gs clippath
- 1425 4128 m 1395 4248 l 1365 4128 l 1365 4290 l 1425 4290 l cp clip
- n 1395 3780 m 1395 4275 l gs col-1 s gr gr
- % arrowhead
- n 1425 4128 m 1395 4248 l 1365 4128 l 1395 4128 l 1425 4128 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 945 4500 m 1845 4500 l gs col-1 s gr
- % Polyline
- n 945 4770 m 1845 4770 l gs col-1 s gr
- % Polyline
- n 1575 5310 m 1575 5580 l gs col-1 s gr
- % Polyline
- n 945 4275 m 1845 4275 l 1845 5580 l 945 5580 l cp gs col-1 s gr
- % Polyline
- n 945 5040 m 1845 5040 l gs col-1 s gr
- % Polyline
- n 945 5310 m 1845 5310 l gs col-1 s gr
- % Polyline
- n 1845 5310 m 1575 5580 l gs col-1 s gr
- % Polyline
- n 1575 5310 m 1845 5580 l gs col-1 s gr
- % Polyline
- n 1575 4500 m 1575 5040 l gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 1125 4455 m
- gs 1 -1 sc (SeqScan) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1305 4725 m
- gs 1 -1 sc 90.0 rot (. . . ) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1035 5490 m
- gs 1 -1 sc (lefttree) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1035 4950 m
- gs 1 -1 sc (qpqual) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1035 5220 m
- gs 1 -1 sc (scanrelid: 1) col-1 sh gr
- % Polyline
- n 4590 5400 m 4590 5670 l gs col-1 s gr
- % Polyline
- n 4320 5400 m 4860 5400 l 4860 5670 l 4320 5670 l cp gs col-1 s gr
- % Polyline
- n 5355 5400 m 5355 5670 l gs col-1 s gr
- % Polyline
- n 5085 5400 m 5625 5400 l 5625 5670 l 5085 5670 l cp gs col-1 s gr
- % Polyline
- n 5355 5400 m 5625 5670 l gs col-1 s gr
- % Polyline
- n 5625 5400 m 5355 5670 l gs col-1 s gr
- % Polyline
- n 2430 855 m 2430 1125 l gs col-1 s gr
- % Polyline
- n 2430 855 m 2700 1125 l gs col-1 s gr
- % Polyline
- n 2700 855 m 2430 1125 l gs col-1 s gr
- % Polyline
- n 2160 855 m 2700 855 l 2700 1125 l 2160 1125 l cp gs col-1 s gr
- % Polyline
- n 1575 2025 m 2475 2025 l 2475 2790 l 1575 2790 l cp gs col-1 s gr
- % Polyline
- n 1575 2250 m 2475 2250 l gs col-1 s gr
- % Polyline
- n 1575 2520 m 2475 2520 l gs col-1 s gr
- % Polyline
- n 2205 2250 m 2205 2790 l gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 1755 2205 m
- gs 1 -1 sc (SeqScan) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1665 2700 m
- gs 1 -1 sc (lefttree) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1935 2475 m
- gs 1 -1 sc 90.0 rot (. . . ) col-1 sh gr
- % Polyline
- n 1890 3150 m 2790 3150 l 2790 3915 l 1890 3915 l cp gs col-1 s gr
- % Polyline
- n 1890 3375 m 2790 3375 l gs col-1 s gr
- % Polyline
- n 1890 3645 m 2790 3645 l gs col-1 s gr
- % Polyline
- n 2520 3375 m 2520 3915 l gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 1980 3825 m
- gs 1 -1 sc (lefttree) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2250 3600 m
- gs 1 -1 sc 90.0 rot (. . . ) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2205 3330 m
- gs 1 -1 sc (Sort) col-1 sh gr
- % Polyline
- n 3105 225 m 3645 225 l 3645 495 l 3105 495 l cp gs col-1 s gr
- % Polyline
- n 3375 225 m 3375 495 l gs col-1 s gr
- % Polyline
- n 3915 225 m 4455 225 l 4455 495 l 3915 495 l cp gs col-1 s gr
- % Polyline
- n 4185 225 m 4185 495 l gs col-1 s gr
- % Polyline
- n 4455 495 m 4185 225 l gs col-1 s gr
- % Polyline
- n 4455 225 m 4185 495 l gs col-1 s gr
- % Polyline
- n 3240 945 m 4140 945 l 4140 1710 l 3240 1710 l cp gs col-1 s gr
- % Polyline
- n 3240 1170 m 4140 1170 l gs col-1 s gr
- % Polyline
- n 3240 1440 m 4140 1440 l gs col-1 s gr
- % Polyline
- n 3870 1170 m 3870 1710 l gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 3555 1125 m
- gs 1 -1 sc (TLE) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3330 1620 m
- gs 1 -1 sc (expr) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3330 1350 m
- gs 1 -1 sc (resdom) col-1 sh gr
- % Polyline
- n 4590 945 m 5490 945 l 5490 1710 l 4590 1710 l cp gs col-1 s gr
- % Polyline
- n 4590 1170 m 5490 1170 l gs col-1 s gr
- % Polyline
- n 4590 1440 m 5490 1440 l gs col-1 s gr
- % Polyline
- n 5220 1170 m 5220 1710 l gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 4905 1125 m
- gs 1 -1 sc (TLE) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4680 1620 m
- gs 1 -1 sc (expr) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4680 1350 m
- gs 1 -1 sc (resdom) col-1 sh gr
- % Polyline
- n 2655 6885 m 2655 7155 l gs col-1 s gr
- % Polyline
- n 2385 6885 m 2925 6885 l 2925 7155 l 2385 7155 l cp gs col-1 s gr
- % Polyline
- n 3420 6885 m 3420 7155 l gs col-1 s gr
- % Polyline
- n 3150 6885 m 3690 6885 l 3690 7155 l 3150 7155 l cp gs col-1 s gr
- % Polyline
- n 3420 6885 m 3690 7155 l gs col-1 s gr
- % Polyline
- n 3690 6885 m 3420 7155 l gs col-1 s gr
- % Polyline
- gs clippath
- 4938 5505 m 5058 5535 l 4938 5565 l 5100 5565 l 5100 5505 l cp clip
- n 4725 5535 m 5085 5535 l gs col-1 s gr gr
- % arrowhead
- n 4938 5505 m 5058 5535 l 4938 5565 l 4938 5535 l 4938 5505 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 4725 5940 m 5625 5940 l 5625 6705 l 4725 6705 l cp gs col-1 s gr
- % Polyline
- gs clippath
- 2013 960 m 2133 990 l 2013 1020 l 2175 1020 l 2175 960 l cp clip
- n 1395 990 m 2160 990 l gs col-1 s gr gr
- % arrowhead
- n 2013 960 m 2133 990 l 2013 1020 l 2013 990 l 2013 960 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 315 855 m 1530 855 l gs col-1 s gr
- % Polyline
- n 315 1125 m 1530 1125 l gs col-1 s gr
- % Polyline
- n 315 1395 m 1530 1395 l gs col-1 s gr
- % Polyline
- n 315 585 m 1530 585 l gs col-1 s gr
- % Polyline
- n 315 225 m 1530 225 l gs col-1 s gr
- % Polyline
- n 2835 4770 m 3105 5040 l gs col-1 s gr
- % Polyline
- n 3105 4770 m 2835 5040 l gs col-1 s gr
- % Polyline
- gs clippath
- 2370 3003 m 2340 3123 l 2310 3003 l 2310 3165 l 2370 3165 l cp clip
- n 2340 2655 m 2340 3150 l gs col-1 s gr gr
- % arrowhead
- n 2370 3003 m 2340 3123 l 2310 3003 l 2340 3003 l 2370 3003 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- gs clippath
- 2685 4128 m 2655 4248 l 2625 4128 l 2625 4290 l 2685 4290 l cp clip
- n 2655 3780 m 2655 4275 l gs col-1 s gr gr
- % arrowhead
- n 2685 4128 m 2655 4248 l 2625 4128 l 2655 4128 l 2685 4128 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 2205 4500 m 3105 4500 l gs col-1 s gr
- % Polyline
- n 2205 4770 m 3105 4770 l gs col-1 s gr
- % Polyline
- n 2835 5310 m 2835 5580 l gs col-1 s gr
- % Polyline
- n 2205 4275 m 3105 4275 l 3105 5580 l 2205 5580 l cp gs col-1 s gr
- % Polyline
- n 2205 5040 m 3105 5040 l gs col-1 s gr
- % Polyline
- n 2205 5310 m 3105 5310 l gs col-1 s gr
- % Polyline
- n 3105 5310 m 2835 5580 l gs col-1 s gr
- % Polyline
- n 2835 5310 m 3105 5580 l gs col-1 s gr
- % Polyline
- n 2835 4500 m 2835 5040 l gs col-1 s gr
- % Polyline
- gs clippath
- 3768 330 m 3888 360 l 3768 390 l 3930 390 l 3930 330 l cp clip
- n 3510 360 m 3915 360 l gs col-1 s gr gr
- % arrowhead
- n 3768 330 m 3888 360 l 3768 390 l 3768 360 l 3768 330 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 4500 2250 m 5580 2250 l gs col-1 s gr
- % Polyline
- n 3150 2250 m 4230 2250 l gs col-1 s gr
- % Polyline
- n 3150 2025 m 4230 2025 l 4230 2520 l 3150 2520 l cp gs col-1 s gr
- % Polyline
- n 4500 2025 m 5580 2025 l 5580 2520 l 4500 2520 l cp gs col-1 s gr
- % Polyline
- n 3240 2835 m 4140 2835 l 4140 3600 l 3240 3600 l cp gs col-1 s gr
- % Polyline
- n 3240 3060 m 4140 3060 l gs col-1 s gr
- % Polyline
- n 3240 3330 m 4140 3330 l gs col-1 s gr
- % Polyline
- n 4590 2835 m 5490 2835 l 5490 3600 l 4590 3600 l cp gs col-1 s gr
- % Polyline
- n 4590 3060 m 5490 3060 l gs col-1 s gr
- % Polyline
- n 4590 3330 m 5490 3330 l gs col-1 s gr
- % Polyline
- n 4725 6165 m 5625 6165 l gs col-1 s gr
- % Polyline
- n 4725 6435 m 5625 6435 l gs col-1 s gr
- % Polyline
- n 3600 6165 m 4500 6165 l gs col-1 s gr
- % Polyline
- n 3600 6435 m 4500 6435 l gs col-1 s gr
- % Polyline
- n 3600 5940 m 4500 5940 l 4500 6705 l 3600 6705 l cp gs col-1 s gr
- % Polyline
- n 945 6165 m 1935 6165 l gs col-1 s gr
- % Polyline
- n 945 6435 m 1935 6435 l gs col-1 s gr
- % Polyline
- n 945 6705 m 1935 6705 l gs col-1 s gr
- % Polyline
- n 945 5940 m 1935 5940 l 1935 6975 l 945 6975 l cp gs col-1 s gr
- % Polyline
- n 1665 6975 m 1665 6435 l gs col-1 s gr
- % Polyline
- gs clippath
- 3003 6990 m 3123 7020 l 3003 7050 l 3165 7050 l 3165 6990 l cp clip
- n 2790 7020 m 3150 7020 l gs col-1 s gr gr
- % arrowhead
- n 3003 6990 m 3123 7020 l 3003 7050 l 3003 7020 l 3003 6990 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 2385 6165 m 3150 6165 l gs col-1 s gr
- % Polyline
- n 2385 6435 m 3150 6435 l gs col-1 s gr
- % Polyline
- n 2385 5940 m 3150 5940 l 3150 6705 l 2385 6705 l cp gs col-1 s gr
- % Polyline
- n 1485 7695 m 2385 7695 l gs col-1 s gr
- % Polyline
- n 1485 7965 m 2385 7965 l gs col-1 s gr
- % Polyline
- n 2790 7695 m 3690 7695 l gs col-1 s gr
- % Polyline
- n 2790 7470 m 3690 7470 l 3690 7965 l 2790 7965 l cp gs col-1 s gr
- % Polyline
- n 1485 7470 m 2385 7470 l 2385 8235 l 1485 8235 l cp gs col-1 s gr
- % Polyline
- n 3375 4275 m 4365 4275 l gs col-1 s gr
- % Polyline
- n 3375 4545 m 4365 4545 l gs col-1 s gr
- % Polyline
- n 3375 4815 m 4365 4815 l gs col-1 s gr
- % Polyline
- n 3375 4050 m 4365 4050 l 4365 5085 l 3375 5085 l cp gs col-1 s gr
- % Polyline
- n 4095 5085 m 4095 4545 l gs col-1 s gr
- % Polyline
- n 4815 4275 m 5580 4275 l gs col-1 s gr
- % Polyline
- n 4815 4545 m 5580 4545 l gs col-1 s gr
- % Polyline
- n 4815 4050 m 5580 4050 l 5580 4815 l 4815 4815 l cp gs col-1 s gr
- % Polyline
- n 315 0 m 1530 0 l 1530 1665 l 315 1665 l cp gs col-1 s gr
- % Polyline
- n 1260 225 m 1260 1665 l gs col-1 s gr
- % Open spline
- gs clippath
- 750 1878 m 720 1998 l 690 1878 l 690 2040 l 750 2040 l cp clip
- n 1395.0 1260.0 m 1462.5 1260.0 l
- 1462.5 1260.0 1530.0 1260.0 1597.5 1260.0 DrawSplineSection
- 1597.5 1260.0 1665.0 1260.0 1665.0 1327.5 DrawSplineSection
- 1665.0 1327.5 1665.0 1395.0 1665.0 1530.0 DrawSplineSection
- 1665.0 1530.0 1665.0 1665.0 1665.0 1732.5 DrawSplineSection
- 1665.0 1732.5 1665.0 1800.0 1597.5 1800.0 DrawSplineSection
- 1597.5 1800.0 1530.0 1800.0 1192.5 1800.0 DrawSplineSection
- 1192.5 1800.0 855.0 1800.0 787.5 1800.0 DrawSplineSection
- 787.5 1800.0 720.0 1800.0 720.0 1912.5 DrawSplineSection
- 720.0 2025.0 l gs col-1 s gr
- gr
- % arrowhead
- n 750 1878 m 720 1998 l 690 1878 l 720 1878 l 750 1878 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 1547 5834 m 1454 5917 l 1497 5801 l 1407 5936 l 1457 5969 l cp clip
- n 1710.0 4905.0 m 1800.0 4905.0 l
- 1800.0 4905.0 1890.0 4905.0 1957.5 4905.0 DrawSplineSection
- 1957.5 4905.0 2025.0 4905.0 2025.0 4995.0 DrawSplineSection
- 2025.0 4995.0 2025.0 5085.0 2025.0 5355.0 DrawSplineSection
- 2025.0 5355.0 2025.0 5625.0 2025.0 5692.5 DrawSplineSection
- 2025.0 5692.5 2025.0 5760.0 1957.5 5760.0 DrawSplineSection
- 1957.5 5760.0 1890.0 5760.0 1755.0 5760.0 DrawSplineSection
- 1755.0 5760.0 1620.0 5760.0 1575.0 5782.5 DrawSplineSection
- 1575.0 5782.5 1530.0 5805.0 1485.0 5872.5 DrawSplineSection
- 1440.0 5940.0 l gs col-1 s gr
- gr
- % arrowhead
- n 1547 5834 m 1454 5917 l 1497 5801 l 1522 5818 l 1547 5834 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 2055 1878 m 2025 1998 l 1995 1878 l 1995 2040 l 2055 2040 l cp clip
- n 1395.0 1530.0 m 1642.5 1530.0 l
- 1642.5 1530.0 1890.0 1530.0 1957.5 1530.0 DrawSplineSection
- 1957.5 1530.0 2025.0 1530.0 2025.0 1620.0 DrawSplineSection
- 2025.0 1620.0 2025.0 1710.0 2025.0 1867.5 DrawSplineSection
- 2025.0 2025.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2055 1878 m 2025 1998 l 1995 1878 l 2025 1878 l 2055 1878 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 5229 5800 m 5179 5913 l 5170 5790 l 5143 5950 l 5202 5960 l cp clip
- n 5220.0 5535.0 m 5220.0 5602.5 l
- 5220.0 5602.5 5220.0 5670.0 5197.5 5805.0 DrawSplineSection
- 5175.0 5940.0 l gs col-1 s gr
- gr
- % arrowhead
- n 5229 5800 m 5179 5913 l 5170 5790 l 5199 5795 l 5229 5800 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 4175 5857 m 4069 5920 l 4133 5815 l 4018 5929 l 4061 5972 l cp clip
- n 4455.0 5535.0 m 4455.0 5647.5 l
- 4455.0 5647.5 4455.0 5760.0 4320.0 5782.5 DrawSplineSection
- 4320.0 5782.5 4185.0 5805.0 4117.5 5872.5 DrawSplineSection
- 4050.0 5940.0 l gs col-1 s gr
- gr
- % arrowhead
- n 4175 5857 m 4069 5920 l 4133 5815 l 4154 5836 l 4175 5857 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 4620 5253 m 4590 5373 l 4560 5253 l 4560 5415 l 4620 5415 l cp clip
- n 4230.0 4950.0 m 4342.5 4950.0 l
- 4342.5 4950.0 4455.0 4950.0 4522.5 4950.0 DrawSplineSection
- 4522.5 4950.0 4590.0 4950.0 4590.0 5017.5 DrawSplineSection
- 4590.0 5017.5 4590.0 5085.0 4590.0 5242.5 DrawSplineSection
- 4590.0 5400.0 l gs col-1 s gr
- gr
- % arrowhead
- n 4620 5253 m 4590 5373 l 4560 5253 l 4590 5253 l 4620 5253 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3843 3902 m 3859 4024 l 3788 3925 l 3848 4075 l 3903 4053 l cp clip
- n 2295.0 990.0 m 2340.0 1170.0 l
- 2340.0 1170.0 2385.0 1350.0 2587.5 1485.0 DrawSplineSection
- 2587.5 1485.0 2790.0 1620.0 2857.5 2677.5 DrawSplineSection
- 2857.5 2677.5 2925.0 3735.0 3352.5 3780.0 DrawSplineSection
- 3352.5 3780.0 3780.0 3825.0 3825.0 3937.5 DrawSplineSection
- 3870.0 4050.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3843 3902 m 3859 4024 l 3788 3925 l 3815 3914 l 3843 3902 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 2958 330 m 3078 360 l 2958 390 l 3120 390 l 3120 330 l cp clip
- n 1395.0 720.0 m 1552.5 720.0 l
- 1552.5 720.0 1710.0 720.0 1845.0 540.0 DrawSplineSection
- 1845.0 540.0 1980.0 360.0 2542.5 360.0 DrawSplineSection
- 3105.0 360.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2958 330 m 3078 360 l 2958 390 l 2958 360 l 2958 330 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3607 820 m 3670 925 l 3565 862 l 3679 977 l 3722 934 l cp clip
- n 3240.0 360.0 m 3307.5 495.0 l
- 3307.5 495.0 3375.0 630.0 3532.5 787.5 DrawSplineSection
- 3690.0 945.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3607 820 m 3670 925 l 3565 862 l 3586 841 l 3607 820 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 4957 820 m 5020 925 l 4915 862 l 5029 977 l 5072 934 l cp clip
- n 4050.0 360.0 m 4095.0 495.0 l
- 4095.0 495.0 4140.0 630.0 4455.0 652.5 DrawSplineSection
- 4455.0 652.5 4770.0 675.0 4905.0 810.0 DrawSplineSection
- 5040.0 945.0 l gs col-1 s gr
- gr
- % arrowhead
- n 4957 820 m 5020 925 l 4915 862 l 4936 841 l 4957 820 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3802 1925 m 3706 2003 l 3754 1889 l 3657 2019 l 3705 2055 l cp clip
- n 4005.0 1305.0 m 4095.0 1305.0 l
- 4095.0 1305.0 4185.0 1305.0 4230.0 1305.0 DrawSplineSection
- 4230.0 1305.0 4275.0 1305.0 4275.0 1372.5 DrawSplineSection
- 4275.0 1372.5 4275.0 1440.0 4275.0 1575.0 DrawSplineSection
- 4275.0 1575.0 4275.0 1710.0 4275.0 1777.5 DrawSplineSection
- 4275.0 1777.5 4275.0 1845.0 4207.5 1845.0 DrawSplineSection
- 4207.5 1845.0 4140.0 1845.0 4050.0 1845.0 DrawSplineSection
- 4050.0 1845.0 3960.0 1845.0 3892.5 1845.0 DrawSplineSection
- 3892.5 1845.0 3825.0 1845.0 3757.5 1935.0 DrawSplineSection
- 3690.0 2025.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3802 1925 m 3706 2003 l 3754 1889 l 3778 1907 l 3802 1925 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 5152 1925 m 5056 2003 l 5104 1889 l 5007 2019 l 5055 2055 l cp clip
- n 5355.0 1305.0 m 5445.0 1305.0 l
- 5445.0 1305.0 5535.0 1305.0 5580.0 1305.0 DrawSplineSection
- 5580.0 1305.0 5625.0 1305.0 5625.0 1372.5 DrawSplineSection
- 5625.0 1372.5 5625.0 1440.0 5625.0 1575.0 DrawSplineSection
- 5625.0 1575.0 5625.0 1710.0 5625.0 1777.5 DrawSplineSection
- 5625.0 1777.5 5625.0 1845.0 5557.5 1845.0 DrawSplineSection
- 5557.5 1845.0 5490.0 1845.0 5400.0 1845.0 DrawSplineSection
- 5400.0 1845.0 5310.0 1845.0 5242.5 1845.0 DrawSplineSection
- 5242.5 1845.0 5175.0 1845.0 5107.5 1935.0 DrawSplineSection
- 5040.0 2025.0 l gs col-1 s gr
- gr
- % arrowhead
- n 5152 1925 m 5056 2003 l 5104 1889 l 5128 1907 l 5152 1925 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3815 2752 m 3709 2815 l 3773 2710 l 3658 2824 l 3701 2867 l cp clip
- n 4005.0 1575.0 m 4140.0 1575.0 l
- 4140.0 1575.0 4275.0 1575.0 4320.0 1575.0 DrawSplineSection
- 4320.0 1575.0 4365.0 1575.0 4365.0 1620.0 DrawSplineSection
- 4365.0 1620.0 4365.0 1665.0 4365.0 2092.5 DrawSplineSection
- 4365.0 2092.5 4365.0 2520.0 4365.0 2610.0 DrawSplineSection
- 4365.0 2610.0 4365.0 2700.0 4297.5 2700.0 DrawSplineSection
- 4297.5 2700.0 4230.0 2700.0 4027.5 2700.0 DrawSplineSection
- 4027.5 2700.0 3825.0 2700.0 3757.5 2767.5 DrawSplineSection
- 3690.0 2835.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3815 2752 m 3709 2815 l 3773 2710 l 3794 2731 l 3815 2752 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 5165 2752 m 5059 2815 l 5123 2710 l 5008 2824 l 5051 2867 l cp clip
- n 5355.0 1575.0 m 5467.5 1575.0 l
- 5467.5 1575.0 5580.0 1575.0 5647.5 1575.0 DrawSplineSection
- 5647.5 1575.0 5715.0 1575.0 5715.0 1620.0 DrawSplineSection
- 5715.0 1620.0 5715.0 1665.0 5715.0 2092.5 DrawSplineSection
- 5715.0 2092.5 5715.0 2520.0 5715.0 2610.0 DrawSplineSection
- 5715.0 2610.0 5715.0 2700.0 5647.5 2700.0 DrawSplineSection
- 5647.5 2700.0 5580.0 2700.0 5377.5 2700.0 DrawSplineSection
- 5377.5 2700.0 5175.0 2700.0 5107.5 2767.5 DrawSplineSection
- 5040.0 2835.0 l gs col-1 s gr
- gr
- % arrowhead
- n 5165 2752 m 5059 2815 l 5123 2710 l 5144 2731 l 5165 2752 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 2238 6270 m 2358 6300 l 2238 6330 l 2400 6330 l 2400 6270 l cp clip
- n 1800.0 6570.0 m 1935.0 6570.0 l
- 1935.0 6570.0 2070.0 6570.0 2070.0 6435.0 DrawSplineSection
- 2070.0 6435.0 2070.0 6300.0 2227.5 6300.0 DrawSplineSection
- 2385.0 6300.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2238 6270 m 2358 6300 l 2238 6330 l 2238 6300 l 2238 6270 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 2238 6990 m 2358 7020 l 2238 7050 l 2400 7050 l 2400 6990 l cp clip
- n 1800.0 6840.0 m 1912.5 6840.0 l
- 1912.5 6840.0 2025.0 6840.0 2047.5 6930.0 DrawSplineSection
- 2047.5 6930.0 2070.0 7020.0 2227.5 7020.0 DrawSplineSection
- 2385.0 7020.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2238 6990 m 2358 7020 l 2238 7050 l 2238 7020 l 2238 6990 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3298 7332 m 3245 7443 l 3239 7320 l 3208 7479 l 3266 7491 l cp clip
- n 3285.0 7020.0 m 3285.0 7132.5 l
- 3285.0 7132.5 3285.0 7245.0 3262.5 7357.5 DrawSplineSection
- 3240.0 7470.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3298 7332 m 3245 7443 l 3239 7320 l 3269 7326 l 3298 7332 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 2069 7402 m 1956 7453 l 2031 7355 l 1905 7456 l 1942 7503 l cp clip
- n 2520.0 7020.0 m 2520.0 7132.5 l
- 2520.0 7132.5 2520.0 7245.0 2340.0 7267.5 DrawSplineSection
- 2340.0 7267.5 2160.0 7290.0 2047.5 7380.0 DrawSplineSection
- 1935.0 7470.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2069 7402 m 1956 7453 l 2031 7355 l 2050 7378 l 2069 7402 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 4668 4380 m 4788 4410 l 4668 4440 l 4830 4440 l 4830 4380 l cp clip
- n 4230.0 4680.0 m 4365.0 4680.0 l
- 4365.0 4680.0 4500.0 4680.0 4500.0 4545.0 DrawSplineSection
- 4500.0 4545.0 4500.0 4410.0 4657.5 4410.0 DrawSplineSection
- 4815.0 4410.0 l gs col-1 s gr
- gr
- % arrowhead
- n 4668 4380 m 4788 4410 l 4668 4440 l 4668 4410 l 4668 4380 l cp gs 0.00 setgray ef gr col-1 s
- /Times-Roman ff 150.00 scf sf
- 405 1035 m
- gs 1 -1 sc (mergeclauses) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 405 1305 m
- gs 1 -1 sc (lefttree) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 405 1575 m
- gs 1 -1 sc (righttree) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 405 765 m
- gs 1 -1 sc (targetList) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 810 495 m
- gs 1 -1 sc 90.0 rot (. . .) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2385 4455 m
- gs 1 -1 sc (SeqScan) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2565 4725 m
- gs 1 -1 sc 90.0 rot (. . . ) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2295 5490 m
- gs 1 -1 sc (lefttree) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2295 4950 m
- gs 1 -1 sc (qpqual) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2295 5220 m
- gs 1 -1 sc (scanrelid: 2) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4815 2205 m
- gs 1 -1 sc (Resdom) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4590 2430 m
- gs 1 -1 sc (resname: pno) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3465 2205 m
- gs 1 -1 sc (Resdom) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3240 2430 m
- gs 1 -1 sc (resname: sname) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3510 3015 m
- gs 1 -1 sc (VAR) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4860 3015 m
- gs 1 -1 sc (VAR) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4995 6120 m
- gs 1 -1 sc (VAR) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4770 6615 m
- gs 1 -1 sc (varattno: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4770 6345 m
- gs 1 -1 sc (varno: 65000) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3870 6120 m
- gs 1 -1 sc (VAR) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3645 6615 m
- gs 1 -1 sc (varattno: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3645 6345 m
- gs 1 -1 sc (varno: 65001) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4635 3510 m
- gs 1 -1 sc (varattno: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4635 3240 m
- gs 1 -1 sc (varno: 65000) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3285 3240 m
- gs 1 -1 sc (varno: 65001) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3285 3510 m
- gs 1 -1 sc (varattno: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 585 180 m
- gs 1 -1 sc (MergeJoin) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1035 6345 m
- gs 1 -1 sc (opType: OP) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1035 6870 m
- gs 1 -1 sc (args) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1305 6120 m
- gs 1 -1 sc (Expr) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2610 6120 m
- gs 1 -1 sc (Oper) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2475 6345 m
- gs 1 -1 sc (opno: 521) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2475 6615 m
- gs 1 -1 sc (opid: 147) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1755 7650 m
- gs 1 -1 sc (VAR) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1575 7875 m
- gs 1 -1 sc (varno: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3060 7650 m
- gs 1 -1 sc (Const) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1575 8145 m
- gs 1 -1 sc (varattno 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3465 4455 m
- gs 1 -1 sc (opType: OP) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3465 4980 m
- gs 1 -1 sc (args) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3735 4230 m
- gs 1 -1 sc (Expr) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 5040 4230 m
- gs 1 -1 sc (Oper) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4905 4455 m
- gs 1 -1 sc (opno: 96) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 4905 4725 m
- gs 1 -1 sc (opid: 65) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2835 7875 m
- gs 1 -1 sc (constvalue: 2) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1035 6630 m
- gs 1 -1 sc (oper) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3465 4740 m
- gs 1 -1 sc (oper) col-1 sh gr
- showpage
- $F2psEnd
- rs
- %%EndDocument
- @endspecial 681 3120 a(Figure)12 b(3.6:)j Fp(Plan)e
- Ft(for)e(query)h(of)g(e)o(xample)h(3.1)p eop
- %%Page: 62 62
- 62 61 bop 270 60 a Ft(62)82 b Fm(CHAPTER)14 b(3.)28 b(POSTGRESQL)13
- b(FR)n(OM)f(THE)i(PR)n(OGRAMMER'S)f(POINT)f(OF)g(VIEW)270
- 234 y Fi(3.7)71 b(The)18 b(Realization)f(of)g(the)h(Ha)n(ving)f(Clause)
- 270 354 y Ft(The)h Fp(having)g(clause)g Ft(has)g(been)g(designed)g(in)g
- (SQL)g(to)f(be)h(able)g(to)g(use)g(the)g(results)f(of)h
- Fp(aggr)n(e)n(gate)270 414 y(functions)12 b Ft(within)g(a)h(query)e
- (quali 02cation.)k(The)e(handling)f(of)g(the)h Fp(having)f(clause)g
- Ft(is)h(v)o(ery)f(similar)g(to)270 474 y(the)h(handling)f(of)h(the)g
- Fp(wher)n(e)h(clause)p Ft(.)k(Both)13 b(are)g(formulas)f(in)h( 02rst)g
- (order)f(logic)h((FOL))f(that)h(ha)o(v)o(e)g(to)270
- 534 y(e)o(v)o(aluate)f(to)g(true)g(for)g(a)g(certain)g(object)g(to)h
- (be)f(handed)g(back:)345 648 y Fo( 17)25 b Ft(The)13
- b(formula)f(gi)o(v)o(en)g(in)h(the)g Fp(wher)n(e)h(clause)f
- Ft(is)g(e)o(v)o(aluated)f(for)g(e)o(v)o(ery)h(tuple.)k(If)12
- b(the)h(e)o(v)o(aluation)395 707 y(returns)18 b Fr(true)i
- Ft(the)f(tuple)g(is)h(returned,)h(e)o(v)o(ery)e(tuple)g(not)g
- (satisfying)h(the)f(quali 02cation)g(is)395 767 y(ignored.)345
- 886 y Fo( 17)25 b Ft(In)10 b(the)h(case)h(of)e Fp(gr)n(oups)i
- Ft(the)f Fp(having)f(clause)i Ft(is)f(e)o(v)o(aluated)f(for)g(e)o(v)o
- (ery)h(group.)k(If)10 b(the)h(e)o(v)o(aluation)395 945
- y(returns)g Fr(true)h Ft(the)h(group)e(is)i(taken)f(into)g(account)g
- (otherwise)g(it)g(is)h(ignored.)270 1114 y Fh(3.7.1)59
- b(Ho)o(w)15 b(Aggr)o(egate)e(Functions)i(ar)o(e)f(Implemented)270
- 1216 y Ft(Before)g(we)h(can)g(describe)f(ho)o(w)g(the)h
- Fp(having)f(clause)h Ft(is)g(implemented)f(we)g(will)h(ha)o(v)o(e)g(a)f
- (look)h(at)f(the)270 1276 y(implementation)h(of)g Fp(aggr)n(e)n(gate)g
- (functions)h Ft(as)h(long)e(as)i(the)o(y)f(just)g(appear)f(in)h(the)g
- Fp(tar)n(getlist)p Ft(.)26 b(Note)270 1336 y(that)12
- b Fp(aggr)n(e)n(gate)g(functions)g Ft(are)g(applied)g(to)g(groups)h(so)
- f(the)h(query)e(must)i(contain)f(a)g Fp(gr)n(oup)h(clause)p
- Ft(.)270 1484 y Fn(Example)g(3.2)25 b Ft(Here)18 b(is)g(an)g(e)o
- (xample)g(of)g(the)g(usage)g(of)g(the)g Fp(aggr)n(e)n(gate)f(function)h
- Fr(count)f Ft(which)270 1544 y(counts)c(the)h(number)e(of)h(part)g
- (numbers)g(()p Fr(pno)p Ft())f(of)h(e)o(v)o(ery)g(group.)18
- b((The)c(table)f Fr(sells)g Ft(is)g(de 02ned)g(in)270
- 1604 y(e)o(xample)f(1.1.))330 1722 y Fr(select)29 b(sno,)g
- (count(pno))330 1782 y(from)g(sells)330 1842 y(group)g(by)h(sno;)270
- 1955 y Ft(A)12 b(query)g(like)g(the)g(one)h(in)f(e)o(xample)g(3.2)h(is)
- g(processed)g(by)f(the)g(usual)h(stages:)345 2069 y Fo( 17)25
- b Ft(the)12 b(parser)g(stage)345 2188 y Fo( 17)25 b
- Ft(the)12 b(re)o(write)f(system)345 2306 y Fo( 17)25
- b Ft(the)12 b(planner/optimizer)345 2425 y Fo( 17)25
- b Ft(the)12 b(e)o(x)o(ecutor)270 2539 y(and)i(in)f(the)g(follo)o(wing)f
- (sections)j(we)e(will)g(describe)h(what)f(e)o(v)o(ery)h(stage)g(does)g
- (to)f(the)g(query)h(in)f(order)270 2598 y(to)f(obtain)g(the)h
- (appropriate)e(result.)270 2757 y Fn(The)h(Parser)i(Stage)270
- 2860 y Ft(The)h(parser)e(stage)i(b)o(uilds)f(up)g(a)g
- Fp(querytr)n(ee)h Ft(containing)f(the)g Fp(wher)n(e)h
- Ft(quali 02cation)e(and)h(information)270 2919 y(about)h(the)f
- Fp(gr)n(ouping)h Ft(that)f(has)i(to)e(be)h(done)g((i.e.)23
- b(a)15 b(list)g(of)f(all)h(attrib)o(utes)f(to)h(group)f(for)g(is)h
- (attached)270 2979 y(to)e(the)h( 02eld)f Fr(groupClause)p
- Ft().)18 b(The)c(main)f(dif)o(ference)f(to)h Fp(querytr)n(ees)i
- Ft(b)o(uilt)e(up)h(for)e(queries)i(with-)270 3039 y(out)j
- Fp(aggr)n(e)n(gate)f(functions)h Ft(is)h(gi)o(v)o(en)f(in)g(the)g
- ( 02eld)g Fr(hasAggs)g Ft(which)g(is)g(set)h(to)f Fr(true)g
- Ft(and)g(in)g(the)270 3099 y Fp(tar)n(getlist)p Ft(.)30
- b(The)18 b Fr(expr)e Ft( 02eld)h(of)g(the)g(second)h
- Fr(TLE)e Ft(node)i(of)e(the)h Fp(tar)n(getlist)g Ft(sho)o(wn)g(in)g
- ( 02gure)g(3.7)270 3158 y(does)e(not)f(point)f(directly)h(to)g(a)g
- Fr(VAR)g Ft(node)g(b)o(ut)g(to)g(an)g Fr(Aggreg)g Ft(node)g
- (representing)g(the)g Fp(aggr)n(e)n(gate)270 3218 y(function)e
- Ft(used)g(in)h(the)f(query)m(.)345 3283 y(A)17 b(check)g(is)h(made)f
- (that)g(e)o(v)o(ery)g(attrib)o(ute)g(grouped)f(for)h(appears)g(only)g
- (without)f(an)i Fp(aggr)n(e)n(gate)270 3342 y(function)12
- b Ft(in)h(the)f Fp(tar)n(getlist)h Ft(and)f(that)h(e)o(v)o(ery)f
- (attrib)o(ute)g(which)h(appears)g(without)f(an)h Fp(aggr)n(e)n(gate)f
- (func-)270 3402 y(tion)g Ft(in)g(the)g Fp(tar)n(getlist)h
- Ft(is)f(grouped)g(for)m(.)p eop
- %%Page: 63 63
- 63 62 bop 198 60 a Fm(3.7.)29 b(THE)13 b(REALIZA)-6 b(TION)14
- b(OF)e(THE)h(HA)-7 b(VING)12 b(CLA)m(USE)622 b Ft(63)393
- 1754 y @beginspecial 165 @llx 239 @lly 447 @urx 553 @ury
- 2820 @rwi @setspecial
- %%BeginDocument: figures/parse_having.ps
- %Magnification: 1.05
- /$F2psDict 200 dict def
- $F2psDict begin
- $F2psDict /mtrx matrix put
- /col-1 {0 setgray} bind def
- /col0 {0.000 0.000 0.000 srgb} bind def
- /col1 {0.000 0.000 1.000 srgb} bind def
- /col2 {0.000 1.000 0.000 srgb} bind def
- /col3 {0.000 1.000 1.000 srgb} bind def
- /col4 {1.000 0.000 0.000 srgb} bind def
- /col5 {1.000 0.000 1.000 srgb} bind def
- /col6 {1.000 1.000 0.000 srgb} bind def
- /col7 {1.000 1.000 1.000 srgb} bind def
- /col8 {0.000 0.000 0.560 srgb} bind def
- /col9 {0.000 0.000 0.690 srgb} bind def
- /col10 {0.000 0.000 0.820 srgb} bind def
- /col11 {0.530 0.810 1.000 srgb} bind def
- /col12 {0.000 0.560 0.000 srgb} bind def
- /col13 {0.000 0.690 0.000 srgb} bind def
- /col14 {0.000 0.820 0.000 srgb} bind def
- /col15 {0.000 0.560 0.560 srgb} bind def
- /col16 {0.000 0.690 0.690 srgb} bind def
- /col17 {0.000 0.820 0.820 srgb} bind def
- /col18 {0.560 0.000 0.000 srgb} bind def
- /col19 {0.690 0.000 0.000 srgb} bind def
- /col20 {0.820 0.000 0.000 srgb} bind def
- /col21 {0.560 0.000 0.560 srgb} bind def
- /col22 {0.690 0.000 0.690 srgb} bind def
- /col23 {0.820 0.000 0.820 srgb} bind def
- /col24 {0.500 0.190 0.000 srgb} bind def
- /col25 {0.630 0.250 0.000 srgb} bind def
- /col26 {0.750 0.380 0.000 srgb} bind def
- /col27 {1.000 0.500 0.500 srgb} bind def
- /col28 {1.000 0.630 0.630 srgb} bind def
- /col29 {1.000 0.750 0.750 srgb} bind def
- /col30 {1.000 0.880 0.880 srgb} bind def
- /col31 {1.000 0.840 0.000 srgb} bind def
- end
- save
- 155.0 566.0 translate
- 1 -1 scale
- /cp {closepath} bind def
- /ef {eofill} bind def
- /gr {grestore} bind def
- /gs {gsave} bind def
- /sa {save} bind def
- /rs {restore} bind def
- /l {lineto} bind def
- /m {moveto} bind def
- /rm {rmoveto} bind def
- /n {newpath} bind def
- /s {stroke} bind def
- /sh {show} bind def
- /slc {setlinecap} bind def
- /slj {setlinejoin} bind def
- /slw {setlinewidth} bind def
- /srgb {setrgbcolor} bind def
- /rot {rotate} bind def
- /sc {scale} bind def
- /sd {setdash} bind def
- /ff {findfont} bind def
- /sf {setfont} bind def
- /scf {scalefont} bind def
- /sw {stringwidth} bind def
- /tr {translate} bind def
- /tnt {dup dup currentrgbcolor
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
- bind def
- /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
- 4 -2 roll mul srgb} bind def
- /DrawSplineSection {
- /y3 exch def
- /x3 exch def
- /y2 exch def
- /x2 exch def
- /y1 exch def
- /x1 exch def
- /xa x1 x2 x1 sub 0.666667 mul add def
- /ya y1 y2 y1 sub 0.666667 mul add def
- /xb x3 x2 x3 sub 0.666667 mul add def
- /yb y3 y2 y3 sub 0.666667 mul add def
- x1 y1 lineto
- xa ya xb yb x3 y3 curveto
- } def
- /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
- /$F2psEnd {$F2psEnteredState restore end} def
- $F2psBegin
- 10 setmiterlimit
- n 0 792 m 0 0 l 612 0 l 612 792 l cp clip
- 0.06299 0.06299 sc
- 7.500 slw
- % Polyline
- n 1665 720 m 2205 720 l 2205 990 l 1665 990 l cp gs col-1 s gr
- % Polyline
- n 1935 720 m 1935 990 l gs col-1 s gr
- % Polyline
- n 2475 720 m 3015 720 l 3015 990 l 2475 990 l cp gs col-1 s gr
- % Polyline
- n 2745 720 m 2745 990 l gs col-1 s gr
- % Polyline
- n 3015 990 m 2745 720 l gs col-1 s gr
- % Polyline
- n 3015 720 m 2745 990 l gs col-1 s gr
- % Polyline
- n 3690 225 m 4230 225 l 4230 495 l 3690 495 l cp gs col-1 s gr
- % Polyline
- n 3960 225 m 3960 495 l gs col-1 s gr
- % Polyline
- n 4230 495 m 3960 225 l gs col-1 s gr
- % Polyline
- n 4230 225 m 3960 495 l gs col-1 s gr
- % Polyline
- n 3690 945 m 4590 945 l gs col-1 s gr
- % Polyline
- n 3690 720 m 4590 720 l 4590 1215 l 3690 1215 l cp gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 4005 900 m
- gs 1 -1 sc (RTE) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3735 1125 m
- gs 1 -1 sc (relname: sells) col-1 sh gr
- % Polyline
- n 1800 1440 m 2700 1440 l 2700 2205 l 1800 2205 l cp gs col-1 s gr
- % Polyline
- n 1800 1665 m 2700 1665 l gs col-1 s gr
- % Polyline
- n 1800 1935 m 2700 1935 l gs col-1 s gr
- % Polyline
- n 2430 1665 m 2430 2205 l gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 2115 1620 m
- gs 1 -1 sc (TLE) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1890 2115 m
- gs 1 -1 sc (expr) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1890 1845 m
- gs 1 -1 sc (resdom) col-1 sh gr
- % Polyline
- n 3150 1440 m 4050 1440 l 4050 2205 l 3150 2205 l cp gs col-1 s gr
- % Polyline
- n 3150 1665 m 4050 1665 l gs col-1 s gr
- % Polyline
- n 3150 1935 m 4050 1935 l gs col-1 s gr
- % Polyline
- n 3780 1665 m 3780 2205 l gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 3465 1620 m
- gs 1 -1 sc (TLE) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3240 2115 m
- gs 1 -1 sc (expr) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3240 1845 m
- gs 1 -1 sc (resdom) col-1 sh gr
- % Polyline
- n 405 4005 m 945 4005 l 945 4275 l 405 4275 l cp gs col-1 s gr
- % Polyline
- n 675 4005 m 675 4275 l gs col-1 s gr
- % Polyline
- n 945 4275 m 675 4005 l gs col-1 s gr
- % Polyline
- n 945 4005 m 675 4275 l gs col-1 s gr
- % Polyline
- n 1125 450 m 1125 1530 l gs col-1 s gr
- % Polyline
- n 180 450 m 1395 450 l gs col-1 s gr
- % Polyline
- n 180 720 m 1395 720 l gs col-1 s gr
- % Polyline
- n 180 990 m 1395 990 l gs col-1 s gr
- % Polyline
- n 180 1260 m 1395 1260 l gs col-1 s gr
- % Polyline
- n 180 1530 m 1395 1530 l gs col-1 s gr
- % Polyline
- n 180 1800 m 1395 1800 l gs col-1 s gr
- % Polyline
- n 180 225 m 1395 225 l 1395 2205 l 180 2205 l cp gs col-1 s gr
- % Polyline
- n 1125 1800 m 1125 2205 l gs col-1 s gr
- % Polyline
- n 1125 990 m 1395 1260 l gs col-1 s gr
- % Polyline
- n 1395 990 m 1125 1260 l gs col-1 s gr
- % Polyline
- gs clippath
- 1518 825 m 1638 855 l 1518 885 l 1680 885 l 1680 825 l cp clip
- n 1260 855 m 1665 855 l gs col-1 s gr gr
- % arrowhead
- n 1518 825 m 1638 855 l 1518 885 l 1518 855 l 1518 825 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- gs clippath
- 2328 825 m 2448 855 l 2328 885 l 2490 885 l 2490 825 l cp clip
- n 2070 855 m 2475 855 l gs col-1 s gr gr
- % arrowhead
- n 2328 825 m 2448 855 l 2328 885 l 2328 855 l 2328 825 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 3105 2745 m 4095 2745 l gs col-1 s gr
- % Polyline
- n 3105 2520 m 4095 2520 l 4095 3015 l 3105 3015 l cp gs col-1 s gr
- % Polyline
- n 1755 2745 m 2745 2745 l gs col-1 s gr
- % Polyline
- n 1755 2520 m 2745 2520 l 2745 3015 l 1755 3015 l cp gs col-1 s gr
- % Polyline
- n 3060 3555 m 4140 3555 l gs col-1 s gr
- % Polyline
- n 3060 3825 m 4140 3825 l gs col-1 s gr
- % Polyline
- n 3150 4410 m 4050 4410 l 4050 5175 l 3150 5175 l cp gs col-1 s gr
- % Polyline
- n 3150 4635 m 4050 4635 l gs col-1 s gr
- % Polyline
- n 3150 4905 m 4050 4905 l gs col-1 s gr
- % Polyline
- n 3060 3330 m 4140 3330 l 4140 4095 l 3060 4095 l cp gs col-1 s gr
- % Polyline
- n 3870 3825 m 3870 4095 l gs col-1 s gr
- % Polyline
- n 1800 3330 m 2700 3330 l 2700 4095 l 1800 4095 l cp gs col-1 s gr
- % Polyline
- n 1800 3555 m 2700 3555 l gs col-1 s gr
- % Polyline
- n 1800 3825 m 2700 3825 l gs col-1 s gr
- % Polyline
- n 225 4680 m 1125 4680 l 1125 5175 l 225 5175 l cp gs col-1 s gr
- % Polyline
- n 225 4905 m 1125 4905 l gs col-1 s gr
- % Polyline
- n 855 4905 m 855 5175 l gs col-1 s gr
- % Open spline
- gs clippath
- 2167 1315 m 2230 1420 l 2125 1357 l 2239 1472 l 2282 1429 l cp clip
- n 1800.0 855.0 m 1867.5 990.0 l
- 1867.5 990.0 1935.0 1125.0 2092.5 1282.5 DrawSplineSection
- 2250.0 1440.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2167 1315 m 2230 1420 l 2125 1357 l 2146 1336 l 2167 1315 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3517 1315 m 3580 1420 l 3475 1357 l 3589 1472 l 3632 1429 l cp clip
- n 2610.0 855.0 m 2655.0 990.0 l
- 2655.0 990.0 2700.0 1125.0 3015.0 1147.5 DrawSplineSection
- 3015.0 1147.5 3330.0 1170.0 3465.0 1305.0 DrawSplineSection
- 3600.0 1440.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3517 1315 m 3580 1420 l 3475 1357 l 3496 1336 l 3517 1315 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3543 330 m 3663 360 l 3543 390 l 3705 390 l 3705 330 l cp clip
- n 1260.0 585.0 m 1462.5 585.0 l
- 1462.5 585.0 1665.0 585.0 2070.0 472.5 DrawSplineSection
- 2070.0 472.5 2475.0 360.0 3082.5 360.0 DrawSplineSection
- 3690.0 360.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3543 330 m 3663 360 l 3543 390 l 3543 360 l 3543 330 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 4022 627 m 4115 707 l 3995 681 l 4140 754 l 4167 700 l cp clip
- n 3825.0 360.0 m 3847.5 472.5 l
- 3847.5 472.5 3870.0 585.0 4005.0 652.5 DrawSplineSection
- 4140.0 720.0 l gs col-1 s gr
- gr
- % arrowhead
- n 4022 627 m 4115 707 l 3995 681 l 4009 654 l 4022 627 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 2343 2402 m 2262 2495 l 2289 2375 l 2216 2520 l 2270 2547 l cp clip
- n 2565.0 1800.0 m 2700.0 1800.0 l
- 2700.0 1800.0 2835.0 1800.0 2835.0 2070.0 DrawSplineSection
- 2835.0 2070.0 2835.0 2340.0 2587.5 2340.0 DrawSplineSection
- 2587.5 2340.0 2340.0 2340.0 2295.0 2430.0 DrawSplineSection
- 2250.0 2520.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2343 2402 m 2262 2495 l 2289 2375 l 2316 2389 l 2343 2402 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3693 2402 m 3612 2495 l 3639 2375 l 3566 2520 l 3620 2547 l cp clip
- n 3915.0 1800.0 m 4050.0 1800.0 l
- 4050.0 1800.0 4185.0 1800.0 4185.0 2070.0 DrawSplineSection
- 4185.0 2070.0 4185.0 2340.0 3937.5 2340.0 DrawSplineSection
- 3937.5 2340.0 3690.0 2340.0 3645.0 2430.0 DrawSplineSection
- 3600.0 2520.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3693 2402 m 3612 2495 l 3639 2375 l 3666 2389 l 3693 2402 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 2362 3230 m 2266 3308 l 2314 3194 l 2217 3324 l 2265 3360 l cp clip
- n 2565.0 2070.0 m 2767.5 2070.0 l
- 2767.5 2070.0 2970.0 2070.0 2970.0 2632.5 DrawSplineSection
- 2970.0 2632.5 2970.0 3195.0 2677.5 3172.5 DrawSplineSection
- 2677.5 3172.5 2385.0 3150.0 2317.5 3240.0 DrawSplineSection
- 2250.0 3330.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2362 3230 m 2266 3308 l 2314 3194 l 2338 3212 l 2362 3230 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3712 3230 m 3616 3308 l 3664 3194 l 3567 3324 l 3615 3360 l cp clip
- n 3915.0 2070.0 m 4117.5 2070.0 l
- 4117.5 2070.0 4320.0 2070.0 4320.0 2632.5 DrawSplineSection
- 4320.0 2632.5 4320.0 3195.0 4027.5 3172.5 DrawSplineSection
- 4027.5 3172.5 3735.0 3150.0 3667.5 3240.0 DrawSplineSection
- 3600.0 3330.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3712 3230 m 3616 3308 l 3664 3194 l 3688 3212 l 3712 3230 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3693 4292 m 3612 4385 l 3639 4265 l 3566 4410 l 3620 4437 l cp clip
- n 4005.0 3960.0 m 3982.5 4072.5 l
- 3982.5 4072.5 3960.0 4185.0 3825.0 4207.5 DrawSplineSection
- 3825.0 4207.5 3690.0 4230.0 3645.0 4320.0 DrawSplineSection
- 3600.0 4410.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3693 4292 m 3612 4385 l 3639 4265 l 3666 4279 l 3693 4292 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 305 4028 m 383 4123 l 269 4076 l 399 4173 l 435 4125 l cp clip
- n 1260.0 1395.0 m 1395.0 1395.0 l
- 1395.0 1395.0 1530.0 1395.0 1507.5 2047.5 DrawSplineSection
- 1507.5 2047.5 1485.0 2700.0 877.5 2767.5 DrawSplineSection
- 877.5 2767.5 270.0 2835.0 247.5 3420.0 DrawSplineSection
- 247.5 3420.0 225.0 4005.0 315.0 4072.5 DrawSplineSection
- 405.0 4140.0 l gs col-1 s gr
- gr
- % arrowhead
- n 305 4028 m 383 4123 l 269 4076 l 287 4052 l 305 4028 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 636 4535 m 662 4655 l 582 4562 l 655 4707 l 709 4680 l cp clip
- n 540.0 4140.0 m 540.0 4275.0 l
- 540.0 4275.0 540.0 4410.0 607.5 4545.0 DrawSplineSection
- 675.0 4680.0 l gs col-1 s gr
- gr
- % arrowhead
- n 636 4535 m 662 4655 l 582 4562 l 609 4549 l 636 4535 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 1675 1883 m 1780 1819 l 1717 1925 l 1832 1811 l 1789 1768 l cp clip
- n 990.0 5040.0 m 1305.0 4972.5 l
- 1305.0 4972.5 1620.0 4905.0 1620.0 3825.0 DrawSplineSection
- 1620.0 3825.0 1620.0 2745.0 1620.0 2362.5 DrawSplineSection
- 1620.0 2362.5 1620.0 1980.0 1710.0 1890.0 DrawSplineSection
- 1800.0 1800.0 l gs col-1 s gr
- gr
- % arrowhead
- n 1675 1883 m 1780 1819 l 1717 1925 l 1696 1904 l 1675 1883 l cp gs 0.00 setgray ef gr col-1 s
- /Times-Roman ff 150.00 scf sf
- 540 405 m
- gs 1 -1 sc (Query) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 270 630 m
- gs 1 -1 sc (rtable) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 270 900 m
- gs 1 -1 sc (targetlist) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 270 1170 m
- gs 1 -1 sc (qual) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 270 1440 m
- gs 1 -1 sc (groupClause) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 270 1710 m
- gs 1 -1 sc (hasAggs: true) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 630 1935 m
- gs 1 -1 sc 270.0 rot (. . . ) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3375 2700 m
- gs 1 -1 sc (Resdom) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3150 2925 m
- gs 1 -1 sc (resname: count) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1845 2925 m
- gs 1 -1 sc (resname: sno) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2025 2700 m
- gs 1 -1 sc (Resdom) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3240 4815 m
- gs 1 -1 sc (varno: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3240 5085 m
- gs 1 -1 sc (varattno: 2) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3420 4590 m
- gs 1 -1 sc (VAR) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3375 3510 m
- gs 1 -1 sc (Aggreg) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3105 4005 m
- gs 1 -1 sc (target) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3105 3735 m
- gs 1 -1 sc (aggname: count) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1890 3735 m
- gs 1 -1 sc (varno: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1890 4005 m
- gs 1 -1 sc (varattno: 1) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 2070 3510 m
- gs 1 -1 sc (VAR) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 315 5085 m
- gs 1 -1 sc (entry) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 270 4860 m
- gs 1 -1 sc (GroupClause) col-1 sh gr
- showpage
- $F2psEnd
- rs
- %%EndDocument
- @endspecial 509 1864 a(Figure)11 b(3.7:)16 b Fp(Querytr)n(ee)e
- Ft(b)o(uilt)d(up)i(for)e(the)h(query)g(of)g(e)o(xample)h(3.2)198
- 2091 y Fn(The)f(Rewrite)h(System)198 2200 y Ft(The)19
- b(re)o(writing)d(system)j(does)g(not)f(make)f(an)o(y)i(changes)f(to)h
- (the)f Fp(querytr)n(ee)h Ft(as)g(long)f(as)g(the)h(query)198
- 2260 y(in)n(v)o(olv)o(es)12 b(just)g Fp(base)g(tables)p
- Ft(.)j(If)c(an)o(y)h Fp(vie)o(ws)h Ft(are)f(present)f(the)h(query)f(is)
- h(re)o(written)f(to)g(access)i(the)f(tables)198 2320
- y(speci 02ed)h(in)f(the)g Fp(vie)o(w)h(de 02nition)p
- Ft(.)198 2499 y Fn(Planner/Optimizer)198 2608 y Ft(Whene)o(v)o(er)d(an)
- f Fp(aggr)n(e)n(gate)g(function)g Ft(is)i(in)n(v)o(olv)o(ed)e(in)h(a)g
- (query)f((which)g(is)h(indicated)f(by)h(the)g Fr(hasAggs)198
- 2668 y Ft( 03ag)18 b(set)i(to)e Fr(true)p Ft())g(the)h(planner)f
- (creates)h(a)g Fp(plantr)n(ee)g Ft(whose)g(top)f(node)h(is)g(an)f
- Fr(AGG)h Ft(node.)35 b(The)198 2728 y Fp(tar)n(getlist)12
- b Ft(is)g(searched)h(for)e Fp(aggr)n(e)n(gate)h(functions)g
- Ft(and)g(for)g(e)o(v)o(ery)f(function)h(that)g(is)g(found,)g(a)h
- (pointer)198 2788 y(to)h(the)g(corresponding)g Fr(Aggreg)f
- Ft(node)h(is)h(added)f(to)g(a)h(list)f(which)g(is)g( 02nally)g
- (attached)g(to)g(the)g( 02eld)198 2847 y Fr(aggs)19
- b Ft(of)g(the)g Fr(AGG)g Ft(node.)36 b(This)20 b(list)g(is)f(needed)h
- (by)f(the)g Fp(e)o(xecutor)h Ft(to)f(kno)o(w)g(which)g
- Fp(aggr)n(e)n(gate)198 2907 y(functions)12 b Ft(are)g(present)h(and)f
- (ha)o(v)o(e)h(to)f(be)h(handled.)273 2975 y(The)i Fr(AGG)f
- Ft(node)g(is)h(follo)o(wed)e(by)h(a)h Fr(GRP)f Ft(node.)21
- b(The)15 b(implementation)e(of)h(the)h Fp(gr)n(ouping)e
- Ft(logic)198 3035 y(needs)j(a)g(sorted)f(table)g(for)g(its)h(operation)
- e(so)i(the)g Fr(GRP)f Ft(node)g(is)h(follo)o(wed)e(by)i(a)f
- Fr(SORT)h Ft(node.)25 b(The)198 3095 y Fr(SORT)11 b Ft(operation)f
- (gets)h(its)g(tuples)g(from)f(a)i(kind)e(of)h Fr(Scan)f
- Ft(node)h((if)f(no)h(indices)h(are)e(present)h(this)g(will)198
- 3155 y(be)16 b(a)f(simple)g Fr(SeqScan)g Ft(node).)25
- b(An)o(y)15 b(quali 02cations)g(present)g(are)h(attached)f(to)g(the)h
- Fr(Scan)f Ft(node.)198 3214 y(Figure)d(3.8)g(sho)o(ws)h(the)f
- Fp(plan)g Ft(created)h(for)e(the)h(query)g(gi)o(v)o(en)g(in)h(e)o
- (xample)f(3.2.)273 3283 y(Note)i(that)g(e)o(v)o(ery)f(node)h(has)h(its)
- f(o)o(wn)g Fp(tar)n(getlist)g Ft(which)g(may)g(dif)o(fer)e(from)h(the)h
- (one)g(of)g(the)g(node)198 3342 y(abo)o(v)o(e)g(or)f(belo)o(w)m(.)18
- b(The)c( 02eld)f Fr(varattno)g Ft(of)g(e)o(v)o(ery)g
- Fr(VAR)g Ft(node)g(included)g(in)g(a)h Fp(tar)n(getlist)f
- Ft(contains)198 3402 y(a)g(number)e(representing)h(the)g(position)g(of)
- g(the)g(attrib)o(ute')m(s)g(v)o(alue)g(in)g(the)h(tuple)f(of)g(the)g
- (current)g(node.)p eop
- %%Page: 64 64
- 64 63 bop 270 60 a Ft(64)82 b Fm(CHAPTER)14 b(3.)28 b(POSTGRESQL)13
- b(FR)n(OM)f(THE)i(PR)n(OGRAMMER'S)f(POINT)f(OF)g(VIEW)385
- 2841 y @beginspecial 149 @llx 169 @lly 463 @urx 622 @ury
- 3140 @rwi @setspecial
- %%BeginDocument: figures/plan_having.ps
- %Magnification: 1.05
- /$F2psDict 200 dict def
- $F2psDict begin
- $F2psDict /mtrx matrix put
- /col-1 {0 setgray} bind def
- /col0 {0.000 0.000 0.000 srgb} bind def
- /col1 {0.000 0.000 1.000 srgb} bind def
- /col2 {0.000 1.000 0.000 srgb} bind def
- /col3 {0.000 1.000 1.000 srgb} bind def
- /col4 {1.000 0.000 0.000 srgb} bind def
- /col5 {1.000 0.000 1.000 srgb} bind def
- /col6 {1.000 1.000 0.000 srgb} bind def
- /col7 {1.000 1.000 1.000 srgb} bind def
- /col8 {0.000 0.000 0.560 srgb} bind def
- /col9 {0.000 0.000 0.690 srgb} bind def
- /col10 {0.000 0.000 0.820 srgb} bind def
- /col11 {0.530 0.810 1.000 srgb} bind def
- /col12 {0.000 0.560 0.000 srgb} bind def
- /col13 {0.000 0.690 0.000 srgb} bind def
- /col14 {0.000 0.820 0.000 srgb} bind def
- /col15 {0.000 0.560 0.560 srgb} bind def
- /col16 {0.000 0.690 0.690 srgb} bind def
- /col17 {0.000 0.820 0.820 srgb} bind def
- /col18 {0.560 0.000 0.000 srgb} bind def
- /col19 {0.690 0.000 0.000 srgb} bind def
- /col20 {0.820 0.000 0.000 srgb} bind def
- /col21 {0.560 0.000 0.560 srgb} bind def
- /col22 {0.690 0.000 0.690 srgb} bind def
- /col23 {0.820 0.000 0.820 srgb} bind def
- /col24 {0.500 0.190 0.000 srgb} bind def
- /col25 {0.630 0.250 0.000 srgb} bind def
- /col26 {0.750 0.380 0.000 srgb} bind def
- /col27 {1.000 0.500 0.500 srgb} bind def
- /col28 {1.000 0.630 0.630 srgb} bind def
- /col29 {1.000 0.750 0.750 srgb} bind def
- /col30 {1.000 0.880 0.880 srgb} bind def
- /col31 {1.000 0.840 0.000 srgb} bind def
- end
- save
- 130.0 635.5 translate
- 1 -1 scale
- /cp {closepath} bind def
- /ef {eofill} bind def
- /gr {grestore} bind def
- /gs {gsave} bind def
- /sa {save} bind def
- /rs {restore} bind def
- /l {lineto} bind def
- /m {moveto} bind def
- /rm {rmoveto} bind def
- /n {newpath} bind def
- /s {stroke} bind def
- /sh {show} bind def
- /slc {setlinecap} bind def
- /slj {setlinejoin} bind def
- /slw {setlinewidth} bind def
- /srgb {setrgbcolor} bind def
- /rot {rotate} bind def
- /sc {scale} bind def
- /sd {setdash} bind def
- /ff {findfont} bind def
- /sf {setfont} bind def
- /scf {scalefont} bind def
- /sw {stringwidth} bind def
- /tr {translate} bind def
- /tnt {dup dup currentrgbcolor
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add
- 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
- bind def
- /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
- 4 -2 roll mul srgb} bind def
- /DrawSplineSection {
- /y3 exch def
- /x3 exch def
- /y2 exch def
- /x2 exch def
- /y1 exch def
- /x1 exch def
- /xa x1 x2 x1 sub 0.666667 mul add def
- /ya y1 y2 y1 sub 0.666667 mul add def
- /xb x3 x2 x3 sub 0.666667 mul add def
- /yb y3 y2 y3 sub 0.666667 mul add def
- x1 y1 lineto
- xa ya xb yb x3 y3 curveto
- } def
- /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
- /$F2psEnd {$F2psEnteredState restore end} def
- $F2psBegin
- 10 setmiterlimit
- n 0 792 m 0 0 l 612 0 l 612 792 l cp clip
- 0.06299 0.06299 sc
- 7.500 slw
- % Polyline
- n 1665 720 m 2205 720 l 2205 990 l 1665 990 l cp gs col-1 s gr
- % Polyline
- n 1935 720 m 1935 990 l gs col-1 s gr
- % Polyline
- n 2475 720 m 3015 720 l 3015 990 l 2475 990 l cp gs col-1 s gr
- % Polyline
- n 2745 720 m 2745 990 l gs col-1 s gr
- % Polyline
- n 3015 990 m 2745 720 l gs col-1 s gr
- % Polyline
- n 3015 720 m 2745 990 l gs col-1 s gr
- % Polyline
- n 1800 1440 m 2700 1440 l 2700 2205 l 1800 2205 l cp gs col-1 s gr
- % Polyline
- n 1800 1665 m 2700 1665 l gs col-1 s gr
- % Polyline
- n 1800 1935 m 2700 1935 l gs col-1 s gr
- % Polyline
- n 2430 1665 m 2430 2205 l gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 2115 1620 m
- gs 1 -1 sc (TLE) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1890 2115 m
- gs 1 -1 sc (expr) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 1890 1845 m
- gs 1 -1 sc (resdom) col-1 sh gr
- % Polyline
- n 3150 1440 m 4050 1440 l 4050 2205 l 3150 2205 l cp gs col-1 s gr
- % Polyline
- n 3150 1665 m 4050 1665 l gs col-1 s gr
- % Polyline
- n 3150 1935 m 4050 1935 l gs col-1 s gr
- % Polyline
- n 3780 1665 m 3780 2205 l gs col-1 s gr
- /Times-Roman ff 150.00 scf sf
- 3465 1620 m
- gs 1 -1 sc (TLE) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3240 2115 m
- gs 1 -1 sc (expr) col-1 sh gr
- /Times-Roman ff 150.00 scf sf
- 3240 1845 m
- gs 1 -1 sc (resdom) col-1 sh gr
- % Polyline
- n 3510 225 m 4050 225 l 4050 495 l 3510 495 l cp gs col-1 s gr
- % Polyline
- n 3780 225 m 3780 495 l gs col-1 s gr
- % Polyline
- n 3780 225 m 4050 495 l gs col-1 s gr
- % Polyline
- n 4050 225 m 3780 495 l gs col-1 s gr
- % Polyline
- gs clippath
- 1518 825 m 1638 855 l 1518 885 l 1680 885 l 1680 825 l cp clip
- n 1260 855 m 1665 855 l gs col-1 s gr gr
- % arrowhead
- n 1518 825 m 1638 855 l 1518 885 l 1518 855 l 1518 825 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- gs clippath
- 2328 825 m 2448 855 l 2328 885 l 2490 885 l 2490 825 l cp clip
- n 2070 855 m 2475 855 l gs col-1 s gr gr
- % arrowhead
- n 2328 825 m 2448 855 l 2328 885 l 2328 855 l 2328 825 l cp gs 0.00 setgray ef gr col-1 s
- % Polyline
- n 3105 2745 m 4095 2745 l gs col-1 s gr
- % Polyline
- n 3105 2520 m 4095 2520 l 4095 3015 l 3105 3015 l cp gs col-1 s gr
- % Polyline
- n 1755 2745 m 2745 2745 l gs col-1 s gr
- % Polyline
- n 1755 2520 m 2745 2520 l 2745 3015 l 1755 3015 l cp gs col-1 s gr
- % Polyline
- n 3060 3555 m 4140 3555 l gs col-1 s gr
- % Polyline
- n 3060 3825 m 4140 3825 l gs col-1 s gr
- % Polyline
- n 3150 4410 m 4050 4410 l 4050 5175 l 3150 5175 l cp gs col-1 s gr
- % Polyline
- n 3150 4635 m 4050 4635 l gs col-1 s gr
- % Polyline
- n 3150 4905 m 4050 4905 l gs col-1 s gr
- % Polyline
- n 3060 3330 m 4140 3330 l 4140 4095 l 3060 4095 l cp gs col-1 s gr
- % Polyline
- n 3870 3825 m 3870 4095 l gs col-1 s gr
- % Polyline
- n 1800 3330 m 2700 3330 l 2700 4095 l 1800 4095 l cp gs col-1 s gr
- % Polyline
- n 1800 3555 m 2700 3555 l gs col-1 s gr
- % Polyline
- n 1800 3825 m 2700 3825 l gs col-1 s gr
- % Polyline
- n 315 450 m 1395 450 l gs col-1 s gr
- % Polyline
- n 315 720 m 1395 720 l gs col-1 s gr
- % Polyline
- n 315 990 m 1395 990 l gs col-1 s gr
- % Polyline
- n 315 1260 m 1395 1260 l gs col-1 s gr
- % Polyline
- n 1125 450 m 1125 1620 l gs col-1 s gr
- % Polyline
- n 1125 450 m 1125 1530 l gs col-1 s gr
- % Polyline
- n 720 4995 m 1800 4995 l gs col-1 s gr
- % Polyline
- n 720 5265 m 1800 5265 l gs col-1 s gr
- % Polyline
- n 1530 4725 m 1530 5625 l gs col-1 s gr
- % Polyline
- n 720 4725 m 1800 4725 l gs col-1 s gr
- % Polyline
- n 720 4500 m 1800 4500 l 1800 5625 l 720 5625 l cp gs col-1 s gr
- % Polyline
- n 2160 5895 m 3240 5895 l gs col-1 s gr
- % Polyline
- n 2160 6165 m 3240 6165 l gs col-1 s gr
- % Polyline
- n 2970 5625 m 2970 6525 l gs col-1 s gr
- % Polyline
- n 2160 5625 m 3240 5625 l gs col-1 s gr
- % Polyline
- n 3600 6795 m 4680 6795 l gs col-1 s gr
- % Polyline
- n 3600 7065 m 4680 7065 l gs col-1 s gr
- % Polyline
- n 3600 6525 m 4680 6525 l gs col-1 s gr
- % Polyline
- n 2160 5400 m 3240 5400 l 3240 6525 l 2160 6525 l cp gs col-1 s gr
- % Polyline
- n 4410 6525 m 4410 7380 l gs col-1 s gr
- % Polyline
- n 3600 6300 m 4680 6300 l 4680 7380 l 3600 7380 l cp gs col-1 s gr
- % Polyline
- n 315 225 m 1395 225 l 1395 1620 l 315 1620 l cp gs col-1 s gr
- % Open spline
- gs clippath
- 2167 1315 m 2230 1420 l 2125 1357 l 2239 1472 l 2282 1429 l cp clip
- n 1800.0 855.0 m 1867.5 990.0 l
- 1867.5 990.0 1935.0 1125.0 2092.5 1282.5 DrawSplineSection
- 2250.0 1440.0 l gs col-1 s gr
- gr
- % arrowhead
- n 2167 1315 m 2230 1420 l 2125 1357 l 2146 1336 l 2167 1315 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 3517 1315 m 3580 1420 l 3475 1357 l 3589 1472 l 3632 1429 l cp clip
- n 2610.0 855.0 m 2655.0 990.0 l
- 2655.0 990.0 2700.0 1125.0 3015.0 1147.5 DrawSplineSection
- 3015.0 1147.5 3330.0 1170.0 3465.0 1305.0 DrawSplineSection
- 3600.0 1440.0 l gs col-1 s gr
- gr
- % arrowhead
- n 3517 1315 m 3580 1420 l 3475 1357 l 3496 1336 l 3517 1315 l cp gs 0.00 setgray ef gr col-1 s
- % Open spline
- gs clippath
- 2343 2402 m 2262 2495 l 2289 2375 l 2216 2520 l 2270 2547 l cp clip
- n 2565.0 1800.0 m 2700.0 1800.0 l
- 2700.0 1800.0 2835.0 1800.0 2835.0 2070.0 DrawSplineSection
- 2835.0 2070.0 2835.0 2340.0 2587.5 2340.0 DrawSplineSection
- 2587.5 2340.0 2340.0 2340.0 2295.0 2430.0 DrawSplineSection
- 2250.0 2520.0 l gs col-1 s gr
- gr
- % arrowhead