Commit 871977f2 authored by unknown's avatar unknown
Browse files

Merge mysql.com:/home/jimw/my/mysql-4.1-clean

into  mysql.com:/home/jimw/my/mysql-5.0-clean


client/mysql.cc:
  Auto merged
mysql-test/r/lowercase_table2.result:
  Auto merged
sql/mysqld.cc:
  Auto merged
parents 9b7f8f70 da4838a0
Loading
Loading
Loading
Loading
+22 −2
Original line number Diff line number Diff line
@@ -953,6 +953,7 @@ static int read_lines(bool execute_commands)
{
#if defined( __WIN__) || defined(OS2) || defined(__NETWARE__)
  char linebuffer[254];
  String buffer;
#endif
  char	*line;
  char	in_string=0;
@@ -994,8 +995,24 @@ static int read_lines(bool execute_commands)
          *p = '\0';
      }
#else
      linebuffer[0]= (char) sizeof(linebuffer);
      buffer.length(0);
      /* _cgets() expects the buffer size - 3 as the first byte */
      linebuffer[0]= (char) sizeof(linebuffer) - 3;
      do
      {
        line= _cgets(linebuffer);
        buffer.append(line, (unsigned char)linebuffer[1]);
      /*
        If _cgets() gets an input line that is linebuffer[0] bytes
        long, the next call to _cgets() will return immediately with
        linebuffer[1] == 0, and it does the same thing for input that
        is linebuffer[0]-1 bytes long. So it appears that even though
        _cgets() replaces the newline (which is two bytes on Window) with
        a nil, it still needs the space in the linebuffer for it. This is,
        naturally, undocumented.
       */
      } while (linebuffer[0] <= linebuffer[1] + 1);
      line= buffer.c_ptr();
#endif /* __NETWARE__ */
#else
      if (opt_outfile)
@@ -1052,6 +1069,9 @@ static int read_lines(bool execute_commands)
	status.exit_status=0;
    }
  }
#if defined( __WIN__) || defined(OS2) || defined(__NETWARE__)
  buffer.free();
#endif
  return status.exit_status;
}

+6 −1
Original line number Diff line number Diff line
DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3;
DROP TABLE IF EXISTS t1,t2,t3;
DROP DATABASE IF EXISTS `TEST_$1`;
DROP DATABASE IF EXISTS `test_$1`;
CREATE TABLE T1 (a int);
@@ -159,3 +159,8 @@ select * from myUC;
i
use test;
drop database mysqltest_LC2;
create table t2aA (col1 int);
create table t1Aa (col1 int);
select t1Aa.col1 from t1aA,t2Aa where t1Aa.col1 = t2aA.col1;
col1
drop table t2aA, t1Aa;
+9 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ show variables like "lower_case_table_names";
enable_query_log;

--disable_warnings
DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3;
DROP TABLE IF EXISTS t1,t2,t3;
DROP DATABASE IF EXISTS `TEST_$1`;
DROP DATABASE IF EXISTS `test_$1`;
--enable_warnings
@@ -128,3 +128,11 @@ create table myUC (i int);
select * from myUC;
use test;
drop database mysqltest_LC2;

#
# Bug #9500: Problem with WHERE clause
#
create table t2aA (col1 int);
create table t1Aa (col1 int);
select t1Aa.col1 from t1aA,t2Aa where t1Aa.col1 = t2aA.col1;
drop table t2aA, t1Aa;
+5 −3
Original line number Diff line number Diff line
@@ -3095,6 +3095,11 @@ You should consider changing lower_case_table_names to 1 or 2",
    lower_case_table_names= 0;
  }

  /* Reset table_alias_charset, now that lower_case_table_names is set. */
  table_alias_charset= (lower_case_table_names ?
			files_charset_info :
			&my_charset_bin);

  select_thread=pthread_self();
  select_thread_in_use=1;
  init_ssl();
@@ -6795,9 +6800,6 @@ static void get_options(int argc,char **argv)

  /* Set global variables based on startup options */
  myisam_block_size=(uint) 1 << my_bit_log2(opt_myisam_block_size);
  table_alias_charset= (lower_case_table_names ?
			files_charset_info :
			&my_charset_bin);

  if (opt_short_log_format)
    opt_specialflag|= SPECIAL_SHORT_LOG_FORMAT;