/;
use mro 'c3';
use Carp::Clan qw/^DBIx::Class/;
-use Scalar::Util();
-use List::Util();
+use Scalar::Util 'blessed';
+use List::Util 'first';
use Sub::Name();
-use Data::Dumper::Concise();
+use Data::Dumper::Concise 'Dumper';
use Try::Tiny;
use namespace::clean;
};
}
+sub _sql_maker_opts {
+ my ( $self, $opts ) = @_;
+
+ if ( $opts ) {
+ $self->{_sql_maker_opts} = { %$opts };
+ }
+
+ return { limit_dialect => 'RowCountOrGenericSubQ', %{$self->{_sql_maker_opts}||{}} };
+}
+
sub disconnect {
my $self = shift;
my ($sql, $bind) = $self->next::method (@_);
- my $table = Scalar::Util::blessed($ident) ? $ident->from : $ident;
+ my $table = blessed $ident ? $ident->from : $ident;
my $bind_info = $self->_resolve_column_info(
$ident, [map $_->[0], @{$bind}]
);
- my $bound_identity_col = List::Util::first
- { $bind_info->{$_}{is_auto_increment} }
- (keys %$bind_info)
+ my $bound_identity_col =
+ first { $bind_info->{$_}{is_auto_increment} }
+ keys %$bind_info
;
- my $identity_col = Scalar::Util::blessed($ident) &&
- List::Util::first
- { $ident->column_info($_)->{is_auto_increment} }
- $ident->columns
+ my $identity_col =
+ blessed $ident &&
+ first { $ident->column_info($_)->{is_auto_increment} } $ident->columns
;
if (($op eq 'insert' && $bound_identity_col) ||
my $self = shift;
my ($source, $to_insert) = @_;
- my $identity_col = (List::Util::first
- { $source->column_info($_)->{is_auto_increment} }
- $source->columns) || '';
+ my $identity_col =
+ (first { $source->column_info($_)->{is_auto_increment} } $source->columns)
+ || '';
# check for empty insert
# INSERT INTO foo DEFAULT VALUES -- does not work with Sybase
my $table = $source->name;
- my $identity_col = List::Util::first
- { $source->column_info($_)->{is_auto_increment} }
- $source->columns;
+ my $identity_col =
+ first { $source->column_info($_)->{is_auto_increment} } $source->columns;
my $is_identity_update = $identity_col && defined $fields->{$identity_col};
my $self = shift;
my ($source, $cols, $data) = @_;
- my $identity_col = List::Util::first
- { $source->column_info($_)->{is_auto_increment} }
- $source->columns;
+ my $identity_col =
+ first { $source->column_info($_)->{is_auto_increment} } $source->columns;
- my $is_identity_insert = (List::Util::first
- { $_ eq $identity_col }
- @{$cols}
- ) ? 1 : 0;
+ my $is_identity_insert = (first { $_ eq $identity_col } @{$cols}) ? 1 : 0;
my @source_columns = $source->columns;
return 0;
});
- my $exception;
+ my $exception = '';
try {
my $bulk = $self->_bulk_storage;
if (not $sth) {
$self->throw_exception(
"Could not find row in table '$table' for blob update:\n"
- . Data::Dumper::Concise::Dumper (\%where)
+ . (Dumper \%where)
);
}