From e5024e972c31fbcacffca55500bd9f2fe13c5545 Mon Sep 17 00:00:00 2001 From: Irina Peshinskaya Date: Mon, 9 Jul 2018 18:07:09 +0200 Subject: [PATCH] TT#40085 Treat empty epoch string as 0 Change-Id: I6af2d503c188d5d7fe24a68ac0bfc0310a9dfda1 --- lib/NGCP/Schema/InflateColumn/DateTime/EpochString.pm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/NGCP/Schema/InflateColumn/DateTime/EpochString.pm b/lib/NGCP/Schema/InflateColumn/DateTime/EpochString.pm index baf98aad..85e02fdd 100644 --- a/lib/NGCP/Schema/InflateColumn/DateTime/EpochString.pm +++ b/lib/NGCP/Schema/InflateColumn/DateTime/EpochString.pm @@ -30,10 +30,12 @@ sub add_columns { sub _inflate_to_datetime { my( $self, $value, $info, @rest ) = @_; + #empty string makes DateTime fail + $value = 0 unless ($value && int($value) && $value > 0); return $self->next::method( $value, $info, @rest ) unless $info->{ data_type } eq "varchar" || $info->{ data_type } eq "integer" - || (exists $info->{ inflate_datetime } - && $info->{ inflate_datetime } eq 'epoch_string'); + || (exists $info->{ inflate_datetime } + && $info->{ inflate_datetime } eq 'epoch_string'); my $tz = DateTime::TimeZone->new( name => 'local' ); return DateTime->from_epoch(epoch => $value, time_zone => $tz); } @@ -42,8 +44,8 @@ sub _deflate_from_datetime { my( $self, $value, $info, @rest ) = @_; return $self->next::method( $value, $info, @rest ) unless $info->{ data_type } eq "string" - || (exists $info->{ inflate_datetime } - && $info->{ inflate_datetime } eq 'epoch_string'); + || (exists $info->{ inflate_datetime } + && $info->{ inflate_datetime } eq 'epoch_string'); return "".$value->epoch; }