From: olav%bkor.dhs.org <> Date: Sun, 2 Sep 2007 14:32:30 +0000 (+0000) Subject: Bug 394627: bzdbcopy.pl should remove column quoting X-Git-Tag: bugzilla-3.0.2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a85fb417294a11d5f286254c8fb4fc9cbf193232;p=thirdparty%2Fbugzilla.git Bug 394627: bzdbcopy.pl should remove column quoting Patch By Olav Vitters r=mkanat, a=mkanat --- diff --git a/contrib/bzdbcopy.pl b/contrib/bzdbcopy.pl index ebfe3e45b6..489909882a 100755 --- a/contrib/bzdbcopy.pl +++ b/contrib/bzdbcopy.pl @@ -53,6 +53,7 @@ print "Connecting to the '" . TARGET_DB_NAME . "' target database on " . TARGET_DB_TYPE . "...\n"; my $target_db = Bugzilla::DB::_connect(TARGET_DB_TYPE, 'localhost', TARGET_DB_NAME, undef, undef, TARGET_DB_USER, TARGET_DB_PASSWORD); +my $ident_char = $target_db->get_info( 29 ); # SQL_IDENTIFIER_QUOTE_CHAR # We use the table list from the target DB, because if somebody # has customized their source DB, we still want the script to work, @@ -74,6 +75,11 @@ foreach my $table (@table_list) { print "Reading data from the source '$table' table on " . SOURCE_DB_TYPE . "...\n"; my @table_columns = $target_db->bz_table_columns_real($table); + # The column names could be quoted using the quote identifier char + # Remove these chars as different databases use different quote chars + @table_columns = map { s/^\Q$ident_char\E?(.*?)\Q$ident_char\E?$/$1/; $_ } + @table_columns; + my $select_query = "SELECT " . join(',', @table_columns) . " FROM $table"; my $data_in = $source_db->selectall_arrayref($select_query);