mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Manual merge (again)
configure.in: Auto merged include/mysql.h: Auto merged innobase/row/row0mysql.c: Auto merged BitKeeper/deleted/.del-ctype-cp932.c: Auto merged BitKeeper/deleted/.del-errmsg.txt~4617575065d612b9: Auto merged BitKeeper/deleted/.del-errmsg.txt~ffe4a0c9e3206150: Auto merged libmysql/libmysql.c: Auto merged libmysqld/Makefile.am: Auto merged mysql-test/r/ctype_ucs.result: Auto merged mysql-test/t/ctype_ucs.test: Auto merged mysql-test/t/ps_grant.test: Auto merged sql/ha_blackhole.cc: Auto merged strings/ctype-big5.c: Auto merged strings/ctype-ucs2.c: Auto merged
This commit is contained in:
@ -57,6 +57,7 @@ case "$cpu_family--$model_name" in
|
|||||||
;;
|
;;
|
||||||
*Pentium*M*pro*)
|
*Pentium*M*pro*)
|
||||||
cpu_flag="pentium-m";
|
cpu_flag="pentium-m";
|
||||||
|
cpu_flag_old="pentium";
|
||||||
;;
|
;;
|
||||||
*Athlon*64*)
|
*Athlon*64*)
|
||||||
cpu_flag="athlon64";
|
cpu_flag="athlon64";
|
||||||
|
@ -1014,7 +1014,7 @@ vi_histedit(EditLine *el, int c)
|
|||||||
return CC_ERROR;
|
return CC_ERROR;
|
||||||
case 0:
|
case 0:
|
||||||
close(fd);
|
close(fd);
|
||||||
execlp("vi", "vi", tempfile, 0);
|
execlp("vi", "vi", tempfile, (char *) NULL);
|
||||||
exit(0);
|
exit(0);
|
||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
default:
|
default:
|
||||||
|
@ -141,8 +141,11 @@ AC_ARG_WITH(darwin-mwcc,
|
|||||||
export CC CXX LD AR RANLIB
|
export CC CXX LD AR RANLIB
|
||||||
AC_SUBST(AR)
|
AC_SUBST(AR)
|
||||||
AC_SUBST(RANLIB)
|
AC_SUBST(RANLIB)
|
||||||
|
with_darwin_mwcc=yes
|
||||||
])
|
])
|
||||||
|
|
||||||
|
AM_CONDITIONAL(DARWIN_MWCC, test x$with_darwin_mwcc = xyes)
|
||||||
|
|
||||||
if test "x${CFLAGS-}" = x ; then
|
if test "x${CFLAGS-}" = x ; then
|
||||||
cflags_is_set=no
|
cflags_is_set=no
|
||||||
else
|
else
|
||||||
|
@ -384,6 +384,7 @@ unsigned int STDCALL mysql_warning_count(MYSQL *mysql);
|
|||||||
const char * STDCALL mysql_info(MYSQL *mysql);
|
const char * STDCALL mysql_info(MYSQL *mysql);
|
||||||
unsigned long STDCALL mysql_thread_id(MYSQL *mysql);
|
unsigned long STDCALL mysql_thread_id(MYSQL *mysql);
|
||||||
const char * STDCALL mysql_character_set_name(MYSQL *mysql);
|
const char * STDCALL mysql_character_set_name(MYSQL *mysql);
|
||||||
|
int STDCALL mysql_set_character_set(MYSQL *mysql, char *csname);
|
||||||
|
|
||||||
MYSQL * STDCALL mysql_init(MYSQL *mysql);
|
MYSQL * STDCALL mysql_init(MYSQL *mysql);
|
||||||
my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key,
|
my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key,
|
||||||
|
@ -1885,10 +1885,18 @@ row_create_table_for_mysql(
|
|||||||
trx_general_rollback_for_mysql(trx, FALSE, NULL);
|
trx_general_rollback_for_mysql(trx, FALSE, NULL);
|
||||||
|
|
||||||
if (err == DB_OUT_OF_FILE_SPACE) {
|
if (err == DB_OUT_OF_FILE_SPACE) {
|
||||||
fputs("InnoDB: Warning: cannot create table ", stderr);
|
ut_print_timestamp(stderr);
|
||||||
|
|
||||||
|
fputs(" InnoDB: Warning: cannot create table ",
|
||||||
|
stderr);
|
||||||
ut_print_name(stderr, trx, table->name);
|
ut_print_name(stderr, trx, table->name);
|
||||||
fputs(" because tablespace full\n", stderr);
|
fputs(" because tablespace full\n", stderr);
|
||||||
row_drop_table_for_mysql(table->name, trx, FALSE);
|
|
||||||
|
if (dict_table_get_low(table->name)) {
|
||||||
|
|
||||||
|
row_drop_table_for_mysql(table->name, trx,
|
||||||
|
FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
} else if (err == DB_DUPLICATE_KEY) {
|
} else if (err == DB_DUPLICATE_KEY) {
|
||||||
ut_print_timestamp(stderr);
|
ut_print_timestamp(stderr);
|
||||||
|
@ -1495,6 +1495,36 @@ const char * STDCALL mysql_character_set_name(MYSQL *mysql)
|
|||||||
return mysql->charset->csname;
|
return mysql->charset->csname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int STDCALL mysql_set_character_set(MYSQL *mysql, char *cs_name)
|
||||||
|
{
|
||||||
|
struct charset_info_st *cs;
|
||||||
|
const char *save_csdir = charsets_dir;
|
||||||
|
|
||||||
|
if (mysql->options.charset_dir)
|
||||||
|
charsets_dir = mysql->options.charset_dir;
|
||||||
|
|
||||||
|
if ( (cs = get_charset_by_csname(cs_name, MY_CS_PRIMARY, MYF(0))) )
|
||||||
|
{
|
||||||
|
char buff[MY_CS_NAME_SIZE + 10];
|
||||||
|
charsets_dir = save_csdir;
|
||||||
|
sprintf(buff, "SET NAMES %s", cs_name);
|
||||||
|
if (!mysql_query(mysql, buff)) {
|
||||||
|
mysql->charset = cs;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
char cs_dir_name[FN_REFLEN];
|
||||||
|
get_charsets_dir(cs_dir_name);
|
||||||
|
mysql->net.last_errno=CR_CANT_READ_CHARSET;
|
||||||
|
strmov(mysql->net.sqlstate, unknown_sqlstate);
|
||||||
|
my_snprintf(mysql->net.last_error, sizeof(mysql->net.last_error)-1,
|
||||||
|
ER(mysql->net.last_errno),
|
||||||
|
cs_name,
|
||||||
|
cs_dir_name);
|
||||||
|
|
||||||
|
}
|
||||||
|
charsets_dir = save_csdir;
|
||||||
|
return mysql->net.last_errno;
|
||||||
|
}
|
||||||
|
|
||||||
uint STDCALL mysql_thread_safe(void)
|
uint STDCALL mysql_thread_safe(void)
|
||||||
{
|
{
|
||||||
@ -4375,9 +4405,12 @@ my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *bind)
|
|||||||
/*
|
/*
|
||||||
We only need to check that stmt->field_count - if it is not null
|
We only need to check that stmt->field_count - if it is not null
|
||||||
stmt->bind was initialized in mysql_stmt_prepare
|
stmt->bind was initialized in mysql_stmt_prepare
|
||||||
*/
|
stmt->bind overlaps with bind if mysql_stmt_bind_param
|
||||||
|
is called from mysql_stmt_store_result.
|
||||||
|
*/
|
||||||
|
|
||||||
memcpy((char*) stmt->bind, (char*) bind, sizeof(MYSQL_BIND) * bind_count);
|
if (stmt->bind != bind)
|
||||||
|
memcpy((char*) stmt->bind, (char*) bind, sizeof(MYSQL_BIND) * bind_count);
|
||||||
|
|
||||||
for (param= stmt->bind, end= param + bind_count, field= stmt->fields ;
|
for (param= stmt->bind, end= param + bind_count, field= stmt->fields ;
|
||||||
param < end ;
|
param < end ;
|
||||||
|
@ -148,6 +148,7 @@ EXPORTS
|
|||||||
mysql_embedded
|
mysql_embedded
|
||||||
mysql_server_init
|
mysql_server_init
|
||||||
mysql_server_end
|
mysql_server_end
|
||||||
|
mysql_set_character_set
|
||||||
get_defaults_files
|
get_defaults_files
|
||||||
get_charset_by_csname
|
get_charset_by_csname
|
||||||
get_charsets_dir
|
get_charsets_dir
|
||||||
|
@ -87,6 +87,9 @@ INC_LIB= $(top_builddir)/regex/libregex.a \
|
|||||||
# generate a total libmysqld.a from all library files,
|
# generate a total libmysqld.a from all library files,
|
||||||
|
|
||||||
libmysqld.a: libmysqld_int.a $(INC_LIB)
|
libmysqld.a: libmysqld_int.a $(INC_LIB)
|
||||||
|
if DARWIN_MWCC
|
||||||
|
mwld -lib -o $@ libmysqld_int.a `ls -1 $(INC_LIB) | sort -u`
|
||||||
|
else
|
||||||
if test "$(host_os)" = "netware" ; \
|
if test "$(host_os)" = "netware" ; \
|
||||||
then \
|
then \
|
||||||
$(libmysqld_a_AR) libmysqld.a libmysqld_int.a $(INC_LIB) ; \
|
$(libmysqld_a_AR) libmysqld.a libmysqld_int.a $(INC_LIB) ; \
|
||||||
@ -108,7 +111,7 @@ libmysqld.a: libmysqld_int.a $(INC_LIB)
|
|||||||
rm -f tmp/* ; \
|
rm -f tmp/* ; \
|
||||||
$(RANLIB) libmysqld.a ; \
|
$(RANLIB) libmysqld.a ; \
|
||||||
fi
|
fi
|
||||||
|
endif
|
||||||
|
|
||||||
## XXX: any time the client interface changes, we'll need to bump
|
## XXX: any time the client interface changes, we'll need to bump
|
||||||
## the version info for libmysqld; however, it's possible for the
|
## the version info for libmysqld; however, it's possible for the
|
||||||
|
@ -606,6 +606,24 @@ ucs2_bin 00610009
|
|||||||
ucs2_bin 0061
|
ucs2_bin 0061
|
||||||
ucs2_bin 00610020
|
ucs2_bin 00610020
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
select hex(substr(_ucs2 0x00e400e50068,1));
|
||||||
|
hex(substr(_ucs2 0x00e400e50068,1))
|
||||||
|
00E400E50068
|
||||||
|
select hex(substr(_ucs2 0x00e400e50068,2));
|
||||||
|
hex(substr(_ucs2 0x00e400e50068,2))
|
||||||
|
00E50068
|
||||||
|
select hex(substr(_ucs2 0x00e400e50068,3));
|
||||||
|
hex(substr(_ucs2 0x00e400e50068,3))
|
||||||
|
0068
|
||||||
|
select hex(substr(_ucs2 0x00e400e50068,-1));
|
||||||
|
hex(substr(_ucs2 0x00e400e50068,-1))
|
||||||
|
0068
|
||||||
|
select hex(substr(_ucs2 0x00e400e50068,-2));
|
||||||
|
hex(substr(_ucs2 0x00e400e50068,-2))
|
||||||
|
00E50068
|
||||||
|
select hex(substr(_ucs2 0x00e400e50068,-3));
|
||||||
|
hex(substr(_ucs2 0x00e400e50068,-3))
|
||||||
|
00E400E50068
|
||||||
SET NAMES latin1;
|
SET NAMES latin1;
|
||||||
SET collation_connection='ucs2_swedish_ci';
|
SET collation_connection='ucs2_swedish_ci';
|
||||||
CREATE TABLE t1 (Field1 int(10) default '0');
|
CREATE TABLE t1 (Field1 int(10) default '0');
|
||||||
|
@ -376,6 +376,16 @@ SET NAMES latin1;
|
|||||||
SET collation_connection='ucs2_bin';
|
SET collation_connection='ucs2_bin';
|
||||||
-- source include/ctype_filesort.inc
|
-- source include/ctype_filesort.inc
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#10344 Some string functions fail for UCS2
|
||||||
|
#
|
||||||
|
select hex(substr(_ucs2 0x00e400e50068,1));
|
||||||
|
select hex(substr(_ucs2 0x00e400e50068,2));
|
||||||
|
select hex(substr(_ucs2 0x00e400e50068,3));
|
||||||
|
select hex(substr(_ucs2 0x00e400e50068,-1));
|
||||||
|
select hex(substr(_ucs2 0x00e400e50068,-2));
|
||||||
|
select hex(substr(_ucs2 0x00e400e50068,-3));
|
||||||
|
|
||||||
SET NAMES latin1;
|
SET NAMES latin1;
|
||||||
#
|
#
|
||||||
# Bug#8235
|
# Bug#8235
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
# Can't test grants with embedded server
|
# Can't test grants with embedded server
|
||||||
-- source include/not_embedded.inc
|
-- source include/not_embedded.inc
|
||||||
|
|
||||||
# Tested here simply so it is not tested with embedded server
|
|
||||||
prepare stmt4 from ' show full processlist ';
|
|
||||||
--replace_column 1 number 6 time 3 localhost
|
|
||||||
execute stmt4;
|
|
||||||
|
|
||||||
let $type= 'MYISAM' ;
|
let $type= 'MYISAM' ;
|
||||||
|
|
||||||
@ -116,6 +112,11 @@ show grants for second_user@localhost ;
|
|||||||
|
|
||||||
drop database mysqltest;
|
drop database mysqltest;
|
||||||
|
|
||||||
|
# Tested here simply so it is not tested with embedded server
|
||||||
|
prepare stmt4 from ' show full processlist ';
|
||||||
|
--replace_column 1 number 6 time 3 localhost
|
||||||
|
execute stmt4;
|
||||||
|
|
||||||
## grant/revoke + drop user
|
## grant/revoke + drop user
|
||||||
--error 1295
|
--error 1295
|
||||||
prepare stmt3 from ' grant all on test.t1 to drop_user@localhost
|
prepare stmt3 from ' grant all on test.t1 to drop_user@localhost
|
||||||
|
@ -132,8 +132,9 @@ THR_LOCK_DATA **ha_blackhole::store_lock(THD *thd,
|
|||||||
THR_LOCK_DATA **to,
|
THR_LOCK_DATA **to,
|
||||||
enum thr_lock_type lock_type)
|
enum thr_lock_type lock_type)
|
||||||
{
|
{
|
||||||
|
if (lock_type != TL_IGNORE && lock.type == TL_UNLOCK)
|
||||||
|
lock.type=lock_type;
|
||||||
*to++= &lock;
|
*to++= &lock;
|
||||||
|
|
||||||
return to;
|
return to;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3307,7 +3307,7 @@ bool get_key_map_from_key_list(key_map *map, TABLE *table,
|
|||||||
0)
|
0)
|
||||||
{
|
{
|
||||||
my_error(ER_KEY_COLUMN_DOES_NOT_EXITS, MYF(0),
|
my_error(ER_KEY_COLUMN_DOES_NOT_EXITS, MYF(0),
|
||||||
name->c_ptr(), table->s->table_name);
|
name->c_ptr_safe(), table->s->table_name);
|
||||||
map->set_all();
|
map->set_all();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -6301,7 +6301,7 @@ uint my_well_formed_len_big5(CHARSET_INFO *cs __attribute__((unused)),
|
|||||||
const char *emb= e - 1; /* Last possible end of an MB character */
|
const char *emb= e - 1; /* Last possible end of an MB character */
|
||||||
|
|
||||||
*error= 0;
|
*error= 0;
|
||||||
while (pos && b < e)
|
while (pos-- && b < e)
|
||||||
{
|
{
|
||||||
if ((uchar) b[0] < 128)
|
if ((uchar) b[0] < 128)
|
||||||
{
|
{
|
||||||
|
@ -1267,7 +1267,7 @@ uint my_charpos_ucs2(CHARSET_INFO *cs __attribute__((unused)),
|
|||||||
const char *e __attribute__((unused)),
|
const char *e __attribute__((unused)),
|
||||||
uint pos)
|
uint pos)
|
||||||
{
|
{
|
||||||
return pos*2;
|
return pos > e - b ? e - b + 2 : pos * 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user