day_of_month diff does not make any sense
Arthur Axel 'fREW' Schmidt [Mon, 31 Jan 2011 19:37:34 +0000 (13:37 -0600)]
lib/DBIx/Class/SQLMaker/MSSQL.pm
lib/DBIx/Class/SQLMaker/MySQL.pm
lib/DBIx/Class/SQLMaker/Pg.pm

index 55ebdcf..b9a572c 100644 (file)
@@ -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])" }
 }
 
 
index af1fbf9..23dae02 100644 (file)
@@ -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;
index df5e46a..357356b 100644 (file)
@@ -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;