# Header. Should this look like what mysqldump produces?
my $extra = $view->extra;
- my $create = '';
- $create .= "--\n-- View: ${view_name}\n--\n" unless $options->{no_comments};
- $create .= "DROP VIEW IF EXISTS $view_name;\n" if $add_drop_view;
- $create .= 'CREATE';
- $create .= " TEMPORARY" if exists($extra->{temporary}) && $extra->{temporary};
- $create .= ' VIEW';
- $create .= " IF NOT EXISTS" if exists($extra->{if_not_exists}) && $extra->{if_not_exists};
- $create .= " ${view_name}";
+ my @create;
+ push @create, "DROP VIEW IF EXISTS $view_name" if $add_drop_view;
+
+ my $create_view = 'CREATE';
+ $create_view .= " TEMPORARY" if exists($extra->{temporary}) && $extra->{temporary};
+ $create_view .= ' VIEW';
+ $create_view .= " IF NOT EXISTS" if exists($extra->{if_not_exists}) && $extra->{if_not_exists};
+ $create_view .= " ${view_name}";
if( my $sql = $view->sql ){
- $create .= " AS\n ${sql}";
+ $create_view .= " AS\n ${sql}";
+ }
+ push @create, $create_view;
+
+ # Tack the comment onto the first statement.
+ unless ($options->{no_comments}) {
+ $create[0] = "--\n-- View: ${view_name}\n--\n" . $create[0];
}
- return $create;
+
+ return @create;
}
# Null?
$field_def .= ' NOT NULL' unless $field->is_nullable;
- # Default? XXX Need better quoting!
- my $default = $field->default_value;
- if (defined $default) {
- SQL::Translator::Producer->_apply_default_value(
- \$field_def,
- $default,
- [
- 'NULL' => \'NULL',
- 'now()' => 'now()',
- 'CURRENT_TIMESTAMP' => 'CURRENT_TIMESTAMP',
- ],
- );
- }
+ # Default?
+ SQL::Translator::Producer->_apply_default_value(
+ $field,
+ \$field_def,
+ [
+ 'NULL' => \'NULL',
+ 'now()' => 'now()',
+ 'CURRENT_TIMESTAMP' => 'CURRENT_TIMESTAMP',
+ ],
+ );
return $field_def;