query plan
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
"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
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.3Following 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_numberIndex "crops_commtype"
Attribute | Type
-----------+---------
commtype | integer
btreeIndex "crops_loct"
Attribute | Type
-----------+---------
loct | integer
btreeIndex "crops_number"
Attribute | Type
-----------+--------------------------
number | integer
change_s | timestamp with time zone
edit_s | timestamp with time zone
unique btreeTable "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_numberIndex "commtypes_id"
Attribute | Type
-----------+---------
id | integer
btreeIndex "commtypes_name"
Attribute | Type
-----------+-----------------------
name | character varying(20)
btreeIndex "commtypes_number"
Attribute | Type
-----------+--------------------------
number | integer
change_s | timestamp with time zone
edit_s | timestamp with time zone
unique btreeTable "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_tealIndex "plantunits_id"
Attribute | Type
-----------+----------------------
id | character varying(5)
btreeIndex "plantunits_number"
Attribute | Type
-----------+--------------------------
number | integer
change_s | timestamp with time zone
edit_s | timestamp with time zone
unique btreeIndex "plantunits_teal"
Attribute | Type
-----------+----------------------
teal | character varying(2)
btreeName: runbug.sql
runbug.sql Type: unspecified type (application/octet-stream)
Encoding: x-uuencode