From: Arthur Axel 'fREW' Schmidt Date: Mon, 31 Jan 2011 19:37:34 +0000 (-0600) Subject: day_of_month diff does not make any sense X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=2aedbd3d7c89c0789e47234a5bb7b02f5e699698;p=dbsrgits%2FDBIx-Class.git day_of_month diff does not make any sense --- diff --git a/lib/DBIx/Class/SQLMaker/MSSQL.pm b/lib/DBIx/Class/SQLMaker/MSSQL.pm index 55ebdcf..b9a572c 100644 --- a/lib/DBIx/Class/SQLMaker/MSSQL.pm +++ b/lib/DBIx/Class/SQLMaker/MSSQL.pm @@ -17,8 +17,11 @@ sub _rno_default_order { year => 'yyyy', ); + my %diff_part_map = %part_map; + $diff_part_map{day} = delete $diff_part_map{day_of_month}; + sub _datetime_sql { "DATEPART('$part_map{$_[1]}', $_[2])" } - sub _datetime_diff_sql { "DATEDIFF('$part_map{$_[1]}', $_[2], $_[3])" } + sub _datetime_diff_sql { "DATEDIFF('$diff_part_map{$_[1]}', $_[2], $_[3])" } } diff --git a/lib/DBIx/Class/SQLMaker/MySQL.pm b/lib/DBIx/Class/SQLMaker/MySQL.pm index af1fbf9..23dae02 100644 --- a/lib/DBIx/Class/SQLMaker/MySQL.pm +++ b/lib/DBIx/Class/SQLMaker/MySQL.pm @@ -51,8 +51,11 @@ sub _lock_select { year => 'YEAR', ); + my %diff_part_map = %part_map; + $diff_part_map{day} = delete $diff_part_map{day_of_month}; + sub _datetime_sql { "EXTRACT($part_map{$_[1]} FROM $_[2])" } - sub _datetime_diff_sql { "TIMESTAMPDIFF($part_map{$_[1]}, $_[2], $_[3])" } + sub _datetime_diff_sql { "TIMESTAMPDIFF($diff_part_map{$_[1]}, $_[2], $_[3])" } } 1; diff --git a/lib/DBIx/Class/SQLMaker/Pg.pm b/lib/DBIx/Class/SQLMaker/Pg.pm index df5e46a..357356b 100644 --- a/lib/DBIx/Class/SQLMaker/Pg.pm +++ b/lib/DBIx/Class/SQLMaker/Pg.pm @@ -10,8 +10,11 @@ use Carp::Clan qw/^DBIx::Class|^SQL::Abstract/; year => 'YEAR', ); + my %diff_part_map = %part_map; + $diff_part_map{day} = delete $diff_part_map{day_of_month}; + sub _datetime_sql { "EXTRACT($part_map{$_[1]} FROM $_[2])" } - sub _datetime_diff_sql { "EXTRACT($part_map{$_[1]} FROM ($_[2] - $_[3]))" } + sub _datetime_diff_sql { "EXTRACT($diff_part_map{$_[1]} FROM ($_[2] - $_[3]))" } } 1;