#=============================================================================
BEGIN {
- maybe_plan(35,
+ maybe_plan(40,
'YAML',
'SQL::Translator::Producer::MySQL',
'Test::Differences',
`foo` integer,
`foo2` integer,
`bar_set` set('foo', 'bar', 'baz'),
- INDEX index_1 (`id`),
- INDEX really_long_name_bigger_than_64_chars_aaaaaaaaaaaaaaaaa_aed44c47 (`id`),
+ INDEX `index_1` (`id`),
+ INDEX `really_long_name_bigger_than_64_chars_aaaaaaaaaaaaaaaaa_aed44c47` (`id`),
INDEX (`foo`),
INDEX (`foo2`),
PRIMARY KEY (`id`, `foo`),
my $create_opts = { add_replace_view => 1, no_comments => 1 };
my $view1_sql1 = SQL::Translator::Producer::MySQL::create_view($view1, $create_opts);
- my $view_sql_replace = "CREATE OR REPLACE
+ my $view_sql_replace = <<'EOV';
+CREATE OR REPLACE
ALGORITHM = MERGE
DEFINER = CURRENT_USER
SQL SECURITY DEFINER
- VIEW view_foo ( id, name ) AS (
+ VIEW view_foo ( id, name ) AS
SELECT id, name FROM thing
- )";
+EOV
+
is($view1_sql1, $view_sql_replace, 'correct "CREATE OR REPLACE VIEW" SQL');
sql => 'SELECT id, name FROM thing',);
my $create2_opts = { add_replace_view => 0, no_comments => 1 };
my $view1_sql2 = SQL::Translator::Producer::MySQL::create_view($view2, $create2_opts);
- my $view_sql_noreplace = "CREATE
- VIEW view_foo ( id, name ) AS (
+ my $view_sql_noreplace = <<'EOV';
+CREATE
+ VIEW view_foo ( id, name ) AS
SELECT id, name FROM thing
- )";
+EOV
+
is($view1_sql2, $view_sql_noreplace, 'correct "CREATE VIEW" SQL');
-
+
{
my %extra = $view1->extra;
is_deeply \%extra,
is_deeply \%extra, {}, 'Extra attributes completely removed';
}
}
+
+{
+
+ # certain types do not support a size, see also:
+ # http://dev.mysql.com/doc/refman/5.1/de/create-table.html
+ for my $type (qw/date time timestamp datetime year/) {
+ my $field = SQL::Translator::Schema::Field->new(
+ name => "my$type",
+ table => $table,
+ data_type => $type,
+ size => 10,
+ default_value => undef,
+ is_auto_increment => 0,
+ is_nullable => 1,
+ is_foreign_key => 0,
+ is_unique => 0
+ );
+ my $sql = SQL::Translator::Producer::MySQL::create_field($field);
+ is($sql, "my$type $type", "Skip length param for type $type");
+ }
+}