[LON-CAPA-cvs] cvs: loncom / lonsql

www lon-capa-cvs@mail.lon-capa.org
Mon, 17 Jun 2002 14:00:09 -0000


www		Mon Jun 17 10:00:09 2002 EDT

  Modified files:              
    /loncom	lonsql 
  Log:
  Towards bug 121
  
  If the query command is 'logquery' instead of an SQL command, lonsql will
  go into another program block. Functionality to query logs should be
  implemented there.
  
  Also bugfix: a query-reply must ALWAYS have an "\n" in the end, or the
  remote end will wait forever. Previous statement "append if $result" might
  lead to lengthy timeout results if database is offline.
  
  
Index: loncom/lonsql
diff -u loncom/lonsql:1.43 loncom/lonsql:1.44
--- loncom/lonsql:1.43	Fri May 17 10:03:04 2002
+++ loncom/lonsql	Mon Jun 17 10:00:09 2002
@@ -3,7 +3,7 @@
 # The LearningOnline Network
 # lonsql - LON TCP-MySQL-Server Daemon for handling database requests.
 #
-# $Id: lonsql,v 1.43 2002/05/17 14:03:04 matthew Exp $
+# $Id: lonsql,v 1.44 2002/06/17 14:00:09 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -290,8 +290,13 @@
 	    print $client "$queryid\n";
 	    
 	    &logthis("QUERY: $query");
-	    &logthis("QUERY: $query");
 	    sleep 1;
+
+# ---------- At this point, query is received, query-ID assigned and sent back 
+# $query eq 'logquery' will mean that this is a query against log-files
+
+          unless ($query eq 'logquery') {
+# -------------------------------------------------------- This is an sql query
             #prepare and execute the query
 	    my $sth = $dbh->prepare($query);
 	    my $result;
@@ -371,8 +376,17 @@
 		$result=join("&",@r2) unless $query;
 		$result.=$customresult;
 	    }
-	    # reply with result
-	    $result.="\n" if $result;
+# ------------------------------------------------------------ end of sql query
+	} else {
+# ------------------------------------------------------ beginning of log query
+#
+# do log queries here
+#
+	    $result='not_yet_implemented';
+# ------------------------------------------------------------ end of log query
+	}
+	    # reply with result, append \n unless already there
+	    $result.="\n" unless ($result=~/\n$/);
             &reply("queryreply:$queryid:$result",$conserver);
 
         }