__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) = @_;
# disable default bindtype
local $sql_maker->{bindtype} = 'normal';
-
# look up the correct sequence automatically
my ( $schema, $table ) = $source_name =~ /( (?:${ql})? \w+ (?:${qr})? ) \. ( (?:${ql})? \w+ (?:${qr})? )/x;
+
+ # if no explicit schema was requested - use the default schema (which in the case of Oracle is the db user)
+ $schema ||= uc( ($self->_dbi_connect_info||[])->[1] || '');
+
my ($sql, @bind) = $sql_maker->select (
'ALL_TRIGGERS',
[qw/TRIGGER_BODY TABLE_OWNER TRIGGER_NAME/],
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 {
};
} while (! $tried++);
- return $wantarray ? @res : $res[0];
+ return wantarray ? @res : $res[0];
}
=head2 get_autoinc_seq