List:Commits« Previous MessageNext Message »
From:msvensson Date:January 11 2006 10:06am
Subject:bk commit into 5.0 tree (msvensson:1.2030)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of msvensson. When msvensson does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2030 06/01/11 11:06:26 msvensson@neptunus.(none) +2 -0
  Fix problem with strange printout of line numbers, detected on aix52, but existing on all platforms, just being masked by init of vars to zero.

  mysql-test/r/mysqltest.result
    1.24 06/01/11 11:06:20 msvensson@neptunus.(none) +1 -1
    Correct test result, "At line 1" should be printed 

  client/mysqltest.c
    1.194 06/01/11 11:06:20 msvensson@neptunus.(none) +16 -15
    Remove lineno_stack, instead use the already existing file_stack and add a new variable lineno to keep track of what line in the file we are at.

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	msvensson
# Host:	neptunus.(none)
# Root:	/home/msvensson/mysql/wl2930_fixup/my50-wl2930_fixup

--- 1.23/mysql-test/r/mysqltest.result	2006-01-11 00:24:51 +01:00
+++ 1.24/mysql-test/r/mysqltest.result	2006-01-11 11:06:20 +01:00
@@ -149,7 +149,7 @@
 mysqltest: At line 1: End of line junk detected: "6"
 mysqltest: At line 1: End of line junk detected: "6"
 mysqltest: At line 1: Missing delimiter
-mysqltest: End of line junk detected: "sleep 7
+mysqltest: At line 1: End of line junk detected: "sleep 7
 # Another comment
 "
 mysqltest: At line 1: Extra delimiter ";" found

--- 1.193/client/mysqltest.c	2006-01-11 00:24:51 +01:00
+++ 1.194/client/mysqltest.c	2006-01-11 11:06:20 +01:00
@@ -165,7 +165,6 @@
 static my_bool view_protocol= 0, view_protocol_enabled= 0;
 static my_bool cursor_protocol= 0, cursor_protocol_enabled= 0;
 static int parsing_disabled= 0;
-static uint start_lineno, *lineno;
 const char *manager_user="root",*manager_host=0;
 char *manager_pass=0;
 int manager_port=MYSQL_MANAGER_PORT;
@@ -180,13 +179,14 @@
 {
   FILE* file;
   const char *file_name;
+  uint lineno; /* Current line in file */
 } test_file;
 
 static test_file file_stack[MAX_INCLUDE_DEPTH];
 static test_file* cur_file;
 static test_file* file_stack_end;
+uint start_lineno; /* Start line of query */
 
-static uint lineno_stack[MAX_INCLUDE_DEPTH];
 static char TMPDIR[FN_REFLEN];
 static char delimiter[MAX_DELIMITER]= DEFAULT_DELIMITER;
 static uint delimiter_length= 1;
@@ -662,7 +662,7 @@
   va_start(args, fmt);
 
   fprintf(stderr, "mysqltest: ");
-  if (start_lineno > 0)
+  if (start_lineno != 0)
     fprintf(stderr, "At line %u: ", start_lineno);
   vfprintf(stderr, fmt, args);
   fprintf(stderr, "\n");
@@ -900,7 +900,7 @@
     die("Could not open file %s", buff);
   }
   cur_file->file_name= my_strdup(buff, MYF(MY_FAE));
-  *++lineno=1;
+  cur_file->lineno=1;
   DBUG_RETURN(0);
 }
 
@@ -2497,7 +2497,7 @@
   DBUG_ENTER("read_line");
   LINT_INIT(quote);
 
-  start_lineno= *lineno;
+  start_lineno= cur_file->lineno;
   for (; p < buf_end ;)
   {
     no_save= 0;
@@ -2512,28 +2512,25 @@
       }
       my_free((gptr)cur_file->file_name, MYF(MY_ALLOW_ZERO_PTR));
       cur_file->file_name= 0;
-      lineno--;
-      start_lineno= *lineno;
       if (cur_file == file_stack)
       {
         /* We're back at the first file, check if
            all { have matching }
          */
         if (cur_block != block_stack)
-        {
-          start_lineno= *(lineno+1);
           die("Missing end of block");
-        }
+
         DBUG_PRINT("info", ("end of file"));
 	DBUG_RETURN(1);
       }
       cur_file--;
+      start_lineno= cur_file->lineno;
       continue;
     }
 
     /* Line counting is independent of state */
     if (c == '\n')
-      (*lineno)++;
+      cur_file->lineno++;
 
     switch(state) {
     case R_NORMAL:
@@ -2562,14 +2559,15 @@
       break;
     case R_LINE_START:
       /* Only accept start of comment if this is the first line in query */
-      if ((*lineno == start_lineno) && (c == '#' || c == '-' || parsing_disabled))
+      if ((cur_file->lineno == start_lineno) &&
+	  (c == '#' || c == '-' || parsing_disabled))
       {
 	state = R_COMMENT;
       }
       else if (my_isspace(charset_info, c))
       {
 	if (c == '\n')
-	  start_lineno= *lineno;		/* Query hasn't started yet */
+	  start_lineno= cur_file->lineno; /* Query hasn't started yet */
 	no_save= 1;
       }
       else if (c == '}')
@@ -2895,6 +2893,7 @@
             my_fopen(buff, O_RDONLY | FILE_BINARY, MYF(0))))
 	die("Could not open %s: errno = %d", buff, errno);
       cur_file->file_name= my_strdup(buff, MYF(MY_FAE));
+      cur_file->lineno= 1;
       break;
     }
   case 'm':
@@ -4291,7 +4290,7 @@
   memset(&master_pos, 0, sizeof(master_pos));
   file_stack_end= file_stack + MAX_INCLUDE_DEPTH - 1;
   cur_file= file_stack;
-  lineno   = lineno_stack;
+
   my_init_dynamic_array(&q_lines, sizeof(struct st_query*), INIT_Q_LINES,
 		     INIT_Q_LINES);
 
@@ -4313,8 +4312,8 @@
   {
     cur_file->file= stdin;
     cur_file->file_name= my_strdup("<stdin>", MYF(MY_WME));
+    cur_file->lineno= 1;
   }
-  *lineno=1;
 #ifndef EMBEDDED_LIBRARY
   if (manager_host)
     init_manager();
@@ -4608,6 +4607,8 @@
 
     parser.current_line += current_line_inc;
   }
+
+  start_lineno= 0;
 
   /*
     The whole test has been executed _sucessfully_
Thread
bk commit into 5.0 tree (msvensson:1.2030)msvensson11 Jan