'k, this doesn't look right, but it could be that I'm overlooking
something ...

The function I created:

CREATE FUNCTION month_trunc (timestamp without time zone) RETURNS timestamp without 
time zone
    AS 'SELECT date_trunc(''month'', $1 )'
    LANGUAGE sql IMMUTABLE;


The query that fails:

ams=# select * from traffic_logs where month_trunc(runtime) = month_trunc(now());
ERROR:  Function month_trunc(timestamp with time zone) does not exist
        Unable to identify a function that satisfies the given argument types
        You may need to add explicit typecasts

The query that succeeds:

ams=# explain select * from traffic_logs where month_trunc(runtime) = '2003-10-01';
                                        QUERY PLAN
-------------------------------------------------------------------------------------------
 Index Scan using tl_month on traffic_logs  (cost=0.00..30751.90 rows=8211 width=36)
   Index Cond: (month_trunc(runtime) = '2003-10-01 00:00:00'::timestamp without time 
zone)
(2 rows)

I haven't mis-spelt anything that I can see ... is this something that is
known not to be doable?

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to