From: miker Date: Thu, 5 Oct 2006 01:49:26 +0000 (+0000) Subject: adding hod (hour-of-day), date_trunc (explicit version of date) and hour_trunc (date... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=f887ad48dfb19b67a7c8bf3d790e67983b46865b;p=evergreen%2Fpines.git adding hod (hour-of-day), date_trunc (explicit version of date) and hour_trunc (date and hour) transforms git-svn-id: svn://svn.open-ils.org/ILS/trunk@6391 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Reporter/SQLBuilder.pm b/Open-ILS/src/perlmods/OpenILS/Reporter/SQLBuilder.pm index 5939d253f9..f5aee5b2a9 100644 --- a/Open-ILS/src/perlmods/OpenILS/Reporter/SQLBuilder.pm +++ b/Open-ILS/src/perlmods/OpenILS/Reporter/SQLBuilder.pm @@ -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 {