From e7c9c94d81635a813c143ce17a29167791264d0d Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Wed, 2 Jun 2010 19:17:06 +0200 Subject: [PATCH] check uniqeness of values in fields This are possible primary key candidates which we would like to record in our changes --- lib/MojoFacets/Data.pm | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/lib/MojoFacets/Data.pm b/lib/MojoFacets/Data.pm index 4eb2924..709ad3b 100644 --- a/lib/MojoFacets/Data.pm +++ b/lib/MojoFacets/Data.pm @@ -170,10 +170,28 @@ sub _load_path { } } + my $nr_items = $#{ $data->{items} } + 1; + foreach my $n ( keys %$stats ) { - next unless defined $stats->{$n}->{array}; - delete $stats->{$n}->{array} - if $stats->{$n}->{array} == $stats->{$n}->{count}; + my $s = $stats->{$n}; + next unless defined $s->{array}; + if ( $s->{array} == $s->{count} ) { + delete $s->{array}; + if ( $s->{count} == $nr_items ) { + warn "check $n for uniqeness\n"; + my $unique; + foreach my $e ( @{ $data->{items} } ) { + if ( ++$unique->{ $e->{$n}->[0] } == 2 ) { + $unique = 0; + last; + } + } + if ( $unique ) { + $stats->{$n}->{unique} = 1; + warn "# $n unique ",dump( $unique ); + } + } + } } if ( ! @header ) { -- 2.20.1