use $pdata instead of $tdata for procedure info
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Parser / DDL / YAML.pm
index 52ad3d0..9b9da8a 100644 (file)
@@ -46,7 +46,7 @@ role SQL::Translator::Parser::DDL::YAML {
 
                 my $column = Column->new($fdata);
                 $table->add_column($column);
-                $table->primary_key($column->name) if $fdata->{is_primary_key};
+                $column->is_primary_key(1) if $fdata->{is_primary_key};
             }
     
             for my $idata ( @{ $tdata->{'indices'} || [] } ) { 
@@ -60,8 +60,9 @@ role SQL::Translator::Parser::DDL::YAML {
     
             for my $cdata ( @{ $tdata->{'constraints'} || [] } ) {
                  $cdata->{table} = $table;
-                 $cdata->{reference_columns} = delete $cdata->{reference_fields};
+                 $cdata->{reference_columns} = delete $cdata->{reference_fields} || [];
                  my $columns = delete $cdata->{fields} || [];
+                 $columns = ref $columns eq 'ARRAY' ? $columns : [ $columns ];
                  my $constraint = Constraint->new($cdata);
                  $constraint->add_column($table->get_column($_)) for @$columns;
                  $table->add_constraint($constraint);
@@ -104,8 +105,8 @@ role SQL::Translator::Parser::DDL::YAML {
             map   { [ $data->{'procedures'}{ $_ }{'order'}, $_ ] }
             keys %{ $data->{'procedures'} };
     
-        for my $tdata ( @procedures ) {
-             my $procedure = Procedure->new($tdata);
+        for my $pdata ( @procedures ) {
+             my $procedure = Procedure->new($pdata);
              $schema->add_procedure($procedure);
         }