1 package SQL::Translator::Parser::DBI;
4 use MooseX::Types::Moose qw(Str);
5 use SQL::Translator::Types qw(DBIHandle);
6 use DBI::Const::GetInfoType;
7 extends 'SQL::Translator::Parser';
17 does => 'SQL::Translator::Parser::DBI::Dialect',
19 make_create_string => 'make_create_string',
20 make_update_string => 'make_update_string'
29 default => sub { shift->translator->db_schema }
49 local $self->dbh->{RaiseError} = 1;
50 local $self->dbh->{PrintError} = 0;
52 my $dbtypename = $self->dbh->get_info( $GetInfoType{SQL_DBMS_NAME} ) || $self->dbh->{Driver}{Name};
54 my $class = 'SQL::Translator::Parser::DBI::' . $dbtypename;
55 Class::MOP::load_class( $class );
56 my $translator = $class->new( dbh => $self->dbh );
57 $self->translator($translator);
59 $self->quoter( $self->dbh->get_info(29) || q{"} );
60 $self->namesep( $self->dbh->get_info(41) || q{.} );
67 my @tables = $dbh->tables(undef, $self->db_schema, '%', '%');
68 s/\Q$self->quoter\E//g for @tables;
69 s/^.*\Q$self->namesep\E// for @tables;