Author: spadkins
Date: Mon Feb 9 11:23:31 2009
New Revision: 12495
Modified:
p5ee/trunk/App-Repository/lib/App/Repository/Oracle.pm
Log:
Added serializer to _mk_insert_rows_sql
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 Mon Feb 9
11:23:31 2009
@@ -247,6 +247,7 @@
&App::sub_entry if ($App::trace);
my ($self, $table, $cols, $rows, $options) = @_;
+ my $context = $self->{context};
$self->_load_table_metadata($table) if (!defined
$self->{table}{$table}{loaded});
my $dbh = $self->{dbh};
@@ -268,13 +269,24 @@
my $sql = "insert all\n";
my $sql_row_prefix = " into $table (" . join(",", @$cols) . ") values ";
- my ($value, $colnum, $quoted, $row, $col);
+ my ($value, $colnum, $quoted, $row, $col, %serializer, $serializer_name,
$serializer,);
if ($rows && $#$rows > -1 && ref($rows->[0]) eq "ARRAY") {
for (my $rownum = 0; $rownum <= $#$rows; $rownum++) {
$row = $rows->[$rownum];
$sql .= $sql_row_prefix;
for ($colnum = 0; $colnum <= $#$cols; $colnum++) {
$col = $cols->[$colnum];
+ $serializer_name = $column_defs->{$col}{serializer};
+ if ($serializer_name) {
+ $serializer = $serializer{$serializer_name};
+ if (!$serializer) {
+ $serializer = $context->serializer($serializer_name);
+ $serializer{$serializer_name} = $serializer;
+ }
+ if ($row->[$colnum] ne "") {
+ $row->[$colnum] =
$serializer->serialize($row->[$colnum]);
+ }
+ }
$value = $row->[$colnum];
if (!defined $value) {
$value = "NULL";
@@ -328,7 +340,7 @@
my ($self, $table, $cols, $rows, $options) = @_;
$self->{error} = "";
my ($sql, $retval, $nrows_this_insert);
-
+
my $dbh = $self->{dbh};
return 0 if (!defined $dbh);