Simon Perreault wrote:

That would create N views (not counting the sub-views).

It doesn't create temporary tables anymore:

  my $set = DateTime::Event::Recurrence->monthly(
                days => [ 10, 20 ], hours => 7 )->
         union(
            DateTime::Event::Recurrence->monthly(
                days => [ 9 ], hours => 8 ) );

generates:

  CREATE VIEW SET ( N ) AS
    (
    SELECT ( N + INTERVAL '7 HOUR' ) FROM     (
    SELECT ( N + INTERVAL '10 DAY' ) FROM MONTHS UNION
    SELECT ( N + INTERVAL '20 DAY' ) FROM MONTHS
    )
    )
  UNION     (
    SELECT ( N + INTERVAL '8 HOUR' ) FROM     (
    SELECT ( N + INTERVAL '9 DAY' ) FROM MONTHS
    )
    )
  ;

This SQL fails with "subquery in FROM must have an alias", but that's fixable.

- Flavio S. Glock

Reply via email to