Sam Mason <sam@xxxxxxxxxxxxx> wrote: >> > 8.4 has a generate_series(timestamp,timestamp,interval) which would seem >> > to be a bit more flexible than you want. >> Yes, I know :-). But as "generate_series(A, B, C)" can also >> be written as "A + generate_series(0, (C - B) / C) * C" (or >> something "flexible" like that :-)), a > For things as complicated as timestamps I'm not sure if this is such a > trivial transform. If you can figure out the limit then it seems easy, > though I'm not sure how you'd do that. What limit? >> "generate_series(DATE, DATE)" would inter alia get rid off >> the need to cast the result from TIMESTAMP to DATE and to >> explicitly specify "'1 day'". Just a small, trivial enhance- >> ment for a popular use case :-). > Interesting, I tend to aim for maximum expressiveness not ease of > expressiveness. It would be somewhat easy to add the above if you want > though: > CREATE FUNCTION generate_series(date,date) > RETURNS SETOF date > IMMUTABLE LANGUAGE sql AS $$ > SELECT generate_series($1::timestamp,$2::timestamp,interval '1 day')::date; > $$; > or I suppose you could use the integer series generation: > SELECT $1 + generate_series(0,$2 - $1); If I didn't know that, I would not have characterized the feature request as "trivial". > Hum, now I'll have to see which is "better". > That second version seems to be slightly quicker (20 to 30%, for ranges > from a year up to a century respectively) so you may prefer it, but the > difference is going to be in the noise for any query I've ever used > generate_series for. Which of my mails made you think that I was not satisfied with PostgreSQL's current performance? "generate_series(DATE, DATE)" would just be syntactic sugar, and I like sweets. Tim -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general