adding hod (hour-of-day), date_trunc (explicit version of date) and hour_trunc (date...
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 5 Oct 2006 01:49:26 +0000 (01:49 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 5 Oct 2006 01:49:26 +0000 (01:49 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@6391 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Reporter/SQLBuilder.pm

index 5939d25..f5aee5b 100644 (file)
@@ -317,6 +317,24 @@ sub toSQL {
 
 
 #-------------------------------------------------------------------------------------------------
+package OpenILS::Reporter::SQLBuilder::Input::Transform::age;
+
+sub toSQL {
+       my $self = shift;
+
+       my $val = $self->{params};
+       $val = $$val[0] if (ref($val));
+
+       $val =~ s/\\/\\\\/go;
+       $val =~ s/'/\\'/go;
+
+       return "AGE(NOW(),'" . $val . "'::TIMESTAMPTZ)";
+}
+
+sub is_aggregate { return 0 }
+
+
+#-------------------------------------------------------------------------------------------------
 package OpenILS::Reporter::SQLBuilder::Input::Transform::relative_year;
 
 sub toSQL {
@@ -683,6 +701,28 @@ sub is_aggregate { return 0 }
 
 
 #-------------------------------------------------------------------------------------------------
+package OpenILS::Reporter::SQLBuilder::Column::Transform::date_trunc;
+
+sub toSQL {
+       my $self = shift;
+       return 'DATE("' . $self->{_relation} . '"."' . $self->name . '")';
+}
+
+sub is_aggregate { return 0 }
+
+
+#-------------------------------------------------------------------------------------------------
+package OpenILS::Reporter::SQLBuilder::Column::Transform::hour_trunc;
+
+sub toSQL {
+       my $self = shift;
+       return 'DATE_TRUNC("' . $self->{_relation} . '"."' . $self->name . '")';
+}
+
+sub is_aggregate { return 0 }
+
+
+#-------------------------------------------------------------------------------------------------
 package OpenILS::Reporter::SQLBuilder::Column::Transform::quarter;
 
 sub toSQL {
@@ -706,6 +746,17 @@ sub is_aggregate { return 0 }
 
 
 #-------------------------------------------------------------------------------------------------
+package OpenILS::Reporter::SQLBuilder::Column::Transform::hod;
+
+sub toSQL {
+       my $self = shift;
+       return 'EXTRACT(HOUR FROM "' . $self->{_relation} . '"."' . $self->name . '")';
+}
+
+sub is_aggregate { return 0 }
+
+
+#-------------------------------------------------------------------------------------------------
 package OpenILS::Reporter::SQLBuilder::Column::Transform::quarters_ago;
 
 sub toSQL {