mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
ut0byte.h, ut0byte.c, dict0dict.c:
Make column names non-case-sensitive in referential constraints and put table and database names there in lower case in Windows innobase/dict/dict0dict.c: Make column names non-case-sensitive in referential constraints and put table and database names there in lower case in Windows innobase/ut/ut0byte.c: Make column names non-case-sensitive in referential constraints and put table and database names there in lower case in Windows innobase/include/ut0byte.h: Make column names non-case-sensitive in referential constraints and put table and database names there in lower case in Windows
This commit is contained in:
@ -1761,9 +1761,8 @@ dict_scan_col(
|
|||||||
col = dict_table_get_nth_col(table, i);
|
col = dict_table_get_nth_col(table, i);
|
||||||
|
|
||||||
if (ut_strlen(col->name) == (ulint)(ptr - old_ptr)
|
if (ut_strlen(col->name) == (ulint)(ptr - old_ptr)
|
||||||
&& 0 == ut_memcmp(col->name, old_ptr,
|
&& 0 == ut_cmp_in_lower_case(col->name, old_ptr,
|
||||||
(ulint)(ptr - old_ptr))) {
|
(ulint)(ptr - old_ptr))) {
|
||||||
|
|
||||||
/* Found */
|
/* Found */
|
||||||
|
|
||||||
*success = TRUE;
|
*success = TRUE;
|
||||||
@ -1827,11 +1826,20 @@ dict_scan_table_name(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef __WIN__
|
||||||
|
ut_cpy_in_lower_case(second_table_name + i, old_ptr,
|
||||||
|
ptr - old_ptr);
|
||||||
|
#else
|
||||||
ut_memcpy(second_table_name + i, old_ptr, ptr - old_ptr);
|
ut_memcpy(second_table_name + i, old_ptr, ptr - old_ptr);
|
||||||
|
#endif
|
||||||
second_table_name[i + (ptr - old_ptr)] = '\0';
|
second_table_name[i + (ptr - old_ptr)] = '\0';
|
||||||
} else {
|
} else {
|
||||||
|
#ifdef __WIN__
|
||||||
|
ut_cpy_in_lower_case(second_table_name, old_ptr,
|
||||||
|
ptr - old_ptr);
|
||||||
|
#else
|
||||||
ut_memcpy(second_table_name, old_ptr, ptr - old_ptr);
|
ut_memcpy(second_table_name, old_ptr, ptr - old_ptr);
|
||||||
|
#endif
|
||||||
second_table_name[dot_ptr - old_ptr] = '/';
|
second_table_name[dot_ptr - old_ptr] = '/';
|
||||||
second_table_name[ptr - old_ptr] = '\0';
|
second_table_name[ptr - old_ptr] = '\0';
|
||||||
}
|
}
|
||||||
|
@ -220,6 +220,26 @@ ut_bit_set_nth(
|
|||||||
ulint a, /* in: ulint */
|
ulint a, /* in: ulint */
|
||||||
ulint n, /* in: nth bit requested */
|
ulint n, /* in: nth bit requested */
|
||||||
ibool val); /* in: value for the bit to set */
|
ibool val); /* in: value for the bit to set */
|
||||||
|
/****************************************************************
|
||||||
|
Copies a string to a memory location, setting characters to lower case. */
|
||||||
|
|
||||||
|
void
|
||||||
|
ut_cpy_in_lower_case(
|
||||||
|
/*=================*/
|
||||||
|
char* dest, /* in: destination */
|
||||||
|
char* source, /* in: source */
|
||||||
|
ulint len); /* in: string length */
|
||||||
|
/****************************************************************
|
||||||
|
Compares two strings when converted to lower case. */
|
||||||
|
|
||||||
|
int
|
||||||
|
ut_cmp_in_lower_case(
|
||||||
|
/*=================*/
|
||||||
|
/* out: -1, 0, 1 if str1 < str2, str1 == str2,
|
||||||
|
str1 > str2, respectively */
|
||||||
|
char* str1, /* in: string1 */
|
||||||
|
char* str2, /* in: string2 */
|
||||||
|
ulint len); /* in: length of both strings */
|
||||||
|
|
||||||
|
|
||||||
#ifndef UNIV_NONINL
|
#ifndef UNIV_NONINL
|
||||||
|
@ -30,3 +30,46 @@ ut_dulint_sort(dulint* arr, dulint* aux_arr, ulint low, ulint high)
|
|||||||
ut_dulint_cmp);
|
ut_dulint_cmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************************************************************
|
||||||
|
Copies a string to a memory location, setting characters to lower case. */
|
||||||
|
|
||||||
|
void
|
||||||
|
ut_cpy_in_lower_case(
|
||||||
|
/*=================*/
|
||||||
|
char* dest, /* in: destination */
|
||||||
|
char* source,/* in: source */
|
||||||
|
ulint len) /* in: string length */
|
||||||
|
{
|
||||||
|
ulint i;
|
||||||
|
|
||||||
|
for (i = 0; i < len; i++) {
|
||||||
|
dest[i] = tolower(source[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************
|
||||||
|
Compares two strings when converted to lower case. */
|
||||||
|
|
||||||
|
int
|
||||||
|
ut_cmp_in_lower_case(
|
||||||
|
/*=================*/
|
||||||
|
/* out: -1, 0, 1 if str1 < str2, str1 == str2,
|
||||||
|
str1 > str2, respectively */
|
||||||
|
char* str1, /* in: string1 */
|
||||||
|
char* str2, /* in: string2 */
|
||||||
|
ulint len) /* in: length of both strings */
|
||||||
|
{
|
||||||
|
ulint i;
|
||||||
|
|
||||||
|
for (i = 0; i < len; i++) {
|
||||||
|
if (tolower(str1[i]) < tolower(str2[i])) {
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tolower(str1[i]) > tolower(str2[i])) {
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user