/[pgdiff]/pgdiff
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /pgdiff

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by dpavlin, Tue Aug 12 11:43:36 2003 UTC revision 1.3 by dpavlin, Tue Aug 12 12:00:07 2003 UTC
# Line 298  ORDER BY Line 298  ORDER BY
298          $ssql .= $order;          $ssql .= $order;
299    
300          debug_sql($msql);          debug_sql($msql);
         debug_sql($ssql);  
301    
302          my $msth = $mdbh->prepare($msql) || die;          my $msth = $mdbh->prepare($msql) || die;
303          $msth->execute() || die;          $msth->execute() || die;
# Line 392  ORDER BY Line 391  ORDER BY
391                          return $sql;                          return $sql;
392                  }                  }
393    
394                    # update row in slave database
395                    sub sql_update {
396                            my $table = shift @_ || die "need table as argument";
397                            my $col = shift @_ || die "need col to update";
398                            my $val = shift @_ || die "need new val";
399                            my @cols_pk = @_ || die "need pk idenitifier";
400    
401                            my $sql = "udate $table set $col=".$mdbh->quote($val);
402                            debug_sql($sql);
403                            return $sql;
404                    }
405                  # master        slave                  # master        slave
406                  # 1     =       1       test                  # 1     =       1       test
407                  # 1     <       2       insert mrow                  # 1     <       2       insert mrow
# Line 407  ORDER BY Line 417  ORDER BY
417                                  ($have_mrow == HAVE_ROW && $have_srow == HAVE_ROW && $mrow->{$col} gt $srow->{$col}) ) {                                  ($have_mrow == HAVE_ROW && $have_srow == HAVE_ROW && $mrow->{$col} gt $srow->{$col}) ) {
418                                  $diff_row++;                                  $diff_row++;
419                                  $pk_same = 0;                                  $pk_same = 0;
420                                  print sql_delete($table,$srow,@cols_pk),"\n";                                  print STDERR "EXTRA row in table '$table' pk: [".join(",",@cols_pk)."] value (".join(",",pk_val($srow,@cols_pk)).")\n" if ($verbose);
421                                    print sql_delete($table,$srow,@cols_pk),";\n";
422                                  $have_srow = FETCH_ROW;                                  $have_srow = FETCH_ROW;
423                                  last;                                  last;
424                          } elsif ( ($have_mrow == HAVE_ROW && $have_srow == NO_ROW) ||                          } elsif ( ($have_mrow == HAVE_ROW && $have_srow == NO_ROW) ||
425                                  ($have_mrow == HAVE_ROW && $have_srow == HAVE_ROW && $mrow->{$col} lt $srow->{$col}) ) {                                  ($have_mrow == HAVE_ROW && $have_srow == HAVE_ROW && $mrow->{$col} lt $srow->{$col}) ) {
426                                  $diff_row++;                                  $diff_row++;
427                                  $pk_same = 0;                                  $pk_same = 0;
428                                  print sql_insert($table,$mrow,@cols),"\n";                                  print STDERR "MISSING row in table '$table' pk: [".join(",",@cols_pk)."] value (".join(",",pk_val($mrow,@cols_pk)).")\n" if ($verbose);
429                                    print sql_insert($table,$mrow,@cols),";\n";
430                                  $have_mrow = FETCH_ROW;                                  $have_mrow = FETCH_ROW;
431                                  last;                                  last;
432                          }                          }
# Line 426  ORDER BY Line 438  ORDER BY
438                                  if ($mrow->{$col} ne $srow->{$col}) {                                  if ($mrow->{$col} ne $srow->{$col}) {
439                                          $diff_row++;                                          $diff_row++;
440                                          print STDERR "DIFF in table '$table' row ($col): [".join(",",@cols_pk)."] '$mrow->{$col}' != '$srow->{$col}'\n" if ($verbose);                                          print STDERR "DIFF in table '$table' row ($col): [".join(",",@cols_pk)."] '$mrow->{$col}' != '$srow->{$col}'\n" if ($verbose);
441                                          print sql_delete($table,$srow,@cols_pk),"\n";                                          print sql_update($table,$col,$mrow->{$col},@cols_pk),";\n";
                                         print sql_insert($table,$mrow,@cols),"\n";  
                                         $have_mrow = FETCH_ROW;  
                                         $have_srow = FETCH_ROW;  
442                                  }                                  }
443                          }                          }
444                            $have_mrow = FETCH_ROW;
445                            $have_srow = FETCH_ROW;
446                  }                  }
447          }          }
448    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.26