use base qw/DBIx::Class::Storage::DBI/;
use mro 'c3';
+sub deployment_statements {
+ my $self = shift;;
+ my ($schema, $type, $version, $dir, $sqltargs, @rest) = @_;
+
+ $sqltargs ||= {};
+ my $quote_char = $self->schema->storage->{'_sql_maker_opts'}->{'quote_char'};
+ $sqltargs->{quote_table_names} = 0 unless $quote_char;
+ $sqltargs->{quote_field_names} = 0 unless $quote_char;
+
+ my $oracle_version = eval { $self->_get_dbh->get_info(18) };
+
+ $sqltargs->{producer_args}{oracle_version} = $oracle_version;
+
+ $self->next::method($schema, $type, $version, $dir, $sqltargs, @rest);
+}
+
sub _dbh_last_insert_id {
my ($self, $dbh, $source, @columns) = @_;
my @ids = ();
$source_name = ${$source->name};
}
+ unless ($self->schema->storage->{'_sql_maker_opts'}->{'quote_char'}) {
+ $source_name = uc($source_name);
+ }
+
# check for fully-qualified name (eg. SCHEMA.TABLENAME)
if ( my ( $schema, $table ) = $source_name =~ /(\w+)\.(\w+)/ ) {
$sql = q{
AND t.status = 'ENABLED'
};
$sth = $dbh->prepare($sql);
- $sth->execute( uc($schema), uc($table) );
+ my $table_name = $self -> sql_maker -> _quote($table);
+ my $schema_name = $self -> sql_maker -> _quote($schema);
+
+ $sth->execute( $schema_name, $table_name );
}
else {
$sth = $dbh->prepare($sql);
- $sth->execute( uc( $source_name ) );
+ $sth->execute( $source_name );
}
while (my ($insert_trigger) = $sth->fetchrow_array) {
- return uc($1) if $insert_trigger =~ m!(\w+)\.nextval!i; # col name goes here???
+ return $1 if $insert_trigger =~ m!("?\w+"?)\.nextval!i; # col name goes here???
}
$self->throw_exception("Unable to find a sequence INSERT trigger on table '" . $source->name . "'.");
}
sub columns_info_for {
my ($self, $table) = @_;
- $self->next::method(uc($table));
+ $self->next::method($table);
}
=head2 datetime_parser_type