use strict;
use warnings;
-use base 'DBIx::Class::Schema::Loader::DBI';
+use base qw/
+ DBIx::Class::Schema::Loader::DBI::Component::QuotedDefault
+ DBIx::Class::Schema::Loader::DBI
+/;
use Carp::Clan qw/^DBIx::Class/;
use Class::C3;
-our $VERSION = '0.04999_12';
+our $VERSION = '0.07000';
=head1 NAME
DBIx::Class::Schema::Loader::DBI::Oracle - DBIx::Class::Schema::Loader::DBI
Oracle Implementation.
-=head1 SYNOPSIS
-
- package My::Schema;
- use base qw/DBIx::Class::Schema::Loader/;
-
- __PACKAGE__->loader_options( debug => 1 );
-
- 1;
-
=head1 DESCRIPTION
See L<DBIx::Class::Schema::Loader::Base>.
-This module is considered experimental and not well tested yet.
-
=cut
sub _setup {
}
}
-
-sub _table_columns {
+sub _table_as_sql {
my ($self, $table) = @_;
- my $dbh = $self->schema->storage->dbh;
-
- my $sth = $dbh->prepare($self->schema->storage->sql_maker->select($table, undef, \'1 = 0'));
- $sth->execute;
- return \@{$sth->{NAME_lc}};
+ return $self->_quote_table_name($table);
}
sub _tables_list {
- my $self = shift;
+ my ($self, $opts) = @_;
my $dbh = $self->schema->storage->dbh;
push @tables, $1
if $table =~ /\A(\w+)\z/;
}
- return @tables;
+
+ return $self->_filter_tables(\@tables, $opts);
+}
+
+sub _table_columns {
+ my ($self, $table) = @_;
+
+ my $dbh = $self->schema->storage->dbh;
+
+ my $sth = $dbh->column_info(undef, $self->db_schema, uc $table, '%');
+ return [ map lc($_->{COLUMN_NAME}), @{ $sth->fetchall_arrayref({ COLUMN_NAME => 1 }) || [] } ];
}
sub _table_uniq_info {
}
sub _extra_column_info {
- my ($self, $info) = @_;
+ my ($self, $table, $column, $info, $dbi_info) = @_;
my %extra_info;
- my ($table, $column) = @$info{qw/TABLE_NAME COLUMN_NAME/};
-
my $dbh = $self->schema->storage->dbh;
my $sth = $dbh->prepare_cached(
q{
SELECT COUNT(*)
FROM all_triggers ut JOIN all_trigger_cols atc USING (trigger_name)
WHERE atc.table_name = ? AND atc.column_name = ?
- AND column_usage LIKE '%NEW%' AND column_usage LIKE '%OUT%'
- AND trigger_type = 'BEFORE EACH ROW' AND triggering_event LIKE '%INSERT%'
+ AND lower(column_usage) LIKE '%new%' AND lower(column_usage) LIKE '%out%'
+ AND trigger_type = 'BEFORE EACH ROW' AND lower(triggering_event) LIKE '%insert%'
},
{}, 1);
=head1 AUTHOR
-See L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
+See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>.
=head1 LICENSE