I have been chasing a bug for a bit now. I even wound up completely rewriting 
the
function, which in the end turns out to be a good thing, as it is much cleaner 
and
easy to read. 

I now believe that the bug is in how I am using an input parameter to the
function. Here is the function deceleration:

CREATE FUNCTION
return_previous_month_start_and_end(
integer)
RETURNS interval_dates AS $$

Here is one of the places I am using it:


my_year :=      ( select
                 cast(extract(year from
                                                        cast(date_trunc('month',
                                                                CURRENT_DATE) - 
interval '  $1
                                                                month - 1 ' day 
as date)
                                                                ) as integer)
                                                ) ;
This prints the correct value BTW:

 RAISE notice 'Called with %', $1 ;

 Nay thoughts as to what I am doing wrong?


-- 
"They that would give up essential liberty for temporary safety deserve
neither liberty nor safety."
                                                -- Benjamin Franklin


Reply via email to