Merge marko@bk-internal.mysql.com:/home/bk/mysql-4.0
into hundin.mysql.fi:/home/marko/k/mysql-4.0
This commit is contained in:
commit
e8885a0824
@ -27,6 +27,8 @@ Created 1/8/1996 Heikki Tuuri
|
|||||||
#include "que0que.h"
|
#include "que0que.h"
|
||||||
#include "rem0cmp.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 */
|
dict_sys_t* dict_sys = NULL; /* the dictionary system */
|
||||||
|
|
||||||
rw_lock_t dict_operation_lock; /* table create, drop, etc. reserve
|
rw_lock_t dict_operation_lock; /* table create, drop, etc. reserve
|
||||||
@ -172,7 +174,28 @@ and unique key errors */
|
|||||||
FILE* dict_foreign_err_file = NULL;
|
FILE* dict_foreign_err_file = NULL;
|
||||||
mutex_t dict_foreign_err_mutex; /* mutex protecting the foreign
|
mutex_t dict_foreign_err_mutex; /* mutex protecting the foreign
|
||||||
and unique error buffers */
|
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. */
|
Checks if the database name in two table names is the same. */
|
||||||
@ -2198,7 +2221,7 @@ dict_accept(
|
|||||||
|
|
||||||
*success = FALSE;
|
*success = FALSE;
|
||||||
|
|
||||||
while (isspace(*ptr)) {
|
while (dict_isspace(*ptr)) {
|
||||||
ptr++;
|
ptr++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2241,7 +2264,7 @@ dict_scan_id(
|
|||||||
|
|
||||||
*id = NULL;
|
*id = NULL;
|
||||||
|
|
||||||
while (isspace(*ptr)) {
|
while (dict_isspace(*ptr)) {
|
||||||
ptr++;
|
ptr++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2272,7 +2295,7 @@ dict_scan_id(
|
|||||||
len++;
|
len++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
while (!isspace(*ptr) && *ptr != '(' && *ptr != ')'
|
while (!dict_isspace(*ptr) && *ptr != '(' && *ptr != ')'
|
||||||
&& (accept_also_dot || *ptr != '.')
|
&& (accept_also_dot || *ptr != '.')
|
||||||
&& *ptr != ',' && *ptr != '\0') {
|
&& *ptr != ',' && *ptr != '\0') {
|
||||||
|
|
||||||
@ -2765,11 +2788,11 @@ loop:
|
|||||||
|
|
||||||
ut_a(success);
|
ut_a(success);
|
||||||
|
|
||||||
if (!isspace(*ptr) && *ptr != '"' && *ptr != '`') {
|
if (!dict_isspace(*ptr) && *ptr != '"' && *ptr != '`') {
|
||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (isspace(*ptr)) {
|
while (dict_isspace(*ptr)) {
|
||||||
ptr++;
|
ptr++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2795,7 +2818,7 @@ loop:
|
|||||||
|
|
||||||
ptr = dict_accept(ptr, "FOREIGN", &success);
|
ptr = dict_accept(ptr, "FOREIGN", &success);
|
||||||
|
|
||||||
if (!isspace(*ptr)) {
|
if (!dict_isspace(*ptr)) {
|
||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2883,7 +2906,7 @@ col_loop1:
|
|||||||
}
|
}
|
||||||
ptr = dict_accept(ptr, "REFERENCES", &success);
|
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,
|
dict_foreign_report_syntax_err(name, start_of_latest_foreign,
|
||||||
ptr);
|
ptr);
|
||||||
return(DB_CANNOT_ADD_CONSTRAINT);
|
return(DB_CANNOT_ADD_CONSTRAINT);
|
||||||
@ -3261,7 +3284,7 @@ loop:
|
|||||||
|
|
||||||
ptr = dict_accept(ptr, "DROP", &success);
|
ptr = dict_accept(ptr, "DROP", &success);
|
||||||
|
|
||||||
if (!isspace(*ptr)) {
|
if (!dict_isspace(*ptr)) {
|
||||||
|
|
||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,8 @@ Created 1/8/1996 Heikki Tuuri
|
|||||||
#include "ut0byte.h"
|
#include "ut0byte.h"
|
||||||
#include "trx0types.h"
|
#include "trx0types.h"
|
||||||
|
|
||||||
|
extern ibool dict_char_0xA0_is_space;
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
Get the database name length in a table name. */
|
Get the database name length in a table name. */
|
||||||
|
|
||||||
|
@ -64,6 +64,7 @@ extern "C" {
|
|||||||
#include "../innobase/include/log0log.h"
|
#include "../innobase/include/log0log.h"
|
||||||
#include "../innobase/include/lock0lock.h"
|
#include "../innobase/include/lock0lock.h"
|
||||||
#include "../innobase/include/dict0crea.h"
|
#include "../innobase/include/dict0crea.h"
|
||||||
|
#include "../innobase/include/dict0dict.h"
|
||||||
#include "../innobase/include/btr0cur.h"
|
#include "../innobase/include/btr0cur.h"
|
||||||
#include "../innobase/include/btr0btr.h"
|
#include "../innobase/include/btr0btr.h"
|
||||||
#include "../innobase/include/fsp0fsp.h"
|
#include "../innobase/include/fsp0fsp.h"
|
||||||
@ -917,6 +918,10 @@ innobase_init(void)
|
|||||||
|
|
||||||
srv_print_verbose_log = mysql_embedded ? 0 : 1;
|
srv_print_verbose_log = mysql_embedded ? 0 : 1;
|
||||||
|
|
||||||
|
if (my_isspace(default_charset_info, (char)0xA0)) {
|
||||||
|
dict_char_0xA0_is_space = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
if (strcmp(default_charset_info->name, "latin1") == 0) {
|
if (strcmp(default_charset_info->name, "latin1") == 0) {
|
||||||
|
|
||||||
/* Store the character ordering table to InnoDB.
|
/* Store the character ordering table to InnoDB.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user