Обсуждение: query plan

Поиск
Список
Период
Сортировка

query plan

От
"ag20"
Дата:
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

Re: query plan

От
Tom Lane
Дата:
"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

Re: query plan

От
Allan Engelhardt
Дата:
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
queryplanner 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.

>
>
> 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