mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
Merge baker@bk-internal.mysql.com:/home/bk/mysql-4.1
into zim.(none):/home/brian/mysql/mysql-4.1
This commit is contained in:
commit
2506bfe8a3
8 changed files with 67 additions and 7 deletions
|
@ -489,7 +489,7 @@ __bam_new_file(dbp, txn, fhp, name)
|
||||||
goto err;
|
goto err;
|
||||||
} else {
|
} else {
|
||||||
#ifdef DIAGNOSTIC
|
#ifdef DIAGNOSTIC
|
||||||
memset(buf, dbp->pgsize, 0);
|
memset(buf, 0, dbp->pgsize);
|
||||||
#endif
|
#endif
|
||||||
root = (PAGE *)buf;
|
root = (PAGE *)buf;
|
||||||
}
|
}
|
||||||
|
|
|
@ -409,7 +409,7 @@ __ham_new_file(dbp, txn, fhp, name)
|
||||||
goto err;
|
goto err;
|
||||||
} else {
|
} else {
|
||||||
#ifdef DIAGNOSTIC
|
#ifdef DIAGNOSTIC
|
||||||
memset(buf, dbp->pgsize, 0);
|
memset(buf, 0, dbp->pgsize);
|
||||||
#endif
|
#endif
|
||||||
page = (PAGE *)buf;
|
page = (PAGE *)buf;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3073,9 +3073,14 @@ void tee_fprintf(FILE *file, const char *fmt, ...)
|
||||||
#ifdef OS2
|
#ifdef OS2
|
||||||
fflush( file);
|
fflush( file);
|
||||||
#endif
|
#endif
|
||||||
|
va_end(args);
|
||||||
|
|
||||||
if (opt_outfile)
|
if (opt_outfile)
|
||||||
|
{
|
||||||
|
va_start(args, fmt);
|
||||||
(void) vfprintf(OUTFILE, fmt, args);
|
(void) vfprintf(OUTFILE, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -77,3 +77,10 @@ big5_bin 6109
|
||||||
big5_bin 61
|
big5_bin 61
|
||||||
big5_bin 6120
|
big5_bin 6120
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
SET NAMES big5;
|
||||||
|
CREATE TABLE t1 (a text) character set big5;
|
||||||
|
INSERT INTO t1 VALUES ('ùØ');
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a
|
||||||
|
ùØ
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
|
@ -16,3 +16,12 @@ SET collation_connection='big5_chinese_ci';
|
||||||
-- source include/ctype_filesort.inc
|
-- source include/ctype_filesort.inc
|
||||||
SET collation_connection='big5_bin';
|
SET collation_connection='big5_bin';
|
||||||
-- source include/ctype_filesort.inc
|
-- source include/ctype_filesort.inc
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bugs#9357: TEXT columns break string with special word in BIG5 charset.
|
||||||
|
#
|
||||||
|
SET NAMES big5;
|
||||||
|
CREATE TABLE t1 (a text) character set big5;
|
||||||
|
INSERT INTO t1 VALUES ('ùØ');
|
||||||
|
SELECT * FROM t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
|
@ -18,8 +18,8 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
Signal::Signal(){
|
Signal::Signal(){
|
||||||
memset(&header, sizeof(header), 0);
|
memset(&header, 0, sizeof(header));
|
||||||
memset(theData, sizeof(theData), 0);
|
memset(theData, 0, sizeof(theData));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -6271,6 +6271,43 @@ my_mb_wc_big5(CHARSET_INFO *cs __attribute__((unused)),
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Returns a well formed length of a BIG5 string.
|
||||||
|
CP950 and HKSCS additional characters are also accepted.
|
||||||
|
*/
|
||||||
|
static
|
||||||
|
uint my_well_formed_len_big5(CHARSET_INFO *cs __attribute__((unused)),
|
||||||
|
const char *b, const char *e, uint pos)
|
||||||
|
{
|
||||||
|
const char *b0= b;
|
||||||
|
const char *emb= e - 1; /* Last possible end of an MB character */
|
||||||
|
while (pos && b < e)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
Cast to int8 for extra safety. "char" can be unsigned
|
||||||
|
by default on some platforms.
|
||||||
|
*/
|
||||||
|
if (((int8)b[0]) >= 0)
|
||||||
|
{
|
||||||
|
/* Single byte ascii character */
|
||||||
|
b++;
|
||||||
|
}
|
||||||
|
else if ((b < emb) && isbig5code((uchar)*b, (uchar)b[1]))
|
||||||
|
{
|
||||||
|
/* Double byte character */
|
||||||
|
b+= 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Wrong byte sequence */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return b - b0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static MY_COLLATION_HANDLER my_collation_big5_chinese_ci_handler =
|
static MY_COLLATION_HANDLER my_collation_big5_chinese_ci_handler =
|
||||||
{
|
{
|
||||||
NULL, /* init */
|
NULL, /* init */
|
||||||
|
@ -6291,7 +6328,7 @@ static MY_CHARSET_HANDLER my_charset_big5_handler=
|
||||||
mbcharlen_big5,
|
mbcharlen_big5,
|
||||||
my_numchars_mb,
|
my_numchars_mb,
|
||||||
my_charpos_mb,
|
my_charpos_mb,
|
||||||
my_well_formed_len_mb,
|
my_well_formed_len_big5,
|
||||||
my_lengthsp_8bit,
|
my_lengthsp_8bit,
|
||||||
my_numcells_8bit,
|
my_numcells_8bit,
|
||||||
my_mb_wc_big5, /* mb_wc */
|
my_mb_wc_big5, /* mb_wc */
|
||||||
|
|
|
@ -11617,6 +11617,7 @@ static void test_bug7990()
|
||||||
|
|
||||||
static void test_bug8378()
|
static void test_bug8378()
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_CHARSET_gbk
|
||||||
MYSQL *lmysql;
|
MYSQL *lmysql;
|
||||||
char out[9]; /* strlen(TEST_BUG8378)*2+1 */
|
char out[9]; /* strlen(TEST_BUG8378)*2+1 */
|
||||||
int len;
|
int len;
|
||||||
|
@ -11651,6 +11652,7 @@ static void test_bug8378()
|
||||||
DIE_UNLESS(memcmp(out, TEST_BUG8378_OUT, len) == 0);
|
DIE_UNLESS(memcmp(out, TEST_BUG8378_OUT, len) == 0);
|
||||||
|
|
||||||
mysql_close(lmysql);
|
mysql_close(lmysql);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Reference in a new issue