+ print "tags(): USED_WITH_VALS: ", join(", ", map { "[".$_->[0]. ", ".$_->[1]."]";} @used_with_vals), "\n";
+ my @orclauses=();
+ if($path->tag_has_values())
+ {
+ print "HAS_VALUES\n";
+ my $parent=$path->trailing_tag_id();
+ print "parent: $parent\n";
+ my @values=map { "'".$_->[1]."'"; } grep { $_->[0] == $parent; } @used_with_vals;
+ my $clause="(tags.parents_id='$parent'";
+ if(@values)
+ {
+ $clause .= " AND tags.id NOT IN (" . join(', ', @values) . ")";
+ }
+ $clause .= ")";
+ push(@orclauses, $clause);
+ }
+ else
+ {
+ print "HASNT VALUES\n";;
+ if(@used)
+ {
+ push(@orclauses, "(tags.parents_id='' AND tags.id NOT IN (" . join(', ', @used) . "))");
+ }
+ for my $pair (@used_with_vals)
+ {
+ push(@orclauses, "(tags.parents_id='" . $pair->[0] . "' AND tags.id!='" . $pair->[1] . "')");
+ }
+ }
+ if(@orclauses)