PostgreSQL a LC_TIME

Pavel Stehule stehule na kix.fsv.cvut.cz
Středa Duben 6 10:14:40 CEST 2005


> 
> Trosku z jineho soudku - v tom pripade me zajima, proc to co oznacujes 
> za "blby napad" ma v sobe postgres pravdepodobne implemnentovano prave 
> pri praci s casem. Neni totiz jedno, kdyz napisu podminku 
> _date=CURRENT_DATE a nebo _date='2005-04-06'::date(kde _date je typ date).
> 

work=# work=# explain analyze select * from xx where d=current_date;
                                         QUERY PLAN
--------------------------------------------------------------------------------------------
 Seq Scan on xx  (cost=0.00..0.00 rows=1 width=4) (actual 
time=0.003..0.003 rows=0 loops=1)
   Filter: (d = '2003-04-05'::date)
 Total runtime: 0.091 ms
(3 rows)

work=# explain analyze select * from xx where d=current_date;
                                         QUERY PLAN
--------------------------------------------------------------------------------------------
 Seq Scan on xx  (cost=0.00..0.00 rows=1 width=4) (actual 
time=0.003..0.003 rows=0 loops=1)
   Filter: (d = ('now'::text)::date)
 Total runtime: 0.057 ms
(3 rows)

PostgreSQL rozhodne nevyhodnocuje CURRENT_DATE pro kazdy zaznam. Byl by to 
i nesmysl. Now se vyhodnoti pouze jednou a to pri sestaveni planu.


Pavel Stehule



Další informace o konferenci Databases