--- loncom/interface/lonmysql.pm	2005/04/11 15:33:46	1.30
+++ loncom/interface/lonmysql.pm	2005/08/24 19:33:32	1.35
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # MySQL utility functions
 #
-# $Id: lonmysql.pm,v 1.30 2005/04/11 15:33:46 albertel Exp $
+# $Id: lonmysql.pm,v 1.35 2005/08/24 19:33:32 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -37,6 +37,7 @@ use Apache::lonnet;
 my $mysqluser;
 my $mysqlpassword;
 my $mysqldatabase;
+my %db_config;
 
 sub set_mysql_user_and_password {
     # If we are running under Apache and LONCAPA, use the LON-CAPA 
@@ -375,6 +376,22 @@ sub connect_to_db {
         return undef;
     }
     $debugstring = "Successfully connected to loncapa database.";    
+    # Determine DB configuration
+    undef(%db_config);
+    my $sth = $dbh->prepare("SHOW VARIABLES");
+    $sth->execute();
+    if ($sth->err()) {
+        $debugstring = "Unable to retrieve db config variables";
+        return undef;
+    }
+    foreach my $row (@{$sth->fetchall_arrayref}) {
+        $db_config{$row->[0]} = $row->[1];
+    }
+    #&Apache::lonnet::logthis("MySQL configuration variables");
+    #while (my ($k,$v) = each(%db_config)) {
+    #    &Apache::lonnet::logthis("    '$k' => '$v'");
+    #}
+    #
     return 1;
 }
 
@@ -478,7 +495,6 @@ Be careful.
 ###############################
 sub get_dbh { 
     return undef if (! defined(&connect_to_db()));
-    &Apache::lonnet::logthis("reconnect set to ".$dbh->{mysql_auto_reconnect});
     return $dbh;
 }
 
@@ -555,10 +571,6 @@ sub update_table_info {
     #
     # Get MySQLs table status information.
     #
-    my @tabledesc = qw/
-        Name Type Row_format Rows Avg_row_length Data_length
-            Max_data_length Index_length Data_free Auto_increment 
-                Create_time Update_time Check_time Create_options Comment /;
     my $db_command = "SHOW TABLE STATUS FROM loncapa LIKE '$tablename'";
     my $sth = $dbh->prepare($db_command);
     $sth->execute();
@@ -568,14 +580,15 @@ sub update_table_info {
         &disconnect_from_db();
         return undef;
     }
+    my @column_name = @{$sth->{NAME}};
     #
     my @info=$sth->fetchrow_array;
     for (my $i=0;$i<= $#info ; $i++) {
-        if ($tabledesc[$i] !~ /^(Create_|Update_|Check_)time$/) {
-            $Tables{$tablename}->{$tabledesc[$i]}= 
+        if ($column_name[$i] =~ /^(Create_|Update_|Check_)time$/) {
+            $Tables{$tablename}->{$column_name[$i]}= 
                 &unsqltime($info[$i]);
         } else {
-            $Tables{$tablename}->{$tabledesc[$i]}= $info[$i];
+            $Tables{$tablename}->{$column_name[$i]}= $info[$i];
         }
     }
     #
@@ -978,6 +991,7 @@ sub bulk_store_rows {
         $request .= '('.join(',',@$row).'),';
     }
     $request =~ s/,$//;
+    # $debugstring = "Executed ".$/.$request; # commented out - this is big
     $dbh->do($request);
     if ($dbh->err) {
         $errorstring = 'Attempted '.$/.$request.$/.'Got error '.$dbh->errstr();