From cecb985bee3bdd252e1b8dc0bd500b37cd52be01 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 16 May 2007 20:58:53 +0000 Subject: Aktualisierung auf MediaWiki 1.10.0 Plugins angepasst und verbessert kleine Korrekturen am Design --- maintenance/postgres/compare_schemas.pl | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'maintenance/postgres/compare_schemas.pl') diff --git a/maintenance/postgres/compare_schemas.pl b/maintenance/postgres/compare_schemas.pl index cdbbdf41..ce045fef 100644 --- a/maintenance/postgres/compare_schemas.pl +++ b/maintenance/postgres/compare_schemas.pl @@ -7,8 +7,8 @@ use strict; use warnings; use Data::Dumper; -my @old = ("../tables.sql", "../mysql5/tables.sql", "../mysql5/tables-binary.sql"); -my $new = "tables.sql"; +my @old = ('../tables.sql'); +my $new = 'tables.sql'; my @xfile; ## Read in exceptions and other metadata @@ -27,7 +27,7 @@ while () { push @xfile, $val; next; } - for (split(/\s+/ => $val)) { + for (split /\s+/ => $val) { $ok{$name}{$_} = 0; } } @@ -46,16 +46,16 @@ my $typeval = qr{(\(\d+\))?}; my $typeval2 = qr{ unsigned| binary| NOT NULL| NULL| auto_increment| default ['\-\d\w"]+| REFERENCES .+CASCADE}; -my $indextype = join '|' => qw(INDEX KEY FULLTEXT), "PRIMARY KEY", "UNIQUE INDEX", "UNIQUE KEY"; +my $indextype = join '|' => qw(INDEX KEY FULLTEXT), 'PRIMARY KEY', 'UNIQUE INDEX', 'UNIQUE KEY'; $indextype = qr{$indextype}; my $engine = qr{TYPE|ENGINE}; -my $tabletype = qr{InnoDB|MyISAM|HEAP|HEAP MAX_ROWS=\d+}; +my $tabletype = qr{InnoDB|MyISAM|HEAP|HEAP MAX_ROWS=\d+|InnoDB MAX_ROWS=\d+ AVG_ROW_LENGTH=\d+}; my $charset = qr{utf8|binary}; -open my $newfh, "<", $new or die qq{Could not open $new: $!\n}; +open my $newfh, '<', $new or die qq{Could not open $new: $!\n}; my ($table,%old); @@ -83,7 +83,7 @@ sub parse_sql { my $oldfile = shift; - open my $oldfh, "<", $oldfile or die qq{Could not open $oldfile: $!\n}; + open my $oldfh, '<', $oldfile or die qq{Could not open $oldfile: $!\n}; my %info; while (<$oldfh>) { @@ -97,6 +97,10 @@ sub parse_sql { $table = $1; $info{$table}{name}=$table; } + elsif (m#^\) /\*\$wgDBTableOptions\*/#) { + $info{$table}{engine} = 'TYPE'; + $info{$table}{type} = 'variable'; + } elsif (/^\) ($engine)=($tabletype);$/) { $info{$table}{engine}=$1; $info{$table}{type}=$2; @@ -110,8 +114,8 @@ sub parse_sql { $info{$table}{column}{$1} = $2; } elsif (/^ ($indextype)(?: (\w+))? \(([\w, \(\)]+)\),?$/) { - $info{$table}{lc $1."_name"} = $2 ? $2 : ""; - $info{$table}{lc $1."pk_target"} = $3; + $info{$table}{lc $1.'_name'} = $2 ? $2 : ''; + $info{$table}{lc $1.'pk_target'} = $3; } else { die "Cannot parse line $. of $oldfile:\n$_\n"; @@ -209,13 +213,13 @@ for my $t (sort keys %{$old{$oldfile}}) { my $newcol = $new{$newt}{column}; for my $c (keys %$oldcol) { if (!exists $newcol->{$c}) { - print "Column $t.$c not in new\n"; + print "Column $t.$c not in $new\n"; next; } } for my $c (keys %$newcol) { if (!exists $oldcol->{$c}) { - print "Column $t.$c not in old\n"; + print "Column $t.$c not in $oldfile\n"; next; } } @@ -223,7 +227,7 @@ for my $t (sort keys %{$old{$oldfile}}) { ## New but not old: for (sort keys %new) { if (!exists $old{$oldfile}{$_} and !exists $ok{NEW}{$_}) { - print "Not in old: $_\n"; + print "Not in $oldfile: $_\n"; next; } } @@ -235,9 +239,7 @@ for (sort keys %new) { __DATA__ ## Known exceptions OLD: searchindex ## We use tsearch2 directly on the page table instead -OLD: archive ## This is a view due to the char(14) timestamp hack RENAME: user mwuser ## Reserved word causing lots of problems RENAME: text pagecontent ## Reserved word -NEW: archive2 ## The real archive table NEW: mediawiki_version ## Just us, for now XFILE: ../archives/patch-profiling.sql -- cgit v1.2.3-54-g00ecf