357356bdfe2f29c87a04ddd9a732d21398c18c4f
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / SQLMaker / Pg.pm
1 package # Hide from PAUSE
2   DBIx::Class::SQLMaker::Pg;
3
4 use base qw( DBIx::Class::SQLMaker );
5 use Carp::Clan qw/^DBIx::Class|^SQL::Abstract/;
6 {
7   my %part_map = (
8      month        => 'MONTH',
9      day_of_month => 'DAY',
10      year         => 'YEAR',
11   );
12
13   my %diff_part_map = %part_map;
14   $diff_part_map{day} = delete $diff_part_map{day_of_month};
15
16   sub _datetime_sql { "EXTRACT($part_map{$_[1]} FROM $_[2])" }
17   sub _datetime_diff_sql { "EXTRACT($diff_part_map{$_[1]} FROM ($_[2] - $_[3]))" }
18 }
19
20 1;