[LON-CAPA-cvs] cvs: loncom /interface lonmysql.pm
lueken
lueken@source.lon-capa.org
Sun, 01 Feb 2009 22:03:42 -0000
lueken Sun Feb 1 22:03:42 2009 EDT
Modified files:
/loncom/interface lonmysql.pm
Log:
Show-Tables Cache: Buffering the result for later use in tables_in_db function (much faster)
Index: loncom/interface/lonmysql.pm
diff -u loncom/interface/lonmysql.pm:1.37 loncom/interface/lonmysql.pm:1.38
--- loncom/interface/lonmysql.pm:1.37 Wed Apr 11 22:37:17 2007
+++ loncom/interface/lonmysql.pm Sun Feb 1 22:03:42 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# MySQL utility functions
#
-# $Id: lonmysql.pm,v 1.37 2007/04/11 22:37:17 albertel Exp $
+# $Id: lonmysql.pm,v 1.38 2009/02/01 22:03:42 lueken Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1095,16 +1095,29 @@
=cut
###########################################
+
+########## Show-Tables Cache
+my $have_read_tables = 0;
+my $dbh_sth;
+##########
+
sub tables_in_db {
return undef if (!defined(&connect_to_db()));
- my $sth=$dbh->prepare('SHOW TABLES');
- $sth->execute();
- $sth->execute();
- my $aref = $sth->fetchall_arrayref;
- if ($sth->err()) {
+
+ ########## Show-Tables Cache
+ if(!$have_read_tables) {
+ $dbh_sth=$dbh->prepare('SHOW TABLES');
+ $have_read_tables = 1;
+ }
+ $dbh_sth->execute();
+ #$dbh_sth->execute(); # Removed strange execute - from release 119
+ ##########
+
+ my $aref = $dbh_sth->fetchall_arrayref;
+ if ($dbh_sth->err()) {
$errorstring =
"$dbh ATTEMPTED:\n".'fetchall_arrayref after SHOW TABLES'.
- "\nRESULTING ERROR:\n".$sth->errstr;
+ "\nRESULTING ERROR:\n".$dbh_sth->errstr;
return undef;
}
my @table_list;