1 package DBIx::Class::Storage::DBI::InterBase;
3 # partly stolen from DBIx::Class::Storage::DBI::MSSQL
7 use base qw/DBIx::Class::Storage::DBI/;
11 __PACKAGE__->mk_group_accessors(simple => qw/
15 sub _prep_for_execute {
17 my ($op, $extra_bind, $ident, $args) = @_;
19 my ($sql, $bind) = $self->next::method (@_);
21 if ($op eq 'insert') {
22 my $quote_char = $self->sql_maker->quote_char || '"';
25 grep $ident->column_info($_)->{is_auto_increment}, $ident->columns;
30 # XXX quoting the columns breaks ODBC
31 # map qq{${quote_char}${_}${quote_char}},
34 $sql .= " RETURNING ($auto_inc_cols)";
36 $self->_fb_auto_incs([]);
37 $self->_fb_auto_incs->[0] = \@auto_inc_cols;
48 my ($rv, $sth, @bind) = $self->dbh_do($self->can('_dbh_execute'), @_);
50 if ($op eq 'insert') {
52 my (@auto_incs) = eval {
53 local $SIG{__WARN__} = sub {};
56 $self->_fb_auto_incs->[1] = \@auto_incs;
60 return wantarray ? ($rv, $sth, @bind) : $rv;
64 my ($self, $source, @cols) = @_;
68 @auto_incs{ @{ $self->_fb_auto_incs->[0] } } =
69 @{ $self->_fb_auto_incs->[1] };
71 push @result, $auto_incs{$_} for @cols;
76 # this sub stolen from DB2
79 my ( $self, $opts ) = @_;
82 $self->{_sql_maker_opts} = { %$opts };
85 return { limit_dialect => 'FirstSkip', %{$self->{_sql_maker_opts}||{}} };