Revert r5766 which was applied to the trunk instead of branches/current.
Tim Bunce [Thu, 19 Mar 2009 00:15:12 +0000 (00:15 +0000)]
(r5766 has since been applied to branches/current as r5770)

Changes
lib/DBIx/Class/Schema/Loader/Base.pm
t/lib/dbixcsl_common_tests.pm

diff --git a/Changes b/Changes
index 3b5eb4b..eb010bb 100644 (file)
--- a/Changes
+++ b/Changes
@@ -3,7 +3,6 @@ Revision history for Perl extension DBIx::Class::Schema::Loader
 0.04006 Not Yet Released
         - Fix Oracle constraint detection for non-owned schemas (RT #35732)
         - Add result_base_class and schema_base_class options (RT #43977)
-        - Ignore duplicate uniq indices (including duplicates of the PK).
 
 0.04005 Sat Apr 05, 2008
         - Fix DB2 support
index 9869713..c6b89dd 100644 (file)
@@ -672,21 +672,12 @@ sub _setup_src_meta {
         );
     }
 
-    my %uniq_tag; # used to eliminate duplicate uniqs
-
     my $pks = $self->_table_pk_info($table) || [];
     @$pks ? $self->_dbic_stmt($table_class,'set_primary_key',@$pks)
           : carp("$table has no primary key");
-    $uniq_tag{ join("\0", @$pks) }++ if @$pks; # pk is a uniq
 
     my $uniqs = $self->_table_uniq_info($table) || [];
-    for (@$uniqs) {
-        my ($name, $cols) = @$_;
-
-        next if $uniq_tag{ join("\0", @$cols) }++; # skip duplicates
-
-        $self->_dbic_stmt($table_class,'add_unique_constraint', $name, $cols);
-    }
+    $self->_dbic_stmt($table_class,'add_unique_constraint',@$_) for (@$uniqs);
 
     $schema_class->register_class($table_moniker, $table_class);
     $schema->register_class($table_moniker, $table_class) if $schema ne $schema_class;
index 9b5738f..75d6090 100644 (file)
@@ -43,7 +43,7 @@ sub _monikerize {
 sub run_tests {
     my $self = shift;
 
-    plan tests => 90;
+    plan tests => 88;
 
     $self->create();
 
@@ -111,12 +111,10 @@ sub run_tests {
     my $moniker1 = $monikers->{loader_test1};
     my $class1   = $classes->{loader_test1};
     my $rsobj1   = $conn->resultset($moniker1);
-    check_no_duplicate_unique_constraints($class1);
 
     my $moniker2 = $monikers->{loader_test2};
     my $class2   = $classes->{loader_test2};
     my $rsobj2   = $conn->resultset($moniker2);
-    check_no_duplicate_unique_constraints($class2);
 
     my $moniker23 = $monikers->{LOADER_TEST23};
     my $class23   = $classes->{LOADER_TEST23};
@@ -505,19 +503,6 @@ sub run_tests {
     }
 }
 
-sub check_no_duplicate_unique_constraints {
-    my ($class) = @_;
-
-    # unique_constraints() automatically includes the PK, if any
-    my %uc_cols;
-    ++$uc_cols{ join ", ", @$_ }
-        for values %{ { $class->unique_constraints } };
-    my $dup_uc = grep { $_ > 1 } values %uc_cols;
-
-    is($dup_uc, 0, "duplicate unique constraints ($class)")
-        or diag "uc_cols: @{[ %uc_cols ]}";
-}
-
 sub dbconnect {
     my ($self, $complain) = @_;