X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FParser%2FSQLite.pm;h=0ffc47280d8d01892c8950db04de1d1b7c324c87;hb=216af0c9198d3865d2b8c04459645ec227762ec4;hp=2f81efe0eb516ecce9e4c2c46f40af1111cdc10b;hpb=70698e1c8a6466ec114a57d6108b79827c93a703;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Parser/SQLite.pm b/lib/SQL/Translator/Parser/SQLite.pm index 2f81efe..0ffc472 100644 --- a/lib/SQL/Translator/Parser/SQLite.pm +++ b/lib/SQL/Translator/Parser/SQLite.pm @@ -1,11 +1,9 @@ package SQL::Translator::Parser::SQLite; # ------------------------------------------------------------------- -# $Id: SQLite.pm,v 1.2 2003-10-04 01:16:39 kycl4rk Exp $ +# $Id: SQLite.pm,v 1.7 2005-06-28 16:39:41 mwz444 Exp $ # ------------------------------------------------------------------- -# Copyright (C) 2003 Ken Y. Clark , -# darren chamberlain , -# Chris Mungall +# Copyright (C) 2002-4 SQLFairy Authors # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as @@ -111,7 +109,7 @@ trigger-action ::= trigger-step ::= update-statement | insert-statement | - delete-statement | select-statemen + delete-statement | select-statement CREATE VIEW @@ -154,7 +152,7 @@ like-op::= use strict; use vars qw[ $DEBUG $VERSION $GRAMMAR @EXPORT_OK ]; -$VERSION = sprintf "%d.%02d", q$Revision: 1.2 $ =~ /(\d+)\.(\d+)/; +$VERSION = sprintf "%d.%02d", q$Revision: 1.7 $ =~ /(\d+)\.(\d+)/; $DEBUG = 0 unless defined $DEBUG; use Data::Dumper; @@ -182,7 +180,7 @@ $GRAMMAR = q! # failed. -ky # startrule : statement(s) eofile { - $return => { + $return = { tables => \%tables, views => \@views, triggers => \@triggers, @@ -556,9 +554,11 @@ sub parse { warn Dumper( $result ) if $DEBUG; my $schema = $translator->schema; - my @tables = sort { - $result->{ $a }->{'order'} <=> $result->{ $b }->{'order'} - } keys %{ $result->{'tables'} }; + my @tables = + map { $_->[1] } + sort { $a->[0] <=> $b->[0] } + map { [ $result->{'tables'}{ $_ }->{'order'}, $_ ] } + keys %{ $result->{'tables'} }; for my $table_name ( @tables ) { my $tdata = $result->{'tables'}{ $table_name }; @@ -604,8 +604,8 @@ sub parse { reference_table => $cdata->{'reference_table'}, reference_fields => $cdata->{'reference_fields'}, match_type => $cdata->{'match_type'} || '', - on_delete => $cdata->{'on_delete_do'}, - on_update => $cdata->{'on_update_do'}, + on_delete => $cdata->{'on_delete'} || $cdata->{'on_delete_do'}, + on_update => $cdata->{'on_update'} || $cdata->{'on_update_do'}, ) or die $table->error; } }