query plan

Started by ag20over 24 years ago3 messagesbugs
Jump to latest
#1ag20
ag20@co.merced.ca.us

Is there a reason that the expressions:

Crops.change_e > '10/1/2001'

'10/1/2001' < Crops.change_e

when used in a WHERE clause of a query should yield
a good plan for the first and a bad plan for the second?

They both yield the same boolean value.

The attribute Crops.change_e is not involved in any index.

The query with the first form of the expression took under 1 second to run.
It used the "crops_loct" index.
There are a lot of "loct" with only a few rows for each in crops.

The query with the second form of the expression took aprox. 20 seconds to
run.
It used the "crops_commtype" index.
There are only a few "commtype" with a lot of rows for each in crops.

The table crops has
85454 rows,
16594 distinct loct and
199 distinct commtype.

This was run on psql, postgres 7.1.3, slackware 8.0 (kernel 2.2.19), 133Mhz
i86.

version
---------------------------------------------------------------
PostgreSQL 7.1.3 on i586-pc-linux-gnu, compiled by GCC 2.95.3

Following are:
The two sql statements
The results of VACUUM VERBOSE ANALYZE of the involved tables
The results of their EXPLAINs
The structures of the tables and their indexes.

Attached is runbug.sql which will create the tables and indexes,
insert 75 rows in the crops table,
insert 13 rows in the commtypes table,
17 rows in the plantunits table,
vacuum the three tables and
run the 2 explains.
This resulted in the same index switch as with the larger tables
I am showing here.

Here is the EXPLAIN with Crops.change_e > '10/1/2001'.

EXPLAIN
SELECT
Crops.number,
Crops.change_s,
Commtypes.name,
Crops.pseq,
Crops.quantity,
PlantUnits.id
FROM
Crops,
Commtypes,
PlantUnits
WHERE
Crops.Loct = 757277953 AND
Crops.Commtype = Commtypes.number AND
Crops.PlantUnit = PlantUnits.number AND
Crops.change_e > '10/1/2001'
;

Here is the EXPLAIN with '10/1/2001' < Crops.change_e.

EXPLAIN
SELECT
Crops.number,
Crops.change_s,
Commtypes.name,
Crops.pseq,
Crops.quantity,
PlantUnits.id
FROM
Crops,
Commtypes,
PlantUnits
WHERE
Crops.Loct = 757277953 AND
Crops.Commtype = Commtypes.number AND
Crops.PlantUnit = PlantUnits.number AND
'10/1/2001' < Crops.change_e
;

Vacuum tables involved in the queries

NOTICE: --Relation crops--
NOTICE: Pages 1055: Changed 0, reaped 0, Empty 0, New 0; Tup 85454: Vac 0,
Keep/VTL 0/0, Crash 0, UnUsed 0, MinLen 96, MaxLen 96; Re-using: Free/Avail.
Space 0/0; EndEmpty/Avail. Pages 0/0. CPU 0.26s/0.16u sec.
NOTICE: Index crops_number: Pages 718; Tuples 85454. CPU 0.39s/1.31u sec.
NOTICE: Index crops_commtype: Pages 259; Tuples 85454. CPU 0.18s/0.81u sec.
NOTICE: Index crops_loct: Pages 246; Tuples 85454. CPU 0.10s/0.64u sec.
NOTICE: Analyzing...

NOTICE: --Relation commtypes--
NOTICE: Pages 6: Changed 0, reaped 0, Empty 0, New 0; Tup 508: Vac 0,
Keep/VTL 0/0, Crash 0, UnUsed 0, MinLen 83, MaxLen 95; Re-using: Free/Avail.
Space 0/0; EndEmpty/Avail. Pages 0/0. CPU 0.00s/0.00u sec.
NOTICE: Index commtypes_number: Pages 6; Tuples 508. CPU 0.01s/0.00u sec.
NOTICE: Index commtypes_id: Pages 2; Tuples 508. CPU 0.00s/0.00u sec.
NOTICE: Index commtypes_name: Pages 4; Tuples 508. CPU 0.00s/0.00u sec.
NOTICE: Analyzing...

NOTICE: --Relation plantunits--
NOTICE: Pages 1: Changed 0, reaped 0, Empty 0, New 0; Tup 17: Vac 0,
Keep/VTL 0/0, Crash 0, UnUsed 0, MinLen 85, MaxLen 90; Re-using: Free/Avail.
Space 0/0; EndEmpty/Avail. Pages 0/0. CPU 0.00s/0.00u sec.
NOTICE: Index plantunits_number: Pages 2; Tuples 17. CPU 0.01s/0.00u sec.
NOTICE: Index plantunits_teal: Pages 2; Tuples 17. CPU 0.00s/0.00u sec.
NOTICE: Index plantunits_id: Pages 2; Tuples 17. CPU 0.00s/0.00u sec.
NOTICE: Analyzing...

Here are the results of the EXPLAIN with Crops.change_e > '10/1/2001' .

NOTICE: QUERY PLAN:

Nested Loop (cost=11.01..17.75 rows=3 width=64)
-> Merge Join (cost=11.01..11.27 rows=3 width=48)
-> Sort (cost=9.50..9.50 rows=3 width=32)
-> Index Scan using crops_loct on crops (cost=0.00..9.47
rows=3 width=32)
-> Sort (cost=1.52..1.52 rows=17 width=16)
-> Seq Scan on plantunits (cost=0.00..1.17 rows=17 width=16)
-> Index Scan using commtypes_number on commtypes (cost=0.00..2.01
rows=1 width=16)

Here are the results of the EXPLAIN with '10/1/2001' < Crops.change_e.

NOTICE: QUERY PLAN:

Nested Loop (cost=0.00..nan rows=nan width=64)
-> Nested Loop (cost=0.00..nan rows=nan width=48)
-> Index Scan using crops_commtype on crops (cost=0.00..11411.10
rows=nan width=32)
-> Seq Scan on plantunits (cost=0.00..1.17 rows=17 width=16)
-> Seq Scan on commtypes (cost=0.00..11.08 rows=508 width=16)

Here are the structures of the files and the indexes.

Table "crops"
Attribute | Type | Modifier
-----------+--------------------------+----------
number | integer |
change_s | timestamp with time zone |
change_e | timestamp with time zone |
active | boolean |
edit_s | timestamp with time zone |
edit_e | timestamp with time zone |
loct | integer |
commtype | integer |
pseq | integer |
quantity | double precision |
plantunit | integer |
Indices: crops_commtype,
crops_loct,
crops_number

Index "crops_commtype"
Attribute | Type
-----------+---------
commtype | integer
btree

Index "crops_loct"
Attribute | Type
-----------+---------
loct | integer
btree

Index "crops_number"
Attribute | Type
-----------+--------------------------
number | integer
change_s | timestamp with time zone
edit_s | timestamp with time zone
unique btree

Table "commtypes"
Attribute | Type | Modifier
-----------+--------------------------+----------
number | integer |
change_s | timestamp with time zone |
change_e | timestamp with time zone |
active | boolean |
edit_s | timestamp with time zone |
edit_e | timestamp with time zone |
id | integer |
name | character varying(20) |
Indices: commtypes_id,
commtypes_name,
commtypes_number

Index "commtypes_id"
Attribute | Type
-----------+---------
id | integer
btree

Index "commtypes_name"
Attribute | Type
-----------+-----------------------
name | character varying(20)
btree

Index "commtypes_number"
Attribute | Type
-----------+--------------------------
number | integer
change_s | timestamp with time zone
edit_s | timestamp with time zone
unique btree

Table "plantunits"
Attribute | Type | Modifier
-----------+--------------------------+----------
number | integer |
change_s | timestamp with time zone |
change_e | timestamp with time zone |
active | boolean |
edit_s | timestamp with time zone |
edit_e | timestamp with time zone |
id | character varying(5) |
teal | character varying(2) |
Indices: plantunits_id,
plantunits_number,
plantunits_teal

Index "plantunits_id"
Attribute | Type
-----------+----------------------
id | character varying(5)
btree

Index "plantunits_number"
Attribute | Type
-----------+--------------------------
number | integer
change_s | timestamp with time zone
edit_s | timestamp with time zone
unique btree

Index "plantunits_teal"
Attribute | Type
-----------+----------------------
teal | character varying(2)
btree

begin 666 runbug.sql
M"D-214%412!404),12 *"6-R;W!S("@*"0EN=6UB97(@24Y4-"P*"0EC:&%N
M9V5?<R!424U%4U1!35 L"@D)8VAA;F=E7V4@5$E-15-404U0+ H)"6%C=&EV
M92!"3T],14%.+ H)"65D:71?<R!424U%4U1!35 L"@D)961I=%]E(%1)3453
M5$%-4"P*"0EL;V-T($E.5#0L"@D)8V]M;71Y<&4@24Y4-"P*"0EP<V5Q($E.
M5#0L"@D)<75A;G1I='D@1DQ/050X+ H)"7!L86YT=6YI="!)3E0T"@DI"CL*
M"D-214%412!53DE1544@24Y$15@@"@EC<F]P<U]N=6UB97(@3TX@8W)O<',@
M* H)"6YU;6)E<BP*"0EC:&%N9V5?<RP*"0EE9&ET7W,*"2D*.PH*0U)%051%
M($E.1$58"@EC<F]P<U]L;V-T($].(&-R;W!S("@*"0EL;V-T"@DI"CL*"D-2
M14%412!)3D1%6 H)8W)O<'-?8V]M;71Y<&4@3TX@8W)O<',@* H)"6-O;6UT
M>7!E"@DI"CL*"@H*0U)%051%(%1!0DQ%(&-O;6UT>7!E<R H"@EN=6UB97(@
M24Y4-"P*"6-H86YG95]S(%1)34535$%-4"P*"6-H86YG95]E(%1)34535$%-
M4"P*"6%C=&EV92!"3T],14%.+ H)961I=%]S(%1)34535$%-4"P*"65D:71?
M92!424U%4U1!35 L"@EI9"!)3E0T+ H);F%M92!605)#2$%2*#(P*0HI.PH*
M0U)%051%(%5.25%512!)3D1%6" *"6-O;6UT>7!E<U]N=6UB97(@3TX@8V]M
M;71Y<&5S("@*"0EN=6UB97(L"@D)8VAA;F=E7W,L"@D)961I=%]S"@DI.PH*
M"D-214%412!)3D1%6 H)8V]M;71Y<&5S7VED($].(&-O;6UT>7!E<R H"@D)
M:60*"2D["@I#4D5!5$4@24Y$15@*"6-O;6UT>7!E<U]N86UE($].(&-O;6UT
M>7!E<R H"@D);F%M90H)*3L*"@H*"D-214%412!404),12!P;&%N='5N:71S
M("@*"6YU;6)E<B!)3E0T+ H)8VAA;F=E7W,@5$E-15-404U0+ H)8VAA;F=E
M7V4@5$E-15-404U0+ H)86-T:79E($)/3TQ%04XL"@EE9&ET7W,@5$E-15-4
M04U0+ H)961I=%]E(%1)34535$%-4"P*"6ED(%9!4D-(05(H-2DL"@ET96%L
M(%9!4D-(05(H,BD**3L*"D-214%412!53DE1544@24Y$15@*"7!L86YT=6YI
M='-?;G5M8F5R($].('!L86YT=6YI=',@* H)"6YU;6)E<BP*"0EC:&%N9V5?
M<RP*"0EE9&ET7W,*"2D["@I#4D5!5$4@24Y$15@*"7!L86YT=6YI='-?:60@
M3TX@<&QA;G1U;FET<R H"@D):60*"2D["@I#4D5!5$4@24Y$15@*"7!L86YT
M=6YI='-?=&5A;"!/3B!P;&%N='5N:71S("@*"0ET96%L"@DI.PH*"@H*24Y3
M15)4($E.5$\@8W)O<',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A
M8W1I=F4L(&5D:71?<RP@961I=%]E+"!,;V-T+"!#;VUM='EP92P@<'-E<2P@
M<75A;G1I='DL(%!L86YT56YI="D@5D%,5453("@G-C<X-2<L("<Q.3DT+3 Q
M+3 Q(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP.2TP
M-B Q,3HT-#HU-2TP-R<L("=I;F9I;FET>2<L("<Y.#0X.#$R.#$G+" G+3$W
M,C@T-C<R,C@G+" G,2<L("<R,# G+" G+3@S,3$R,3$W-2<I.PI)3E-%4E0@
M24Y43R!C<F]P<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA;F=E7V4L(&%C=&EV
M92P@961I=%]S+"!E9&ET7V4L($QO8W0L($-O;6UT>7!E+"!P<V5Q+"!Q=6%N
M=&ET>2P@4&QA;G15;FET*2!604Q515,@*"<R,C Q-R<L("<Q.3DV+3 Q+3 Q
M(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP.2TP-B Q
M,3HT-#HU-BTP-R<L("<R,# Q+3 Y+3 V(#$Q.C0T.C4W+3 W)RP@)S$Y-3(U
M,SDW-S8G+" G-C4Y-#<T,#,X)RP@)S$G+" G-3DG+" G.3DY-S$T.34Q)RD[
M"DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?
M92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S
M97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S(R,#$W)RP@)S$Y
M.38M,#$M,#$@,# Z,# Z,# M,#@G+" G,3DY-RTP,2TP,B P,#HP,#HP,"TP
M."<L("<Q)RP@)S(P,#$M,#DM,#8@,3$Z-#0Z-3@M,#<G+" G:6YF:6YI='DG
M+" G,3DU,C4S.3<W-B<L("<V-3DT-S0P,S@G+" G,2<L("<U.2<L("<Y.3DW
M,30Y-3$G*3L*24Y315)4($E.5$\@8W)O<',@*&YU;6)E<BP@8VAA;F=E7W,L
M(&-H86YG95]E+"!A8W1I=F4L(&5D:71?<RP@961I=%]E+"!,;V-T+"!#;VUM
M='EP92P@<'-E<2P@<75A;G1I='DL(%!L86YT56YI="D@5D%,5453("@G,C(P
M,3<G+" G,3DY-RTP,2TP,B P,#HP,#HP,"TP."<L("=I;F9I;FET>2<L("<P
M)RP@)S(P,#$M,#DM,#8@,3$Z-#0Z-3DM,#<G+" G,C P,2TP.2TP-B Q,3HT
M-3HP,"TP-R<L("<Q.34R-3,Y-S<V)RP@)S8U.30W-# S."<L("<Q)RP@)S4Y
M)RP@)SDY.3<Q-#DU,2<I.PI)3E-%4E0@24Y43R!C<F]P<R H;G5M8F5R+"!C
M:&%N9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L($QO
M8W0L($-O;6UT>7!E+"!P<V5Q+"!Q=6%N=&ET>2P@4&QA;G15;FET*2!604Q5
M15,@*"<R,C Q-R<L("<Q.3DW+3 Q+3 R(# P.C P.C P+3 X)RP@)S$Y.3DM
M,#$M,#<@,# Z,# Z,# M,#@G+" G,"<L("<R,# Q+3 Y+3 V(#$Q.C0U.C Q
M+3 W)RP@)VEN9FEN:71Y)RP@)S$Y-3(U,SDW-S8G+" G-C4Y-#<T,#,X)RP@
M)S$G+" G-3DG+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN
M=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D
M:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N
M:70I(%9!3%5%4R H)S(R,#$W)RP@)S$Y.3DM,#$M,#<@,# Z,# Z,# M,#@G
M+" G:6YF:6YI='DG+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0U.C R+3 W)RP@
M)S(P,#$M,#DM,#8@,3$Z-#4Z,#,M,#<G+" G,3DU,C4S.3<W-B<L("<V-3DT
M-S0P,S@G+" G,2<L("<U.2<L("<Y.3DW,30Y-3$G*3L*24Y315)4($E.5$\@
M8W)O<',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D
M:71?<RP@961I=%]E+"!,;V-T+"!#;VUM='EP92P@<'-E<2P@<75A;G1I='DL
M(%!L86YT56YI="D@5D%,5453("@G,C(P,3<G+" G,3DY.2TP,2TP-R P,#HP
M,#HP,"TP."<L("<Q.3DY+3 V+3 W(# P.C P.C P+3 W)RP@)S$G+" G,C P
M,2TP.2TP-B Q,3HT-3HP-"TP-R<L("=I;F9I;FET>2<L("<Q.34R-3,Y-S<V
M)RP@)S8U.30W-# S."<L("<Q)RP@)S4Y)RP@)SDY.3<Q-#DU,2<I.PI)3E-%
M4E0@24Y43R!C<F]P<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA;F=E7V4L(&%C
M=&EV92P@961I=%]S+"!E9&ET7V4L($QO8W0L($-O;6UT>7!E+"!P<V5Q+"!Q
M=6%N=&ET>2P@4&QA;G15;FET*2!604Q515,@*"<R,C Q-R<L("<Q.3DY+3 V
M+3 W(# P.C P.C P+3 W)RP@)VEN9FEN:71Y)RP@)S G+" G,C P,2TP.2TP
M-B Q,3HT-3HP-2TP-R<L("<R,# Q+3 Y+3 V(#$Q.C0U.C V+3 W)RP@)S$Y
M-3(U,SDW-S8G+" G-C4Y-#<T,#,X)RP@)S$G+" G-3DG+" G.3DY-S$T.34Q
M)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N
M9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L
M('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S(R,#$W)RP@
M)S$Y.3DM,#8M,#<@,# Z,# Z,# M,#<G+" G,C P,"TP,2TR-2 P,#HP,#HP
M,"TP."<L("<P)RP@)S(P,#$M,#DM,#8@,3$Z-#4Z,#<M,#<G+" G:6YF:6YI
M='DG+" G,3DU,C4S.3<W-B<L("<V-3DT-S0P,S@G+" G,2<L("<U.2<L("<Y
M.3DW,30Y-3$G*3L*24Y315)4($E.5$\@8W)O<',@*&YU;6)E<BP@8VAA;F=E
M7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D:71?<RP@961I=%]E+"!,;V-T+"!#
M;VUM='EP92P@<'-E<2P@<75A;G1I='DL(%!L86YT56YI="D@5D%,5453("@G
M,C(P,3<G+" G,C P,"TP,2TR-2 P,#HP,#HP,"TP."<L("=I;F9I;FET>2<L
M("<Q)RP@)S(P,#$M,#DM,#8@,3$Z-#4Z,#@M,#<G+" G,C P,2TP.2TP-B Q
M,3HT-3HP.2TP-R<L("<Q.34R-3,Y-S<V)RP@)S8U.30W-# S."<L("<Q)RP@
M)S4Y)RP@)SDY.3<Q-#DU,2<I.PI)3E-%4E0@24Y43R!C<F]P<R H;G5M8F5R
M+"!C:&%N9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L
M($QO8W0L($-O;6UT>7!E+"!P<V5Q+"!Q=6%N=&ET>2P@4&QA;G15;FET*2!6
M04Q515,@*"<R,C Q-R<L("<R,# P+3 Q+3(U(# P.C P.C P+3 X)RP@)S(P
M,#$M,#$M,3(@,# Z,# Z,# M,#@G+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0U
M.C$P+3 W)RP@)VEN9FEN:71Y)RP@)S$Y-3(U,SDW-S8G+" G-C4Y-#<T,#,X
M)RP@)S$G+" G-3DG+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S
M("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L
M(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N
M=%5N:70I(%9!3%5%4R H)S(R,#$W)RP@)S(P,#$M,#$M,3(@,# Z,# Z,# M
M,#@G+" G:6YF:6YI='DG+" G,"<L("<R,# Q+3 Y+3 V(#$Q.C0U.C$Q+3 W
M)RP@)VEN9FEN:71Y)RP@)S$Y-3(U,SDW-S8G+" G-C4Y-#<T,#,X)RP@)S$G
M+" G-3DG+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB
M97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?
M92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I
M(%9!3%5%4R H)S(U,S0U)RP@)S$Y.38M,#$M,#$@,# Z,# Z,# M,#@G+" G
M:6YF:6YI='DG+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0U.C$R+3 W)RP@)S(P
M,#$M,#DM,#8@,3$Z-#4Z,3,M,#<G+" G,3 T,S(R-S(V-2<L("<R,3$W.3<R
M,S(T)RP@)S$G+" G,C G+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R
M;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET
M7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0
M;&%N=%5N:70I(%9!3%5%4R H)S(U,S0U)RP@)S$Y.38M,#$M,#$@,# Z,# Z
M,# M,#@G+" G,3DY."TP,BTR-B P,#HP,#HP,"TP."<L("<Q)RP@)S(P,#$M
M,#DM,#8@,3$Z-#4Z,30M,#<G+" G:6YF:6YI='DG+" G,3 T,S(R-S(V-2<L
M("<R,3$W.3<R,S(T)RP@)S$G+" G,C G+" G.3DY-S$T.34Q)RD["DE.4T52
M5"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T
M:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U
M86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S(U,S0U)RP@)S$Y.3@M,#(M
M,C8@,# Z,# Z,# M,#@G+" G:6YF:6YI='DG+" G,"<L("<R,# Q+3 Y+3 V
M(#$Q.C0U.C$U+3 W)RP@)VEN9FEN:71Y)RP@)S$P-#,R,C<R-C4G+" G,C$Q
M-SDW,C,R-"<L("<Q)RP@)S(P)RP@)SDY.3<Q-#DU,2<I.PI)3E-%4E0@24Y4
M3R!C<F]P<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@
M961I=%]S+"!E9&ET7V4L($QO8W0L($-O;6UT>7!E+"!P<V5Q+"!Q=6%N=&ET
M>2P@4&QA;G15;FET*2!604Q515,@*"<Q-C$T,#DG+" G,3DY,RTP,2TP,2 P
M,#HP,#HP,"TP."<L("=I;F9I;FET>2<L("<Q)RP@)S(P,#$M,#DM,#8@,3$Z
M-#4Z,38M,#<G+" G:6YF:6YI='DG+" G.3DT,C<S-C8U)RP@)S(P,3$Y.#$T
M,3@G+" G,2<L("<Q,30G+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R
M;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET
M7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0
M;&%N=%5N:70I(%9!3%5%4R H)S(P-C@T.2<L("<Q.3DS+3 Q+3 Q(# P.C P
M.C P+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP.2TP-B Q,3HT-3HQ
M-RTP-R<L("<R,# Q+3 Y+3 V(#$Q.C0U.C$X+3 W)RP@)S(P-#(T,3,T-# G
M+" G-38Q.3<Y-S<R)RP@)S$G+" G-#@G+" G.3DY-S$T.34Q)RD["DE.4T52
M5"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T
M:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U
M86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S(P-C@T.2<L("<Q.3DS+3 Q
M+3 Q(# P.C P.C P+3 X)RP@)S$Y.3<M,#$M,#D@,# Z,# Z,# M,#@G+" G
M,2<L("<R,# Q+3 Y+3 V(#$Q.C0U.C$Y+3 W)RP@)VEN9FEN:71Y)RP@)S(P
M-#(T,3,T-# G+" G-38Q.3<Y-S<R)RP@)S$G+" G-#@G+" G.3DY-S$T.34Q
M)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N
M9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L
M('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S(P-C@T.2<L
M("<Q.3DW+3 Q+3 Y(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S G+" G
M,C P,2TP.2TP-B Q,3HT-3HR,"TP-R<L("<R,# Q+3 Y+3 V(#$Q.C0U.C(Q
M+3 W)RP@)S(P-#(T,3,T-# G+" G-38Q.3<Y-S<R)RP@)S$G+" G-#@G+" G
M.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG
M95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@
M0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H
M)S(P-C@T.2<L("<Q.3DW+3 Q+3 Y(# P.C P.C P+3 X)RP@)S$Y.3@M,#$M
M,#@@,# Z,# Z,# M,#@G+" G,"<L("<R,# Q+3 Y+3 V(#$Q.C0U.C(R+3 W
M)RP@)VEN9FEN:71Y)RP@)S(P-#(T,3,T-# G+" G-38Q.3<Y-S<R)RP@)S$G
M+" G-#@G+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB
M97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?
M92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I
M(%9!3%5%4R H)S(P-C@T.2<L("<Q.3DX+3 Q+3 X(# P.C P.C P+3 X)RP@
M)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP.2TP-B Q,3HT-3HR,RTP-R<L("<R
M,# Q+3 Y+3 V(#$Q.C0U.C(T+3 W)RP@)S(P-#(T,3,T-# G+" G-38Q.3<Y
M-S<R)RP@)S$G+" G-#@G+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R
M;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET
M7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0
M;&%N=%5N:70I(%9!3%5%4R H)S(P-C@T.2<L("<Q.3DX+3 Q+3 X(# P.C P
M.C P+3 X)RP@)S(P,# M,#$M,C4@,# Z,# Z,# M,#@G+" G,2<L("<R,# Q
M+3 Y+3 V(#$Q.C0U.C(U+3 W)RP@)VEN9FEN:71Y)RP@)S(P-#(T,3,T-# G
M+" G-38Q.3<Y-S<R)RP@)S$G+" G-#@G+" G.3DY-S$T.34Q)RD["DE.4T52
M5"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T
M:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U
M86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S(P-C@T.2<L("<R,# P+3 Q
M+3(U(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S G+" G,C P,2TP.2TP
M-B Q,3HT-3HR-BTP-R<L("<R,# Q+3 Y+3 V(#$Q.C0U.C(W+3 W)RP@)S(P
M-#(T,3,T-# G+" G-38Q.3<Y-S<R)RP@)S$G+" G-#@G+" G.3DY-S$T.34Q
M)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N
M9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L
M('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S(P-C@T.2<L
M("<R,# P+3 Q+3(U(# P.C P.C P+3 X)RP@)S(P,#$M,#$M,3 @,# Z,# Z
M,# M,#@G+" G,"<L("<R,# Q+3 Y+3 V(#$Q.C0U.C(X+3 W)RP@)VEN9FEN
M:71Y)RP@)S(P-#(T,3,T-# G+" G-38Q.3<Y-S<R)RP@)S$G+" G-#@G+" G
M.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG
M95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@
M0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H
M)S(P-C@T.2<L("<R,# Q+3 Q+3$P(# P.C P.C P+3 X)RP@)VEN9FEN:71Y
M)RP@)S$G+" G,C P,2TP.2TP-B Q,3HT-3HR.2TP-R<L("=I;F9I;FET>2<L
M("<R,#0R-#$S-#0P)RP@)S4V,3DW.3<W,B<L("<Q)RP@)S0X)RP@)SDY.3<Q
M-#DU,2<I.PI)3E-%4E0@24Y43R!C<F]P<R H;G5M8F5R+"!C:&%N9V5?<RP@
M8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L($QO8W0L($-O;6UT
M>7!E+"!P<V5Q+"!Q=6%N=&ET>2P@4&QA;G15;FET*2!604Q515,@*"<R,C,V
M,3<G+" G,3DY,RTP,2TP,2 P,#HP,#HP,"TP."<L("=I;F9I;FET>2<L("<Q
M)RP@)S(P,#$M,#DM,#8@,3$Z-#4Z,S M,#<G+" G:6YF:6YI='DG+" G,3 R
M.3 Y,#8X.2<L("<M,3$U.3@T,C<W)RP@)S$G+" G,R<L("<Y.3DW,30Y-3$G
M*3L*24Y315)4($E.5$\@8W)O<',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG
M95]E+"!A8W1I=F4L(&5D:71?<RP@961I=%]E+"!,;V-T+"!#;VUM='EP92P@
M<'-E<2P@<75A;G1I='DL(%!L86YT56YI="D@5D%,5453("@G,C0Q,C@Q)RP@
M)S$Y.3<M,#0M,#@@,# Z,# Z,# M,#<G+" G:6YF:6YI='DG+" G,2<L("<R
M,# Q+3 Y+3 V(#$Q.C0U.C,Q+3 W)RP@)S(P,#$M,#DM,#8@,3$Z-#4Z,S(M
M,#<G+" G,3 Q-C<V,#0T.2<L("<V-3DT-S0P,S@G+" G,2<L("<Q,C G+" G
M.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG
M95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@
M0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H
M)S(T,3(X,2<L("<Q.3DW+3 T+3 X(# P.C P.C P+3 W)RP@)S$Y.3@M,#4M
M,30@,# Z,# Z,# M,#<G+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0U.C,S+3 W
M)RP@)VEN9FEN:71Y)RP@)S$P,38W-C T-#DG+" G-C4Y-#<T,#,X)RP@)S$G
M+" G,3(P)RP@)SDY.3<Q-#DU,2<I.PI)3E-%4E0@24Y43R!C<F]P<R H;G5M
M8F5R+"!C:&%N9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET
M7V4L($QO8W0L($-O;6UT>7!E+"!P<V5Q+"!Q=6%N=&ET>2P@4&QA;G15;FET
M*2!604Q515,@*"<R-#$R.#$G+" G,3DY."TP-2TQ-" P,#HP,#HP,"TP-R<L
M("=I;F9I;FET>2<L("<P)RP@)S(P,#$M,#DM,#8@,3$Z-#4Z,S0M,#<G+" G
M:6YF:6YI='DG+" G,3 Q-C<V,#0T.2<L("<V-3DT-S0P,S@G+" G,2<L("<Q
M,C G+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L
M(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@
M3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!
M3%5%4R H)S,S,34R,2<L("<Q.3DV+3$R+3 T(# P.C P.C P+3 X)RP@)VEN
M9FEN:71Y)RP@)S$G+" G,C P,2TP.2TP-B Q,3HT-3HS-2TP-R<L("<R,# Q
M+3 Y+3 V(#$Q.C0U.C,V+3 W)RP@)S$R,3@Y,3 S,S8G+" G-38Q.3<Y-S<R
M)RP@)S$G+" G-3<G+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S
M("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L
M(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N
M=%5N:70I(%9!3%5%4R H)S,S,34R,2<L("<Q.3DV+3$R+3 T(# P.C P.C P
M+3 X)RP@)S$Y.3@M,3(M,30@,# Z,# Z,# M,#@G+" G,2<L("<R,# Q+3 Y
M+3 V(#$Q.C0U.C,W+3 W)RP@)VEN9FEN:71Y)RP@)S$R,3@Y,3 S,S8G+" G
M-38Q.3<Y-S<R)RP@)S$G+" G-3<G+" G.3DY-S$T.34Q)RD["DE.4T525"!)
M3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E
M+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT
M:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S,S,34R,2<L("<Q.3DX+3$R+3$T
M(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S G+" G,C P,2TP.2TP-B Q
M,3HT-3HS."TP-R<L("<R,# Q+3 Y+3 V(#$Q.C0U.C,Y+3 W)RP@)S$R,3@Y
M,3 S,S8G+" G-38Q.3<Y-S<R)RP@)S$G+" G-3<G+" G.3DY-S$T.34Q)RD[
M"DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?
M92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S
M97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S,S,34R,2<L("<Q
M.3DX+3$R+3$T(# P.C P.C P+3 X)RP@)S$Y.3DM,3 M,C8@,# Z,# Z,# M
M,#<G+" G,"<L("<R,# Q+3 Y+3 V(#$Q.C0U.C0P+3 W)RP@)VEN9FEN:71Y
M)RP@)S$R,3@Y,3 S,S8G+" G-38Q.3<Y-S<R)RP@)S$G+" G-3<G+" G.3DY
M-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S
M+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M
M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S,S
M,34R,2<L("<Q.3DY+3$P+3(V(# P.C P.C P+3 W)RP@)VEN9FEN:71Y)RP@
M)S$G+" G,C P,2TP.2TP-B Q,3HT-3HT,2TP-R<L("<R,# Q+3 Y+3 V(#$Q
M.C0U.C0R+3 W)RP@)S$R,3@Y,3 S,S8G+" G-38Q.3<Y-S<R)RP@)S$G+" G
M-3<G+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L
M(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@
M3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!
M3%5%4R H)S,S,34R,2<L("<Q.3DY+3$P+3(V(# P.C P.C P+3 W)RP@)S(P
M,# M,#$M,#,@,# Z,# Z,# M,#@G+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0U
M.C0S+3 W)RP@)VEN9FEN:71Y)RP@)S$R,3@Y,3 S,S8G+" G-38Q.3<Y-S<R
M)RP@)S$G+" G-3<G+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S
M("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L
M(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N
M=%5N:70I(%9!3%5%4R H)S,S,34R,2<L("<R,# P+3 Q+3 S(# P.C P.C P
M+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP.2TP-B Q,3HT-3HT-"TP
M-R<L("<R,# Q+3 Y+3 V(#$Q.C0U.C0U+3 W)RP@)S$R,3@Y,3 S,S8G+" G
M-38Q.3<Y-S<R)RP@)S$G+" G.#4G+" G.3DY-S$T.34Q)RD["DE.4T525"!)
M3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E
M+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT
M:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S,S,34R,2<L("<R,# P+3 Q+3 S
M(# P.C P.C P+3 X)RP@)S(P,# M,3(M,3D@,# Z,# Z,# M,#@G+" G,2<L
M("<R,# Q+3 Y+3 V(#$Q.C0U.C0V+3 W)RP@)VEN9FEN:71Y)RP@)S$R,3@Y
M,3 S,S8G+" G-38Q.3<Y-S<R)RP@)S$G+" G.#4G+" G.3DY-S$T.34Q)RD[
M"DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?
M92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S
M97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S,S,34R,2<L("<R
M,# P+3$R+3$Y(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S G+" G,C P
M,2TP.2TP-B Q,3HT-3HT-RTP-R<L("=I;F9I;FET>2<L("<Q,C$X.3$P,S,V
M)RP@)S4V,3DW.3<W,B<L("<Q)RP@)S@U)RP@)SDY.3<Q-#DU,2<I.PI)3E-%
M4E0@24Y43R!C<F]P<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA;F=E7V4L(&%C
M=&EV92P@961I=%]S+"!E9&ET7V4L($QO8W0L($-O;6UT>7!E+"!P<V5Q+"!Q
M=6%N=&ET>2P@4&QA;G15;FET*2!604Q515,@*"<T-#8U.3,G+" G,3DY-BTP
M,2TP,2 P,#HP,#HP,"TP."<L("=I;F9I;FET>2<L("<Q)RP@)S(P,#$M,#DM
M,#8@,3$Z-#4Z-#@M,#<G+" G:6YF:6YI='DG+" G-C,P,# P,# Q)RP@)RTQ
M,34Y.#0R-S<G+" G,2<L("<Q,C G+" G.3DY-S$T.34Q)RD["DE.4T525"!)
M3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E
M+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT
M:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S0X,C,P-2<L("<Q.3DW+3 Q+3$P
M(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP.2TP-B Q
M,3HT-3HT.2TP-R<L("<R,# Q+3 Y+3 V(#$Q.C0U.C4P+3 W)RP@)S4Y-C8P
M,S$S-R<L("<M-S,Y.#$S.3,R)RP@)S$G+" G,SDG+" G.3DY-S$T.34Q)RD[
M"DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?
M92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S
M97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S0X,C,P-2<L("<Q
M.3DW+3 Q+3$P(# P.C P.C P+3 X)RP@)S$Y.3<M,#<M,#D@,# Z,# Z,# M
M,#<G+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0U.C4Q+3 W)RP@)VEN9FEN:71Y
M)RP@)S4Y-C8P,S$S-R<L("<M-S,Y.#$S.3,R)RP@)S$G+" G,SDG+" G.3DY
M-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S
M+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M
M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S0X
M,C,P-2<L("<Q.3DW+3 W+3 Y(# P.C P.C P+3 W)RP@)VEN9FEN:71Y)RP@
M)S G+" G,C P,2TP.2TP-B Q,3HT-3HU,BTP-R<L("=I;F9I;FET>2<L("<U
M.38V,#,Q,S<G+" G+3<S.3@Q,SDS,B<L("<Q)RP@)S,Y)RP@)SDY.3<Q-#DU
M,2<I.PI)3E-%4E0@24Y43R!C<F]P<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA
M;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L($QO8W0L($-O;6UT>7!E
M+"!P<V5Q+"!Q=6%N=&ET>2P@4&QA;G15;FET*2!604Q515,@*"<T.3,U-CDG
M+" G,3DY,RTP,2TP,2 P,#HP,#HP,"TP."<L("=I;F9I;FET>2<L("<Q)RP@
M)S(P,#$M,#DM,#8@,3$Z-#4Z-3,M,#<G+" G,C P,2TP.2TP-B Q,3HT-3HU
M-"TP-R<L("<Q-C<U-3,X.30T)RP@)RTQ,3<Q-S,T-3<W)RP@)S$G+" G,3@G
M+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H
M86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C
M="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%
M4R H)S0Y,S4V.2<L("<Q.3DS+3 Q+3 Q(# P.C P.C P+3 X)RP@)S$Y.3@M
M,#$M,C8@,# Z,# Z,# M,#@G+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0U.C4U
M+3 W)RP@)VEN9FEN:71Y)RP@)S$V-S4U,S@Y-#0G+" G+3$Q-S$W,S0U-S<G
M+" G,2<L("<Q."<L("<Y.3DW,30Y-3$G*3L*24Y315)4($E.5$\@8W)O<',@
M*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D:71?<RP@
M961I=%]E+"!,;V-T+"!#;VUM='EP92P@<'-E<2P@<75A;G1I='DL(%!L86YT
M56YI="D@5D%,5453("@G-#DS-38Y)RP@)S$Y.3@M,#$M,C8@,# Z,# Z,# M
M,#@G+" G:6YF:6YI='DG+" G,"<L("<R,# Q+3 Y+3 V(#$Q.C0U.C4V+3 W
M)RP@)VEN9FEN:71Y)RP@)S$V-S4U,S@Y-#0G+" G+3$Q-S$W,S0U-S<G+" G
M,2<L("<Q."<L("<Y.3DW,30Y-3$G*3L*24Y315)4($E.5$\@8W)O<',@*&YU
M;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D:71?<RP@961I
M=%]E+"!,;V-T+"!#;VUM='EP92P@<'-E<2P@<75A;G1I='DL(%!L86YT56YI
M="D@5D%,5453("@G-3<W,#(U)RP@)S$Y.3@M,#,M,#,@,# Z,# Z,# M,#@G
M+" G:6YF:6YI='DG+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0U.C4W+3 W)RP@
M)VEN9FEN:71Y)RP@)SDR,C(V-3,T-2<L("<Q,#8T.3 U-#@U)RP@)S$G+" G
M,3<G+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L
M(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@
M3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!
M3%5%4R H)S8S,S@U-R<L("<Q.3DX+3 Q+3$R(# P.C P.C P+3 X)RP@)VEN
M9FEN:71Y)RP@)S$G+" G,C P,2TP.2TP-B Q,3HT-3HU."TP-R<L("=I;F9I
M;FET>2<L("<W.3@T,3,V.3<G+" G+3$Q-3DX-#(W-R<L("<Q)RP@)S(P)RP@
M)SDY.3<Q-#DU,2<I.PI)3E-%4E0@24Y43R!C<F]P<R H;G5M8F5R+"!C:&%N
M9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L($QO8W0L
M($-O;6UT>7!E+"!P<V5Q+"!Q=6%N=&ET>2P@4&QA;G15;FET*2!604Q515,@
M*"<V-#8R-S,G+" G,3DY,RTP,2TP,2 P,#HP,#HP,"TP."<L("=I;F9I;FET
M>2<L("<Q)RP@)S(P,#$M,#DM,#8@,3$Z-#4Z-3DM,#<G+" G,C P,2TP.2TP
M-B Q,3HT-CHP,"TP-R<L("<Q-38R-34Q,#0P)RP@)RTQ,3<Q-S,T-3<W)RP@
M)S$G+" G-3 G+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN
M=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D
M:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N
M:70I(%9!3%5%4R H)S8T-C(W,R<L("<Q.3DS+3 Q+3 Q(# P.C P.C P+3 X
M)RP@)S$Y.3<M,#4M,#4@,# Z,# Z,# M,#<G+" G,2<L("<R,# Q+3 Y+3 V
M(#$Q.C0V.C Q+3 W)RP@)VEN9FEN:71Y)RP@)S$U-C(U-3$P-# G+" G+3$Q
M-S$W,S0U-S<G+" G,2<L("<U,"<L("<Y.3DW,30Y-3$G*3L*24Y315)4($E.
M5$\@8W)O<',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L
M(&5D:71?<RP@961I=%]E+"!,;V-T+"!#;VUM='EP92P@<'-E<2P@<75A;G1I
M='DL(%!L86YT56YI="D@5D%,5453("@G-C0V,C<S)RP@)S$Y.3<M,#4M,#4@
M,# Z,# Z,# M,#<G+" G:6YF:6YI='DG+" G,2<L("<R,# Q+3 Y+3 V(#$Q
M.C0V.C R+3 W)RP@)VEN9FEN:71Y)RP@)S$U-C(U-3$P-# G+" G+3$Q-S$W
M,S0U-S<G+" G,2<L("<Q,# G+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/
M(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E
M9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y
M+"!0;&%N=%5N:70I(%9!3%5%4R H)S8Y,C0X,2<L("<Q.3DW+3$R+3,Q(# P
M.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP.2TP-B Q,3HT
M-CHP,RTP-R<L("<R,# Q+3 Y+3 V(#$Q.C0V.C T+3 W)RP@)S$U-3(V.3$R
M,2<L("<Q-3$R-3$U.3(R)RP@)S$G+" G-#@G+" G.3DY-S$T.34Q)RD["DE.
M4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@
M86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L
M('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S8Y,C0X,2<L("<Q.3DW
M+3$R+3,Q(# P.C P.C P+3 X)RP@)S$Y.3@M,#4M,C(@,# Z,# Z,# M,#<G
M+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0V.C U+3 W)RP@)VEN9FEN:71Y)RP@
M)S$U-3(V.3$R,2<L("<Q-3$R-3$U.3(R)RP@)S$G+" G-#@G+" G.3DY-S$T
M.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C
M:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y
M<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S8Y,C0X
M,2<L("<Q.3DX+3 U+3(R(# P.C P.C P+3 W)RP@)VEN9FEN:71Y)RP@)S G
M+" G,C P,2TP.2TP-B Q,3HT-CHP-BTP-R<L("=I;F9I;FET>2<L("<Q-34R
M-CDQ,C$G+" G,34Q,C4Q-3DR,B<L("<Q)RP@)S0X)RP@)SDY.3<Q-#DU,2<I
M.PI)3E-%4E0@24Y43R!C<F]P<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA;F=E
M7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L($QO8W0L($-O;6UT>7!E+"!P
M<V5Q+"!Q=6%N=&ET>2P@4&QA;G15;FET*2!604Q515,@*"<W,#$T-#$G+" G
M,C P,"TP,2TR." P,#HP,#HP,"TP."<L("=I;F9I;FET>2<L("<Q)RP@)S(P
M,#$M,#DM,#8@,3$Z-#8Z,#<M,#<G+" G:6YF:6YI='DG+" G,S8R,3DR-S8Y
M)RP@)RTQ,3<Q-S,T-3<W)RP@)S$G+" G,C G+" G.3DY-S$T.34Q)RD["DE.
M4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@
M86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L
M('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S<V-3$X-2<L("<R,# P
M+3 Q+3 U(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP
M.2TP-B Q,3HT-CHP."TP-R<L("<R,# Q+3 Y+3 V(#$Q.C0V.C Y+3 W)RP@
M)S(V.3DQ,#4R.2<L("<R,3$W.3<R,S(T)RP@)S$G+" G-#4G+" G.3DY-S$T
M.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C
M:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y
M<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S<V-3$X
M-2<L("<R,# P+3 Q+3 U(# P.C P.C P+3 X)RP@)S(P,#$M,#$M,#0@,# Z
M,# Z,# M,#@G+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0V.C$P+3 W)RP@)VEN
M9FEN:71Y)RP@)S(V.3DQ,#4R.2<L("<R,3$W.3<R,S(T)RP@)S$G+" G-#4G
M+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H
M86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C
M="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%
M4R H)S<V-3$X-2<L("<R,# Q+3 Q+3 T(# P.C P.C P+3 X)RP@)VEN9FEN
M:71Y)RP@)S G+" G,C P,2TP.2TP-B Q,3HT-CHQ,2TP-R<L("=I;F9I;FET
M>2<L("<R-CDY,3 U,CDG+" G,C$Q-SDW,C,R-"<L("<Q)RP@)S0U)RP@)SDY
M.3<Q-#DU,2<I.PI)3E-%4E0@24Y43R!C<F]P<R H;G5M8F5R+"!C:&%N9V5?
M<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L($QO8W0L($-O
M;6UT>7!E+"!P<V5Q+"!Q=6%N=&ET>2P@4&QA;G15;FET*2!604Q515,@*"<W
M.3(U-S<G+" G,3DY-2TP,2TP,2 P,#HP,#HP,"TP."<L("=I;F9I;FET>2<L
M("<Q)RP@)S(P,#$M,#DM,#8@,3$Z-#8Z,3(M,#<G+" G:6YF:6YI='DG+" G
M,34T-S@R.#<S-B<L("<M,3$W,3<S-#4W-R<L("<Q)RP@)S<U)RP@)SDY.3<Q
M-#DU,2<I.PI)3E-%4E0@24Y43R!C<F]P<R H;G5M8F5R+"!C:&%N9V5?<RP@
M8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L($QO8W0L($-O;6UT
M>7!E+"!P<V5Q+"!Q=6%N=&ET>2P@4&QA;G15;FET*2!604Q515,@*"<Y-#8S
M,#4G+" G,3DY,RTP,2TP,2 P,#HP,#HP,"TP."<L("=I;F9I;FET>2<L("<Q
M)RP@)S(P,#$M,#DM,#8@,3$Z-#8Z,3,M,#<G+" G:6YF:6YI='DG+" G,3,Y
M,C0Q.3(P,"<L("<Q-C<R,3@P-3 G+" G,2<L("<V)RP@)SDY.3<Q-#DU,2<I
M.PI)3E-%4E0@24Y43R!C<F]P<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA;F=E
M7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L($QO8W0L($-O;6UT>7!E+"!P
M<V5Q+"!Q=6%N=&ET>2P@4&QA;G15;FET*2!604Q515,@*"<Q,# R-C(U)RP@
M)S$Y.34M,#$M,#$@,# Z,# Z,# M,#@G+" G:6YF:6YI='DG+" G,2<L("<R
M,# Q+3 Y+3 V(#$Q.C0V.C$T+3 W)RP@)S(P,#$M,#DM,#8@,3$Z-#8Z,34M
M,#<G+" G,S<U.#$P.#$W)RP@)S$P-C0Y,#4T.#4G+" G,2<L("<V,B<L("<Y
M.3DW,30Y-3$G*3L*24Y315)4($E.5$\@8W)O<',@*&YU;6)E<BP@8VAA;F=E
M7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D:71?<RP@961I=%]E+"!,;V-T+"!#
M;VUM='EP92P@<'-E<2P@<75A;G1I='DL(%!L86YT56YI="D@5D%,5453("@G
M,3 P,C8R-2<L("<Q.3DU+3 Q+3 Q(# P.C P.C P+3 X)RP@)S$Y.3@M,#$M
M,C$@,# Z,# Z,# M,#@G+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0V.C$V+3 W
M)RP@)VEN9FEN:71Y)RP@)S,W-3@Q,#@Q-R<L("<Q,#8T.3 U-#@U)RP@)S$G
M+" G-C(G+" G.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB
M97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?
M92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I
M(%9!3%5%4R H)S$P,#(V,C4G+" G,3DY."TP,2TR,2 P,#HP,#HP,"TP."<L
M("=I;F9I;FET>2<L("<Q)RP@)S(P,#$M,#DM,#8@,3$Z-#8Z,3<M,#<G+" G
M,C P,2TP.2TP-B Q,3HT-CHQ."TP-R<L("<S-S4X,3 X,3<G+" G,3 V-#DP
M-30X-2<L("<Q)RP@)S4Y)RP@)SDY.3<Q-#DU,2<I.PI)3E-%4E0@24Y43R!C
M<F]P<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@961I
M=%]S+"!E9&ET7V4L($QO8W0L($-O;6UT>7!E+"!P<V5Q+"!Q=6%N=&ET>2P@
M4&QA;G15;FET*2!604Q515,@*"<Q,# R-C(U)RP@)S$Y.3@M,#$M,C$@,# Z
M,# Z,# M,#@G+" G,3DY.2TP,2TP-2 P,#HP,#HP,"TP."<L("<Q)RP@)S(P
M,#$M,#DM,#8@,3$Z-#8Z,3DM,#<G+" G:6YF:6YI='DG+" G,S<U.#$P.#$W
M)RP@)S$P-C0Y,#4T.#4G+" G,2<L("<U.2<L("<Y.3DW,30Y-3$G*3L*24Y3
M15)4($E.5$\@8W)O<',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A
M8W1I=F4L(&5D:71?<RP@961I=%]E+"!,;V-T+"!#;VUM='EP92P@<'-E<2P@
M<75A;G1I='DL(%!L86YT56YI="D@5D%,5453("@G,3 P,C8R-2<L("<Q.3DY
M+3 Q+3 U(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S G+" G,C P,2TP
M.2TP-B Q,3HT-CHR,"TP-R<L("<R,# Q+3 Y+3 V(#$Q.C0V.C(Q+3 W)RP@
M)S,W-3@Q,#@Q-R<L("<Q,#8T.3 U-#@U)RP@)S$G+" G-3DG+" G.3DY-S$T
M.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C
M:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y
M<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S$P,#(V
M,C4G+" G,3DY.2TP,2TP-2 P,#HP,#HP,"TP."<L("<Q.3DY+3 Y+3 Q(# P
M.C P.C P+3 W)RP@)S G+" G,C P,2TP.2TP-B Q,3HT-CHR,BTP-R<L("=I
M;F9I;FET>2<L("<S-S4X,3 X,3<G+" G,3 V-#DP-30X-2<L("<Q)RP@)S4Y
M)RP@)SDY.3<Q-#DU,2<I.PI)3E-%4E0@24Y43R!C<F]P<R H;G5M8F5R+"!C
M:&%N9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L($QO
M8W0L($-O;6UT>7!E+"!P<V5Q+"!Q=6%N=&ET>2P@4&QA;G15;FET*2!604Q5
M15,@*"<Q,# R-C(U)RP@)S$Y.3DM,#DM,#$@,# Z,# Z,# M,#<G+" G:6YF
M:6YI='DG+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0V.C(S+3 W)RP@)VEN9FEN
M:71Y)RP@)S,W-3@Q,#@Q-R<L("<Q,#8T.3 U-#@U)RP@)S$G+" G-3DG+" G
M.3DY-S$T.34Q)RD["DE.4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG
M95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@
M0V]M;71Y<&4L('!S97$L('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H
M)S$P-C$U,#4G+" G,3DY."TP,BTQ,2 P,#HP,#HP,"TP."<L("=I;F9I;FET
M>2<L("<Q)RP@)S(P,#$M,#DM,#8@,3$Z-#8Z,C0M,#<G+" G,C P,2TP.2TP
M-B Q,3HT-CHR-2TP-R<L("<Q-3<P,C Q-C$G+" G,C8R.#DV,S(G+" G,2<L
M("<T,BXV)RP@)SDY.3<Q-#DU,2<I.PI)3E-%4E0@24Y43R!C<F]P<R H;G5M
M8F5R+"!C:&%N9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET
M7V4L($QO8W0L($-O;6UT>7!E+"!P<V5Q+"!Q=6%N=&ET>2P@4&QA;G15;FET
M*2!604Q515,@*"<Q,#8Q-3 U)RP@)S$Y.3@M,#(M,3$@,# Z,# Z,# M,#@G
M+" G,C P,"TP,BTR,R P,#HP,#HP,"TP."<L("<Q)RP@)S(P,#$M,#DM,#8@
M,3$Z-#8Z,C8M,#<G+" G:6YF:6YI='DG+" G,34W,#(P,38Q)RP@)S(V,C@Y
M-C,R)RP@)S$G+" G-#(N-B<L("<Y.3DW,30Y-3$G*3L*24Y315)4($E.5$\@
M8W)O<',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D
M:71?<RP@961I=%]E+"!,;V-T+"!#;VUM='EP92P@<'-E<2P@<75A;G1I='DL
M(%!L86YT56YI="D@5D%,5453("@G,3 V,34P-2<L("<R,# P+3 R+3(S(# P
M.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S G+" G,C P,2TP.2TP-B Q,3HT
M-CHR-RTP-R<L("=I;F9I;FET>2<L("<Q-3<P,C Q-C$G+" G,C8R.#DV,S(G
M+" G,2<L("<T,BXV)RP@)SDY.3<Q-#DU,2<I.PI)3E-%4E0@24Y43R!C<F]P
M<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S
M+"!E9&ET7V4L($QO8W0L($-O;6UT>7!E+"!P<V5Q+"!Q=6%N=&ET>2P@4&QA
M;G15;FET*2!604Q515,@*"<Q,#8Y,S$S)RP@)S(P,# M,#$M,#,@,# Z,# Z
M,# M,#@G+" G:6YF:6YI='DG+" G,2<L("<R,# Q+3 Y+3 V(#$Q.C0V.C(X
M+3 W)RP@)S(P,#$M,#DM,#8@,3$Z-#8Z,CDM,#<G+" G,30Y-#<Y-#0Y-B<L
M("<Q,#(Y,C@Q,S$P)RP@)S$G+" G,S$G+" G.3DY-S$T.34Q)RD["DE.4T52
M5"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T
M:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L('%U
M86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S$P-CDS,3,G+" G,C P,"TP
M,2TP,R P,#HP,#HP,"TP."<L("<R,# Q+3 Q+3$Q(# P.C P.C P+3 X)RP@
M)S$G+" G,C P,2TP.2TP-B Q,3HT-CHS,"TP-R<L("=I;F9I;FET>2<L("<Q
M-#DT-SDT-#DV)RP@)S$P,CDR.#$S,3 G+" G,2<L("<S,2<L("<Y.3DW,30Y
M-3$G*3L*24Y315)4($E.5$\@8W)O<',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H
M86YG95]E+"!A8W1I=F4L(&5D:71?<RP@961I=%]E+"!,;V-T+"!#;VUM='EP
M92P@<'-E<2P@<75A;G1I='DL(%!L86YT56YI="D@5D%,5453("@G,3 V.3,Q
M,R<L("<R,# Q+3 Q+3$Q(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S G
M+" G,C P,2TP.2TP-B Q,3HT-CHS,2TP-R<L("=I;F9I;FET>2<L("<Q-#DT
M-SDT-#DV)RP@)S$P,CDR.#$S,3 G+" G,2<L("<S,2<L("<Y.3DW,30Y-3$G
M*3L*24Y315)4($E.5$\@8W)O<',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG
M95]E+"!A8W1I=F4L(&5D:71?<RP@961I=%]E+"!,;V-T+"!#;VUM='EP92P@
M<'-E<2P@<75A;G1I='DL(%!L86YT56YI="D@5D%,5453("@G,3$S,C@P,2<L
M("<Q.3DX+3$R+3,P(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G
M,C P,2TP.2TP-B Q,3HT-CHS,BTP-R<L("=I;F9I;FET>2<L("<W-3$U-#$Q
M,C$G+" G+3$Q-3DX-#(W-R<L("<Q)RP@)S0P)RP@)SDY.3<Q-#DU,2<I.PI)
M3E-%4E0@24Y43R!C<F]P<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA;F=E7V4L
M(&%C=&EV92P@961I=%]S+"!E9&ET7V4L($QO8W0L($-O;6UT>7!E+"!P<V5Q
M+"!Q=6%N=&ET>2P@4&QA;G15;FET*2!604Q515,@*"<Q,S<V-S8Y)RP@)S(P
M,# M,#$M,3D@,# Z,# Z,# M,#@G+" G:6YF:6YI='DG+" G,2<L("<R,# Q
M+3 Y+3 V(#$Q.C0V.C,S+3 W)RP@)VEN9FEN:71Y)RP@)S$X,3 R-S@T,# G
M+" G+3$Q-S$W,S0U-S<G+" G,2<L("<Q,3 G+" G.3DY-S$T.34Q)RD["DE.
M4T525"!)3E1/(&-R;W!S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@
M86-T:79E+"!E9&ET7W,L(&5D:71?92P@3&]C="P@0V]M;71Y<&4L('!S97$L
M('%U86YT:71Y+"!0;&%N=%5N:70I(%9!3%5%4R H)S$T-3DX-#$G+" G,3DY
M-RTP,2TP-R P,#HP,#HP,"TP."<L("=I;F9I;FET>2<L("<Q)RP@)S(P,#$M
M,#DM,#8@,3$Z-#8Z,S0M,#<G+" G,C P,2TP.2TP-B Q,3HT-CHS-2TP-R<L
M("<V.#@X.#(Y-#4G+" G,3 V-#DP-30X-2<L("<Q)RP@)S(T)RP@)SDY.3<Q
M-#DU,2<I.PH*"@H*"@I)3E-%4E0@24Y43R!#;VUM='EP97,@*&YU;6)E<BP@
M8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D:71?<RP@961I=%]E+"!I
M9"P@;F%M92D@5D%,5453("@G+3$W,C@T-C<R,C@G+" G,3DX,"TP,2TP,2 P
M,#HP,#HP,"TP."<L("=I;F9I;FET>2<L("<Q)RP@)S(P,#$M,#8M,C@@,#@Z
M,C,Z,#<M,#<G+" G:6YF:6YI='DG+" G-C$P,#@P,"<L("="145(259%)RD[
M"DE.4T525"!)3E1/($-O;6UT>7!E<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA
M;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L(&ED+"!N86UE*2!604Q5
M15,@*"<M,3$W,3<S-#4W-R<L("<Q.3@P+3 Q+3 Q(# P.C P.C P+3 X)RP@
M)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP-BTR." P.#HR-#HQ,"TP-R<L("=I
M;F9I;FET>2<L("<R,C P-3 P)RP@)T-/4DX@1D]2+T9/1"<I.PI)3E-%4E0@
M24Y43R!#;VUM='EP97,@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A
M8W1I=F4L(&5D:71?<RP@961I=%]E+"!I9"P@;F%M92D@5D%,5453("@G+3<S
M.3@Q,SDS,B<L("<Q.3@P+3 Q+3 Q(# P.C P.C P+3 X)RP@)VEN9FEN:71Y
M)RP@)S$G+" G,C P,2TP-BTR." P.#HR-#HU-"TP-R<L("=I;F9I;FET>2<L
M("<R.3$R,C$S)RP@)TA/3D591$57($U%3$].)RD["DE.4T525"!)3E1/($-O
M;6UT>7!E<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@
M961I=%]S+"!E9&ET7V4L(&ED+"!N86UE*2!604Q515,@*"<M,3$U.3@T,C<W
M)RP@)S$Y.# M,#$M,#$@,# Z,# Z,# M,#@G+" G:6YF:6YI='DG+" G,2<L
M("<R,# Q+3 V+3(X(# X.C(V.C U+3 W)RP@)VEN9FEN:71Y)RP@)S,P,#$P
M,"<L("=!3$U/3D0G*3L*24Y315)4($E.5$\@0V]M;71Y<&5S("AN=6UB97(L
M(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@
M:60L(&YA;64I(%9!3%5%4R H)S(V,C@Y-C,R)RP@)S$Y.# M,#$M,#$@,# Z
M,# Z,# M,#@G+" G:6YF:6YI='DG+" G,2<L("<R,# Q+3 V+3(X(# X.C(V
M.C(P+3 W)RP@)VEN9FEN:71Y)RP@)SDY.3DY.3 P)RP@)U5.1$5#3$%2140@
M0T]-32<I.PI)3E-%4E0@24Y43R!#;VUM='EP97,@*&YU;6)E<BP@8VAA;F=E
M7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D:71?<RP@961I=%]E+"!I9"P@;F%M
M92D@5D%,5453("@G,38W,C$X,#4P)RP@)S$Y.# M,#$M,#$@,# Z,# Z,# M
M,#@G+" G:6YF:6YI='DG+" G,2<L("<R,# Q+3 V+3(X(# X.C(V.C,Y+3 W
M)RP@)VEN9FEN:71Y)RP@)S4P,#0P,"<L("=014%#2"<I.PI)3E-%4E0@24Y4
M3R!#;VUM='EP97,@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I
M=F4L(&5D:71?<RP@961I=%]E+"!I9"P@;F%M92D@5D%,5453("@G-38Q.3<Y
M-S<R)RP@)S$Y.# M,#$M,#$@,# Z,# Z,# M,#@G+" G:6YF:6YI='DG+" G
M,2<L("<R,# Q+3 V+3(X(# X.C(W.C(U+3 W)RP@)VEN9FEN:71Y)RP@)S(Y
M,3(Q,# G+" G0T]45$].)RD["DE.4T525"!)3E1/($-O;6UT>7!E<R H;G5M
M8F5R+"!C:&%N9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET
M7V4L(&ED+"!N86UE*2!604Q515,@*"<V-3DT-S0P,S@G+" G,3DX,"TP,2TP
M,2 P,#HP,#HP,"TP."<L("=I;F9I;FET>2<L("<Q)RP@)S(P,#$M,#8M,C@@
M,#@Z,C<Z-#@M,#<G+" G:6YF:6YI='DG+" G,3 P,#(P,"<L("=#04Y404Q/
M55!%)RD["DE.4T525"!)3E1/($-O;6UT>7!E<R H;G5M8F5R+"!C:&%N9V5?
M<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L(&ED+"!N86UE
M*2!604Q515,@*"<Q,#(Y,C@Q,S$P)RP@)S$Y.# M,#$M,#$@,# Z,# Z,# M
M,#@G+" G:6YF:6YI='DG+" G,2<L("<R,# Q+3 V+3(X(# X.C(X.C,T+3 W
M)RP@)VEN9FEN:71Y)RP@)S(Y,3$Y,# G+" G0T]23BP@2%5-04X@0T].)RD[
M"DE.4T525"!)3E1/($-O;6UT>7!E<R H;G5M8F5R+"!C:&%N9V5?<RP@8VAA
M;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L(&ED+"!N86UE*2!604Q5
M15,@*"<Q,#8T.3 U-#@U)RP@)S$Y.# M,#$M,#$@,# Z,# Z,# M,#@G+" G
M:6YF:6YI='DG+" G,2<L("<R,# Q+3 V+3(X(# X.C(X.C0P+3 W)RP@)VEN
M9FEN:71Y)RP@)S(S,# Q,# G+" G04Q&04Q&02<I.PI)3E-%4E0@24Y43R!#
M;VUM='EP97,@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L
M(&5D:71?<RP@961I=%]E+"!I9"P@;F%M92D@5D%,5453("@G,34Q,C4Q-3DR
M,B<L("<Q.3@P+3 Q+3 Q(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S$G
M+" G,C P,2TP-BTR." P.#HR.3HT,2TP-R<L("=I;F9I;FET>2<L("<R.3$S
M-3 P)RP@)U-51T%20D5%5"<I.PI)3E-%4E0@24Y43R!#;VUM='EP97,@*&YU
M;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D:71?<RP@961I
M=%]E+"!I9"P@;F%M92D@5D%,5453("@G,C Q,3DX,30Q."<L("<Q.3@P+3 Q
M+3 Q(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP-BTR
M." P.#HS,#HT,"TP-R<L("=I;F9I;FET>2<L("<R.3$T,S P)RP@)T=205!%
M+"!724Y%)RD["DE.4T525"!)3E1/($-O;6UT>7!E<R H;G5M8F5R+"!C:&%N
M9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L(&ED+"!N
M86UE*2!604Q515,@*"<R,3$W.3<R,S(T)RP@)S$Y.# M,#$M,#$@,# Z,# Z
M,# M,#@G+" G:6YF:6YI='DG+" G,2<L("<R,# Q+3 V+3(X(# X.C,P.C4Y
M+3 W)RP@)VEN9FEN:71Y)RP@)S(R,# V,# G+" G3T%4($9/4B]&3T0G*3L*
M"@H*"DE.4T525"!)3E1/(%!L86YT56YI=',@*&YU;6)E<BP@8VAA;F=E7W,L
M(&-H86YG95]E+"!A8W1I=F4L(&5D:71?<RP@961I=%]E+"!I9"P@=&5A;"D@
M5D%,5453("@G+3$Y-C,U-#,Q-C G+" G,3DX,"TP,2TP,2 P,#HP,#HP,"TP
M."<L("=I;F9I;FET>2<L("<Q)RP@)S(P,#$M,#DM,#4@,3$Z,S4Z-3$M,#<G
M+" G:6YF:6YI='DG+" G2T94,R<L("=+)RD["DE.4T525"!)3E1/(%!L86YT
M56YI=',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D
M:71?<RP@961I=%]E+"!I9"P@=&5A;"D@5D%,5453("@G+3$W-S Q-#0Q.#(G
M+" G,3DX,"TP,2TP,2 P,#HP,#HP,"TP."<L("=I;F9I;FET>2<L("<Q)RP@
M)S(P,#$M,#DM,#4@,3$Z,S4Z-3(M,#<G+" G:6YF:6YI='DG+" G1E0R)RP@
M)U,G*3L*24Y315)4($E.5$\@4&QA;G15;FET<R H;G5M8F5R+"!C:&%N9V5?
M<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L(&ED+"!T96%L
M*2!604Q515,@*"<M,30U-S8Y,#<X-"<L("<Q.3@P+3 Q+3 Q(# P.C P.C P
M+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP.2TP-2 Q,3HS-3HU,RTP
M-R<L("=I;F9I;FET>2<L("=+1R<L("=+1R<I.PI)3E-%4E0@24Y43R!0;&%N
M=%5N:71S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E
M9&ET7W,L(&5D:71?92P@:60L('1E86PI(%9!3%5%4R H)RTQ,S(R,S<X,#DX
M)RP@)S$Y.# M,#$M,#$@,# Z,# Z,# M,#@G+" G:6YF:6YI='DG+" G,2<L
M("<R,# Q+3 Y+3 U(#$Q.C,U.C4T+3 W)RP@)VEN9FEN:71Y)RP@)TQ)5$52
M)RP@)TQ))RD["DE.4T525"!)3E1/(%!L86YT56YI=',@*&YU;6)E<BP@8VAA
M;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D:71?<RP@961I=%]E+"!I9"P@
M=&5A;"D@5D%,5453("@G+3@S,3$R,3$W-2<L("<Q.3@P+3 Q+3 Q(# P.C P
M.C P+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP.2TP-2 Q,3HS-3HU
M-2TP-R<L("=I;F9I;FET>2<L("=53DE44R<L("=5)RD["DE.4T525"!)3E1/
M(%!L86YT56YI=',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I
M=F4L(&5D:71?<RP@961I=%]E+"!I9"P@=&5A;"D@5D%,5453("@G+3<V-3(Q
M-S S-"<L("<Q.3@P+3 Q+3 Q(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@
M)S$G+" G,C P,2TP.2TP-2 Q,3HS-3HU-BTP-R<L("=I;F9I;FET>2<L("=,
M0E,G+" G3$(G*3L*24Y315)4($E.5$\@4&QA;G15;FET<R H;G5M8F5R+"!C
M:&%N9V5?<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L(&ED
M+"!T96%L*2!604Q515,@*"<Q,C,X,C4Y-R<L("<Q.3@P+3 Q+3 Q(# P.C P
M.C P+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G,C P,2TP.2TP-2 Q,3HS-3HU
M-RTP-R<L("=I;F9I;FET>2<L("=05"<L("=05"<I.PI)3E-%4E0@24Y43R!0
M;&%N=%5N:71S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E
M+"!E9&ET7W,L(&5D:71?92P@:60L('1E86PI(%9!3%5%4R H)S(S-C T-30S
M)RP@)S$Y.# M,#$M,#$@,# Z,# Z,# M,#@G+" G:6YF:6YI='DG+" G,2<L
M("<R,# Q+3 Y+3 U(#$Q.C,U.C4X+3 W)RP@)VEN9FEN:71Y)RP@)T]:)RP@
M)T]:)RD["DE.4T525"!)3E1/(%!L86YT56YI=',@*&YU;6)E<BP@8VAA;F=E
M7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D:71?<RP@961I=%]E+"!I9"P@=&5A
M;"D@5D%,5453("@G,C(W-C R,3<Y)RP@)S$Y.# M,#$M,#$@,# Z,# Z,# M
M,#@G+" G:6YF:6YI='DG+" G,2<L("<R,# Q+3 Y+3 U(#$Q.C,U.C4Y+3 W
M)RP@)VEN9FEN:71Y)RP@)T94,R<L("=#)RD["DE.4T525"!)3E1/(%!L86YT
M56YI=',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D
M:71?<RP@961I=%]E+"!I9"P@=&5A;"D@5D%,5453("@G,C<Y,CDQ-S W)RP@
M)S$Y.# M,#$M,#$@,# Z,# Z,# M,#@G+" G:6YF:6YI='DG+" G,2<L("<R
M,# Q+3 Y+3 U(#$Q.C,V.C P+3 W)RP@)VEN9FEN:71Y)RP@)T=!)RP@)T=!
M)RD["DE.4T525"!)3E1/(%!L86YT56YI=',@*&YU;6)E<BP@8VAA;F=E7W,L
M(&-H86YG95]E+"!A8W1I=F4L(&5D:71?<RP@961I=%]E+"!I9"P@=&5A;"D@
M5D%,5453("@G-#@W,C@W-S<W)RP@)S$Y.# M,#$M,#$@,# Z,# Z,# M,#@G
M+" G:6YF:6YI='DG+" G,2<L("<R,# Q+3 Y+3 U(#$Q.C,V.C Q+3 W)RP@
M)VEN9FEN:71Y)RP@)T=204U3)RP@)T=2)RD["DE.4T525"!)3E1/(%!L86YT
M56YI=',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D
M:71?<RP@961I=%]E+"!I9"P@=&5A;"D@5D%,5453("@G-S4P,38Q-#(X)RP@
M)S$Y.# M,#$M,#$@,# Z,# Z,# M,#@G+" G:6YF:6YI='DG+" G,2<L("<R
M,# Q+3 Y+3 U(#$Q.C,V.C R+3 W)RP@)VEN9FEN:71Y)RP@)T9,3UHG+" G
M3UHG*3L*24Y315)4($E.5$\@4&QA;G15;FET<R H;G5M8F5R+"!C:&%N9V5?
M<RP@8VAA;F=E7V4L(&%C=&EV92P@961I=%]S+"!E9&ET7V4L(&ED+"!T96%L
M*2!604Q515,@*"<Y.3DW,30Y-3$G+" G,3DX,"TP,2TP,2 P,#HP,#HP,"TP
M."<L("=I;F9I;FET>2<L("<Q)RP@)S(P,#$M,#DM,#4@,3$Z,S8Z,#,M,#<G
M+" G:6YF:6YI='DG+" G04-215,G+" G02<I.PI)3E-%4E0@24Y43R!0;&%N
M=%5N:71S("AN=6UB97(L(&-H86YG95]S+"!C:&%N9V5?92P@86-T:79E+"!E
M9&ET7W,L(&5D:71?92P@:60L('1E86PI(%9!3%5%4R H)S$S,C<U-C0S,#$G
M+" G,3DX,"TP,2TP,2 P,#HP,#HP,"TP."<L("=I;F9I;FET>2<L("<Q)RP@
M)S(P,#$M,#DM,#4@,3$Z,S8Z,#0M,#<G+" G:6YF:6YI='DG+" G1E0G+" G
M52<I.PI)3E-%4E0@24Y43R!0;&%N=%5N:71S("AN=6UB97(L(&-H86YG95]S
M+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@:60L('1E86PI
M(%9!3%5%4R H)S$V,S(S,#DV.3(G+" G,3DX,"TP,2TP,2 P,#HP,#HP,"TP
M."<L("=I;F9I;FET>2<L("<Q)RP@)S(P,#$M,#DM,#4@,3$Z,S8Z,#4M,#<G
M+" G:6YF:6YI='DG+" G5$].4R<L("=4)RD["DE.4T525"!)3E1/(%!L86YT
M56YI=',@*&YU;6)E<BP@8VAA;F=E7W,L(&-H86YG95]E+"!A8W1I=F4L(&5D
M:71?<RP@961I=%]E+"!I9"P@=&5A;"D@5D%,5453("@G,3<X-3DX,S4X-B<L
M("<Q.3@P+3 Q+3 Q(# P.C P.C P+3 X)RP@)VEN9FEN:71Y)RP@)S$G+" G
M,C P,2TP.2TP-2 Q,3HS-CHP-BTP-R<L("=I;F9I;FET>2<L("=15"<L("=1
M5"<I.PI)3E-%4E0@24Y43R!0;&%N=%5N:71S("AN=6UB97(L(&-H86YG95]S
M+"!C:&%N9V5?92P@86-T:79E+"!E9&ET7W,L(&5D:71?92P@:60L('1E86PI
M(%9!3%5%4R H)S$X.#,T,3(W,C<G+" G,3DX,"TP,2TP,2 P,#HP,#HP,"TP
M."<L("=I;F9I;FET>2<L("<Q)RP@)S(P,#$M,#DM,#4@,3$Z,S8Z,#<M,#<G
M+" G:6YF:6YI='DG+" G34Q)5%(G+" G34PG*3L*"@H*"E9!0U5532!615)"
M3U-%($%.04Q96D4@0W)O<',["E9!0U5532!615)"3U-%($%.04Q96D4@0V]M
M;71Y<&5S.PI604-554T@5D520D]312!!3D%,65I%(%!L86YT56YI=',["@H*
M7&5C:&\@2&5R92!A<F4@=&AE(')E<W5L=',@;V8@=&AE($584$Q!24X@=VET
M:"!#<F]P<RYC:&%N9V5?92 ^("<Q,"\Q+S(P,#$G+@H*15A03$%)3B *4T5,
M14-4( H)0W)O<',N;G5M8F5R+" *"4-R;W!S+F-H86YG95]S+" *"4-O;6UT
M>7!E<RYN86UE+" *"4-R;W!S+G!S97$L( H)0W)O<',N<75A;G1I='DL( H)
M4&QA;G15;FET<RYI9" @"D923TT@"@E#<F]P<RP@"@E#;VUM='EP97,L( H)
M4&QA;G15;FET<R @"E=(15)%( H)0W)O<',N3&]C=" ]("<W-3<R-S<Y-3,G
M($%.1" *"4-R;W!S+D-O;6UT>7!E(#T@0V]M;71Y<&5S+FYU;6)E<B!!3D0@
M"@E#<F]P<RY0;&%N=%5N:70@/2!0;&%N=%5N:71S+FYU;6)E<B!!3D0@"@E#
M<F]P<RYC:&%N9V5?92 ^("<Q,"\Q+S(P,#$G(" *(#L*( I<96-H;R!(97)E
M(&%R92!T:&4@<F5S=6QT<R!O9B!T:&4@15A03$%)3B!W:71H("<Q,"\Q+S(P
M,#$G(#P@0W)O<',N8VAA;F=E7V4N"@I%6%!,04E.( I314Q%0U0@"@E#<F]P
M<RYN=6UB97(L( H)0W)O<',N8VAA;F=E7W,L( H)0V]M;71Y<&5S+FYA;64L
M( H)0W)O<',N<'-E<2P@"@E#<F]P<RYQ=6%N=&ET>2P@"@E0;&%N=%5N:71S
M+FED(" *1E)/32 *"4-R;W!S+" *"4-O;6UT>7!E<RP@"@E0;&%N=%5N:71S
M(" *5TA%4D4@"@E#<F]P<RY,;V-T(#T@)S<U-S(W-SDU,R<@04Y$( H)0W)O
M<',N0V]M;71Y<&4@/2!#;VUM='EP97,N;G5M8F5R($%.1" *"4-R;W!S+E!L
M86YT56YI=" ](%!L86YT56YI=',N;G5M8F5R($%.1" *"2<Q,"\Q+S(P,#$G
:(#P@0W)O<',N8VAA;F=E7V4@"B ["@H*"@H`
`
end

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: ag20 (#1)
Re: query plan

"ag20" <ag20@co.merced.ca.us> writes:

Is there a reason that the expressions:
Crops.change_e > '10/1/2001'
'10/1/2001' < Crops.change_e
when used in a WHERE clause of a query should yield
a good plan for the first and a bad plan for the second?

I think you have a broken installation. I get this plan either way
on 7.1:

Nested Loop (cost=0.00..4.96 rows=1 width=64)
-> Nested Loop (cost=0.00..3.54 rows=1 width=48)
-> Index Scan using crops_loct on crops (cost=0.00..2.02 rows=1 width=32)
-> Seq Scan on plantunits (cost=0.00..1.17 rows=17 width=16)
-> Seq Scan on commtypes (cost=0.00..1.13 rows=13 width=16)

The wacko numbers and "nan"s in your output look like something is
fairly hosed internally --- disagreement between different files about
a struct layout is my first thought. How did you compile or come by
your executables?

regards, tom lane

#3Allan Engelhardt
allane@cybaea.com
In reply to: ag20 (#1)
Re: query plan

ag20 wrote:

Is there a reason that the expressions:

Crops.change_e > '10/1/2001'

'10/1/2001' < Crops.change_e

when used in a WHERE clause of a query should yield
a good plan for the first and a bad plan for the second?

Disclaimer: I'm tired and haven't tested this.

This "problem" usually occurs when the constant and the column is not of the same data type. In the first instance the query planner does a (single) conversion of the constant, in the second a conversion of every single row.

Try

TIMESTAMT WITH TIME ZONE '10/1/2001' < Crops.change_e

Allan.

Show quoted text

They both yield the same boolean value.

The attribute Crops.change_e is not involved in any index.

The query with the first form of the expression took under 1 second to run.
It used the "crops_loct" index.
There are a lot of "loct" with only a few rows for each in crops.

The query with the second form of the expression took aprox. 20 seconds to
run.
It used the "crops_commtype" index.
There are only a few "commtype" with a lot of rows for each in crops.

The table crops has
85454 rows,
16594 distinct loct and
199 distinct commtype.

This was run on psql, postgres 7.1.3, slackware 8.0 (kernel 2.2.19), 133Mhz
i86.

version
---------------------------------------------------------------
PostgreSQL 7.1.3 on i586-pc-linux-gnu, compiled by GCC 2.95.3

Following are:
The two sql statements
The results of VACUUM VERBOSE ANALYZE of the involved tables
The results of their EXPLAINs
The structures of the tables and their indexes.

Attached is runbug.sql which will create the tables and indexes,
insert 75 rows in the crops table,
insert 13 rows in the commtypes table,
17 rows in the plantunits table,
vacuum the three tables and
run the 2 explains.
This resulted in the same index switch as with the larger tables
I am showing here.

Here is the EXPLAIN with Crops.change_e > '10/1/2001'.

EXPLAIN
SELECT
Crops.number,
Crops.change_s,
Commtypes.name,
Crops.pseq,
Crops.quantity,
PlantUnits.id
FROM
Crops,
Commtypes,
PlantUnits
WHERE
Crops.Loct = 757277953 AND
Crops.Commtype = Commtypes.number AND
Crops.PlantUnit = PlantUnits.number AND
Crops.change_e > '10/1/2001'
;

Here is the EXPLAIN with '10/1/2001' < Crops.change_e.

EXPLAIN
SELECT
Crops.number,
Crops.change_s,
Commtypes.name,
Crops.pseq,
Crops.quantity,
PlantUnits.id
FROM
Crops,
Commtypes,
PlantUnits
WHERE
Crops.Loct = 757277953 AND
Crops.Commtype = Commtypes.number AND
Crops.PlantUnit = PlantUnits.number AND
'10/1/2001' < Crops.change_e
;

Vacuum tables involved in the queries

NOTICE: --Relation crops--
NOTICE: Pages 1055: Changed 0, reaped 0, Empty 0, New 0; Tup 85454: Vac 0,
Keep/VTL 0/0, Crash 0, UnUsed 0, MinLen 96, MaxLen 96; Re-using: Free/Avail.
Space 0/0; EndEmpty/Avail. Pages 0/0. CPU 0.26s/0.16u sec.
NOTICE: Index crops_number: Pages 718; Tuples 85454. CPU 0.39s/1.31u sec.
NOTICE: Index crops_commtype: Pages 259; Tuples 85454. CPU 0.18s/0.81u sec.
NOTICE: Index crops_loct: Pages 246; Tuples 85454. CPU 0.10s/0.64u sec.
NOTICE: Analyzing...

NOTICE: --Relation commtypes--
NOTICE: Pages 6: Changed 0, reaped 0, Empty 0, New 0; Tup 508: Vac 0,
Keep/VTL 0/0, Crash 0, UnUsed 0, MinLen 83, MaxLen 95; Re-using: Free/Avail.
Space 0/0; EndEmpty/Avail. Pages 0/0. CPU 0.00s/0.00u sec.
NOTICE: Index commtypes_number: Pages 6; Tuples 508. CPU 0.01s/0.00u sec.
NOTICE: Index commtypes_id: Pages 2; Tuples 508. CPU 0.00s/0.00u sec.
NOTICE: Index commtypes_name: Pages 4; Tuples 508. CPU 0.00s/0.00u sec.
NOTICE: Analyzing...

NOTICE: --Relation plantunits--
NOTICE: Pages 1: Changed 0, reaped 0, Empty 0, New 0; Tup 17: Vac 0,
Keep/VTL 0/0, Crash 0, UnUsed 0, MinLen 85, MaxLen 90; Re-using: Free/Avail.
Space 0/0; EndEmpty/Avail. Pages 0/0. CPU 0.00s/0.00u sec.
NOTICE: Index plantunits_number: Pages 2; Tuples 17. CPU 0.01s/0.00u sec.
NOTICE: Index plantunits_teal: Pages 2; Tuples 17. CPU 0.00s/0.00u sec.
NOTICE: Index plantunits_id: Pages 2; Tuples 17. CPU 0.00s/0.00u sec.
NOTICE: Analyzing...

Here are the results of the EXPLAIN with Crops.change_e > '10/1/2001' .

NOTICE: QUERY PLAN:

Nested Loop (cost=11.01..17.75 rows=3 width=64)
-> Merge Join (cost=11.01..11.27 rows=3 width=48)
-> Sort (cost=9.50..9.50 rows=3 width=32)
-> Index Scan using crops_loct on crops (cost=0.00..9.47
rows=3 width=32)
-> Sort (cost=1.52..1.52 rows=17 width=16)
-> Seq Scan on plantunits (cost=0.00..1.17 rows=17 width=16)
-> Index Scan using commtypes_number on commtypes (cost=0.00..2.01
rows=1 width=16)

Here are the results of the EXPLAIN with '10/1/2001' < Crops.change_e.

NOTICE: QUERY PLAN:

Nested Loop (cost=0.00..nan rows=nan width=64)
-> Nested Loop (cost=0.00..nan rows=nan width=48)
-> Index Scan using crops_commtype on crops (cost=0.00..11411.10
rows=nan width=32)
-> Seq Scan on plantunits (cost=0.00..1.17 rows=17 width=16)
-> Seq Scan on commtypes (cost=0.00..11.08 rows=508 width=16)

Here are the structures of the files and the indexes.

Table "crops"
Attribute | Type | Modifier
-----------+--------------------------+----------
number | integer |
change_s | timestamp with time zone |
change_e | timestamp with time zone |
active | boolean |
edit_s | timestamp with time zone |
edit_e | timestamp with time zone |
loct | integer |
commtype | integer |
pseq | integer |
quantity | double precision |
plantunit | integer |
Indices: crops_commtype,
crops_loct,
crops_number

Index "crops_commtype"
Attribute | Type
-----------+---------
commtype | integer
btree

Index "crops_loct"
Attribute | Type
-----------+---------
loct | integer
btree

Index "crops_number"
Attribute | Type
-----------+--------------------------
number | integer
change_s | timestamp with time zone
edit_s | timestamp with time zone
unique btree

Table "commtypes"
Attribute | Type | Modifier
-----------+--------------------------+----------
number | integer |
change_s | timestamp with time zone |
change_e | timestamp with time zone |
active | boolean |
edit_s | timestamp with time zone |
edit_e | timestamp with time zone |
id | integer |
name | character varying(20) |
Indices: commtypes_id,
commtypes_name,
commtypes_number

Index "commtypes_id"
Attribute | Type
-----------+---------
id | integer
btree

Index "commtypes_name"
Attribute | Type
-----------+-----------------------
name | character varying(20)
btree

Index "commtypes_number"
Attribute | Type
-----------+--------------------------
number | integer
change_s | timestamp with time zone
edit_s | timestamp with time zone
unique btree

Table "plantunits"
Attribute | Type | Modifier
-----------+--------------------------+----------
number | integer |
change_s | timestamp with time zone |
change_e | timestamp with time zone |
active | boolean |
edit_s | timestamp with time zone |
edit_e | timestamp with time zone |
id | character varying(5) |
teal | character varying(2) |
Indices: plantunits_id,
plantunits_number,
plantunits_teal

Index "plantunits_id"
Attribute | Type
-----------+----------------------
id | character varying(5)
btree

Index "plantunits_number"
Attribute | Type
-----------+--------------------------
number | integer
change_s | timestamp with time zone
edit_s | timestamp with time zone
unique btree

Index "plantunits_teal"
Attribute | Type
-----------+----------------------
teal | character varying(2)
btree

Name: runbug.sql
runbug.sql Type: unspecified type (application/octet-stream)
Encoding: x-uuencode