logo       

bk commit into 4.0 tree (1.1473): msg#00375

db.mysql.devel

Subject: bk commit into 4.0 tree (1.1473)

Below is the list of changes that have just been committed into a local
4.0 repository of monty. When monty does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://www.mysql.com/doc/I/n/Installing_source_tree.html

ChangeSet
1.1473 03/04/26 20:43:28 monty@xxxxxxxxxxxxxxx +17 -0
Fix for -fbranch-probabilites (bug 268)
Fix for LEFT/RIGHT/MID with multi-byte-character sets (bug 314)
Fix for new bison 1.875
max_insert_delayed_threads and delayed_insert_timeout now works as documented
(bug 211)
Don't show port in SHOW PROCESSLIST for system threads
Fix problem with ORDER BY being discarded for some DISTINCT queries (bug 275)
Fixed bug with NATURAL LEFT JOIN, NATURAL RIGHT JOIN and RIGHT JOIN when
using many joined tables (Bug 212)

mysql-test/t/ctype_ujis.test
1.1 03/04/26 20:43:26 monty@xxxxxxxxxxxxxxx +13 -0

mysql-test/t/ctype_ujis-master.opt
1.1 03/04/26 20:43:26 monty@xxxxxxxxxxxxxxx +1 -0

mysql-test/t/ctype_ujis.test
1.0 03/04/26 20:43:26 monty@xxxxxxxxxxxxxxx +0 -0
BitKeeper file /home/my/mysql-4.0/mysql-test/t/ctype_ujis.test

mysql-test/t/ctype_ujis-master.opt
1.0 03/04/26 20:43:26 monty@xxxxxxxxxxxxxxx +0 -0
BitKeeper file /home/my/mysql-4.0/mysql-test/t/ctype_ujis-master.opt

mysql-test/r/ctype_ujis.result
1.1 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +8 -0

sql/sql_yacc.yy
1.204 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +14 -12
Fixed bug with NATURAL LEFT JOIN, NATURAL RIGHT JOIN and RIGHT JOIN when
using many joined tables.

sql/sql_select.cc
1.230 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +10 -0
Fix problem with ORDER BY being discarded and results returned un-sorted

sql/sql_parse.cc
1.307 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +20 -3
Added comment

sql/sql_insert.cc
1.97 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +4 -1
max_insert_delayed_threads now works as documented.
delayed_insert_timeout now works on Linux

sql/sql_class.cc
1.103 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +1 -0
Don't show port in SHOW PROCESSLIST for system threads

sql/mysqld.cc
1.418 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +2 -2
Fix for new bison 1.875 (Wrong error text message when one got syntax error)

sql/item_strfunc.cc
1.57 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +2 -2
Fix for LEFT/RIGHT/MID with multi-byte-character sets

mysql-test/t/join.test
1.17 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +32 -0
Update results after change to NATURAL/LEFT/RIGHT JOIN

mysql-test/r/select.result
1.26 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +2 -14
Update results after change to NATURAL/LEFT/RIGHT JOIN

mysql-test/r/join_outer.result
1.14 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +1 -6
Update results after change to NATURAL/LEFT/RIGHT JOIN

mysql-test/r/join.result
1.21 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +87 -0
Update results after change to NATURAL/LEFT/RIGHT JOIN

mysql-test/r/ctype_ujis.result
1.0 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +0 -0
BitKeeper file /home/my/mysql-4.0/mysql-test/r/ctype_ujis.result

myisam/mi_open.c
1.60 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +5 -2
Give error instead of writing to stderr (Which user can't see)

configure.in
1.270 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +3 -3
Fix for -fbranch-probabilites

acinclude.m4
1.81 03/04/26 20:43:25 monty@xxxxxxxxxxxxxxx +1 -1
Fix for -fbranch-probabilites

# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: monty
# Host: mashka.mysql.fi
# Root: /home/my/mysql-4.0

--- 1.80/acinclude.m4 Sun Jan 5 20:18:47 2003
+++ 1.81/acinclude.m4 Sat Apr 26 20:43:25 2003
@@ -38,7 +38,7 @@
AC_LANG_CPLUSPLUS
if test "$ac_cv_prog_gxx" = "yes"
then
- CXXFLAGS="$CXXFLAGS -Werror"
+ CXXFLAGS=`echo $CXXFLAGS -Werror | sed 's/-fbranch-probabilities//'`
fi
mysql_cv_btype_last_arg_accept=none
[AC_TRY_COMPILE([#if defined(inline)

--- 1.269/configure.in Wed Mar 19 00:47:36 2003
+++ 1.270/configure.in Sat Apr 26 20:43:25 2003
@@ -1862,7 +1862,7 @@
AC_LANG_CPLUSPLUS
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
then
- CXXFLAGS="$CXXFLAGS -Werror"
+ CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed 's/-fbranch-probabilities//'`
fi
AC_TRY_COMPILE(
[#undef inline
@@ -1894,7 +1894,7 @@
AC_LANG_CPLUSPLUS
if test "$ac_cv_prog_gxx" = "yes" -a "$with_other_libc" = "no"
then
- CXXFLAGS="$CXXFLAGS -Werror"
+ CXXFLAGS=`echo "$CXXFLAGS -Werror" | sed 's/-fbranch-probabilities//'`
fi
AC_TRY_COMPILE(
[#undef inline
@@ -2341,7 +2341,7 @@
mbcharlen_${c}"
else
CHARSET_COMP_CS_INIT="$CHARSET_COMP_CS_INIT
- 0, /* mbmaxlen */
+ 1, /* mbmaxlen */
NULL, /* ismbchar */
NULL, /* ismbhead */
NULL /* mbcharlen */"

--- 1.59/myisam/mi_open.c Wed Apr 23 13:03:19 2003
+++ 1.60/myisam/mi_open.c Sat Apr 26 20:43:25 2003
@@ -183,8 +183,11 @@
share->state_diff_length=len-MI_STATE_INFO_SIZE;

if (share->state.header.fulltext_keys)
- fprintf(stderr, "Table file %s was created in MySQL 4.1+, use REPAIR
TABLE ... USE_FRM to recreate it as a valid MySQL 4.0 table\n", name_buff);
-
+ {
+ /* Not supported in this version */
+ my_errno= HA_ERR_UNSUPPORTED;
+ goto err;
+ }
mi_state_info_read(disk_cache, &share->state);
len= mi_uint2korr(share->state.header.base_info_length);
if (len != MI_BASE_INFO_SIZE)

--- 1.56/sql/item_strfunc.cc Sun Mar 30 16:35:24 2003
+++ 1.57/sql/item_strfunc.cc Sat Apr 26 20:43:25 2003
@@ -899,7 +899,7 @@
max_length=args[0]->max_length;
if (args[1]->const_item())
{
- int length=(int) args[1]->val_int();
+ int length=(int) args[1]->val_int()*default_charset_info->mbmaxlen;
if (length <= 0)
max_length=0;
else
@@ -992,7 +992,7 @@
}
if (arg_count == 3 && args[2]->const_item())
{
- int32 length= (int32) args[2]->val_int();
+ int32 length= (int32) args[2]->val_int() * default_charset_info->mbmaxlen;
if (length <= 0)
max_length=0; /* purecov: inspected */
else

--- 1.417/sql/mysqld.cc Thu Apr 24 00:09:42 2003
+++ 1.418/sql/mysqld.cc Sat Apr 26 20:43:25 2003
@@ -1233,7 +1233,7 @@
{
NET *net=my_pthread_getspecific_ptr(NET*,THR_NET);
char *yytext=(char*) current_lex->tok_start;
- if (!strcmp(s,"parse error"))
+ if (!strcmp(s,"parse error") || !strcmp(s,"syntax error"))
s=ER(ER_SYNTAX_ERROR);
net_printf(net,ER_PARSE_ERROR, s, yytext ? (char*) yytext : "",
current_lex->yylineno);
@@ -3787,7 +3787,7 @@
(gptr*) &max_connect_errors, (gptr*) &max_connect_errors, 0, GET_ULONG,
REQUIRED_ARG, MAX_CONNECT_ERRORS, 1, ~0L, 0, 1, 0},
{"max_delayed_threads", OPT_MAX_DELAYED_THREADS,
- "Don't start more than this number of threads to handle INSERT DELAYED
statements. This option does not yet have effect (on TODO), unless it is set to
zero, which means INSERT DELAYED is not used.",
+ "Don't start more than this number of threads to handle INSERT DELAYED
statements. If set to zero, which means INSERT DELAYED is not used.",
(gptr*) &max_insert_delayed_threads, (gptr*) &max_insert_delayed_threads,
0, GET_ULONG, REQUIRED_ARG, 20, 0, 16384, 0, 1, 0},
{"max_heap_table_size", OPT_MAX_HEP_TABLE_SIZE,

--- 1.102/sql/sql_class.cc Tue Mar 18 23:13:45 2003
+++ 1.103/sql/sql_class.cc Sat Apr 26 20:43:25 2003
@@ -110,6 +110,7 @@
net.last_error[0]=0; // If error on boot
ull=0;
system_thread=cleanup_done=0;
+ peer_port= 0; // For SHOW PROCESSLIST
transaction.changed_tables = 0;
#ifdef __WIN__
real_id = 0;

--- 1.96/sql/sql_insert.cc Sat Apr 26 15:53:08 2003
+++ 1.97/sql/sql_insert.cc Sat Apr 26 20:43:25 2003
@@ -643,6 +643,9 @@
/* no match; create a new thread to handle the table */
if (!(tmp=find_handler(thd,table_list)))
{
+ /* Don't create more than max_insert_delayed_threads */
+ if (delayed_insert_threads >= max_insert_delayed_threads)
+ DBUG_RETURN(0);
thd->proc_info="Creating delayed handler";
pthread_mutex_lock(&LOCK_delayed_create);
if (!(tmp=find_handler(thd,table_list))) // Was just created
@@ -1021,7 +1024,7 @@
while (!thd->killed)
{
int error;
-#if (defined(HAVE_BROKEN_COND_TIMEDWAIT) || defined(HAVE_LINUXTHREADS))
+#if defined(HAVE_BROKEN_COND_TIMEDWAIT)
error=pthread_cond_wait(&di->cond,&di->mutex);
#else
error=pthread_cond_timedwait(&di->cond,&di->mutex,&abstime);

--- 1.306/sql/sql_parse.cc Tue Apr 8 08:35:10 2003
+++ 1.307/sql/sql_parse.cc Sat Apr 26 20:43:25 2003
@@ -210,9 +210,9 @@
!(thd->client_capabilities &
CLIENT_LONG_PASSWORD),&ur);
DBUG_PRINT("info",
- ("Capabilities: %d packet_length: %ld Host: '%s' User: '%s'
Using password: %s Access: %u db: '%s'",
+ ("Capabilities: %d packet_length: %ld Host: '%s' Login user:
'%s' Priv_user: '%s' Using password: %s Access: %u db: '%s'",
thd->client_capabilities, thd->max_client_packet_length,
- thd->host_or_ip, thd->priv_user,
+ thd->host_or_ip, thd->user, thd->priv_user,
passwd[0] ? "yes": "no",
thd->master_access, thd->db ? thd->db : "*none*"));
if (thd->master_access & NO_ACCESS)
@@ -517,7 +517,6 @@
DBUG_PRINT("info",("Host: %s",thd->host));
thd->host_or_ip= thd->host;
thd->ip= 0;
- thd->peer_port= 0;
bzero((char*) &thd->remote,sizeof(struct sockaddr));
}
/* Ensure that wrong hostnames doesn't cause buffer overflows */
@@ -3418,6 +3417,24 @@
}
}

+
+/*
+ Mark that we have a NATURAL JOIN between two tables
+
+ SYNOPSIS
+ add_join_natural()
+ a Table to do normal join with
+ b Do normal join with this table
+
+ IMPLEMENTATION
+ This function just marks that table b should be joined with a.
+ The function setup_cond() will create in b->on_expr a list
+ of equal condition between all fields of the same name.
+
+ SELECT * FROM t1 NATURAL LEFT JOIN t2
+ <=>
+ SELECT * FROM t1 LEFT JOIN t2 ON (t1.i=t2.i and t1.j=t2.j ... )
+*/

void add_join_natural(TABLE_LIST *a,TABLE_LIST *b)
{

--- 1.229/sql/sql_select.cc Wed Apr 23 21:52:14 2003
+++ 1.230/sql/sql_select.cc Sat Apr 26 20:43:25 2003
@@ -556,7 +556,17 @@
select_distinct= 0;
no_order= !order;
if (all_order_fields_used)
+ {
+ if (order && skip_sort_order)
+ {
+ /*
+ Force MySQL to read the table in sorted order to get result in
+ ORDER BY order.
+ */
+ join.tmp_table_param.quick_group=0;
+ }
order=0;
+ }
join.group=1; // For end_write_group
}
else

--- 1.203/sql/sql_yacc.yy Fri Mar 28 15:36:40 2003
+++ 1.204/sql/sql_yacc.yy Sat Apr 26 20:43:25 2003
@@ -492,12 +492,6 @@
%right NOT
%right BINARY

-/* These don't actually affect the way the query is really evaluated, but
- they silence a few warnings for shift/reduce conflicts. */
-%left ','
-%left STRAIGHT_JOIN JOIN_SYM
-%nonassoc CROSS INNER_SYM NATURAL LEFT RIGHT
-
%type <lex_str>
IDENT TEXT_STRING REAL_NUM FLOAT_NUM NUM LONG_NUM HEX_NUM LEX_HOSTNAME
ULONGLONG_NUM field_ident select_alias ident ident_or_text
@@ -2116,7 +2110,7 @@
| join_table_list ',' join_table_list { $$=$3; }
| join_table_list normal_join join_table_list { $$=$3; }
| join_table_list STRAIGHT_JOIN join_table_list
- { $$=$3 ; $$->straight=1; }
+ { $$=$3 ; $1->next->straight=1; }
| join_table_list normal_join join_table_list ON expr
{ add_join_on($3,$5); $$=$3; }
| join_table_list normal_join join_table_list
@@ -2140,9 +2134,13 @@
USING '(' using_list ')'
{ add_join_on($5,$9); $5->outer_join|=JOIN_TYPE_LEFT; $$=$5; }
| join_table_list NATURAL LEFT opt_outer JOIN_SYM join_table_list
- { add_join_natural($1,$6); $6->outer_join|=JOIN_TYPE_LEFT; $$=$6; }
+ {
+ add_join_natural($1,$1->next);
+ $1->next->outer_join|=JOIN_TYPE_LEFT;
+ $$=$6;
+ }
| join_table_list RIGHT opt_outer JOIN_SYM join_table_list ON expr
- { add_join_on($1,$7); $1->outer_join|=JOIN_TYPE_RIGHT; $$=$1; }
+ { add_join_on($1,$7); $1->outer_join|=JOIN_TYPE_RIGHT; $$=$5; }
| join_table_list RIGHT opt_outer JOIN_SYM join_table_list
{
SELECT_LEX *sel=Select;
@@ -2150,11 +2148,15 @@
sel->db2=$5->db; sel->table2=$5->alias;
}
USING '(' using_list ')'
- { add_join_on($1,$9); $1->outer_join|=JOIN_TYPE_RIGHT; $$=$1; }
+ { add_join_on($1,$9); $1->outer_join|=JOIN_TYPE_RIGHT; $$=$5; }
| join_table_list NATURAL RIGHT opt_outer JOIN_SYM join_table_list
- { add_join_natural($6,$1); $1->outer_join|=JOIN_TYPE_RIGHT; $$=$1; }
+ {
+ add_join_natural($1->next,$1);
+ $1->outer_join|=JOIN_TYPE_RIGHT;
+ $$=$6;
+ }
| join_table_list NATURAL JOIN_SYM join_table_list
- { add_join_natural($1,$4); $$=$4; };
+ { add_join_natural($1,$1->next); $$=$4; };

normal_join:
JOIN_SYM {}

--- 1.20/mysql-test/r/join.result Mon Mar 10 13:54:19 2003
+++ 1.21/mysql-test/r/join.result Sat Apr 26 20:43:25 2003
@@ -274,3 +274,90 @@
rate_code base_rate
cust 20
drop table t1,t2;
+create table t1 (i int);
+create table t2 (i int);
+create table t3 (i int);
+insert into t1 values(1),(2);
+insert into t2 values(2),(3);
+insert into t3 values (2),(4);
+select * from t1 natural left join t2;
+i i
+1 NULL
+2 2
+select * from t1 left join t2 on (t1.i=t2.i);
+i i
+1 NULL
+2 2
+select * from t1 natural left join t2 natural left join t3;
+i i i
+1 NULL NULL
+2 2 2
+select * from t1 left join t2 on (t1.i=t2.i) left join t3 on (t2.i=t3.i);
+i i i
+1 NULL NULL
+2 2 2
+select * from t3 natural right join t2;
+i i
+2 2
+NULL 3
+select * from t3 right join t2 on (t3.i=t2.i);
+i i
+2 2
+NULL 3
+select * from t3 natural right join t2 natural right join t1;
+i i i
+NULL NULL 1
+2 2 2
+select * from t3 right join t2 on (t3.i=t2.i) right join t1 on (t2.i=t1.i);
+i i i
+NULL NULL 1
+2 2 2
+select * from t1,t2 natural left join t3 order by t1.i,t2.i,t3.i;
+i i i
+1 2 2
+1 3 NULL
+2 2 2
+2 3 NULL
+select * from t1,t2 left join t3 on (t2.i=t3.i) order by t1.i,t2.i,t3.i;
+i i i
+1 2 2
+1 3 NULL
+2 2 2
+2 3 NULL
+select t1.i,t2.i,t3.i from t2 natural left join t3,t1 order by t1.i,t2.i,t3.i;
+i i i
+1 2 2
+1 3 NULL
+2 2 2
+2 3 NULL
+select t1.i,t2.i,t3.i from t2 left join t3 on (t2.i=t3.i),t1 order by
t1.i,t2.i,t3.i;
+i i i
+1 2 2
+1 3 NULL
+2 2 2
+2 3 NULL
+select * from t1,t2 natural right join t3 order by t1.i,t2.i,t3.i;
+i i i
+1 NULL 4
+1 2 2
+2 NULL 4
+2 2 2
+select * from t1,t2 right join t3 on (t2.i=t3.i) order by t1.i,t2.i,t3.i;
+i i i
+1 NULL 4
+1 2 2
+2 NULL 4
+2 2 2
+select t1.i,t2.i,t3.i from t2 natural right join t3,t1 order by t1.i,t2.i,t3.i;
+i i i
+1 NULL 4
+1 2 2
+2 NULL 4
+2 2 2
+select t1.i,t2.i,t3.i from t2 right join t3 on (t2.i=t3.i),t1 order by
t1.i,t2.i,t3.i;
+i i i
+1 NULL 4
+1 2 2
+2 NULL 4
+2 2 2
+drop table t1,t2,t3;

--- 1.13/mysql-test/r/join_outer.result Wed Apr 23 21:52:14 2003
+++ 1.14/mysql-test/r/join_outer.result Sat Apr 26 20:43:25 2003
@@ -351,12 +351,7 @@
name name id id
Antonio Paz El Gato 1 1
Antonio Paz Perrito 2 1
-NULL Happy 3 1
-NULL El Gato 1 2
-NULL Perrito 2 2
-NULL Happy 3 2
-NULL El Gato 1 3
-NULL Perrito 2 3
+NULL NULL NULL 2
Thimble Smith Happy 3 3
select t1.name, t2.name, t2.id, t2.owner, t3.id from t1 left join t2 on (t1.id
= t2.owner) right join t1 as t3 on t3.id=t2.owner;
name name id owner id

--- 1.25/mysql-test/r/select.result Thu Mar 13 15:40:11 2003
+++ 1.26/mysql-test/r/select.result Sat Apr 26 20:43:25 2003
@@ -3402,13 +3402,7 @@
select * from t1 natural left join (t1 as t2 left join t1 as t3 using (a));
a a a
1 1 1
-2 1 NULL
-3 1 NULL
-1 2 NULL
-2 2 2
-3 2 NULL
-1 3 NULL
-2 3 NULL
+2 2 2
3 3 3
select * from (t1 as t2 left join t1 as t3 using (a)) right join t1 on t1.a>1;
a a a
@@ -3464,13 +3458,7 @@
select * from t1 natural join (t1 as t2 left join t1 as t3 using (a));
a a a
1 1 1
-2 1 NULL
-3 1 NULL
-1 2 NULL
-2 2 2
-3 2 NULL
-1 3 NULL
-2 3 NULL
+2 2 2
3 3 3
select * from (t1 as t2 left join t1 as t3 using (a)) natural join t1;
a a a

--- 1.16/mysql-test/t/join.test Mon Mar 10 12:31:08 2003
+++ 1.17/mysql-test/t/join.test Sat Apr 26 20:43:25 2003
@@ -271,3 +271,35 @@
SELECT emp.rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING
(siteid, rate_code) WHERE emp.emp_id = 'psmith' AND lr.siteid = 'rivercats';
SELECT emp.rate_code, lr.base_rate FROM t1 AS emp LEFT JOIN t2 AS lr USING
(siteid, rate_code) WHERE lr.siteid = 'rivercats' AND emp.emp_id = 'psmith';
drop table t1,t2;
+
+#
+# Test combination of join methods
+#
+
+create table t1 (i int);
+create table t2 (i int);
+create table t3 (i int);
+insert into t1 values(1),(2);
+insert into t2 values(2),(3);
+insert into t3 values (2),(4);
+
+select * from t1 natural left join t2;
+select * from t1 left join t2 on (t1.i=t2.i);
+select * from t1 natural left join t2 natural left join t3;
+select * from t1 left join t2 on (t1.i=t2.i) left join t3 on (t2.i=t3.i);
+
+select * from t3 natural right join t2;
+select * from t3 right join t2 on (t3.i=t2.i);
+select * from t3 natural right join t2 natural right join t1;
+select * from t3 right join t2 on (t3.i=t2.i) right join t1 on (t2.i=t1.i);
+
+select * from t1,t2 natural left join t3 order by t1.i,t2.i,t3.i;
+select * from t1,t2 left join t3 on (t2.i=t3.i) order by t1.i,t2.i,t3.i;
+select t1.i,t2.i,t3.i from t2 natural left join t3,t1 order by t1.i,t2.i,t3.i;
+select t1.i,t2.i,t3.i from t2 left join t3 on (t2.i=t3.i),t1 order by
t1.i,t2.i,t3.i;
+
+select * from t1,t2 natural right join t3 order by t1.i,t2.i,t3.i;
+select * from t1,t2 right join t3 on (t2.i=t3.i) order by t1.i,t2.i,t3.i;
+select t1.i,t2.i,t3.i from t2 natural right join t3,t1 order by t1.i,t2.i,t3.i;
+select t1.i,t2.i,t3.i from t2 right join t3 on (t2.i=t3.i),t1 order by
t1.i,t2.i,t3.i;
+drop table t1,t2,t3;
--- New file ---
+++ mysql-test/r/ctype_ujis.result 03/04/26 20:43:25
drop table if exists t1;
create table t1 (c text);
insert into t1 values (0xa4a2),(0xa4a3);
select hex(left(c,1)) from t1 group by c;
hex(left(c,1))
A4A2
A4A3
drop table t1;

--- New file ---
+++ mysql-test/t/ctype_ujis-master.opt 03/04/26 20:43:26
--default-character-set=ujis

--- New file ---
+++ mysql-test/t/ctype_ujis.test 03/04/26 20:43:26
#
# Tests with the ujis character set
#
drop table if exists t1;

#
# Test problem with LEFT()
#

create table t1 (c text);
insert into t1 values (0xa4a2),(0xa4a3);
select hex(left(c,1)) from t1 group by c;
drop table t1;


--
MySQL Internals Mailing List
For list archives: http://lists.mysql.com/internals
To unsubscribe:
http://lists.mysql.com/internals?unsub=gcdmd-internals@xxxxxxxxxxx




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise