our $VERSION = '1.59';
$DEBUG = 0 unless defined $DEBUG;
+use base 'SQL::Translator::Producer';
use SQL::Translator::Schema::Constants;
use SQL::Translator::Utils qw(header_comment);
if ( my @table_comments = $table->comments ) {
for my $comment ( @table_comments ) {
next unless $comment;
- $comment =~ s/'/''/g;
- push @field_comments, "COMMENT ON TABLE $table_name_q is\n '".
- $comment . "'" unless $options->{no_comments}
- ;
+ $comment = __PACKAGE__->_quote_string($comment);
+ push @field_comments, "COMMENT ON TABLE $table_name_q is\n $comment"
+ unless $options->{no_comments};
}
}
my @size = $field->size;
my %extra = $field->extra;
my $list = $extra{'list'} || [];
- # \todo deal with embedded quotes
- my $commalist = join( ', ', map { qq['$_'] } @$list );
+ my $commalist = join( ', ', map { __PACKAGE__->_quote_string($_) } @$list );
if ( $data_type eq 'enum' ) {
$check = "CHECK ($field_name_q IN ($commalist))";
) {
$default = 'SYSDATE';
} else {
- $default = $default =~ m/null/i ? 'NULL' : "'$default'"
+ $default = $default =~ m/null/i ? 'NULL' : __PACKAGE__->_quote_string($default);
}
$field_def .= " DEFAULT $default",
push @field_defs, $field_def;
if ( my $comment = $field->comments ) {
- $comment =~ s/'/''/g;
+ $comment =~ __PACKAGE__->_quote_string($comment);
push @field_comments,
- "COMMENT ON COLUMN $table_name_q.$field_name_q is\n '" .
- $comment . "';" unless $options->{no_comments};
+ "COMMENT ON COLUMN $table_name_q.$field_name_q is\n $comment;"
+ unless $options->{no_comments};
}
return \@create, \@field_defs, \@trigger_defs, \@field_comments;