use namespace::clean;
use DBIx::Class::Schema::Loader::Table ();
-our $VERSION = '0.07010';
+our $VERSION = '0.07015';
__PACKAGE__->mk_group_accessors('simple', qw/
_disable_pk_detection
my $constraint = $opts->{constraint};
my $exclude = $opts->{exclude};
- @tables = grep { /$constraint/ } @$tables if defined $constraint;
- @tables = grep { ! /$exclude/ } @$tables if defined $exclude;
+ @tables = grep { /$constraint/ } @tables if defined $constraint;
+ @tables = grep { ! /$exclude/ } @tables if defined $exclude;
TABLE: for my $table (@tables) {
try {
sub _table_comment {
my ($self, $table) = @_;
- my $comments_table = $self->table_comments_table;
+ my $comments_table = $table->clone;
+ $comments_table->name($self->table_comments_table);
- my ($comment) = try { $self->dbh->selectrow_array(<<"EOF", {}, $table->name) };
+ my ($comment) = try { $self->dbh->selectrow_array(<<"EOF") };
SELECT comment_text
-FROM $comments_table
-WHERE table_name = ?
+FROM @{[ $comments_table->sql_name ]}
+WHERE table_name = @{[ $self->dbh->quote($table->name) ]}
EOF
return $comment;
}
sub _column_comment {
- my ($self, $table, $column_counter, $column_name) = @_;
+ my ($self, $table, $column_number, $column_name) = @_;
- my $comments_table = $self->column_comments_table;
+ my $comments_table = $table->clone;
+ $comments_table->name($self->column_comments_table);
- my ($comment) = try { $self->dbh->selectrow_array(<<"EOF", {}, $table->name, $column_name) };
+ my ($comment) = try { $self->dbh->selectrow_array(<<"EOF") };
SELECT comment_text
-FROM $comments_table
-WHERE table_name = ?
-AND column_name = ?
+FROM @{[ $comments_table->sql_name ]}
+WHERE table_name = @{[ $self->dbh->quote($table->name) ]}
+AND column_name = @{[ $self->dbh->quote($column_name) ]}
EOF
return $comment;
sub _dbh_type_info_type_name {
my ($self, $type_num) = @_;
- my $type_info = $self->dbh->type_info($type_num);
+ # We wrap it in a try block for MSSQL+DBD::Sybase, which can have issues.
+ # TODO investigate further
+ my $type_info = try { $self->dbh->type_info($type_num) };
return $type_info ? $type_info->{TYPE_NAME} : undef;
}