Test table and field names with quote characters in them
Dagfinn Ilmari Mannsåker [Mon, 30 Jun 2014 17:58:45 +0000 (18:58 +0100)]
t/60roundtrip.t
t/data/roundtrip.xml

index f04417f..9079406 100644 (file)
@@ -92,7 +92,7 @@ my $base_file = "$Bin/data/roundtrip_autogen.yaml";
 open (my $base_fh, '<', $base_file) or die "$base_file: $!";
 
 my $base_t = SQL::Translator->new;
-$base_t->$_ (1) for qw/add_drop_table no_comments/;
+$base_t->$_ (1) for qw/add_drop_table no_comments quote_identifiers/;
 
 my $base_schema = $base_t->translate (
   parser => 'YAML',
@@ -170,7 +170,7 @@ sub check_roundtrip {
 
 # parse the sql back
   my $parser_t = SQL::Translator->new;
-  $parser_t->$_ (1) for qw/add_drop_table no_comments/;
+  $parser_t->$_ (1) for qw/add_drop_table no_comments quote_identifiers/;
   my $mid_schema = $parser_t->translate (
     data => $base_out,
     parser => $args->{engine},
@@ -194,7 +194,7 @@ sub check_roundtrip {
     _get_table_info ($mid_schema->get_tables),
     _get_table_info ($base_schema->get_tables),
     "Schema tables generally match afer $args->{name} parser trip",
-  ) or return;
+  ) or (diag(explain _get_table_info($mid_schema->get_tables)), return);
 
 # and produce sql once again
 
index 8630ee0..3bb84f1 100644 (file)
@@ -88,6 +88,17 @@ Created on Fri Aug 15 15:08:18 2003
 
         <extra foo="bar" hello="world" bar="baz" mysql_table_type="InnoDB" />
       </table>
+
+      <table order="1" name="`table` [with] &quot;quotes&quot;">
+       <fields>
+         <field
+             name="`field` [with] &quot;quotes&quot;"
+             is_primary_key="1" is_foreign_key="0"
+             size="10" data_type="int" is_auto_increment="1" order="1"
+             is_nullable="0">
+         </field>
+       </fields>
+      </table>
   </tables>
 
   <views>