X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FOracle%2FGeneric.pm;h=d9d230a374227e3afa40557d35b83bec538d194a;hb=bf51641f97a504ae9796fcc45da4e409c6466ca4;hp=b255e537c8ade48fd619f578218c89b6c2b1e6b1;hpb=07cda1c5a7df6656772dfd65c488c19c15126168;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm b/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm index b255e53..d9d230a 100644 --- a/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm +++ b/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm @@ -80,6 +80,20 @@ use mro 'c3'; __PACKAGE__->sql_maker_class('DBIx::Class::SQLMaker::Oracle'); +sub _determine_supports_insert_returning { + my $self = shift; + +# TODO find out which version supports the RETURNING syntax +# 8i has it and earlier docs are a 404 on oracle.com + + return 1 + if $self->_server_info->{normalized_dbms_version} >= 8.001; + + return 0; +} + +__PACKAGE__->_use_insert_returning_bound (1); + sub deployment_statements { my $self = shift;; my ($schema, $type, $version, $dir, $sqltargs, @rest) = @_; @@ -257,16 +271,16 @@ sub _dbh_execute { my ($dbh, $op, $extra_bind, $ident, $bind_attributes, @args) = @_; my (@res, $tried); - my $wantarray = wantarray(); + my $want = wantarray; my $next = $self->next::can; do { try { my $exec = sub { $self->$next($dbh, $op, $extra_bind, $ident, $bind_attributes, @args) }; - if (!defined $wantarray) { + if (!defined $want) { $exec->(); } - elsif (! $wantarray) { + elsif (! $want) { $res[0] = $exec->(); } else { @@ -288,7 +302,7 @@ sub _dbh_execute { }; } while (! $tried++); - return $wantarray ? @res : $res[0]; + return wantarray ? @res : $res[0]; } =head2 get_autoinc_seq