[svn:p5ee] r12477 - p5ee/trunk/App-Repository/lib/App/Repository

[email protected] Fri, 6 Feb 2009 09:42:14 -0800 (PST)
Newsgroups perl.cvs.p5ee
Message-ID <[email protected]>
Author: spadkins
Date: Fri Feb  6 09:42:13 2009
New Revision: 12477

Modified:
   p5ee/trunk/App-Repository/lib/App/Repository/Oracle.pm

Log:
Changes to _load_table_metadata_from_source2, dbexpr_update and dbexpr

Modified: p5ee/trunk/App-Repository/lib/App/Repository/Oracle.pm
==============================================================================
--- p5ee/trunk/App-Repository/lib/App/Repository/Oracle.pm	(original)
+++ p5ee/trunk/App-Repository/lib/App/Repository/Oracle.pm	Fri Feb  6 09:42:13 2009
@@ -202,7 +202,7 @@
     my ($self, $table) = @_;
     my $column_defs = $self->{table}{$table}{column};
     my @columns = (keys %$column_defs);
-    my ($column_def, $type, $dbexpr);
+    my ($column_def, $type, $dbexpr, $column_dbexpr);
     my $table_alias = $self->{table}{$table}{alias};
     my $default_date_format = $self->{default_date_format};
     my $default_datetime_format = $self->{default_datetime_format} || $default_date_format;
@@ -212,17 +212,20 @@
             #if ($column_def->{phys_column}) { # ??? #SEB
                  $type = $column_def->{type};
                  $dbexpr = "$table_alias.$column";
+                 $column_dbexpr = $column_def->{dbexpr} || "";
                  if ($type eq "date") {
                      #print STDERR "_load_table_metadata_from_source2($table): date : ($column_def->{dbexpr} eq $dbexpr && !$default_date_format)\n";
-                     if ($column_def->{dbexpr} eq $dbexpr && $default_date_format ne "YYYY-MM-DD") {
+                     if ($column_dbexpr =~ /^\w+\.\w+$/ || $column_dbexpr =~ /^\w+\(\w+\.\w+\)$/ && $default_date_format ne "YYYY-MM-DD") { # SEB min(hiop.latest_eff_dt)
                          $column_def->{dbexpr_update} = "to_date(%s,'YYYY-MM-DD')";
-                         $column_def->{dbexpr}        = "to_char($dbexpr,'YYYY-MM-DD')";
+                         $column_def->{dbexpr_raw}    = $column_def->{dbexpr} || $dbexpr;
+                         $column_def->{dbexpr}        = "to_char($column_def->{dbexpr_raw},'YYYY-MM-DD')"; #SEB was $dbexpr
                      }
                  }
                  elsif ($type eq "datetime") {
-                     if ($column_def->{dbexpr} eq $dbexpr && $default_datetime_format ne "YYYY-MM-DD HH24:MI:SS") {
-                         $column_def->{dbexpr}        = "to_char($dbexpr,'YYYY-MM-DD HH24:MI:SS')";
+                     if ($column_dbexpr =~ /^\w+\.\w+$/ || $column_dbexpr =~ /^\w+\(\w+\.\w+\)$/ && $default_datetime_format ne "YYYY-MM-DD HH24:MI:SS") { # SEB min(hiop.latest_eff_dt)
                          $column_def->{dbexpr_update} = "to_date(%s,'YYYY-MM-DD HH24:MI:SS')";
+                         $column_def->{dbexpr_raw}    = $column_def->{dbexpr} || $dbexpr;
+                         $column_def->{dbexpr}        = "to_char($column_def->{dbexpr_raw},'YYYY-MM-DD HH24:MI:SS')"; #SEB was $dbexpr
                      }
                  }
                  elsif ($type eq "binary") {