Fixed case-insensitivity matching for SQL Server and field names
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Schema / Table.pm
index 7bef851..d14e7aa 100644 (file)
@@ -1,7 +1,7 @@
 package SQL::Translator::Schema::Table;
 
 # ----------------------------------------------------------------------
-# $Id: Table.pm,v 1.33 2005-06-29 22:02:29 duality72 Exp $
+# $Id: Table.pm,v 1.34 2005-07-15 23:36:13 duality72 Exp $
 # ----------------------------------------------------------------------
 # Copyright (C) 2002-4 SQLFairy Authors
 #
@@ -51,7 +51,7 @@ use base 'SQL::Translator::Schema::Object';
 
 use vars qw( $VERSION $FIELD_ORDER );
 
-$VERSION = sprintf "%d.%02d", q$Revision: 1.33 $ =~ /(\d+)\.(\d+)/;
+$VERSION = sprintf "%d.%02d", q$Revision: 1.34 $ =~ /(\d+)\.(\d+)/;
 
 
 # Stringify to our name, being careful not to pass any args through so we don't
@@ -490,6 +490,14 @@ Returns a field by the name provided.
 
     my $self       = shift;
     my $field_name = shift or return $self->error('No field name');
+    my $case_insensitive = shift;
+    if ( $case_insensitive ) {
+       $field_name = uc($field_name);
+       foreach my $field ( keys %{$self->{fields}} ) {
+               return $self->{fields}{$field_name} if $field_name eq uc($field);
+       }
+       return $self->error(qq[Field "$field_name" does not exist]);
+    }
     return $self->error( qq[Field "$field_name" does not exist] ) unless
         exists $self->{'fields'}{ $field_name };
     return $self->{'fields'}{ $field_name };