...
|
...
|
@@ -1088,28 +1088,26 @@ sub values_clause {
|
1088
|
1088
|
my $wrap = $opts->{wrap} || {};
|
1089
|
1089
|
|
1090
|
1090
|
# Create insert parameter tag
|
1091
|
|
- my $safety = $self->safety_character;
|
|
1091
|
+ my $safety = $self->{safety_character} || $self->safety_character;
|
1092
|
1092
|
my @columns;
|
1093
|
1093
|
my @placeholders;
|
1094
|
1094
|
my $qp = $self->_q('');
|
1095
|
1095
|
my $q = substr($qp, 0, 1) || '';
|
1096
|
1096
|
my $p = substr($qp, 1, 1) || '';
|
1097
|
1097
|
|
|
1098
|
+ my $safety_re = qr/^[$safety\.]+$/;
|
1098
|
1099
|
for my $column (sort keys %$param) {
|
1099
|
1100
|
croak qq{"$column" is not safety column name } . _subname
|
1100
|
|
- unless $column =~ /^[$safety\.]+$/;
|
1101
|
|
- my $column_quote = "$q$column$p";
|
1102
|
|
- $column_quote =~ s/\./$p.$q/;
|
1103
|
|
- push @columns, $column_quote;
|
1104
|
|
-
|
1105
|
|
- my $func = $wrap->{$column} || sub { $_[0] };
|
|
1101
|
+ unless $column =~ /$safety_re/;
|
|
1102
|
+ push @columns, "$q$column$p";
|
1106
|
1103
|
push @placeholders,
|
1107
|
|
- ref $param->{$column} eq 'SCALAR' ? ${$param->{$column}}
|
1108
|
|
- : $func->(":$column");
|
|
1104
|
+ ref $param->{$column} eq 'SCALAR' ? ${$param->{$column}} :
|
|
1105
|
+ $wrap->{$column} ? $wrap->{$column}->(":$column") :
|
|
1106
|
+ ":$column"
|
1109
|
1107
|
}
|
1110
|
1108
|
|
1111
|
|
- return '(' . join(', ', @columns) . ') ' . 'values ' .
|
1112
|
|
- '(' . join(', ', @placeholders) . ')'
|
|
1109
|
+ '(' . join(', ', @columns) . ') ' . 'values ' .
|
|
1110
|
+ '(' . join(', ', @placeholders) . ')'
|
1113
|
1111
|
}
|
1114
|
1112
|
|
1115
|
1113
|
sub where { DBIx::Custom::Where->new(dbi => shift, @_) }
|