[Rt-commit] rt branch, articles-upgrade, updated. rt-3.9.7-922-g77209c3

Ruslan Zakirov ruz at bestpractical.com
Mon Dec 27 19:00:46 EST 2010


The branch, articles-upgrade has been updated
       via  77209c3fde59313d6b089ceeb860fdf411fba8bb (commit)
       via  37b0b19371ec785cd772b21b1bc72e9c4d79c8df (commit)
       via  6134b351eb410c5a36ca7a55c20cd29afbfe3a33 (commit)
      from  a2693b0112098cbf1d6f53ef67e3c45bbc16f8a6 (commit)

Summary of changes:
 etc/upgrade/upgrade-articles.in |   25 ++++++++++++-------------
 1 files changed, 12 insertions(+), 13 deletions(-)

- Log -----------------------------------------------------------------
commit 6134b351eb410c5a36ca7a55c20cd29afbfe3a33
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Tue Dec 28 02:58:45 2010 +0300

    table_info affected by NAME_lc on Oracle

diff --git a/etc/upgrade/upgrade-articles.in b/etc/upgrade/upgrade-articles.in
index 4c55802..5fade0d 100644
--- a/etc/upgrade/upgrade-articles.in
+++ b/etc/upgrade/upgrade-articles.in
@@ -67,7 +67,7 @@ my $dbh = $RT::Handle->dbh;
 my $sth = $dbh->table_info( '', undef, undef, "'TABLE'");
 my $found_fm_tables;
 while ( my $table = $sth->fetchrow_hashref ) {
-    my $name = $table->{TABLE_NAME};
+    my $name = $table->{TABLE_NAME} || $table->{'table_name'}; # Oracle's table_info affected by NAME_lc
     next unless $name =~ /^fm_/i;
     $found_fm_tables->{lc $name}++;
 }

commit 37b0b19371ec785cd772b21b1bc72e9c4d79c8df
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Tue Dec 28 02:59:33 2010 +0300

    use Field from RT::Handle instead of column_info

diff --git a/etc/upgrade/upgrade-articles.in b/etc/upgrade/upgrade-articles.in
index 5fade0d..e77751f 100644
--- a/etc/upgrade/upgrade-articles.in
+++ b/etc/upgrade/upgrade-articles.in
@@ -86,10 +86,8 @@ unless ( $found_fm_tables->{fm_topics} && $found_fm_tables->{fm_objecttopics} )
 
 
 { # port over Classes
-    $sth = $dbh->column_info( undef, RT->Config->Get('DatabaseName'), 'FM_Classes','HotList');
-    my $result = $sth->fetchall_arrayref;
     my @columns = qw(id Name Description SortOrder Disabled Creator Created LastUpdatedBy LastUpdated);
-    if (@$result) {
+    if ( grep lc($_) eq 'hotlist', $RT::Handle->Fields('FM_Classes') ) {
         push @columns, 'HotList';
     }
     copy_tables('FM_Classes','Classes',\@columns);

commit 77209c3fde59313d6b089ceeb860fdf411fba8bb
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Tue Dec 28 03:00:14 2010 +0300

    support insert from select on Oracle and SQLite

diff --git a/etc/upgrade/upgrade-articles.in b/etc/upgrade/upgrade-articles.in
index e77751f..d7c2853 100644
--- a/etc/upgrade/upgrade-articles.in
+++ b/etc/upgrade/upgrade-articles.in
@@ -106,16 +106,17 @@ unless ( $found_fm_tables->{fm_topics} && $found_fm_tables->{fm_objecttopics} )
 sub copy_tables {
     my ($source, $dest, $columns) = @_;
     my $column_list = join(', ',@$columns);
-    if ( $db_type eq 'mysql' ) {
-        my $sql = "insert into $dest ($column_list) select $column_list from $source";
-        $RT::Logger->debug($sql);
-        $dbh->do($sql);
-    } elsif ( $db_type eq 'Pg' ) {
-        my $sql = "insert into $dest ($column_list) (select $column_list from $source)";
-        $RT::Logger->debug($sql);
-        $dbh->do($sql);
+    my $sql;
+    # SQLite: http://www.sqlite.org/lang_insert.html
+    if ( $db_type eq 'mysql' || $db_type eq 'SQLite' ) {
+        $sql = "insert into $dest ($column_list) select $column_list from $source";
     }
-    # oracle/sqlite, sigh
+    # Oracle: http://www.adp-gmbh.ch/ora/sql/insert/select_and_subquery.html
+    elsif ( $db_type eq 'Pg' || $db_type eq 'Oracle' ) {
+        $sql = "insert into $dest ($column_list) (select $column_list from $source)";
+    }
+    $RT::Logger->debug($sql);
+    $dbh->do($sql);
 }
 
 { # create ObjectClasses

-----------------------------------------------------------------------


More information about the Rt-commit mailing list