Commit 5f78275e authored by unknown's avatar unknown
Browse files

Merge


innobase/dict/dict0dict.c:
  Auto merged
innobase/include/dict0dict.h:
  Auto merged
sql/log.cc:
  Auto merged
sql/ha_innodb.cc:
  SCCS merged
sql/sql_class.cc:
  SCCS merged
parents 0be6eab6 c486461e
Loading
Loading
Loading
Loading
+32 −9
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ Created 1/8/1996 Heikki Tuuri
#include "que0que.h"
#include "rem0cmp.h"

ibool		dict_char_0xA0_is_space = FALSE; /* A special fix for 4.0 */

dict_sys_t*	dict_sys	= NULL;	/* the dictionary system */

rw_lock_t	dict_operation_lock;	/* table create, drop, etc. reserve
@@ -196,7 +198,28 @@ and unique key errors */
FILE*	dict_foreign_err_file		= NULL;
mutex_t	dict_foreign_err_mutex; 	/* mutex protecting the foreign
					and unique error buffers */
/************************************************************************
Checks if a byte is considered space in the current charset of MySQL.
TODO: find out if this works correctly in multibyte charsets. */ 
static
ibool
dict_isspace(
/*=========*/	
		/* out: TRUE if considered space */
	char c)	/* in: one-byte character */
{
	if (isspace(c)) {

		return(TRUE);
	}

	if (dict_char_0xA0_is_space && (byte)c == (byte)0xA0) {

		return(TRUE);
	}

	return(FALSE);
}	
	
/************************************************************************
Checks if the database name in two table names is the same. */
@@ -2324,7 +2347,7 @@ dict_accept(

	*success = FALSE;
	
	while (isspace(*ptr)) {
	while (dict_isspace(*ptr)) {
		ptr++;
	}

@@ -2369,7 +2392,7 @@ dict_scan_id(

	*id = NULL;

	while (isspace(*ptr)) {
	while (dict_isspace(*ptr)) {
		ptr++;
	}

@@ -2400,7 +2423,7 @@ dict_scan_id(
			len++;
		}
	} else {
		while (!isspace(*ptr) && *ptr != '(' && *ptr != ')'
		while (!dict_isspace(*ptr) && *ptr != '(' && *ptr != ')'
		       && (accept_also_dot || *ptr != '.')
		       && *ptr != ',' && *ptr != '\0') {

@@ -2904,11 +2927,11 @@ dict_create_foreign_constraints_low(

		ut_a(success);

		if (!isspace(*ptr) && *ptr != '"' && *ptr != '`') {
		if (!dict_isspace(*ptr) && *ptr != '"' && *ptr != '`') {
	        	goto loop;
		}

		while (isspace(*ptr)) {
		while (dict_isspace(*ptr)) {
			ptr++;
		}

@@ -2934,7 +2957,7 @@ dict_create_foreign_constraints_low(

	ptr = dict_accept(ptr, "FOREIGN", &success);		
	
	if (!isspace(*ptr)) {
	if (!dict_isspace(*ptr)) {
	        goto loop;
	}

@@ -3022,7 +3045,7 @@ dict_create_foreign_constraints_low(
	}
	ptr = dict_accept(ptr, "REFERENCES", &success);

	if (!success || !isspace(*ptr)) {
	if (!success || !dict_isspace(*ptr)) {
		dict_foreign_report_syntax_err(name, start_of_latest_foreign,
									ptr);
		return(DB_CANNOT_ADD_CONSTRAINT);
@@ -3403,7 +3426,7 @@ dict_foreign_parse_drop_constraints(

	ptr = dict_accept(ptr, "DROP", &success);

	if (!isspace(*ptr)) {
	if (!dict_isspace(*ptr)) {

	        goto loop;
	}
+2 −0
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@ Created 1/8/1996 Heikki Tuuri
#include "ut0byte.h"
#include "trx0types.h"

extern ibool		dict_char_0xA0_is_space;

/************************************************************************
Get the database name length in a table name. */

+10 −8
Original line number Diff line number Diff line
@@ -2036,6 +2036,7 @@ bool flush_error_log()
    char err_renamed[FN_REFLEN], *end;
    end= strmake(err_renamed,log_error_file,FN_REFLEN-4);
    strmov(end, "-old");
    VOID(pthread_mutex_lock(&LOCK_error_log));
#ifdef __WIN__
    char err_temp[FN_REFLEN+4];
    /*
@@ -2056,7 +2057,7 @@ bool flush_error_log()
      if ((fd = my_open(err_temp, O_RDONLY, MYF(0))) >= 0)
      {
        while ((bytes = (int) my_read(fd, (byte*) buf, IO_SIZE, MYF(0))) > 0)
             my_fwrite(stderr, (byte*) buf, (uint) strlen(buf),MYF(0));
             my_fwrite(stderr, (byte*) buf, bytes, MYF(0));
        my_close(fd, MYF(0));
      }
      (void) my_delete(err_temp, MYF(0));
@@ -2070,6 +2071,7 @@ bool flush_error_log()
    else
      result= 1;
#endif
    VOID(pthread_mutex_unlock(&LOCK_error_log));
  }
   return result;
}