Showing 1 changed files with 13 additions and 12 deletions
+13 -12
lib/DBIx/Custom.pm
... ...
@@ -1205,7 +1205,6 @@ sub _create_bind_values {
1205 1205
     for my $column (@$columns) {
1206 1206
         
1207 1207
         # Value
1208
-        my $value;
1209 1208
         if(ref $params->{$column} eq 'ARRAY') {
1210 1209
             my $i = $count->{$column} || 0;
1211 1210
             $i += $not_exists->{$column} || 0;
... ...
@@ -1215,29 +1214,31 @@ sub _create_bind_values {
1215 1214
                     $not_exists->{$column}++;
1216 1215
                 }
1217 1216
                 else  {
1218
-                    $value = $params->{$column}->[$k];
1217
+                    push @$bind, $params->{$column}->[$k];
1219 1218
                     $found = 1;
1220 1219
                     last
1221 1220
                 }
1222 1221
             }
1223 1222
             next unless $found;
1224 1223
         }
1225
-        else { $value = $params->{$column} }
1224
+        else { push @$bind, $params->{$column} }
1226 1225
         
1227 1226
         # Filter
1228
-        my $f = $filter->{$column} || $self->{default_out_filter} || '';
1229
-        $value = $f->($value) if $f;
1227
+        if (my $f = $filter->{$column} || $self->{default_out_filter} || '') {
1228
+            $bind->[-1] = $f->($bind->[-1]);
1229
+        }
1230 1230
         
1231 1231
         # Type rule
1232
-        my $tf1 = $self->{"_into1"}->{dot}->{$column}
1233
-          || $type_filters->{1}->{$column};
1234
-        $value = $tf1->($value) if $tf1;
1235
-        my $tf2 = $self->{"_into2"}->{dot}->{$column}
1236
-          || $type_filters->{2}->{$column};
1237
-        $value = $tf2->($value) if $tf2;
1232
+        if ($self->{_type_rule_is_called}) {
1233
+            my $tf1 = $self->{"_into1"}->{dot}->{$column}
1234
+              || $type_filters->{1}->{$column};
1235
+            $bind->[-1] = $tf1->($bind->[-1]) if $tf1;
1236
+            my $tf2 = $self->{"_into2"}->{dot}->{$column}
1237
+              || $type_filters->{2}->{$column};
1238
+            $bind->[-1] = $tf2->($bind->[-1]) if $tf2;
1239
+        }
1238 1240
        
1239 1241
         # Bind values
1240
-        push @$bind, $value;
1241 1242
         push @$types, $bind_type->{$column};
1242 1243
         
1243 1244
         # Count up