[ic] metadata merge-error

René interchange at hertell.com
Wed Jun 13 07:18:42 UTC 2018


Hi,

I'm getting an error in my logfile when trying to merge the metadata via 
the admin-page.

Any ideas what this error does mean?

René

0.0.0.0 VssgcqWM:0.0.0.0 - [13/June/2018:09:44:08 +0300] mycat 
www.mysite.tld:443/admin/merge_meta Safe: syntax error at (eval 504) 
line 2, near "{."
 >
 >
 >     my $bdb = $Db{.mv_metadata_asc};
 >     my $mtab = q{mv_metadata} || 'mv_metadata';
 >     my $mdb = $Db{$mtab};
 >     if(! $bdb) {
 >         $Scratch->{merge_error}
 >         = errmsg("Cannot merge metadata -- table %s is missing.",
 >           'mv_metadata_asc');
 >       return;
 >     }
 >     if(! $mdb) {
 >       $Scratch->{merge_error}
 >         = errmsg("Cannot merge metadata -- table %s is missing.",
 >           $mtab);
 >       return;
 >     }
 >     my @needcols = qw(extended);
 >     if(@needcols = grep {! $mdb->column_exists($_)} @needcols) {
 >       $Scratch->{merge_error}
 >         = errmsg("Cannot merge metadata -- column(s) '%s' is missing 
in table %s.", join(',', @needcols), $mtab);
 >       return;
 >     }
 >     my @base;
 >     while( my ($k) = $bdb->each_record()) {
 >       push @base, $k;
 >     }
 >
 >     my %merge;
 >     if($CGI->{merge_key}) {
 >       my @keys   = split /\0/, $CGI->{merge_key};
 >       my @status = split /\0/, $CGI->{merge_status};
 >       for(my $i = 0; $i < @keys; $i++) {
 >         $merge{$keys[$i]} = $status[$i];
 >       }
 >     }
 >
 >     $Scratch->{merge_updated} = 0;
 >     $Scratch->{merge_complete} = 0;
 >     $Scratch->{merge_needed} = 0;
 >     %source = ();
 >     %target = ();
 >     for(@base) {
 >       my $source = $bdb->row_hash($_);
 >       my $target = $mdb->row_hash($_);
 >       if(! $target or $merge{$_} == 1) {
 >         my $ext = get_option_hash($source->{extended});
 >         $ext->{ui_version} = $Scratch->{newver};
 >         $source->{extended} = uneval($ext);
 >         my $code = delete $source->{code};
 >         $mdb->set_slice($code, $source);
 >         $Scratch->{merge_updated}++;
 >       }
 >       elsif($merge{$_} == -1) {
 >         my $ext = get_option_hash($target->{extended});
 >         $ext->{ui_version} = $Scratch->{newver};
 >         $target->{extended} = uneval($ext);
 >         my $code = delete $target->{code};
 >         $mdb->set_slice($code, $target);
 >         $Scratch->{merge_updated}++;
 >       }
 >       elsif( check_merge($source, $target) ) {
 >         $Scratch->{merge_complete}++;
 >       }
 >       else {
 >         $Scratch->{merge_needed}++;
 >         $source{$_} = $source;
 >         $target{$_} = $target;
 >       }
 >     }
 >     if($Scratch->{merge_needed} == 0) {
 >       $mdb->set_field('ui-version', 'label', $Scratch->{newver});
 >     }
 >     return;
 >
 >



More information about the interchange-users mailing list