Changeset - 8514c3a9b389
[Not reviewed]
default
0 1 0
Nathan Brink (binki) - 16 years ago 2010-02-19 20:59:02
ohnobinki@ohnopublishing.net
Flush mysql result buffer even when an empty response is expected
1 file changed with 18 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/server/mysql.c
Show inline comments
 
@@ -162,12 +162,23 @@ distrend_mysql_result_t mysqlQuery(distr
 
     fprintf(stderr, "%s\n", mysql_error(conn->mysqlconn));
 
  fprintf(stderr,"Queried!\n");
 

	
 
  if(!expected_columns)
 
    return NULL;
 

	
 
  fprintf(stderr,"Getting results... ");
 
  result = mysql_use_result(conn->mysqlconn);
 
  
 
  /**
 
     Flush stuff out when an empty set is expected.
 
   */
 
  if(!expected_columns)
 
    {
 
      while(mysql_fetch_row(result))
 
	;
 
      mysql_free_result(result);
 
      return NULL;
 
    }
 

	
 
  /**
 
     Sanity check
 
   */
 
  num_columns = mysql_num_fields(result);
 
  if(num_columns != expected_columns)
 
    {
 
@@ -176,9 +187,11 @@ distrend_mysql_result_t mysqlQuery(distr
 
      mysql_free_result(result);
 
      return NULL;
 
    }
 
  
 
  fprintf(stderr,"Done!\n");
 
  
 

	
 
  /**
 
     Prepare data for return.
 
   */
 
  distrenresult = malloc(sizeof(struct distrend_mysql_result));
 
  if(!distrenresult)
 
    {
0 comments (0 inline, 0 general)